window.utility2.stateInit({"utility2":{"assetsDict":{"/assets.example.html":"\n\n\n\n\n\nswgg\n\n\n\n\n
\n\n\n\n

\n\n swgg (0.0.1)\n\n

\n

the greatest app in the world!

\n\n\n\n\n\n
\n
\n
\n
\n\n
\n\n

\n swgg\n \n \n \n \n clear api-keys\n \n

\n
\n
\n \n
\n\n
\n loading script\n
\n
\n
    \n
    \n [\n this document was created with\n swgg\n ]\n
    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","/assets.example.js":"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\nexample.js\n\nthis script will run a web-demo of swgg\n\ninstruction\n 1. save this script as example.js\n 2. run shell-command:\n $ npm install swgg && \\\n PORT=8081 node example.js\n 3. open a browser to http://127.0.0.1:8081 and play with web-demo\n 4. edit this script to suit your needs\n*/\n\n\n\n/* istanbul instrument in package swgg */\n/* istanbul ignore next */\n/* jslint utility2:true */\n(function (globalThis) {\n \"use strict\";\n let ArrayPrototypeFlat;\n let TextXxcoder;\n let consoleError;\n let local;\n // init globalThis\n globalThis.globalThis = globalThis.globalThis || globalThis;\n // init debug_inline\n if (!globalThis[\"debug\\u0049nline\"]) {\n consoleError = console.error;\n globalThis[\"debug\\u0049nline\"] = function (...argList) {\n /*\n * this function will both print to stderr\n * and return [0]\n */\n // debug argList\n globalThis[\"debug\\u0049nlineArgList\"] = argList;\n consoleError(\"\\n\\ndebug\\u0049nline\");\n consoleError.apply(console, argList);\n consoleError(\"\\n\");\n // return arg0 for inspection\n return argList[0];\n };\n }\n // polyfill\n ArrayPrototypeFlat = function (depth) {\n /*\n * this function will polyfill Array.prototype.flat\n * https://github.com/jonathantneal/array-flat-polyfill\n */\n depth = (\n globalThis.isNaN(depth)\n ? 1\n : Number(depth)\n );\n if (!depth) {\n return Array.prototype.slice.call(this);\n }\n return Array.prototype.reduce.call(this, function (acc, cur) {\n if (Array.isArray(cur)) {\n // recurse\n acc.push.apply(acc, ArrayPrototypeFlat.call(cur, depth - 1));\n } else {\n acc.push(cur);\n }\n return acc;\n }, []);\n };\n Array.prototype.flat = Array.prototype.flat || ArrayPrototypeFlat;\n Array.prototype.flatMap = Array.prototype.flatMap || function flatMap(\n ...argList\n ) {\n /*\n * this function will polyfill Array.prototype.flatMap\n * https://github.com/jonathantneal/array-flat-polyfill\n */\n return this.map(...argList).flat();\n };\n (function () {\n try {\n globalThis.TextDecoder = (\n globalThis.TextDecoder || require(\"util\").TextDecoder\n );\n globalThis.TextEncoder = (\n globalThis.TextEncoder || require(\"util\").TextEncoder\n );\n } catch (ignore) {}\n }());\n TextXxcoder = function () {\n /*\n * this function will polyfill TextDecoder/TextEncoder\n * https://gist.github.com/Yaffle/5458286\n */\n return;\n };\n TextXxcoder.prototype.decode = function (octets) {\n /*\n * this function will polyfill TextDecoder.prototype.decode\n * https://gist.github.com/Yaffle/5458286\n */\n let bytesNeeded;\n let codePoint;\n let ii;\n let kk;\n let octet;\n let string;\n string = \"\";\n ii = 0;\n while (ii < octets.length) {\n octet = octets[ii];\n bytesNeeded = 0;\n codePoint = 0;\n if (octet <= 0x7F) {\n bytesNeeded = 0;\n codePoint = octet & 0xFF;\n } else if (octet <= 0xDF) {\n bytesNeeded = 1;\n codePoint = octet & 0x1F;\n } else if (octet <= 0xEF) {\n bytesNeeded = 2;\n codePoint = octet & 0x0F;\n } else if (octet <= 0xF4) {\n bytesNeeded = 3;\n codePoint = octet & 0x07;\n }\n if (octets.length - ii - bytesNeeded > 0) {\n kk = 0;\n while (kk < bytesNeeded) {\n octet = octets[ii + kk + 1];\n codePoint = (codePoint << 6) | (octet & 0x3F);\n kk += 1;\n }\n } else {\n codePoint = 0xFFFD;\n bytesNeeded = octets.length - ii;\n }\n string += String.fromCodePoint(codePoint);\n ii += bytesNeeded + 1;\n }\n return string;\n };\n TextXxcoder.prototype.encode = function (string) {\n /*\n * this function will polyfill TextEncoder.prototype.encode\n * https://gist.github.com/Yaffle/5458286\n */\n let bits;\n let cc;\n let codePoint;\n let ii;\n let length;\n let octets;\n octets = [];\n length = string.length;\n ii = 0;\n while (ii < length) {\n codePoint = string.codePointAt(ii);\n cc = 0;\n bits = 0;\n if (codePoint <= 0x0000007F) {\n cc = 0;\n bits = 0x00;\n } else if (codePoint <= 0x000007FF) {\n cc = 6;\n bits = 0xC0;\n } else if (codePoint <= 0x0000FFFF) {\n cc = 12;\n bits = 0xE0;\n } else if (codePoint <= 0x001FFFFF) {\n cc = 18;\n bits = 0xF0;\n }\n octets.push(bits | (codePoint >> cc));\n cc -= 6;\n while (cc >= 0) {\n octets.push(0x80 | ((codePoint >> cc) & 0x3F));\n cc -= 6;\n }\n ii += (\n codePoint >= 0x10000\n ? 2\n : 1\n );\n }\n return octets;\n };\n globalThis.TextDecoder = globalThis.TextDecoder || TextXxcoder;\n globalThis.TextEncoder = globalThis.TextEncoder || TextXxcoder;\n // init local\n local = {};\n local.local = local;\n globalThis.globalLocal = local;\n // init isBrowser\n local.isBrowser = (\n typeof globalThis.XMLHttpRequest === \"function\"\n && globalThis.navigator\n && typeof globalThis.navigator.userAgent === \"string\"\n );\n // init function\n local.assertOrThrow = function (passed, message) {\n /*\n * this function will throw err. if is falsy\n */\n let err;\n if (passed) {\n return;\n }\n err = (\n (\n message\n && typeof message.message === \"string\"\n && typeof message.stack === \"string\"\n )\n // if message is errObj, then leave as is\n ? message\n : new Error(\n typeof message === \"string\"\n // if message is a string, then leave as is\n ? message\n // else JSON.stringify message\n : JSON.stringify(message, null, 4)\n )\n );\n throw err;\n };\n local.fsRmrfSync = function (dir) {\n /*\n * this function will sync \"rm -rf\" \n */\n let child_process;\n try {\n child_process = require(\"child_process\");\n } catch (ignore) {\n return;\n }\n child_process.spawnSync(\"rm\", [\n \"-rf\", dir\n ], {\n stdio: [\n \"ignore\", 1, 2\n ]\n });\n };\n local.fsWriteFileWithMkdirpSync = function (file, data) {\n /*\n * this function will sync write to with \"mkdir -p\"\n */\n let fs;\n try {\n fs = require(\"fs\");\n } catch (ignore) {\n return;\n }\n // try to write file\n try {\n fs.writeFileSync(file, data);\n } catch (ignore) {\n // mkdir -p\n require(\"child_process\").spawnSync(\n \"mkdir\",\n [\n \"-p\", require(\"path\").dirname(file)\n ],\n {\n stdio: [\n \"ignore\", 1, 2\n ]\n }\n );\n // rewrite file\n fs.writeFileSync(file, data);\n }\n };\n local.functionOrNop = function (fnc) {\n /*\n * this function will if exists,\n * return ,\n * else return \n */\n return fnc || local.nop;\n };\n local.nop = function () {\n /*\n * this function will do nothing\n */\n return;\n };\n local.objectAssignDefault = function (target, source) {\n /*\n * this function will if items from are\n * null, undefined, or empty-string,\n * then overwrite them with items from \n */\n target = target || {};\n Object.keys(source || {}).forEach(function (key) {\n if (\n target[key] === null\n || target[key] === undefined\n || target[key] === \"\"\n ) {\n target[key] = target[key] || source[key];\n }\n });\n return target;\n };\n local.value = function (val) {\n /*\n * this function will return \n */\n return val;\n };\n local.valueOrEmptyList = function (val) {\n /*\n * this function will return or []\n */\n return val || [];\n };\n local.valueOrEmptyObject = function (val) {\n /*\n * this function will return or {}\n */\n return val || {};\n };\n local.valueOrEmptyString = function (val) {\n /*\n * this function will return or \"\"\n */\n return val || \"\";\n };\n // require builtin\n if (!local.isBrowser) {\n local.assert = require(\"assert\");\n local.buffer = require(\"buffer\");\n local.child_process = require(\"child_process\");\n local.cluster = require(\"cluster\");\n local.crypto = require(\"crypto\");\n local.dgram = require(\"dgram\");\n local.dns = require(\"dns\");\n local.domain = require(\"domain\");\n local.events = require(\"events\");\n local.fs = require(\"fs\");\n local.http = require(\"http\");\n local.https = require(\"https\");\n local.net = require(\"net\");\n local.os = require(\"os\");\n local.path = require(\"path\");\n local.querystring = require(\"querystring\");\n local.readline = require(\"readline\");\n local.repl = require(\"repl\");\n local.stream = require(\"stream\");\n local.string_decoder = require(\"string_decoder\");\n local.timers = require(\"timers\");\n local.tls = require(\"tls\");\n local.tty = require(\"tty\");\n local.url = require(\"url\");\n local.util = require(\"util\");\n local.vm = require(\"vm\");\n local.zlib = require(\"zlib\");\n }\n}((typeof globalThis === \"object\" && globalThis) || (function () {\n return Function(\"return this\")(); // jslint ignore:line\n}())));\n\n\n\n(function (local) {\n\"use strict\";\n\n\n\n// run shared js-env code - init-before\n(function () {\n// init local\nlocal = (\n globalThis.utility2_rollup\n || globalThis.utility2_swgg\n || globalThis.utility2_moduleExports\n);\n// init exports\nglobalThis.local = local;\n// init assets\nlocal.assetsDict[\"/assets.swgg.swagger.json\"] = (\n local.assetsDict[\"/assets.swgg.swagger.petstore.json\"]\n);\n// load db\nlocal.db.dbLoad(function () {\n console.error(\"db loaded from \" + local.storageDir);\n});\n}());\n\n\n\n// run shared js-env code - function\n(function () {\nlocal.middlewareCrudCustom = function (req, response, nextMiddleware) {\n/*\n * this function will run the middleware to run custom-crud-operations\n */\n let crud;\n let opt;\n let result;\n opt = {};\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n crud = req.swgg.crud;\n switch (crud.crudType[0]) {\n // hack-istanbul - test err handling-behavior\n case \"crudErrorPre\":\n opt.gotoNext(local.errDefault);\n return;\n case \"getInventory\":\n crud.dbTable.crudGetManyByQuery({\n query: {},\n projection: [\n \"status\"\n ]\n }, opt.gotoNext);\n break;\n default:\n opt.gotoState = Infinity;\n opt.gotoNext();\n }\n break;\n case 2:\n switch (crud.crudType[0]) {\n case \"getInventory\":\n result = {};\n data.forEach(function (element) {\n result[element.status] = result[element.status] || 0;\n result[element.status] += 1;\n });\n opt.gotoNext(null, result);\n break;\n }\n break;\n case 3:\n local.swgg.serverRespondJsonapi(req, response, err, data);\n break;\n default:\n nextMiddleware(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.middlewareInitCustom = function (req, response, nextMiddleware) {\n/*\n * this function will run the middleware to custom-init and \n */\n // enable cors\n // https://en.wikipedia.org/wiki/Cross-origin_resource_sharing\n response.setHeader(\n \"Access-Control-Allow-Methods\",\n \"DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT\"\n );\n response.setHeader(\"Access-Control-Allow-Origin\", \"*\");\n // init content-type\n response.setHeader(\"Content-Type\", \"application/json; charset=UTF-8\");\n // ignore .map files\n if (req.urlParsed.pathname.slice(-4) === \".map\") {\n local.serverRespondDefault(req, response, 404);\n return;\n }\n nextMiddleware();\n};\n}());\n\n\n\n// run shared js-env code - init-after\n(function () {\n// init assets\n/* jslint ignore:start */\nlocal.assetsDict['/assets.index.template.html'] = local.assetsDict['/assets.swgg.html']\n .replace((/\\n<\\/script>\\n/), '\\\n\\n\\\n\\n\\\n

    \\n\\\n\\n\\\n {{env.npm_package_name}} ({{env.npm_package_version}})\\n\\\n\\n\\\n

    \\n\\\n

    {{env.npm_package_description}}

    \\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n
    \\n\\\n
    \\n\\\n
    \\n\\\n
    \\n\\\n\\n\\\n')\n .replace('assets.swgg.swagger.json', 'assets.swgg.swagger.server.json')\n .replace((/\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n\\n\\\n');\n/* jslint ignore:end */\n\n\n\n// init middleware\nlocal.middlewareList = [\n local.middlewareInit,\n local.middlewareForwardProxy,\n local.middlewareAssetsCached,\n local.swgg.middlewareRouter,\n local.swgg.middlewareUserLogin,\n local.middlewareInitCustom,\n local.middlewareJsonpStateInit,\n local.middlewareBodyRead,\n local.swgg.middlewareBodyParse,\n local.swgg.middlewareValidate,\n local.middlewareCrudCustom,\n local.swgg.middlewareCrudBuiltin,\n local.swgg.middlewareCrudEnd\n];\nlocal.utility2.middlewareList = local.middlewareList;\n// run test-server\nlocal.testRunServer(local);\n/* validateLineSortedReset */\n// init petstore-api - frontend\nlocal.tmp = JSON.parse(local.assetsDict[\"/assets.swgg.swagger.petstore.json\"]);\ndelete local.tmp.basePath;\ndelete local.tmp.host;\ndelete local.tmp.schemes;\nlocal.swgg.apiUpdate(local.tmp);\n// init petstore-api - backend\nlocal.swgg.apiUpdate({\n definitions: {\n File: {\n allOf: [\n {\n $ref: \"#/definitions/BuiltinFile\"\n }\n ]\n },\n Pet: {\n properties: {\n _id: {\n readOnly: true,\n type: \"string\"\n },\n _timeCreated: {\n format: \"date-time\",\n readOnly: true,\n type: \"string\"\n },\n _timeUpdated: {\n format: \"date-time\",\n readOnly: true,\n type: \"string\"\n },\n id: {\n default: 1,\n minimum: 1\n }\n }\n },\n Order: {\n properties: {\n _id: {\n readOnly: true,\n type: \"string\"\n },\n _timeCreated: {\n format: \"date-time\",\n readOnly: true,\n type: \"string\"\n },\n _timeUpdated: {\n format: \"date-time\",\n readOnly: true,\n type: \"string\"\n },\n id: {\n default: 1,\n minimum: 1\n }\n }\n },\n User: {\n allOf: [\n {\n $ref: \"#/definitions/BuiltinUser\"\n }\n ],\n properties: {\n _id: {\n readOnly: true,\n type: \"string\"\n },\n _timeCreated: {\n format: \"date-time\",\n readOnly: true,\n type: \"string\"\n },\n _timeUpdated: {\n format: \"date-time\",\n readOnly: true,\n type: \"string\"\n },\n email: {\n default: \"a@a.com\",\n format: \"email\"\n },\n id: {\n default: 1,\n minimum: 1\n }\n }\n }\n },\n tags: [\n {\n description: \"builtin-file model\",\n name: \"file\"\n }\n ],\n \"x-swgg-apiDict\": {\n \"operationId.file.crudCountManyByQuery\": {\n _schemaName: \"File\"\n },\n \"operationId.file.crudSetOneById.id.id\": {\n _schemaName: \"File\"\n },\n \"operationId.file.crudGetManyByQuery\": {\n _schemaName: \"File\"\n },\n \"operationId.file.crudRemoveOneById.id.id\": {\n _schemaName: \"File\"\n },\n \"operationId.file.crudUpdateOneById.id.id\": {\n _schemaName: \"File\"\n },\n \"operationId.file.fileGetOneById.id.id\": {\n _schemaName: \"File\"\n },\n \"operationId.file.fileUploadManyByForm.1\": {\n _schemaName: \"File\"\n },\n \"operationId.addPet\": {\n _crudType: [\n \"crudSetOneById\", \"petId\", \"id\"\n ],\n _schemaName: \"Pet\"\n },\n \"operationId.pet.crudGetManyByQuery\": {\n _schemaName: \"Pet\"\n },\n \"operationId.deletePet\": {\n _crudType: [\n \"crudRemoveOneById\", \"petId\", \"id\"\n ],\n _schemaName: \"Pet\"\n },\n \"operationId.findPetsByStatus\": {\n _crudType: [\n \"crudGetManyByQuery\"\n ],\n _queryWhere: \"{\\\"status\\\":{\\\"$in\\\":{{status jsonStringify}}}}\",\n _schemaName: \"Pet\"\n },\n \"operationId.findPetsByTags\": {\n _crudType: [\n \"crudGetManyByQuery\"\n ],\n _queryWhere: \"{\\\"tags.name\\\":{\\\"$in\\\":{{tags jsonStringify}}}}\",\n _schemaName: \"Pet\"\n },\n \"operationId.getPetById\": {\n _crudType: [\n \"crudGetOneById\", \"petId\", \"id\"\n ],\n _schemaName: \"Pet\"\n },\n \"operationId.updatePet\": {\n _crudType: [\n \"crudUpdateOneById\", \"petId\", \"id\"\n ],\n _schemaName: \"Pet\"\n },\n \"operationId.updatePetWithForm\": {\n _crudType: [\n \"crudUpdateOneById\", \"petId\", \"id\"\n ],\n _schemaName: \"Pet\"\n },\n \"operationId.uploadFile\": {\n _crudType: [\n \"fileUploadManyByForm\"\n ],\n _schemaName: \"User\"\n },\n \"operationId.store.crudGetManyByQuery\": {\n _schemaName: \"Order\"\n },\n \"operationId.store.crudUpdateOneById.id.id\": {\n _schemaName: \"Order\"\n },\n \"operationId.deleteOrder\": {\n _crudType: [\n \"crudRemoveOneById\", \"orderId\", \"id\"\n ],\n _schemaName: \"Order\"\n },\n \"operationId.getInventory\": {\n _schemaName: \"Order\"\n },\n \"operationId.getOrderById\": {\n _crudType: [\n \"crudGetOneById\", \"orderId\", \"id\"\n ],\n _schemaName: \"Order\"\n },\n \"operationId.placeOrder\": {\n _crudType: [\n \"crudSetOneById\", \"orderId\", \"id\"\n ],\n _schemaName: \"Order\"\n },\n \"operationId.createUser\": {\n _crudType: [\n \"crudSetOneById\", \"username\", \"username\"\n ],\n _schemaName: \"User\"\n },\n \"operationId.createUsersWithArrayInput\": {\n _crudType: [\n \"crudSetManyById\"\n ],\n _schemaName: \"User\"\n },\n \"operationId.createUsersWithListInput\": {\n _crudType: [\n \"crudSetManyById\"\n ],\n _schemaName: \"User\"\n },\n \"operationId.user.crudCountManyByQuery\": {\n _schemaName: \"User\"\n },\n \"operationId.user.crudSetOneById.username.username\": {\n _schemaName: \"User\"\n },\n \"operationId.user.crudRemoveOneById.username.username\": {\n _schemaName: \"User\"\n },\n \"operationId.user.crudGetManyByQuery\": {\n _schemaName: \"User\"\n },\n \"operationId.user.crudUpdateOneById.username.username\": {\n _schemaName: \"User\"\n },\n \"operationId.deleteUser\": {\n _crudType: [\n \"crudRemoveOneById\", \"username\", \"username\"\n ],\n _schemaName: \"User\"\n },\n \"operationId.getUserByName\": {\n _crudType: [\n \"crudGetOneById\", \"username\", \"username\"\n ],\n _schemaName: \"User\"\n },\n \"operationId.loginUser\": {\n _crudType: [\n \"userLoginByPassword\"\n ],\n _schemaName: \"User\"\n },\n \"operationId.logoutUser\": {\n _crudType: [\n \"userLogout\"\n ],\n _schemaName: \"User\"\n },\n \"operationId.updateUser\": {\n _crudType: [\n \"crudUpdateOneById\", \"username\", \"username\"\n ],\n _schemaName: \"User\"\n },\n \"operationId.user.userLoginByPassword\": {\n _schemaName: \"User\"\n },\n \"operationId.user.userLogout\": {\n _schemaName: \"User\"\n }\n }\n});\n/* validateLineSortedReset */\n// init db\nglobalThis.utility2_dbSeedList = [{\n dbRowList: [\n {\n id: \"testCase_swaggerUiLogoSmall\",\n fileBlob: local.swgg.templateSwaggerUiLogoSmallBase64,\n fileContentType: \"image/png\",\n fileDescription: \"swagger-ui logo\",\n fileFilename: \"swaggerUiLogoSmall.png\"\n }\n ],\n idIndexCreateList: [\n {\n name: \"id\"\n }\n ],\n name: \"File\"\n}, {\n dbRowList: local.swgg.dbRowListRandomCreate({\n dbRowList: [\n {\n id: 0,\n name: \"birdie\",\n photoUrls: [],\n status: \"available\",\n tags: [\n {\n name: \"bird\"\n }\n ]\n }, {\n id: 1,\n name: \"doggie\",\n status: \"pending\",\n photoUrls: [],\n tags: [\n {\n name: \"dog\"\n }\n ]\n }, {\n id: 2,\n name: \"fishie\",\n photoUrls: [],\n status: \"sold\",\n tags: [\n {\n name: \"fish\"\n }\n ]\n }\n ],\n // init 100 extra random pets\n length: 100,\n override: function (opt) {\n return {\n id: opt.ii + 100,\n name: local.listGetElementRandom([\n \"birdie\", \"doggie\", \"fishie\"\n ]) + \"-\" + (opt.ii + 100),\n tags: [\n {\n name: local.listGetElementRandom([\n \"female\", \"male\"\n ])\n }\n ]\n };\n },\n schema: local.swgg.swaggerJson.definitions.Pet\n }),\n idIndexCreateList: [\n {\n isInteger: true,\n name: \"id\"\n }\n ],\n name: \"Pet\"\n}, {\n dbRowList: local.swgg.dbRowListRandomCreate({\n dbRowList: [\n {\n id: 0,\n petId: 0,\n status: \"available\"\n }, {\n id: 1,\n petId: 1,\n status: \"pending\"\n }, {\n id: 2,\n petId: 2,\n status: \"sold\"\n }\n ],\n // init 100 extra random orders\n length: 100,\n override: function (opt) {\n return {\n id: opt.ii + 100,\n petId: opt.ii + 100\n };\n },\n schema: local.swgg.swaggerJson.definitions.Order\n }),\n idIndexCreateList: [\n {\n isInteger: true,\n name: \"id\"\n }\n ],\n name: \"Order\"\n}, {\n dbRowList: local.swgg.dbRowListRandomCreate({\n dbRowList: [\n {\n email: \"admin@admin.com\",\n firstName: \"admin\",\n id: 0,\n lastName: \"\",\n password: local.sjclHashScryptCreate(\"secret\"),\n phone: \"1234-5678\",\n username: \"admin\"\n }, {\n email: \"jane@doe.com\",\n firstName: \"jane\",\n id: 1,\n lastName: \"doe\",\n password: local.sjclHashScryptCreate(\"secret\"),\n phone: \"1234-5678\",\n username: \"jane.doe\"\n }, {\n email: \"john@doe.com\",\n firstName: \"john\",\n id: 2,\n lastName: \"doe\",\n password: local.sjclHashScryptCreate(\"secret\"),\n phone: \"1234-5678\",\n username: \"john.doe\"\n }\n ],\n // init 100 extra random users\n length: 100,\n override: function (opt) {\n return {\n firstName: local.listGetElementRandom([\n \"alice\", \"bob\", \"jane\", \"john\"\n ]) + \"-\" + (opt.ii + 100),\n id: opt.ii + 100,\n lastName: local.listGetElementRandom([\n \"doe\", \"smith\"\n ]) + \"-\" + (opt.ii + 100),\n password: local.sjclHashScryptCreate(\"secret\"),\n tags: [\n {\n name: local.listGetElementRandom([\n \"female\", \"male\"\n ])\n }, {\n name: Math.random().toString(36).slice(2)\n }\n ]\n };\n },\n schema: local.swgg.swaggerJson.definitions.User\n }),\n idIndexCreateList: [\n {\n name: \"email\"\n }, {\n name: \"id\",\n isInteger: true\n }, {\n name: \"username\"\n }\n ],\n name: \"User\"\n}];\n// seed db\nlocal.db.dbSeed(globalThis.utility2_dbSeedList, local.onErrorThrow);\n// init serverLocal\nlocal.utility2.serverLocalUrlTest = function (url) {\n url = local.urlParse(url).pathname;\n return (\n local.isBrowser\n && !local.env.npm_config_mode_backend\n && (\n /^\\/test\\.|\\/api\\/v0\\//\n ).test(url)\n );\n};\n}());\n\n\n\n/* istanbul ignore next */\n// run browser js-env code - init-test\n(function () {\nif (!local.isBrowser) {\n return;\n}\n// log stderr and stdout to #outputStdout1\n[\"error\", \"log\"].forEach(function (key) {\n let elem;\n let fnc;\n elem = document.querySelector(\n \"#outputStdout1\"\n );\n if (!elem) {\n return;\n }\n fnc = console[key];\n console[key] = function (...argList) {\n fnc.apply(console, argList);\n // append text to #outputStdout1\n elem.textContent += argList.map(function (arg) {\n return (\n typeof arg === \"string\"\n ? arg\n : JSON.stringify(arg, null, 4)\n );\n }).join(\" \").replace((\n /\\u001b\\[\\d*m/g\n ), \"\") + \"\\n\";\n // scroll textarea to bottom\n elem.scrollTop = elem.scrollHeight;\n };\n});\nlocal.objectAssignDefault(local, globalThis.domOnEventDelegateDict);\nglobalThis.domOnEventDelegateDict = local;\nlocal.onEventDomDb = local.db && local.db.onEventDomDb;\nlocal.testRunBrowser = function (evt) {\n/*\n * this function will run browser-tests\n */\n switch (\n !evt.ctrlKey\n && !evt.metaKey\n && (\n evt.modeInit\n || (evt.type + \".\" + (evt.target && evt.target.id))\n )\n ) {\n // custom-case\n case true:\n // init ui\n globalThis.utility2_onReadyBefore.counter += 1;\n local.swgg.uiEventListenerDict.onEventUiReload(\n null,\n globalThis.utility2_onReadyBefore\n );\n return;\n // run browser-tests\n default:\n if (\n (evt.target && evt.target.id) !== \"buttonTestRun1\"\n && !(evt.modeInit && (\n /\\bmodeTest=1\\b/\n ).test(location.search))\n ) {\n return;\n }\n // show browser-tests\n if (document.querySelector(\n \"#htmlTestReport1\"\n ).style.maxHeight === \"0px\") {\n globalThis.domOnEventDelegateDict.domOnEventResetOutput();\n local.uiAnimateSlideDown(document.querySelector(\n \"#htmlTestReport1\"\n ));\n document.querySelector(\n \"#buttonTestRun1\"\n ).textContent = \"hide internal test\";\n local.modeTest = 1;\n local.testRunDefault(local);\n return;\n }\n // hide browser-tests\n local.uiAnimateSlideUp(document.querySelector(\n \"#htmlTestReport1\"\n ));\n document.querySelector(\n \"#buttonTestRun1\"\n ).textContent = \"run internal test\";\n }\n};\n\nlocal.testRunBrowser({\n modeInit: true\n});\n}());\n\n\n\n/* istanbul ignore next */\n// run node js-env code - init-test\n(function () {\nif (local.isBrowser) {\n return;\n}\n// init exports\nmodule.exports = local;\n/* validateLineSortedReset */\n// init assets\nlocal.assetsDict = local.assetsDict || {};\n[\n \"assets.index.template.html\",\n \"assets.swgg.swagger.json\",\n \"assets.swgg.swagger.server.json\"\n].forEach(function (file) {\n file = \"/\" + file;\n local.assetsDict[file] = local.assetsDict[file] || \"\";\n if (local.fs.existsSync(local.__dirname + file)) {\n local.assetsDict[file] = local.fs.readFileSync(\n local.__dirname + file,\n \"utf8\"\n );\n }\n});\n/* validateLineSortedReset */\n/* jslint ignore:start */\nlocal.assetsDict[\"/assets.swgg.js\"] =\n local.assetsDict[\"/assets.swgg.js\"] ||\n local.fs.readFileSync(local.__dirname + \"/lib.swgg.js\", \"utf8\"\n).replace((/^#!\\//), \"// \");\n/* jslint ignore:end */\n/* validateLineSortedReset */\nlocal.assetsDict[\"/\"] = local.assetsDict[\n \"/assets.index.template.html\"\n].replace((\n /\\{\\{env\\.(\\w+?)\\}\\}/g\n), function (match0, match1) {\n switch (match1) {\n case \"npm_package_description\":\n return \"the greatest app in the world!\";\n case \"npm_package_name\":\n return \"swgg\";\n case \"npm_package_nameLib\":\n return \"swgg\";\n case \"npm_package_version\":\n return \"0.0.1\";\n default:\n return match0;\n }\n});\nlocal.assetsDict[\"/assets.example.html\"] = local.assetsDict[\"/\"];\nlocal.assetsDict[\"/index.html\"] = local.assetsDict[\"/\"];\n// init cli\nif (module !== require.main || globalThis.utility2_rollup) {\n return;\n}\n/* validateLineSortedReset */\nlocal.assetsDict[\"/assets.example.js\"] = (\n local.assetsDict[\"/assets.example.js\"]\n || local.fs.readFileSync(__filename, \"utf8\")\n);\nlocal.assetsDict[\"/favicon.ico\"] = local.assetsDict[\"/favicon.ico\"] || \"\";\n// if $npm_config_timeout_exit exists,\n// then exit this process after $npm_config_timeout_exit ms\nif (Number(process.env.npm_config_timeout_exit)) {\n setTimeout(process.exit, Number(process.env.npm_config_timeout_exit));\n}\n// start server\nif (globalThis.utility2_serverHttp1) {\n return;\n}\nprocess.env.PORT = process.env.PORT || \"8081\";\nconsole.error(\"http-server listening on port \" + process.env.PORT);\nlocal.http.createServer(function (req, res) {\n req.urlParsed = local.url.parse(req.url);\n if (local.assetsDict[req.urlParsed.pathname] !== undefined) {\n res.end(local.assetsDict[req.urlParsed.pathname]);\n return;\n }\n res.statusCode = 404;\n res.end();\n}).listen(process.env.PORT);\n}());\n}());","/assets.swgg.swagger.json":"{\"swagger\":\"2.0\",\"info\":{\"description\":\"This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.\",\"version\":\"1.0.0\",\"title\":\"Swagger Petstore\",\"termsOfService\":\"http://swagger.io/terms/\",\"contact\":{\"email\":\"apiteam@swagger.io\"},\"license\":{\"name\":\"Apache 2.0\",\"url\":\"http://www.apache.org/licenses/LICENSE-2.0.html\"}},\"host\":\"petstore.swagger.io\",\"basePath\":\"/v2\",\"tags\":[{\"name\":\"pet\",\"description\":\"Everything about your Pets\",\"externalDocs\":{\"description\":\"Find out more\",\"url\":\"http://swagger.io\"}},{\"name\":\"store\",\"description\":\"Access to Petstore orders\"},{\"name\":\"user\",\"description\":\"Operations about user\",\"externalDocs\":{\"description\":\"Find out more about our store\",\"url\":\"http://swagger.io\"}}],\"schemes\":[\"http\"],\"paths\":{\"/pet\":{\"post\":{\"tags\":[\"pet\"],\"summary\":\"Add a new pet to the store\",\"description\":\"\",\"operationId\":\"addPet\",\"consumes\":[\"application/json\",\"application/xml\"],\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"in\":\"body\",\"name\":\"body\",\"description\":\"Pet object that needs to be added to the store\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/Pet\"}}],\"responses\":{\"405\":{\"description\":\"Invalid input\"}},\"security\":[{\"petstore_auth\":[\"write:pets\",\"read:pets\"]}]},\"put\":{\"tags\":[\"pet\"],\"summary\":\"Update an existing pet\",\"description\":\"\",\"operationId\":\"updatePet\",\"consumes\":[\"application/json\",\"application/xml\"],\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"in\":\"body\",\"name\":\"body\",\"description\":\"Pet object that needs to be added to the store\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/Pet\"}}],\"responses\":{\"400\":{\"description\":\"Invalid ID supplied\"},\"404\":{\"description\":\"Pet not found\"},\"405\":{\"description\":\"Validation exception\"}},\"security\":[{\"petstore_auth\":[\"write:pets\",\"read:pets\"]}]}},\"/pet/findByStatus\":{\"get\":{\"tags\":[\"pet\"],\"summary\":\"Finds Pets by status\",\"description\":\"Multiple status values can be provided with comma separated strings\",\"operationId\":\"findPetsByStatus\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"status\",\"in\":\"query\",\"description\":\"Status values that need to be considered for filter\",\"required\":true,\"type\":\"array\",\"items\":{\"type\":\"string\",\"enum\":[\"available\",\"pending\",\"sold\"],\"default\":\"available\"},\"collectionFormat\":\"multi\"}],\"responses\":{\"200\":{\"description\":\"successful operation\",\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/Pet\"}}},\"400\":{\"description\":\"Invalid status value\"}},\"security\":[{\"petstore_auth\":[\"write:pets\",\"read:pets\"]}]}},\"/pet/findByTags\":{\"get\":{\"tags\":[\"pet\"],\"summary\":\"Finds Pets by tags\",\"description\":\"Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.\",\"operationId\":\"findPetsByTags\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"tags\",\"in\":\"query\",\"description\":\"Tags to filter by\",\"required\":true,\"type\":\"array\",\"items\":{\"type\":\"string\"},\"collectionFormat\":\"multi\"}],\"responses\":{\"200\":{\"description\":\"successful operation\",\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/Pet\"}}},\"400\":{\"description\":\"Invalid tag value\"}},\"security\":[{\"petstore_auth\":[\"write:pets\",\"read:pets\"]}],\"deprecated\":true}},\"/pet/{petId}\":{\"get\":{\"tags\":[\"pet\"],\"summary\":\"Find pet by ID\",\"description\":\"Returns a single pet\",\"operationId\":\"getPetById\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"petId\",\"in\":\"path\",\"description\":\"ID of pet to return\",\"required\":true,\"type\":\"integer\",\"format\":\"int64\"}],\"responses\":{\"200\":{\"description\":\"successful operation\",\"schema\":{\"$ref\":\"#/definitions/Pet\"}},\"400\":{\"description\":\"Invalid ID supplied\"},\"404\":{\"description\":\"Pet not found\"}},\"security\":[{\"api_key\":[]}]},\"post\":{\"tags\":[\"pet\"],\"summary\":\"Updates a pet in the store with form data\",\"description\":\"\",\"operationId\":\"updatePetWithForm\",\"consumes\":[\"application/x-www-form-urlencoded\"],\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"petId\",\"in\":\"path\",\"description\":\"ID of pet that needs to be updated\",\"required\":true,\"type\":\"integer\",\"format\":\"int64\"},{\"name\":\"name\",\"in\":\"formData\",\"description\":\"Updated name of the pet\",\"required\":false,\"type\":\"string\"},{\"name\":\"status\",\"in\":\"formData\",\"description\":\"Updated status of the pet\",\"required\":false,\"type\":\"string\"}],\"responses\":{\"405\":{\"description\":\"Invalid input\"}},\"security\":[{\"petstore_auth\":[\"write:pets\",\"read:pets\"]}]},\"delete\":{\"tags\":[\"pet\"],\"summary\":\"Deletes a pet\",\"description\":\"\",\"operationId\":\"deletePet\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"api_key\",\"in\":\"header\",\"required\":false,\"type\":\"string\"},{\"name\":\"petId\",\"in\":\"path\",\"description\":\"Pet id to delete\",\"required\":true,\"type\":\"integer\",\"format\":\"int64\"}],\"responses\":{\"400\":{\"description\":\"Invalid ID supplied\"},\"404\":{\"description\":\"Pet not found\"}},\"security\":[{\"petstore_auth\":[\"write:pets\",\"read:pets\"]}]}},\"/pet/{petId}/uploadImage\":{\"post\":{\"tags\":[\"pet\"],\"summary\":\"uploads an image\",\"description\":\"\",\"operationId\":\"uploadFile\",\"consumes\":[\"multipart/form-data\"],\"produces\":[\"application/json\"],\"parameters\":[{\"name\":\"petId\",\"in\":\"path\",\"description\":\"ID of pet to update\",\"required\":true,\"type\":\"integer\",\"format\":\"int64\"},{\"name\":\"additionalMetadata\",\"in\":\"formData\",\"description\":\"Additional data to pass to server\",\"required\":false,\"type\":\"string\"},{\"name\":\"file\",\"in\":\"formData\",\"description\":\"file to upload\",\"required\":false,\"type\":\"file\"}],\"responses\":{\"200\":{\"description\":\"successful operation\",\"schema\":{\"$ref\":\"#/definitions/ApiResponse\"}}},\"security\":[{\"petstore_auth\":[\"write:pets\",\"read:pets\"]}]}},\"/store/inventory\":{\"get\":{\"tags\":[\"store\"],\"summary\":\"Returns pet inventories by status\",\"description\":\"Returns a map of status codes to quantities\",\"operationId\":\"getInventory\",\"produces\":[\"application/json\"],\"parameters\":[],\"responses\":{\"200\":{\"description\":\"successful operation\",\"schema\":{\"type\":\"object\",\"additionalProperties\":{\"type\":\"integer\",\"format\":\"int32\"}}}},\"security\":[{\"api_key\":[]}]}},\"/store/order\":{\"post\":{\"tags\":[\"store\"],\"summary\":\"Place an order for a pet\",\"description\":\"\",\"operationId\":\"placeOrder\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"in\":\"body\",\"name\":\"body\",\"description\":\"order placed for purchasing the pet\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/Order\"}}],\"responses\":{\"200\":{\"description\":\"successful operation\",\"schema\":{\"$ref\":\"#/definitions/Order\"}},\"400\":{\"description\":\"Invalid Order\"}}}},\"/store/order/{orderId}\":{\"get\":{\"tags\":[\"store\"],\"summary\":\"Find purchase order by ID\",\"description\":\"For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions\",\"operationId\":\"getOrderById\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"orderId\",\"in\":\"path\",\"description\":\"ID of pet that needs to be fetched\",\"required\":true,\"type\":\"integer\",\"maximum\":10,\"minimum\":1,\"format\":\"int64\"}],\"responses\":{\"200\":{\"description\":\"successful operation\",\"schema\":{\"$ref\":\"#/definitions/Order\"}},\"400\":{\"description\":\"Invalid ID supplied\"},\"404\":{\"description\":\"Order not found\"}}},\"delete\":{\"tags\":[\"store\"],\"summary\":\"Delete purchase order by ID\",\"description\":\"For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors\",\"operationId\":\"deleteOrder\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"orderId\",\"in\":\"path\",\"description\":\"ID of the order that needs to be deleted\",\"required\":true,\"type\":\"integer\",\"minimum\":1,\"format\":\"int64\"}],\"responses\":{\"400\":{\"description\":\"Invalid ID supplied\"},\"404\":{\"description\":\"Order not found\"}}}},\"/user\":{\"post\":{\"tags\":[\"user\"],\"summary\":\"Create user\",\"description\":\"This can only be done by the logged in user.\",\"operationId\":\"createUser\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"in\":\"body\",\"name\":\"body\",\"description\":\"Created user object\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/User\"}}],\"responses\":{\"default\":{\"description\":\"successful operation\"}}}},\"/user/createWithArray\":{\"post\":{\"tags\":[\"user\"],\"summary\":\"Creates list of users with given input array\",\"description\":\"\",\"operationId\":\"createUsersWithArrayInput\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"in\":\"body\",\"name\":\"body\",\"description\":\"List of user object\",\"required\":true,\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/User\"}}}],\"responses\":{\"default\":{\"description\":\"successful operation\"}}}},\"/user/createWithList\":{\"post\":{\"tags\":[\"user\"],\"summary\":\"Creates list of users with given input array\",\"description\":\"\",\"operationId\":\"createUsersWithListInput\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"in\":\"body\",\"name\":\"body\",\"description\":\"List of user object\",\"required\":true,\"schema\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/definitions/User\"}}}],\"responses\":{\"default\":{\"description\":\"successful operation\"}}}},\"/user/login\":{\"get\":{\"tags\":[\"user\"],\"summary\":\"Logs user into the system\",\"description\":\"\",\"operationId\":\"loginUser\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"username\",\"in\":\"query\",\"description\":\"The user name for login\",\"required\":true,\"type\":\"string\"},{\"name\":\"password\",\"in\":\"query\",\"description\":\"The password for login in clear text\",\"required\":true,\"type\":\"string\"}],\"responses\":{\"200\":{\"description\":\"successful operation\",\"schema\":{\"type\":\"string\"},\"headers\":{\"X-Rate-Limit\":{\"type\":\"integer\",\"format\":\"int32\",\"description\":\"calls per hour allowed by the user\"},\"X-Expires-After\":{\"type\":\"string\",\"format\":\"date-time\",\"description\":\"date in UTC when token expires\"}}},\"400\":{\"description\":\"Invalid username/password supplied\"}}}},\"/user/logout\":{\"get\":{\"tags\":[\"user\"],\"summary\":\"Logs out current logged in user session\",\"description\":\"\",\"operationId\":\"logoutUser\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[],\"responses\":{\"default\":{\"description\":\"successful operation\"}}}},\"/user/{username}\":{\"get\":{\"tags\":[\"user\"],\"summary\":\"Get user by user name\",\"description\":\"\",\"operationId\":\"getUserByName\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"username\",\"in\":\"path\",\"description\":\"The name that needs to be fetched. Use user1 for testing. \",\"required\":true,\"type\":\"string\"}],\"responses\":{\"200\":{\"description\":\"successful operation\",\"schema\":{\"$ref\":\"#/definitions/User\"}},\"400\":{\"description\":\"Invalid username supplied\"},\"404\":{\"description\":\"User not found\"}}},\"put\":{\"tags\":[\"user\"],\"summary\":\"Updated user\",\"description\":\"This can only be done by the logged in user.\",\"operationId\":\"updateUser\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"username\",\"in\":\"path\",\"description\":\"name that need to be updated\",\"required\":true,\"type\":\"string\"},{\"in\":\"body\",\"name\":\"body\",\"description\":\"Updated user object\",\"required\":true,\"schema\":{\"$ref\":\"#/definitions/User\"}}],\"responses\":{\"400\":{\"description\":\"Invalid user supplied\"},\"404\":{\"description\":\"User not found\"}}},\"delete\":{\"tags\":[\"user\"],\"summary\":\"Delete user\",\"description\":\"This can only be done by the logged in user.\",\"operationId\":\"deleteUser\",\"produces\":[\"application/xml\",\"application/json\"],\"parameters\":[{\"name\":\"username\",\"in\":\"path\",\"description\":\"The name that needs to be deleted\",\"required\":true,\"type\":\"string\"}],\"responses\":{\"400\":{\"description\":\"Invalid username supplied\"},\"404\":{\"description\":\"User not found\"}}}}},\"securityDefinitions\":{\"petstore_auth\":{\"type\":\"oauth2\",\"authorizationUrl\":\"http://petstore.swagger.io/oauth/dialog\",\"flow\":\"implicit\",\"scopes\":{\"write:pets\":\"modify pets in your account\",\"read:pets\":\"read your pets\"}},\"api_key\":{\"type\":\"apiKey\",\"name\":\"api_key\",\"in\":\"header\"}},\"definitions\":{\"Order\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int64\"},\"petId\":{\"type\":\"integer\",\"format\":\"int64\"},\"quantity\":{\"type\":\"integer\",\"format\":\"int32\"},\"shipDate\":{\"type\":\"string\",\"format\":\"date-time\"},\"status\":{\"type\":\"string\",\"description\":\"Order Status\",\"enum\":[\"placed\",\"approved\",\"delivered\"]},\"complete\":{\"type\":\"boolean\",\"default\":false}},\"xml\":{\"name\":\"Order\"}},\"Category\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int64\"},\"name\":{\"type\":\"string\"}},\"xml\":{\"name\":\"Category\"}},\"User\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int64\"},\"username\":{\"type\":\"string\"},\"firstName\":{\"type\":\"string\"},\"lastName\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"},\"password\":{\"type\":\"string\"},\"phone\":{\"type\":\"string\"},\"userStatus\":{\"type\":\"integer\",\"format\":\"int32\",\"description\":\"User Status\"}},\"xml\":{\"name\":\"User\"}},\"Tag\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int64\"},\"name\":{\"type\":\"string\"}},\"xml\":{\"name\":\"Tag\"}},\"Pet\":{\"type\":\"object\",\"required\":[\"name\",\"photoUrls\"],\"properties\":{\"id\":{\"type\":\"integer\",\"format\":\"int64\"},\"category\":{\"$ref\":\"#/definitions/Category\"},\"name\":{\"type\":\"string\",\"example\":\"doggie\"},\"photoUrls\":{\"type\":\"array\",\"xml\":{\"name\":\"photoUrl\",\"wrapped\":true},\"items\":{\"type\":\"string\"}},\"tags\":{\"type\":\"array\",\"xml\":{\"name\":\"tag\",\"wrapped\":true},\"items\":{\"$ref\":\"#/definitions/Tag\"}},\"status\":{\"type\":\"string\",\"description\":\"pet status in the store\",\"enum\":[\"available\",\"pending\",\"sold\"]}},\"xml\":{\"name\":\"Pet\"}},\"ApiResponse\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"integer\",\"format\":\"int32\"},\"type\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"}}}},\"externalDocs\":{\"description\":\"Find out more about Swagger\",\"url\":\"http://swagger.io\"}}","/assets.test.js":"/* istanbul instrument in package swgg */\n/* istanbul ignore next */\n/* jslint utility2:true */\n(function (globalThis) {\n \"use strict\";\n let ArrayPrototypeFlat;\n let TextXxcoder;\n let consoleError;\n let local;\n // init globalThis\n globalThis.globalThis = globalThis.globalThis || globalThis;\n // init debug_inline\n if (!globalThis[\"debug\\u0049nline\"]) {\n consoleError = console.error;\n globalThis[\"debug\\u0049nline\"] = function (...argList) {\n /*\n * this function will both print to stderr\n * and return [0]\n */\n // debug argList\n globalThis[\"debug\\u0049nlineArgList\"] = argList;\n consoleError(\"\\n\\ndebug\\u0049nline\");\n consoleError.apply(console, argList);\n consoleError(\"\\n\");\n // return arg0 for inspection\n return argList[0];\n };\n }\n // polyfill\n ArrayPrototypeFlat = function (depth) {\n /*\n * this function will polyfill Array.prototype.flat\n * https://github.com/jonathantneal/array-flat-polyfill\n */\n depth = (\n globalThis.isNaN(depth)\n ? 1\n : Number(depth)\n );\n if (!depth) {\n return Array.prototype.slice.call(this);\n }\n return Array.prototype.reduce.call(this, function (acc, cur) {\n if (Array.isArray(cur)) {\n // recurse\n acc.push.apply(acc, ArrayPrototypeFlat.call(cur, depth - 1));\n } else {\n acc.push(cur);\n }\n return acc;\n }, []);\n };\n Array.prototype.flat = Array.prototype.flat || ArrayPrototypeFlat;\n Array.prototype.flatMap = Array.prototype.flatMap || function flatMap(\n ...argList\n ) {\n /*\n * this function will polyfill Array.prototype.flatMap\n * https://github.com/jonathantneal/array-flat-polyfill\n */\n return this.map(...argList).flat();\n };\n (function () {\n try {\n globalThis.TextDecoder = (\n globalThis.TextDecoder || require(\"util\").TextDecoder\n );\n globalThis.TextEncoder = (\n globalThis.TextEncoder || require(\"util\").TextEncoder\n );\n } catch (ignore) {}\n }());\n TextXxcoder = function () {\n /*\n * this function will polyfill TextDecoder/TextEncoder\n * https://gist.github.com/Yaffle/5458286\n */\n return;\n };\n TextXxcoder.prototype.decode = function (octets) {\n /*\n * this function will polyfill TextDecoder.prototype.decode\n * https://gist.github.com/Yaffle/5458286\n */\n let bytesNeeded;\n let codePoint;\n let ii;\n let kk;\n let octet;\n let string;\n string = \"\";\n ii = 0;\n while (ii < octets.length) {\n octet = octets[ii];\n bytesNeeded = 0;\n codePoint = 0;\n if (octet <= 0x7F) {\n bytesNeeded = 0;\n codePoint = octet & 0xFF;\n } else if (octet <= 0xDF) {\n bytesNeeded = 1;\n codePoint = octet & 0x1F;\n } else if (octet <= 0xEF) {\n bytesNeeded = 2;\n codePoint = octet & 0x0F;\n } else if (octet <= 0xF4) {\n bytesNeeded = 3;\n codePoint = octet & 0x07;\n }\n if (octets.length - ii - bytesNeeded > 0) {\n kk = 0;\n while (kk < bytesNeeded) {\n octet = octets[ii + kk + 1];\n codePoint = (codePoint << 6) | (octet & 0x3F);\n kk += 1;\n }\n } else {\n codePoint = 0xFFFD;\n bytesNeeded = octets.length - ii;\n }\n string += String.fromCodePoint(codePoint);\n ii += bytesNeeded + 1;\n }\n return string;\n };\n TextXxcoder.prototype.encode = function (string) {\n /*\n * this function will polyfill TextEncoder.prototype.encode\n * https://gist.github.com/Yaffle/5458286\n */\n let bits;\n let cc;\n let codePoint;\n let ii;\n let length;\n let octets;\n octets = [];\n length = string.length;\n ii = 0;\n while (ii < length) {\n codePoint = string.codePointAt(ii);\n cc = 0;\n bits = 0;\n if (codePoint <= 0x0000007F) {\n cc = 0;\n bits = 0x00;\n } else if (codePoint <= 0x000007FF) {\n cc = 6;\n bits = 0xC0;\n } else if (codePoint <= 0x0000FFFF) {\n cc = 12;\n bits = 0xE0;\n } else if (codePoint <= 0x001FFFFF) {\n cc = 18;\n bits = 0xF0;\n }\n octets.push(bits | (codePoint >> cc));\n cc -= 6;\n while (cc >= 0) {\n octets.push(0x80 | ((codePoint >> cc) & 0x3F));\n cc -= 6;\n }\n ii += (\n codePoint >= 0x10000\n ? 2\n : 1\n );\n }\n return octets;\n };\n globalThis.TextDecoder = globalThis.TextDecoder || TextXxcoder;\n globalThis.TextEncoder = globalThis.TextEncoder || TextXxcoder;\n // init local\n local = {};\n local.local = local;\n globalThis.globalLocal = local;\n // init isBrowser\n local.isBrowser = (\n typeof globalThis.XMLHttpRequest === \"function\"\n && globalThis.navigator\n && typeof globalThis.navigator.userAgent === \"string\"\n );\n // init function\n local.assertOrThrow = function (passed, message) {\n /*\n * this function will throw err. if is falsy\n */\n let err;\n if (passed) {\n return;\n }\n err = (\n (\n message\n && typeof message.message === \"string\"\n && typeof message.stack === \"string\"\n )\n // if message is errObj, then leave as is\n ? message\n : new Error(\n typeof message === \"string\"\n // if message is a string, then leave as is\n ? message\n // else JSON.stringify message\n : JSON.stringify(message, null, 4)\n )\n );\n throw err;\n };\n local.fsRmrfSync = function (dir) {\n /*\n * this function will sync \"rm -rf\" \n */\n let child_process;\n try {\n child_process = require(\"child_process\");\n } catch (ignore) {\n return;\n }\n child_process.spawnSync(\"rm\", [\n \"-rf\", dir\n ], {\n stdio: [\n \"ignore\", 1, 2\n ]\n });\n };\n local.fsWriteFileWithMkdirpSync = function (file, data) {\n /*\n * this function will sync write to with \"mkdir -p\"\n */\n let fs;\n try {\n fs = require(\"fs\");\n } catch (ignore) {\n return;\n }\n // try to write file\n try {\n fs.writeFileSync(file, data);\n } catch (ignore) {\n // mkdir -p\n require(\"child_process\").spawnSync(\n \"mkdir\",\n [\n \"-p\", require(\"path\").dirname(file)\n ],\n {\n stdio: [\n \"ignore\", 1, 2\n ]\n }\n );\n // rewrite file\n fs.writeFileSync(file, data);\n }\n };\n local.functionOrNop = function (fnc) {\n /*\n * this function will if exists,\n * return ,\n * else return \n */\n return fnc || local.nop;\n };\n local.nop = function () {\n /*\n * this function will do nothing\n */\n return;\n };\n local.objectAssignDefault = function (target, source) {\n /*\n * this function will if items from are\n * null, undefined, or empty-string,\n * then overwrite them with items from \n */\n target = target || {};\n Object.keys(source || {}).forEach(function (key) {\n if (\n target[key] === null\n || target[key] === undefined\n || target[key] === \"\"\n ) {\n target[key] = target[key] || source[key];\n }\n });\n return target;\n };\n local.value = function (val) {\n /*\n * this function will return \n */\n return val;\n };\n local.valueOrEmptyList = function (val) {\n /*\n * this function will return or []\n */\n return val || [];\n };\n local.valueOrEmptyObject = function (val) {\n /*\n * this function will return or {}\n */\n return val || {};\n };\n local.valueOrEmptyString = function (val) {\n /*\n * this function will return or \"\"\n */\n return val || \"\";\n };\n // require builtin\n if (!local.isBrowser) {\n local.assert = require(\"assert\");\n local.buffer = require(\"buffer\");\n local.child_process = require(\"child_process\");\n local.cluster = require(\"cluster\");\n local.crypto = require(\"crypto\");\n local.dgram = require(\"dgram\");\n local.dns = require(\"dns\");\n local.domain = require(\"domain\");\n local.events = require(\"events\");\n local.fs = require(\"fs\");\n local.http = require(\"http\");\n local.https = require(\"https\");\n local.net = require(\"net\");\n local.os = require(\"os\");\n local.path = require(\"path\");\n local.querystring = require(\"querystring\");\n local.readline = require(\"readline\");\n local.repl = require(\"repl\");\n local.stream = require(\"stream\");\n local.string_decoder = require(\"string_decoder\");\n local.timers = require(\"timers\");\n local.tls = require(\"tls\");\n local.tty = require(\"tty\");\n local.url = require(\"url\");\n local.util = require(\"util\");\n local.vm = require(\"vm\");\n local.zlib = require(\"zlib\");\n }\n}((typeof globalThis === \"object\" && globalThis) || (function () {\n return Function(\"return this\")(); // jslint ignore:line\n}())));\n\n\n\n(function (local) {\n\"use strict\";\n\n\n\n// run shared js-env code - init-before\n(function () {\n// init local\nlocal = globalThis.globalLocal.value(\n globalThis.utility2 || require(\"./assets.utility2.rollup.js\")\n).requireReadme();\nglobalThis.local = local;\n// init test\nlocal.testRunDefault(local);\n}());\n\n\n\n// run shared js-env code - function\n(function () {\nlocal.crudOptionsSetDefault = function (opt, defaults) {\n/*\n * this function will set default-values for \n */\n opt = local.objectSetDefault(opt, defaults);\n switch (opt._tags0) {\n case \"pet\":\n local.objectSetDefault(opt, {\n crudGetOneById: local.apiDict[\"operationId.getPetById\"],\n crudRemoveOneById: local.apiDict[\"operationId.deletePet\"],\n crudSetOneById: local.apiDict[\"operationId.addPet\"],\n crudType: [\n \"undefined\", \"petId\", \"id\"\n ],\n crudUpdateOneById: local.apiDict[\"operationId.updatePetWithForm\"]\n });\n break;\n case \"store\":\n local.objectSetDefault(opt, {\n crudGetOneById: local.apiDict[\"operationId.getOrderById\"],\n crudRemoveOneById: local.apiDict[\"operationId.deleteOrder\"],\n crudSetOneById: local.apiDict[\"operationId.placeOrder\"],\n crudType: [\n \"undefined\", \"orderId\", \"id\"\n ],\n crudUpdateOneById: local.apiDict[\n \"operationId.store.crudUpdateOneById.id.id\"\n ]\n });\n break;\n case \"user\":\n local.objectSetDefault(opt, {\n crudGetOneById: local.apiDict[\"operationId.getUserByName\"],\n crudRemoveOneById: local.apiDict[\"operationId.deleteUser\"],\n crudSetOneById: local.apiDict[\"operationId.createUser\"],\n crudType: [\n \"undefined\", \"username\", \"username\"\n ],\n crudUpdateOneById: local.apiDict[\"operationId.updateUser\"]\n });\n break;\n default:\n Object.keys(local.apiDict).forEach(function (key) {\n key.replace((\n /^operationId\\.x-test\\.(\\w+)/\n ), function (ignore, match1) {\n opt[match1] = opt[match1] || local.apiDict[key];\n });\n });\n local.objectSetDefault(opt, {\n crudType: [\n \"undefined\", \"id\", \"id\"\n ]\n });\n }\n local.idNameInit(opt);\n // shallow-copy opt\n return local.objectSetDefault({}, opt);\n};\n\nlocal.testCase_ajax_err = function (opt, onError) {\n/*\n * this function will test ajax's err handling-behavior\n */\n let onParallel;\n onParallel = local.onParallel(onError);\n onParallel.counter += 1;\n [\n {\n // test 404 undefined-api-error-1 handling-behavior\n statusCode: 404,\n url: \"/api/v0/x-test/errorUndefined\"\n }, {\n // test 404 undefined-api-error-2 handling-behavior\n statusCode: 404,\n url: \"/api/v0/x-test/errorUndefinedApi\"\n }, {\n method: \"POST\",\n // test 400 param-parse-error handling-behavior\n statusCode: 400,\n url: (\n \"/api/v0/x-test/parametersDefault/aa\"\n + \"?typeStringFormatJson=syntax%20error\"\n )\n }, {\n // test 404 undefined-map-file handling-behavior\n statusCode: 404,\n url: \"/api/v0/x-test/undefined.map\"\n }\n ].forEach(function (opt) {\n onParallel.counter += 1;\n local.ajax(opt, function (err, xhr) {\n // validate err occurred\n local.assertOrThrow(err, opt);\n // validate statusCode\n local.assertJsonEqual(err.statusCode, opt.statusCode);\n // validate err is in jsonapi-format\n if (\n opt.url === \"/api/v0/x-test/parametersDefault/aa\"\n + \"?typeStringFormatJson=syntax%20error\"\n ) {\n err = JSON.parse(xhr.responseText);\n local.assertOrThrow(err.errors[0], err);\n }\n onParallel();\n });\n });\n onParallel(null, opt);\n};\n\nlocal.testCase_buildApp_default = function (opt, onError) {\n/*\n * this function will test buildApp's default handling-behavior\n */\n if (local.isBrowser) {\n onError(null, opt);\n return;\n }\n local.testCase_buildReadme_default(opt, local.onErrorThrow);\n local.testCase_buildLib_default(opt, local.onErrorThrow);\n local.testCase_buildTest_default(opt, local.onErrorThrow);\n local.buildApp({\n assetsList: [\n {\n file: \"/assets.swagger-ui.logo.medium.png\",\n url: \"/assets.swagger-ui.logo.medium.png\"\n }, {\n file: \"/assets.swagger-ui.logo.small.png\",\n url: \"/assets.swagger-ui.logo.small.png\"\n }\n ]\n }, onError);\n};\n\nlocal.testCase_crudCountManyByQuery_default = function (opt, onError) {\n/*\n * this function will test crudCountManyByQuery's default handling-behavior\n */\n opt = local.crudOptionsSetDefault(opt, {\n idValue: \"testCase_crudCountManyByQuery_default\"\n });\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n // ajax - crudCountManyByQuery\n opt.crudCountManyByQuery.ajax({\n paramDict: {\n _queryWhere: JSON.stringify(opt.queryById)\n }\n }, opt.gotoNext);\n break;\n case 2:\n // validate data\n local.assertJsonEqual(data.responseJson.data.length, 1);\n local.assertOrThrow(\n data.responseJson.data[0] === 1,\n data.responseJson\n );\n opt.gotoNext();\n break;\n default:\n onError(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_crudCreateReplaceUpdateRemoveMany_default = function (\n opt,\n onError\n) {\n/*\n * this function will test\n * crudCreateReplaceUpdateRemoveMany's default handling-behavior\n */\n let onParallel;\n onParallel = local.onParallel(onError);\n onParallel.counter += 1;\n [\n {\n _tags0: \"x-test\",\n data: {}\n }, {\n _tags0: \"pet\",\n data: {\n name: \"name\",\n photoUrls: [\n \"photoUrls\"\n ]\n },\n dataValidateReplace: {\n name: \"name\",\n status: \"available\"\n },\n dataValidateUpdate1: {\n name: \"name\",\n status: \"available\"\n },\n dataValidateUpdate2: {\n status: \"pending\"\n }\n }, {\n _tags0: \"store\",\n data: {\n id: 10\n },\n dataValidateReplace: {\n petId: 10,\n status: \"placed\"\n },\n dataValidateUpdate1: {\n petId: 10,\n status: \"placed\"\n },\n dataValidateUpdate2: {\n status: \"approved\"\n }\n }, {\n _tags0: \"user\",\n data: {\n username: \"testCase_crudCreateReplaceUpdateRemoveMany_default\"\n },\n dataValidateReplace: {\n firstName: \"firstName\",\n userStatus: 1\n },\n dataValidateUpdate1: {\n firstName: \"firstName\",\n userStatus: 1\n },\n dataValidateUpdate2: {\n userStatus: 2\n }\n }\n ].forEach(function (opt) {\n onParallel.counter += 1;\n // test crudCreateReplaceUpdateRemoveOne's default handling-behavior\n local.testCase_crudCreateReplaceUpdateRemoveOne_default(\n opt,\n onParallel\n );\n });\n onParallel(null, opt);\n};\n\nlocal.testCase_crudCreateReplaceUpdateRemoveOne_default = function (\n opt,\n onError\n) {\n/*\n * this function will test\n * crudCreateReplaceUpdateRemoveOne's default handling-behavior\n */\n opt = local.crudOptionsSetDefault(opt, {\n data: {}\n });\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n // test crudSetOneById's create handling-behavior\n local.testCase_crudSetOneById_default(opt, opt.gotoNext);\n break;\n case 2:\n // test crudSetOneById's replace handling-behavior\n local.testCase_crudSetOneById_default(opt, opt.gotoNext);\n break;\n case 3:\n // test crudUpdateOneById's default handling-behavior\n local.testCase_crudUpdateOneById_default(opt, opt.gotoNext);\n break;\n case 4:\n // test crudRemoveOneById's default handling-behavior\n local.testCase_crudRemoveOneById_default(opt, opt.gotoNext);\n break;\n default:\n onError(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_crudErrorXxx_default = function (opt, onError) {\n/*\n * this function will test crudErrorXxx's default handling-behavior\n */\n let onParallel;\n onParallel = local.onParallel(onError);\n onParallel.counter += 1;\n [\n \"operationId.x-test.crudErrorDelete\",\n \"operationId.x-test.crudErrorGet\",\n \"operationId.x-test.crudErrorHead\",\n \"operationId.x-test.crudErrorLogin\",\n \"operationId.x-test.crudErrorOptions\",\n \"operationId.x-test.crudErrorPatch\",\n \"operationId.x-test.crudErrorPost\",\n \"operationId.x-test.crudErrorPre\",\n \"operationId.x-test.crudErrorPut\"\n ].forEach(function (key) {\n onParallel.counter += 1;\n local.apiDict[key].ajax({}, function (err, data) {\n // validate err occurred\n local.assertOrThrow(err, err);\n // validate statusCode\n local.assertJsonEqual(data.statusCode, 500);\n onParallel();\n });\n });\n onParallel(null, opt);\n};\n\nlocal.testCase_crudGetManyByQuery_default = function (opt, onError) {\n/*\n * this function will test crudGetManyByQuery's default handling-behavior\n */\n opt = local.crudOptionsSetDefault(opt, {\n idValue: \"testCase_crudGetManyByQuery_default\"\n });\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n // ajax - crudGetManyByQuery\n opt.crudGetManyByQuery.ajax({\n paramDict: {\n _queryWhere: JSON.stringify(opt.queryById)\n }\n }, opt.gotoNext);\n break;\n case 2:\n // validate data\n local.assertJsonEqual(data.responseJson.data.length, 1);\n local.assertOrThrow(\n data.responseJson.data[0][opt.idBackend] === opt.idValue,\n data.responseJson\n );\n opt.gotoNext();\n break;\n default:\n onError(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_crudGetOneById_default = function (opt, onError) {\n/*\n * this function will test crudGetOneById's default handling-behavior\n */\n opt = local.crudOptionsSetDefault(opt, {\n dataValidate: {},\n idValue: \"testCase_crudGetOneById_default\"\n });\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n // ajax - crudGetOneById\n opt.crudGetOneById.ajax({\n paramDict: opt.queryById\n }, opt.gotoNext);\n break;\n case 2:\n // validate data\n local.assertJsonEqual(data.responseJson.data.length, 1);\n local.assertOrThrow(\n data.responseJson.data[0][opt.idBackend] === opt.idValue,\n data.responseJson\n );\n // validate dataValidate\n Object.keys(opt.dataValidate).forEach(function (key) {\n local.assertOrThrow(\n data.responseJson.data[0][key] === opt.dataValidate[key],\n [\n key,\n data.responseJson.data[0][key],\n opt.dataValidate[key]\n ]\n );\n });\n // cleanup dataValidate\n opt.dataValidate = {};\n opt.gotoNext(null, data);\n break;\n default:\n onError(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_crudGetOneByQuery_default = function (opt, onError) {\n/*\n * this function will test crudGetOneByQuery's default handling-behavior\n */\n opt = local.crudOptionsSetDefault(opt, {\n idValue: \"testCase_crudGetOneByQuery_default\"\n });\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n // ajax - crudGetOneByQuery\n opt.crudGetOneByQuery.ajax({\n paramDict: {\n _queryWhere: JSON.stringify(opt.queryById)\n }\n }, opt.gotoNext);\n break;\n case 2:\n // validate data\n local.assertJsonEqual(data.responseJson.data.length, 1);\n local.assertOrThrow(\n data.responseJson.data[0][opt.idBackend] === opt.idValue,\n data.responseJson\n );\n opt.gotoNext();\n break;\n default:\n onError(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_crudNullXxx_default = function (opt, onError) {\n/*\n * this function will test crudNullXxx's default handling-behavior\n */\n let onParallel;\n onParallel = local.onParallel(onError);\n onParallel.counter += 1;\n [\n \"operationId.x-test.crudNullDelete\",\n \"operationId.x-test.crudNullGet\",\n \"operationId.x-test.crudNullHead\",\n \"operationId.x-test.crudNullOptions\",\n \"operationId.x-test.crudNullPatch\",\n \"operationId.x-test.crudNullPost\",\n \"operationId.x-test.crudNullPut\"\n ].forEach(function (key) {\n onParallel.counter += 1;\n local.apiDict[key].ajax({}, onParallel);\n });\n onParallel(null, opt);\n};\n\nlocal.testCase_crudRemoveManyByQuery_default = function (opt, onError) {\n/*\n * this function will test crudRemoveManyByQuery's default handling-behavior\n */\n opt = local.crudOptionsSetDefault(opt, {\n idValue: \"testCase_crudRemoveManyByQuery_default\"\n });\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n // ajax - crudSetOneById\n opt.crudSetOneById.ajax({\n paramDict: {\n body: {\n id: \"testCase_crudRemoveManyByQuery_default\",\n typeBooleanRequired: true\n }\n }\n }, opt.gotoNext);\n break;\n case 2:\n // ajax - crudRemoveManyByQuery\n opt.crudRemoveManyByQuery.ajax({\n paramDict: {\n _queryWhere: JSON.stringify(opt.queryById)\n }\n }, opt.gotoNext);\n break;\n case 3:\n // ajax - crudGetOneById\n opt.crudGetOneById.ajax({\n paramDict: opt.queryById\n }, opt.gotoNext);\n break;\n case 4:\n // validate data was removed\n local.assertJsonEqual(data.responseJson.data.length, 1);\n local.assertOrThrow(\n data.responseJson.data[0] === null,\n data.responseJson\n );\n opt.gotoNext();\n break;\n default:\n onError(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_crudRemoveOneById_default = function (opt, onError) {\n/*\n * this function will test crudRemoveOneById's default handling-behavior\n */\n opt = local.crudOptionsSetDefault(opt, {\n idValue: \"testCase_crudRemoveOneById_default\"\n });\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n if (opt.idValue === \"testCase_crudRemoveOneById_default\") {\n // ajax - crudSetOneById\n opt.crudSetOneById.ajax({\n paramDict: {\n body: {\n id: \"testCase_crudRemoveOneById_default\",\n typeBooleanRequired: true\n }\n }\n }, opt.gotoNext);\n return;\n }\n opt.gotoNext();\n break;\n case 2:\n // ajax - crudRemoveOneById\n opt.crudRemoveOneById.ajax({\n paramDict: opt.queryById\n }, opt.gotoNext);\n break;\n case 3:\n // ajax - crudGetOneById\n opt.crudGetOneById.ajax({\n paramDict: opt.queryById\n }, opt.gotoNext);\n break;\n case 4:\n // validate data was removed\n local.assertJsonEqual(data.responseJson.data.length, 1);\n local.assertOrThrow(\n data.responseJson.data[0] === null,\n data.responseJson\n );\n opt.gotoNext();\n break;\n default:\n onError(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_crudSetManyById_default = function (opt, onError) {\n/*\n * this function will test crudSetManyById's default handling-behavior\n */\n let onParallel;\n opt = local.crudOptionsSetDefault(opt, {\n data: [\n {\n id: \"testCase_crudSetManyById_default_1\",\n typeBooleanRequired: true\n }, {\n id: \"testCase_crudSetManyById_default_2\",\n typeBooleanRequired: true\n }\n ]\n });\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n // ajax - crudSetManyById\n opt.crudSetManyById.ajax({\n paramDict: {\n body: opt.data\n }\n }, opt.gotoNext);\n break;\n case 2:\n onParallel = local.onParallel(opt.gotoNext);\n onParallel.counter += 1;\n opt.data.forEach(function (elem) {\n onParallel.counter += 1;\n // test crudGetOneById's default handling-behavior\n local.testCase_crudGetOneById_default({\n idValue: elem.id\n }, onParallel);\n });\n onParallel();\n break;\n default:\n onError(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_crudSetOneById_default = function (opt, onError) {\n/*\n * this function will test crudSetOneById's default handling-behavior\n */\n let paramDict;\n opt = local.crudOptionsSetDefault(opt, {\n data: {\n // test dataReadonlyRemove handling-behavior\n _timeCreated: \"1970-01-01T00:00:00.000Z\",\n _timeUpdated: \"1970-01-01T00:00:00.000Z\",\n id: \"testCase_crudSetOneById_default\"\n },\n dataValidateReplace: {\n typeBooleanRequired: true\n }\n });\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n // init paramDict\n paramDict = {};\n paramDict.body = local.objectSetOverride(\n local.jsonCopy(opt.data),\n opt.dataValidateReplace\n );\n // ajax - crudSetOneById\n opt.crudSetOneById.ajax({\n paramDict\n }, opt.gotoNext);\n break;\n case 2:\n // init id\n opt.data.id = data.responseJson.data[0].id;\n // validate time _timeCreated\n local.assertOrThrow(\n data.responseJson.data[0]._timeCreated\n > \"1970-01-01T00:00:00.000Z\",\n data.responseJson\n );\n local.assertOrThrow(\n data.responseJson.data[0]._timeCreated\n < new Date().toISOString(),\n data.responseJson\n );\n // validate time _timeUpdated\n local.assertOrThrow(\n data.responseJson.data[0]._timeUpdated\n > \"1970-01-01T00:00:00.000Z\",\n data.responseJson\n );\n local.assertOrThrow(\n data.responseJson.data[0]._timeUpdated\n < new Date().toISOString(),\n data.responseJson\n );\n // test crudGetOneById's default handling-behavior\n opt.dataValidate = opt.dataValidateReplace;\n local.testCase_crudGetOneById_default(opt, opt.gotoNext);\n break;\n default:\n onError(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_crudUpdateOneById_default = function (opt, onError) {\n/*\n * this function will test crudUpdateOneById's default handling-behavior\n */\n let paramDict;\n opt = local.crudOptionsSetDefault(opt, {\n data: {\n id: \"testCase_crudUpdateOneById_default\"\n },\n dataValidateUpdate1: {\n typeBooleanRequired: true\n },\n dataValidateUpdate2: {\n typeBooleanRequired: false\n }\n });\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n // test crudGetOneById's default handling-behavior\n opt.dataValidate = opt.dataValidateUpdate1;\n if (opt.data.id === \"testCase_crudUpdateOneById_default\") {\n // ajax - crudSetOneById\n opt.crudSetOneById.ajax({\n paramDict: {\n body: {\n id: \"testCase_crudUpdateOneById_default\",\n typeBooleanRequired: true\n }\n }\n }, opt.gotoNext);\n return;\n }\n opt.gotoNext();\n break;\n case 2:\n local.testCase_crudGetOneById_default(opt, opt.gotoNext);\n break;\n case 3:\n opt._timeCreated = data.responseJson.data[0]._timeCreated;\n opt._timeUpdated = data.responseJson.data[0]._timeUpdated;\n // init paramDict\n paramDict = local.jsonCopy(opt.queryById);\n paramDict.body = local.objectSetOverride(\n local.jsonCopy(opt.data),\n opt.dataValidateUpdate2\n );\n // test application/x-www-form-urlencoded's handling-behavior\n local.objectSetOverride(paramDict, paramDict.body);\n // ajax - crudUpdateOneById\n opt.crudUpdateOneById.ajax({\n paramDict\n }, opt.gotoNext);\n break;\n case 4:\n // validate time _timeCreated\n local.assertOrThrow(\n data.responseJson.data[0]._timeCreated === opt._timeCreated,\n data.responseJson\n );\n local.assertOrThrow(\n data.responseJson.data[0]._timeCreated\n < new Date().toISOString(),\n data.responseJson\n );\n // validate time _timeUpdated\n local.assertOrThrow(\n data.responseJson.data[0]._timeUpdated > opt._timeUpdated,\n data.responseJson\n );\n local.assertOrThrow(\n data.responseJson.data[0]._timeUpdated\n < new Date().toISOString(),\n data.responseJson\n );\n // test crudGetOneById's default handling-behavior\n opt.dataValidate = local.objectSetOverride(\n local.jsonCopy(opt.dataValidateUpdate1),\n opt.dataValidateUpdate2\n );\n local.testCase_crudGetOneById_default(opt, opt.gotoNext);\n break;\n default:\n onError(err, data);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_domAnimateShake_default = function (opt, onError) {\n/*\n * this function will test domAnimateShake's default handling-behavior\n */\n if (!local.isBrowser) {\n onError(null, opt);\n return;\n }\n local.uiAnimateShake(document.querySelector(\n \"div\"\n ));\n setTimeout(onError, 1500);\n};\n\nlocal.testCase_fileGetOneById_default = function (opt, onError) {\n/*\n * this function will test fileGetOneById's default handling-behavior\n */\n let gotoNext;\n let gotoState;\n gotoState = 0;\n gotoNext = function (err, data) {\n gotoState += 1;\n switch (gotoState) {\n case 1:\n opt = local.crudOptionsSetDefault(opt, {\n idValue: \"testCase_fileGetOneById_default\"\n });\n // ajax - fileGetOneById\n local.apiDict[\"operationId.file.fileGetOneById.id.id\"].ajax({\n paramDict: opt.queryById\n }, gotoNext);\n break;\n case 2:\n // validate no err occurred\n local.assertOrThrow(!err, err);\n // validate Content-Type\n opt.data = data.resHeaders[\"content-type\"];\n local.assertJsonEqual(opt.data, \"image/png\");\n // validate response\n opt.data = local.base64FromBuffer(data.responseBuffer);\n local.assertJsonEqual(\n opt.data,\n local.templateSwaggerUiLogoSmallBase64\n );\n // test fileGetOneById's 404 handling-behavior\n local.apiDict[\"operationId.file.fileGetOneById.id.id\"].ajax({\n paramDict: {\n id: \"testCase_fileGetOneById_default_undefined\"\n }\n }, gotoNext);\n break;\n case 3:\n // validate err occurred\n local.assertOrThrow(err, err);\n // validate statusCode\n local.assertJsonEqual(data.statusCode, 404);\n gotoNext();\n break;\n default:\n onError(err, data);\n }\n };\n gotoNext();\n};\n\nlocal.testCase_fileUploadManyByForm_default = function (opt, onError) {\n/*\n * this function will test fileUploadManyByForm's default handling-behavior\n */\n opt = {};\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n opt.blob = new local.Blob([\n local.base64ToBuffer(local.templateSwaggerUiLogoSmallBase64)\n ], {\n type: \"image/png\"\n });\n opt.blob.name = \"a00.png\";\n // ajax - fileUploadManyByForm\n local.apiDict[\"operationId.file.fileUploadManyByForm.2\"].ajax({\n paramDict: {\n fileDescription: \"hello\",\n file1: opt.blob,\n file2: opt.blob,\n file3: opt.blob\n }\n }, opt.gotoNext);\n break;\n case 2:\n // validate data\n local.assertJsonEqual(data.responseJson.data.length, 2);\n local.assertJsonEqual(\n data.responseJson.data[0].fileDescription,\n \"hello\"\n );\n local.crudOptionsSetDefault(opt, {\n idValue: data.responseJson.data[0].id\n });\n // test fileGetOneById's default handling-behavior\n local.testCase_fileGetOneById_default(opt, opt.gotoNext);\n break;\n case 3:\n // test crudRemoveOneById's default handling-behavior\n local.testCase_crudRemoveOneById_default(opt, opt.gotoNext);\n break;\n default:\n onError(err);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_fileUploadManyByForm_nullCase = function (opt, onError) {\n/*\n * this function will test fileUploadManyByForm's null-case handling-behavior\n */\n opt = {};\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n // ajax - fileUploadManyByForm\n local.apiDict[\"operationId.file.fileUploadManyByForm.2\"].ajax(\n opt,\n opt.gotoNext\n );\n break;\n case 2:\n // validate data\n local.assertJsonEqual(data.responseJson.data.length, 0);\n opt.gotoNext();\n break;\n default:\n onError(err);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_onErrorJsonapi_default = function (opt, onError) {\n/*\n * this function will test onErrorJsonapi's default handling-behavior\n */\n let onParallel;\n onParallel = local.onParallel(onError);\n onParallel.counter += 1;\n [\n \"hello\", [\n \"hello\"\n ], {\n data: [\n \"hello\"\n ],\n meta: {\n isJsonapiResponse: true\n }\n }\n ].forEach(function (data) {\n onParallel.counter += 1;\n local.apiDict[\"operationId.x-test.onErrorJsonapi\"].ajax({\n paramDict: {\n data: JSON.stringify(data)\n }\n }, function (err, data) {\n // validate no err occurred\n local.assertOrThrow(!err, err);\n // validate data\n local.assertJsonEqual(data.responseJson.data[0], \"hello\");\n onParallel();\n });\n });\n onParallel(null, opt);\n};\n\nlocal.testCase_onErrorJsonapi_emptyArray = function (opt, onError) {\n/*\n * this function will test onErrorJsonapi's empty-array handling-behavior\n */\n let onParallel;\n onParallel = local.onParallel(onError);\n onParallel.counter += 1;\n onParallel.counter += 1;\n local.apiDict[\"operationId.x-test.onErrorJsonapi\"].ajax({\n paramDict: {\n data: \"[]\"\n }\n }, function (\n err,\n data\n ) {\n // validate no err occurred\n local.assertOrThrow(!err, err);\n // validate data\n local.assertJsonEqual(data.responseJson.data[0], undefined);\n onParallel();\n });\n onParallel.counter += 1;\n local.apiDict[\"operationId.x-test.onErrorJsonapi\"].ajax({\n paramDict: {\n error: \"[]\"\n }\n }, function (\n err,\n data\n ) {\n // validate err occurred\n local.assertOrThrow(err, err);\n // validate err\n local.assertOrThrow(\n data.responseJson.errors[0].message === \"null\",\n err\n );\n onParallel();\n });\n onParallel(null, opt);\n};\n\nlocal.testCase_onErrorJsonapi_err = function (opt, onError) {\n/*\n * this function will test onErrorJsonapi's err handling-behavior\n */\n let onParallel;\n onParallel = local.onParallel(onError);\n onParallel.counter += 1;\n [\n \"hello\", [\n \"hello\"\n ], [\n {\n message: \"hello\"\n }\n ], {\n errors: [\n {\n message: \"hello\"\n }\n ],\n meta: {\n isJsonapiResponse: true\n },\n statusCode: 500\n }\n ].forEach(function (data) {\n onParallel.counter += 1;\n local.apiDict[\"operationId.x-test.onErrorJsonapi\"].ajax({\n paramDict: {\n error: JSON.stringify(data)\n }\n }, function (\n err,\n data\n ) {\n // validate err occurred\n local.assertOrThrow(err, err);\n // validate err\n local.assertOrThrow(\n data.responseJson.errors[0].message === \"hello\",\n err\n );\n onParallel();\n });\n });\n onParallel(null, opt);\n};\n\nlocal.testCase_petstoreStoreGetInventory_default = function (opt, onError) {\n/*\n * this function will test petstoreStoreGetInventory's default handling-behavior\n */\n opt = {};\n local.gotoNext(opt, function (err, data) {\n switch (opt.gotoState) {\n case 1:\n local.apiDict[\"operationId.getInventory\"].ajax(opt, opt.gotoNext);\n break;\n case 2:\n // validate data\n local.assertJsonEqual(data.responseJson.data.length, 1);\n local.assertOrThrow(data.responseJson.data[0]);\n opt.gotoNext();\n break;\n default:\n onError(err);\n }\n });\n opt.gotoState = 0;\n opt.gotoNext();\n};\n\nlocal.testCase_swaggerJsonFromCurl_default = function (opt, onError) {\n/*\n * this function will test swaggerJsonFromCurl's default handling-behavior\n */\n opt = local.swaggerJsonFromCurl(\n/* jslint ignore:start */\nnull,\n'\\\n# test no-data handling-behavior\\n\\\ncurl https://example.com\\n\\\n# test json-object-data handling-behavior\\n\\\ncurl --data {} https://example.com/json\\n\\\n# test text-data handling-behavior\\n\\\ncurl --data undefined https://example.com/text\\n\\\n# test json-array-data handling-behavior\\n\\\ncurl \\\\\\n\\\n--data \\'[{\\n\\\n \"listEmpty\": [],\\n\\\n \"listObject\": [{ \"aa\": \"bb\" }],\\n\\\n \"object\": { \"aa\": { \"bb\": { \"cc\": \"dd\" } } },\\n\\\n \"quote\": \"\\\\\\\\\\\\\"api\\'\"\\'\"\\'s\\\\\"\"\\n\\\n}]\\' \\\\\\n\\\n--header \\'Content-Type: application/json\\' \\\\\\n\\\n--request POST \\\\\\n\\\n\"https://example.com/{aa}/{bb}?aa=bb\"\\n\\\n# test no-url handling-behavior\\n\\\ncurl /undefined\\n\\\n'\n );\n local.swaggerValidate(opt);\n local.assertJsonEqual(\n opt,\n{\n \"basePath\": \"/\",\n \"definitions\": {\n \"_2F_7Baa_7D_2F_7Bbb_7D_20POST.body\": {\n \"properties\": {\n \"listEmpty\": {\n \"default\": [],\n \"items\": {\n \"type\": \"string\"\n },\n \"type\": \"array\"\n },\n \"listObject\": {\n \"default\": [\n {\n \"aa\": \"bb\"\n }\n ],\n \"items\": {\n \"$ref\": \"#/definitions/_2F_7Baa_7D_2F_7Bbb_7D_20POST.body.listObject\"\n },\n \"type\": \"array\"\n },\n \"object\": {\n \"$ref\": \"#/definitions/_2F_7Baa_7D_2F_7Bbb_7D_20POST.body.object\"\n },\n \"quote\": {\n \"default\": \"\\\\\\\"api's\\\"\",\n \"type\": \"string\"\n }\n }\n },\n \"_2F_7Baa_7D_2F_7Bbb_7D_20POST.body.listObject\": {\n \"properties\": {\n \"aa\": {\n \"default\": \"bb\",\n \"type\": \"string\"\n }\n }\n },\n \"_2F_7Baa_7D_2F_7Bbb_7D_20POST.body.object\": {\n \"properties\": {\n \"aa\": {\n \"default\": {\n \"bb\": {\n \"cc\": \"dd\"\n }\n },\n \"type\": \"object\"\n }\n }\n },\n \"_2Fjson_20GET.body\": {\n \"properties\": {}\n }\n },\n \"info\": {\n \"title\": \"\",\n \"version\": \"\"\n },\n \"paths\": {\n \"/\": {\n \"get\": {\n \"operationId\": \"_2F_20GET\",\n \"parameters\": [],\n \"responses\": {\n \"default\": {\n \"description\": \"default response\"\n }\n },\n \"tags\": [\n \"undefined\"\n ],\n \"x-swgg-host\": \"example.com\",\n \"x-swgg-schemes\": [\n \"https\"\n ]\n }\n },\n \"/json\": {\n \"get\": {\n \"operationId\": \"_2Fjson_20GET\",\n \"parameters\": [\n {\n \"in\": \"body\",\n \"name\": \"body\",\n \"schema\": {\n \"$ref\": \"#/definitions/_2Fjson_20GET.body\"\n }\n }\n ],\n \"responses\": {\n \"default\": {\n \"description\": \"default response\"\n }\n },\n \"tags\": [\n \"undefined\"\n ],\n \"x-swgg-host\": \"example.com\",\n \"x-swgg-schemes\": [\n \"https\"\n ]\n }\n },\n \"/text\": {\n \"get\": {\n \"operationId\": \"_2Ftext_20GET\",\n \"parameters\": [\n {\n \"in\": \"body\",\n \"name\": \"body\",\n \"schema\": {\n \"type\": \"string\"\n }\n }\n ],\n \"responses\": {\n \"default\": {\n \"description\": \"default response\"\n }\n },\n \"tags\": [\n \"undefined\"\n ],\n \"x-swgg-host\": \"example.com\",\n \"x-swgg-schemes\": [\n \"https\"\n ]\n }\n },\n \"/undefined\": {\n \"get\": {\n \"operationId\": \"_2Fundefined_20GET\",\n \"parameters\": [],\n \"responses\": {\n \"default\": {\n \"description\": \"default response\"\n }\n },\n \"tags\": [\n \"undefined\"\n ]\n }\n },\n \"/{aa}/{bb}\": {\n \"post\": {\n \"operationId\": \"_2F_7Baa_7D_2F_7Bbb_7D_20POST\",\n \"parameters\": [\n {\n \"default\": \"application/json\",\n \"in\": \"header\",\n \"name\": \"content-type\",\n \"type\": \"string\"\n },\n {\n \"default\": \"aa\",\n \"in\": \"path\",\n \"name\": \"aa\",\n \"required\": true,\n \"type\": \"string\"\n },\n {\n \"default\": \"bb\",\n \"in\": \"path\",\n \"name\": \"bb\",\n \"required\": true,\n \"type\": \"string\"\n },\n {\n \"default\": \"bb\",\n \"in\": \"query\",\n \"name\": \"aa\",\n \"type\": \"string\"\n },\n {\n \"in\": \"body\",\n \"name\": \"body\",\n \"schema\": {\n \"items\": {\n \"$ref\": \"#/definitions/_2F_7Baa_7D_2F_7Bbb_7D_20POST.body\"\n },\n \"type\": \"array\"\n }\n }\n ],\n \"responses\": {\n \"default\": {\n \"description\": \"default response\"\n }\n },\n \"tags\": [\n \"undefined\"\n ],\n \"x-swgg-host\": \"example.com\",\n \"x-swgg-schemes\": [\n \"https\"\n ]\n }\n }\n },\n \"swagger\": \"2.0\"\n}\n/* jslint ignore:end */\n );\n onError(null, opt);\n};\n\nlocal.testCase_swaggerValidateDataParameters_default = function (opt, onError) {\n/*\n * this function will test\n * swaggerValidateDataParameters's default handling-behavior\n */\n let onParallel;\n onParallel = local.onParallel(onError);\n onParallel.counter += 1;\n Object.keys(local.apiDict).forEach(function (key) {\n if (key.indexOf(\"operationId.x-test.parameters\") < 0) {\n return;\n }\n // test null-case handling-behavior\n onParallel.counter += 1;\n local.apiDict[key].ajax({}, function (err, data) {\n // validate no err occurred\n local.assertOrThrow(!err, data);\n onParallel(null, opt);\n });\n onParallel.counter += 1;\n local.apiDict[key].ajax({\n modeDefault: true\n }, function (err, data) {\n // validate no err occurred\n local.assertOrThrow(!err, [\n err, key\n ]);\n // validate data\n data = data.paramDict;\n local.assertOrThrow(data, [\n data, key\n ]);\n onParallel(null, opt);\n });\n });\n onParallel(null, opt);\n};\n\nlocal.testCase_swaggerValidateDataParameters_err = function (opt, onError) {\n/*\n * this function will test swaggerValidateDataParameters's err handling-behavior\n */\n let onParallel;\n onParallel = local.onParallel(onError);\n onParallel.counter += 1;\n [\n // 5.1. Validation keywords for numeric instances (number and integer)\n // 5.1.1. multipleOf\n {\n typeInteger1: 1,\n \"x-errorType\": \"numberMultipleOf\"\n },\n // 5.1.2. maximum and exclusiveMaximum - maximum\n {\n typeInteger1: 10,\n \"x-errorType\": \"numberMaximum\"\n },\n // 5.1.2. maximum and exclusiveMaximum - exclusiveMaximum\n {\n typeInteger2: 10,\n \"x-errorType\": \"numberExclusiveMaximum\"\n },\n // 5.1.3. minimum and exclusiveMinimum - minimum\n {\n typeInteger1: -10,\n \"x-errorType\": \"numberMinimum\"\n },\n // 5.1.3. minimum and exclusiveMinimum - exclusiveMinimum\n {\n typeInteger2: -10,\n \"x-errorType\": \"numberExclusiveMinimum\"\n },\n // 5.2. Validation keywords for strings\n // 5.2.1. maxLength\n {\n typeString1: \"01234567890123456789\",\n \"x-errorType\": \"stringMaxLength\"\n },\n // 5.2.2. minLength\n {\n typeString1: \"\",\n \"x-errorType\": \"stringMinLength\"\n },\n // 5.2.3. pattern\n {\n typeString1: \"0123456789012345~\",\n \"x-errorType\": \"stringPattern\"\n },\n // 5.3. Validation keywords for arrays\n // 5.3.2. maxItems\n {\n typeArrayItemsNumber2: [\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10\n ],\n \"x-errorType\": \"arrayMaxItems\"\n },\n // 5.3.2. minItems\n {\n typeArrayItemsNumber2: [],\n \"x-errorType\": \"arrayMinItems\"\n },\n // 5.3.4. uniqueItems\n {\n typeArrayItemsNumber2: [\n 0, 0\n ],\n \"x-errorType\": \"arrayUniqueItems\"\n },\n // 5.5. Validation keywords for any instance type\n // 5.5.1. enum\n {\n typeNumberEnum: 0,\n \"x-errorType\": \"itemEnum\"\n },\n // 5.5.2. type - string\n {\n typeString0: true,\n \"x-errorType\": \"itemType\"\n },\n // 5.5.2. type - byte\n {\n typeStringFormatByte: \"~\",\n \"x-errorType\": \"itemType\"\n }\n // 5.5.3. allOf\n // 5.5.4. anyOf\n // 5.5.5. oneOf\n // testCase_swaggerValidate_default\n // 5.5.6. not\n // testCase_swaggerValidate_default\n // 5.5.7. definitions\n ].forEach(function (paramDict) {\n onParallel.counter += 1;\n local.apiDict[\"operationId.x-test.parametersDefault\"].ajax({\n paramDict: local.jsonCopy(paramDict)\n }, function (err) {\n // validate err occurred\n local.assertOrThrow(err, JSON.stringify(paramDict));\n // validate statusCode\n local.assertJsonEqual(err.statusCode, 400);\n // validate x-errorType\n local.assertJsonEqual(paramDict[\"x-errorType\"], err.opt.errorType);\n // debug err.message\n // console.error(\n // \"swaggerValidateDataParameters - \" + ii + \" - \" + err.message\n // );\n onParallel(null, opt);\n });\n });\n [\n // 5.4. Validation keywords for objects\n // 5.4.1. maxProperties\n {\n typeObjectInBody: {\n typeBooleanRequired: true,\n typeObjectMisc: {\n aa: 1,\n bb: 2,\n cc: 3,\n dd: 4,\n de: 5,\n ff: 6\n }\n },\n \"x-errorType\": \"objectMaxProperties\"\n },\n // 5.4.2. minProperties\n {\n typeObjectInBody: {\n typeBooleanRequired: true,\n typeObjectMisc: {}\n },\n \"x-errorType\": \"objectMinProperties\"\n },\n // 5.4.3. required\n {\n typeObjectInBody: {},\n \"x-errorType\": \"semanticItemsRequiredForArrayObjects2\"\n }\n // 5.4.4. additionalProperties, properties and patternProperties\n // testCase_swaggerValidate_default\n // 5.4.5. dependencies\n // testCase_swaggerValidate_default\n ].forEach(function (paramDict, ii) {\n onParallel.counter += 1;\n local.apiDict[\"operationId.x-test.parametersObjectInBody\"].ajax({\n paramDict: local.jsonCopy(paramDict)\n }, function (err) {\n // validate err occurred\n local.assertOrThrow(err, JSON.stringify(paramDict));\n // validate statusCode\n local.assertJsonEqual(err.statusCode, 400);\n // validate x-errorType\n local.assertJsonEqual(paramDict[\"x-errorType\"], err.opt.errorType);\n // debug err.message\n console.error(ii, err.message);\n onParallel(null, opt);\n });\n });\n onParallel(null, opt);\n};\n\nlocal.testCase_swaggerValidateFile_default = function (opt, onError) {\n/*\n * this function will test swaggerValidate's file handling-behavior\n */\n if (local.isBrowser) {\n onError(null, opt);\n return;\n }\n local.onParallelList({\n list: [\n {\n // test data handling-behavior\n data: local.assetsDict[\"/assets.swgg.swagger.petstore.json\"],\n file: \"assets.swgg.swagger.petstore.json\"\n }, {\n // test err handling-behavior\n data: \"{}\",\n file: \"error.json\"\n }, {\n // test file handling-behavior\n file: \"assets.swgg.swagger.petstore.json\"\n }, {\n // test url handling-behavior\n file: local.serverLocalHost\n + \"/assets.swgg.swagger.petstore.json\"\n }\n ]\n }, function (opt2, onParallel) {\n onParallel.counter += 1;\n local.swgg.swaggerValidateFile(opt2.elem, function (err) {\n // validate no err occurred\n local.assertOrThrow(!err || opt2.elem.file === \"error.json\", err);\n onParallel(null, opt);\n });\n }, onError);\n};\n\nlocal.testCase_swaggerValidate_default = function (opt, onError) {\n/*\n * this function will test swaggerValidate's default handling-behavior\n */\n let err;\n // test default handling-behavior\n local.swaggerValidate({\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\"\n });\n // test path handling-behavior\n local.swaggerValidate({\n info: {\n title: \"\",\n version: \"\"\n },\n parameters: {\n aa: {\n in: \"path\",\n name: \"aa\",\n required: true,\n type: \"string\"\n }\n },\n paths: {\n \"/{aa}\": {\n get: {\n parameters: [\n {\n $ref: \"#/parameters/aa\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\"\n });\n // test err handling-behavior\n // 5.4. Validation keywords for objects\n // 5.5. Validation keywords for any instance type\n [null, undefined, {}, {\n // 5.4.4. additionalProperties, properties and patternProperties\n aa: true,\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"objectAdditionalProperties\"\n }, {\n // 5.4.5. dependencies\n exclusiveMaximum: true,\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"objectDependencies\"\n }, {\n // 5.5.5. oneOf\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n securityDefinitions: {\n aa: true\n },\n swagger: \"2.0\",\n \"x-errorType\": \"itemOneOf\"\n }, {\n // 5.5.6. not\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n responses: {\n \"x-\": true\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"itemNot\"\n }, {\n // validate schemaDereference\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n responses: {\n \"200\": {\n $ref: \"#/undefined\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"schemaDereference\"\n }, {\n // validate schemaDereferenceCircular\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n responses: {\n \"200\": {\n $ref: \"#/x-test/aa\"\n }\n }\n }\n }\n },\n \"x-test\": {\n aa: {\n $ref: \"#/x-test/aa\"\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"schemaDereferenceCircular\"\n }, {\n // validate semanticFormData1\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"formdata\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticFormData1\"\n }, {\n // validate semanticFormData2\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"body\",\n name: \"aa\",\n schema: {\n type: \"string\"\n }\n }, {\n in: \"formData\",\n type: \"string\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n // 'x-errorType': 'semanticFormData2'\n \"x-errorType\": \"semanticOperations1\"\n }, {\n // validate semanticFormData3\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"query\",\n type: \"file\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticFormData3\"\n }, {\n // validate semanticFormData4\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"formData\",\n type: \"file\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticFormData4\"\n }, {\n // validate semanticFormData5\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"formData\",\n type: \"string\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticFormData5\"\n }, {\n // validate semanticItemsRequiredForArrayObjects1\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n type: \"array\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticItemsRequiredForArrayObjects1\"\n }, {\n // validate semanticItemsRequiredForArrayObjects2\n \"x-errorType\": \"semanticItemsRequiredForArrayObjects2\"\n }, {\n // validate semanticItemsRequiredForArrayObjects3\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"body\",\n name: \"aa\",\n schema: {\n type: \"array\"\n }\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n // 'x-errorType': 'semanticItemsRequiredForArrayObjects3'\n \"x-errorType\": \"semanticItemsRequiredForArrayObjects1\"\n }, {\n // validate semanticItemsRequiredForArrayObjects4\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"header\",\n type: \"array\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n // 'x-errorType': 'semanticItemsRequiredForArrayObjects4'\n \"x-errorType\": \"semanticItemsRequiredForArrayObjects1\"\n }, {\n // validate semanticOperationIds1\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n operationId: \"aa\",\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n },\n \"/bb\": {\n get: {\n operationId: \"aa\",\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticOperationIds1\"\n }, {\n // validate semanticOperations1\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"body\",\n name: \"aa\",\n schema: {\n type: \"string\"\n }\n }, {\n in: \"formData\",\n type: \"string\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticOperations1\"\n }, {\n // validate semanticOperations2\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"body\",\n name: \"aa\",\n schema: {\n type: \"string\"\n }\n }, {\n in: \"body\",\n name: \"bb\",\n schema: {\n type: \"string\"\n }\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticOperations2\"\n }, {\n // validate semanticOperations3\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"query\",\n name: \"aa\",\n type: \"string\"\n }, {\n in: \"query\",\n name: \"aa\",\n type: \"string\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticOperations3\"\n }, {\n // validate semanticParameters1\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n type: \"array\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n // 'x-errorType': 'semanticParameters1'\n \"x-errorType\": \"semanticItemsRequiredForArrayObjects1\"\n }, {\n // validate semanticParameters2\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"query\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticParameters2\"\n }, {\n // validate semanticPaths1\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa?\": {\n get: {\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticPaths1\"\n }, {\n // validate semanticPaths2\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/{aa}\": {\n get: {\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n },\n \"/{bb}\": {\n get: {\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticPaths2\"\n }, {\n // validate semanticPaths3\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/{aa}/{aa}\": {\n get: {\n parameters: [\n {\n in: \"path\",\n name: \"aa\",\n required: true,\n type: \"string\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticPaths3\"\n // }, {\n // validate semanticPaths4\n // 'x-errorType': 'semanticPaths4'\n }, {\n // validate semanticPaths5\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/{}\": {\n get: {\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticPaths5\"\n }, {\n // validate semanticPaths6\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/{aa}\": {\n get: {\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticPaths6\"\n }, {\n // validate semanticPaths7\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/\": {\n get: {\n parameters: [\n {\n in: \"path\",\n name: \"aa\",\n required: true,\n type: \"string\"\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticPaths7\"\n // }, {\n // validate semanticRefs1\n // 'x-errorType': 'semanticRefs1'\n }, {\n // validate semanticSchema1\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"body\",\n name: \"aa\",\n schema: {\n required: [\n \"aa\"\n ],\n properties: {\n aa: {\n readOnly: true\n }\n }\n }\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticSchema1\"\n // }, {\n // validate semanticSecurityDefinitions1\n // 'x-errorType': 'semanticSecurityDefinitions1'\n // }, {\n // validate semanticSecurityDefinitions2\n // 'x-errorType': 'semanticSecurityDefinitions2'\n // }, {\n // validate semanticSecurityDefinitions3\n // 'x-errorType': 'semanticSecurityDefinitions3'\n // }, {\n // validate semanticSecurityDefinitions4\n // 'x-errorType': 'semanticSecurityDefinitions4'\n // }, {\n // validate semanticSecurityDefinitions5\n // 'x-errorType': 'semanticSecurityDefinitions5'\n // }, {\n // validate semanticSecurityDefinitions6\n // 'x-errorType': 'semanticSecurityDefinitions6'\n // }, {\n // validate semanticSecurityDefinitions7\n // 'x-errorType': 'semanticSecurityDefinitions7'\n // }, {\n // validate semanticSecurityDefinitions8\n // 'x-errorType': 'semanticSecurityDefinitions8'\n // }, {\n // validate semanticSecurityDefinitions9\n // 'x-errorType': 'semanticSecurityDefinitions9'\n // }, {\n // validate semanticSecurity1\n // 'x-errorType': 'semanticSecurity1'\n // }, {\n // validate semanticSecurity2\n // 'x-errorType': 'semanticSecurity2'\n }, {\n // validate semanticWalker1\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"body\",\n name: \"aa\",\n schema: {\n type: 1\n }\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticWalker1\"\n }, {\n // validate semanticWalker2\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"body\",\n name: \"aa\",\n schema: {\n maximum: 0,\n minimum: 1,\n type: \"number\"\n }\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticWalker2\"\n }, {\n // validate semanticWalker3\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"body\",\n name: \"aa\",\n schema: {\n maxProperties: 0,\n minProperties: 1,\n type: \"object\"\n }\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticWalker3\"\n }, {\n // validate semanticWalker4\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n parameters: [\n {\n in: \"body\",\n name: \"aa\",\n schema: {\n maxLength: 0,\n minLength: 1,\n type: \"object\"\n }\n }\n ],\n responses: {\n \"200\": {\n description: \"\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticWalker4\"\n // }, {\n // validate semanticWalker5\n // 'x-errorType': 'semanticWalker5'\n }, {\n // validate semanticWalker6\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n responses: {\n \"200\": {\n $ref: \"aa\"\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n \"x-errorType\": \"semanticWalker6\"\n }, {\n // validate semanticWalker7\n info: {\n title: \"\",\n version: \"\"\n },\n paths: {\n \"/aa\": {\n get: {\n responses: {\n \"200\": {\n $ref: \"#/aa\",\n aa: true\n }\n }\n }\n }\n },\n swagger: \"2.0\",\n // 'x-errorType': 'semanticWalker7'\n \"x-errorType\": \"objectAdditionalProperties\"\n }].forEach(function (elem, ii) {\n local.tryCatchOnError(function () {\n local.swaggerValidate(elem);\n }, local.nop);\n err = local.utility2._debugTryCatchError;\n // validate err occurred\n local.assertOrThrow(err, elem);\n // validate x-errorType\n if (elem && elem[\"x-errorType\"]) {\n local.assertJsonEqual(elem[\"x-errorType\"], err.opt.errorType, err);\n }\n console.error(\"swaggerValidate - \" + ii + \" - \" + err.message);\n });\n onError(null, opt);\n};\n\nlocal.testCase_ui_apiKey = function (opt, onError) {\n/*\n * this function will test ui's apiKey handling-behavior\n */\n if (!local.isBrowser) {\n onError(null, opt);\n return;\n }\n localStorage.setItem(\"utility2_swgg_apiKeyKey_\", \"\");\n local.uiEventListenerDict.onEventUiReload({\n swggInit: true,\n targetOnEvent: {\n id: \"swggApiKeyInput1\"\n },\n type: \"keyup\"\n });\n onError(null, opt);\n};\n\nlocal.testCase_ui_fileMedia = function (opt, onError) {\n/*\n * this function will test ui's fileMedia handling-behavior\n */\n if (!local.isBrowser) {\n onError(null, opt);\n return;\n }\n [\n \"testCase_ui_fileMedia_audioNull\",\n \"testCase_ui_fileMedia_imageNull\",\n \"testCase_ui_fileMedia_videoNull\"\n ].forEach(function (id) {\n document.querySelector(\n \"#swgg_id_file_fileGetOneById_id_id_1 .input\"\n ).value = id;\n document.querySelector(\n \"#swgg_id_file_fileGetOneById_id_id_1\"\n + \" [data-onevent=onEventOperationAjax]\"\n ).click();\n });\n onError(null, opt);\n};\n\nlocal.testCase_userLoginXxx_default = function (opt, onError) {\n/*\n * this function will test userLoginXxx's default handling-behavior\n */\n let gotoNext;\n let gotoState;\n gotoState = 0;\n gotoNext = function (err, data) {\n gotoState += 1;\n switch (gotoState) {\n case 1:\n // cleanup userJwtEncrypted\n delete local.userJwtEncrypted;\n // test userLogout's default handling-behavior\n local.userLogout({}, gotoNext);\n break;\n case 2:\n // validate err occurred\n local.assertOrThrow(err, err);\n // test userLoginByPassword's 401 handling-behavior\n local.userLoginByPassword({\n password: \"undefined\",\n username: \"undefined\"\n }, gotoNext);\n break;\n case 3:\n // validate err occurred\n local.assertOrThrow(err, err);\n // validate statusCode\n local.assertJsonEqual(data.statusCode, 401);\n // validate userJwtEncrypted does not exist\n local.assertOrThrow(\n !local.userJwtEncrypted,\n local.userJwtEncrypted\n );\n // test userLogout's 401 handling-behavior\n local.userLogout({}, gotoNext);\n break;\n case 4:\n // validate err occurred\n local.assertOrThrow(err, err);\n // validate statusCode\n local.assertJsonEqual(data.statusCode, 401);\n // validate userJwtEncrypted does not exist\n local.assertOrThrow(\n !local.userJwtEncrypted,\n local.userJwtEncrypted\n );\n // test userLoginByPassword's 200 handling-behavior\n local.userLoginByPassword({\n password: \"secret\",\n username: \"admin\"\n }, gotoNext);\n break;\n case 5:\n // validate no err occurred\n local.assertOrThrow(!err, err);\n // validate statusCode\n local.assertJsonEqual(data.statusCode, 200);\n // validate userJwtEncrypted exists\n local.assertOrThrow(local.userJwtEncrypted, local.userJwtEncrypted);\n // test persistent-session handling-behavior\n local.apiDict[\"operationId.x-test.crudNullGet\"].ajax({}, gotoNext);\n break;\n case 6:\n // validate no err occurred\n local.assertOrThrow(!err, err);\n // validate statusCode\n local.assertJsonEqual(data.statusCode, 200);\n // validate userJwtEncrypted exists\n local.assertOrThrow(local.userJwtEncrypted, local.userJwtEncrypted);\n // test userLogout's 200 handling-behavior\n // test jwtEncoded's update handling-behavior\n local.userLogout({\n jwtEncrypted: local.jwtAes256GcmEncrypt({\n sub: \"admin\"\n })\n }, gotoNext);\n break;\n case 7:\n // validate no err occurred\n local.assertOrThrow(!err, err);\n // validate statusCode\n local.assertJsonEqual(data.statusCode, 200);\n // validate userJwtEncrypted exists\n local.assertOrThrow(local.userJwtEncrypted, local.userJwtEncrypted);\n // test userLogout's 401 handling-behavior\n local.userLogout({}, gotoNext);\n break;\n case 8:\n // validate err occurred\n local.assertOrThrow(err, err);\n // validate statusCode\n local.assertJsonEqual(data.statusCode, 401);\n // test userLoginByPassword's 400 handling-behavior\n local.ajax({\n url: \"/api/v0/user/userLoginByPassword?password=1\"\n }, gotoNext);\n break;\n case 9:\n // validate err occurred\n local.assertOrThrow(err, err);\n // validate statusCode\n local.assertJsonEqual(data.statusCode, 400);\n // test userLogout's invalid-username handling-behavior\n local.userLogout({\n jwtEncrypted: local.jwtAes256GcmEncrypt({\n sub: \"undefined\"\n })\n }, gotoNext);\n break;\n case 10:\n // validate err occurred\n local.assertOrThrow(err, err);\n // validate statusCode\n local.assertJsonEqual(data.statusCode, 401);\n onError(null, opt);\n break;\n }\n };\n gotoNext();\n};\n}());\n\n\n\n// run shared js-env code - init-after\n(function () {\n// test apiUpdate's null-case handling-behavior\nlocal.apiUpdate();\n// test apiUpdate's root-basePath handling-behavior\nlocal.apiUpdate({\n basePath: \"/\"\n});\nlocal.assertJsonEqual(local.swaggerJsonBasePath, \"\");\n// test apiUpdate's $npm_package_swggTags0 handling-behavior\nlocal.testMock([[\n local.env, {\n npm_package_swggTags0: \"x-test-tags0-filter\"\n }\n]], function (onError) {\n local.apiUpdate({\n definitions: {\n Aa: {},\n Bb: {\n \"x-swgg-tags0\": \"undefined\"\n }\n },\n // test operationId's auto-create handling-behavior\n paths: {\n \"/x-test/tags0Filter\": {\n get: {\n tags: [\n \"x-test\"\n ]\n }\n },\n \"/x-test/tags0FilterUndefined\": {\n get: {\n \"x-swgg-tags0\": \"undefined\"\n }\n }\n },\n tags: [\n {\n \"x-swgg-tags0\": \"undefined\"\n }\n ],\n \"x-swgg-tags0-override\": {}\n });\n onError();\n}, local.onErrorThrow);\n// init assets\nlocal.assetsDict[\"/assets.swgg.swagger.test.json\"] = (function () {\n return local.normalizeSwaggerJson(\n/* jslint ignore:start */\n{\n \"basePath\": \"/api/v0\",\n \"definitions\": {\n \"TestCrud\": {\n \"properties\": {\n \"_id\": {\n \"readOnly\": true,\n \"type\": \"string\"\n },\n \"_timeCreated\": {\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"type\": \"string\"\n },\n \"_timeUpdated\": {\n \"format\": \"date-time\",\n \"readOnly\": true,\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"typeBooleanRequired\"\n ],\n \"type\": \"object\"\n },\n \"TestMisc\": {\n \"properties\": {\n \"typeArrayCircularReference\": {\n \"items\": {\n \"$ref\": \"#/definitions/TestMisc\"\n },\n \"type\": \"array\"\n },\n \"typeBooleanRequired\": {\n \"$ref\": \"#/parameters/typeBooleanRequired\"\n },\n \"typeObjectCircularReference\": {\n \"$ref\": \"#/definitions/TestMisc\"\n },\n \"typeObjectMisc\": {\n \"maxProperties\": 5,\n \"minProperties\": 1,\n \"type\": \"object\"\n },\n \"typeStringCharsetAscii\": {\n \"$ref\": \"#/parameters/typeStringCharsetAscii\"\n }\n },\n \"required\": [\n \"typeBooleanRequired\"\n ],\n \"type\": \"object\"\n },\n \"onErrorJsonapi\": {\n \"properties\": {\n \"data\": {\n \"type\": \"object\"\n },\n \"error\": {\n \"default\": {},\n \"type\": \"object\"\n }\n }\n }\n },\n \"parameters\": {\n \"typeArrayItemsBoolean1\": {\n \"default\": [\n false,\n true\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"boolean\"\n },\n \"name\": \"typeArrayItemsBoolean1\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeArrayItemsInteger1\": {\n \"default\": [\n 0,\n 1\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"integer\"\n },\n \"name\": \"typeArrayItemsInteger1\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeArrayItemsNumber1\": {\n \"default\": [\n 0.5,\n 1.5\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"number\"\n },\n \"name\": \"typeArrayItemsNumber1\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeArrayItemsNumber2\": {\n \"default\": [\n 0.5,\n 1.5\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"number\"\n },\n \"maxItems\": 5,\n \"minItems\": 1,\n \"name\": \"typeArrayItemsNumber2\",\n \"required\": true,\n \"type\": \"array\",\n \"uniqueItems\": true\n },\n \"typeArrayItemsNumberCollectionFormatMultiInFormData\": {\n \"collectionFormat\": \"multi\",\n \"default\": [\n 0.5,\n 1.5\n ],\n \"in\": \"formData\",\n \"items\": {\n \"type\": \"number\"\n },\n \"name\": \"typeArrayItemsNumberCollectionFormatMultiInFormData\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeArrayItemsString0\": {\n \"in\": \"query\",\n \"items\": {\n \"type\": \"string\"\n },\n \"name\": \"typeArrayItemsString0\",\n \"type\": \"array\"\n },\n \"typeArrayItemsString1\": {\n \"default\": [\n \"aa\",\n \"bb\"\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"string\"\n },\n \"name\": \"typeArrayItemsString1\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeArrayItemsStringCollectionFormatCsv\": {\n \"collectionFormat\": \"csv\",\n \"default\": [\n \"aa\",\n \"bb\"\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"string\"\n },\n \"name\": \"typeArrayItemsStringCollectionFormatCsv\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeArrayItemsStringCollectionFormatJson\": {\n \"default\": [\n \"aa\",\n \"bb\"\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"string\"\n },\n \"name\": \"typeArrayItemsStringCollectionFormatJson\",\n \"required\": true,\n \"type\": \"array\",\n \"x-swgg-collectionFormat\": \"json\"\n },\n \"typeArrayItemsStringCollectionFormatMultiInFormData\": {\n \"collectionFormat\": \"multi\",\n \"default\": [\n \"aa\",\n \"bb\"\n ],\n \"in\": \"formData\",\n \"items\": {\n \"type\": \"string\"\n },\n \"name\": \"typeArrayItemsStringCollectionFormatMultiInFormData\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeArrayItemsStringCollectionFormatPipes\": {\n \"collectionFormat\": \"pipes\",\n \"default\": [\n \"aa\",\n \"bb\"\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"string\"\n },\n \"name\": \"typeArrayItemsStringCollectionFormatPipes\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeArrayItemsStringCollectionFormatSsv\": {\n \"collectionFormat\": \"ssv\",\n \"default\": [\n \"aa\",\n \"bb\"\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"string\"\n },\n \"name\": \"typeArrayItemsStringCollectionFormatSsv\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeArrayItemsStringCollectionFormatTsv\": {\n \"collectionFormat\": \"tsv\",\n \"default\": [\n \"aa\",\n \"bb\"\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"string\"\n },\n \"name\": \"typeArrayItemsStringCollectionFormatTsv\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeArrayItemsStringEnum\": {\n \"default\": [\n \"aa\",\n \"bb\"\n ],\n \"enum\": [\n \"aa\",\n \"bb\"\n ],\n \"in\": \"query\",\n \"items\": {\n \"type\": \"string\"\n },\n \"name\": \"typeArrayItemsStringEnum\",\n \"required\": true,\n \"type\": \"array\"\n },\n \"typeBoolean0\": {\n \"in\": \"query\",\n \"name\": \"typeBoolean0\",\n \"type\": \"boolean\"\n },\n \"typeBooleanRequired\": {\n \"default\": true,\n \"in\": \"query\",\n \"name\": \"typeBooleanRequired\",\n \"required\": true,\n \"type\": \"boolean\"\n },\n \"typeInteger0\": {\n \"in\": \"query\",\n \"name\": \"typeInteger0\",\n \"type\": \"integer\"\n },\n \"typeInteger1\": {\n \"default\": 2,\n \"in\": \"query\",\n \"maximum\": 3,\n \"minimum\": 1,\n \"multipleOf\": 2,\n \"name\": \"typeInteger1\",\n \"type\": \"integer\"\n },\n \"typeInteger2\": {\n \"default\": 2,\n \"exclusiveMaximum\": true,\n \"exclusiveMinimum\": true,\n \"in\": \"query\",\n \"maximum\": 3,\n \"minimum\": 1,\n \"multipleOf\": 2,\n \"name\": \"typeInteger2\",\n \"type\": \"integer\"\n },\n \"typeNumber0\": {\n \"in\": \"query\",\n \"name\": \"typeNumber0\",\n \"type\": \"number\"\n },\n \"typeNumber1\": {\n \"exclusiveMaximum\": true,\n \"in\": \"query\",\n \"maximum\": -0.25,\n \"multipleOf\": 0.5,\n \"name\": \"typeNumber1\",\n \"type\": \"number\"\n },\n \"typeNumber2\": {\n \"exclusiveMinimum\": true,\n \"in\": \"query\",\n \"minimum\": 0.25,\n \"multipleOf\": 0.5,\n \"name\": \"typeNumber2\",\n \"type\": \"number\"\n },\n \"typeNumberEnum\": {\n \"enum\": [\n 0.5,\n 1.5\n ],\n \"in\": \"query\",\n \"name\": \"typeNumberEnum\",\n \"type\": \"number\"\n },\n \"typeNumberFormatDouble\": {\n \"default\": 0.5,\n \"format\": \"double\",\n \"in\": \"query\",\n \"name\": \"typeNumberFormatDouble\",\n \"type\": \"number\"\n },\n \"typeNumberFormatFloat\": {\n \"default\": 0.5,\n \"format\": \"float\",\n \"in\": \"query\",\n \"name\": \"typeNumberFormatFloat\",\n \"type\": \"number\"\n },\n \"typeString0\": {\n \"in\": \"query\",\n \"name\": \"typeString0\",\n \"type\": \"string\"\n },\n \"typeString1\": {\n \"default\": \"0123456789012345\",\n \"in\": \"query\",\n \"maxLength\": 19,\n \"minLength\": 15,\n \"name\": \"typeString1\",\n \"pattern\": \"^\\\\w*?$\",\n \"required\": true,\n \"type\": \"string\"\n },\n \"typeStringApiKey\": {\n \"in\": \"query\",\n \"name\": \"typeStringApiKey\",\n \"type\": \"string\",\n \"x-swgg-apiKey\": true\n },\n \"typeStringCharsetAscii\": {\n \"default\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\",\n \"description\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\",\n \"in\": \"query\",\n \"name\": \"typeStringCharsetAscii\",\n \"required\": true,\n \"type\": \"string\"\n },\n \"typeStringFormatBinary\": {\n \"default\": [\n 0,\n 1\n ],\n \"format\": \"binary\",\n \"in\": \"query\",\n \"name\": \"typeStringFormatBinary\",\n \"type\": \"string\"\n },\n \"typeStringFormatByte\": {\n \"default\": \"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn8=\",\n \"format\": \"byte\",\n \"in\": \"query\",\n \"name\": \"typeStringFormatByte\",\n \"type\": \"string\"\n },\n \"typeStringFormatDate\": {\n \"default\": \"1970.01.01\",\n \"format\": \"date\",\n \"in\": \"query\",\n \"name\": \"typeStringFormatDate\",\n \"type\": \"string\"\n },\n \"typeStringFormatDateTime\": {\n \"default\": \"1970-01-01T00:00:00.000Z\",\n \"format\": \"date-time\",\n \"in\": \"query\",\n \"name\": \"typeStringFormatDateTime\",\n \"type\": \"string\"\n },\n \"typeStringFormatEmail\": {\n \"default\": \"q@q.com\",\n \"format\": \"email\",\n \"in\": \"query\",\n \"name\": \"typeStringFormatEmail\",\n \"type\": \"string\"\n },\n \"typeStringFormatJson\": {\n \"default\": \"{}\",\n \"format\": \"json\",\n \"in\": \"query\",\n \"name\": \"typeStringFormatJson\",\n \"type\": \"string\"\n },\n \"typeStringFormatPhone\": {\n \"format\": \"phone\",\n \"in\": \"query\",\n \"name\": \"typeStringFormatPhone\",\n \"type\": \"string\"\n },\n \"typeStringInHeader\": {\n \"default\": \"aa\",\n \"in\": \"header\",\n \"name\": \"typeStringInHeader\",\n \"required\": true,\n \"type\": \"string\"\n },\n \"typeStringInPath\": {\n \"default\": \"aa\",\n \"in\": \"path\",\n \"name\": \"typeStringInPath\",\n \"required\": true,\n \"type\": \"string\"\n }\n },\n \"paths\": {\n \"/file/fileGetOneById.id.id\": {\n \"get\": {\n \"operationId\": \"file.fileGetOneById.id.id\",\n \"parameters\": [\n {\n \"default\": \"testVideo1\",\n \"description\": \"File id\",\n \"in\": \"query\",\n \"name\": \"id\",\n \"required\": true,\n \"type\": \"string\"\n }\n ],\n \"tags\": [\n \"file\"\n ]\n }\n },\n \"/x-test-markdown/description\": {\n \"get\": {\n \"operationId\": \"x-test-markdown.description\",\n \"tags\": [\n \"x-test-markdown\"\n ]\n }\n },\n \"/x-test/errorUndefinedApi\": {\n \"get\": {\n \"operationId\": \"x-test.errorUndefinedApi\",\n \"summary\": \"test undefined-api handling-behavior\",\n \"tags\": [\n \"x-test\"\n ]\n }\n },\n \"/x-test/fixErrorSemanticUniquePath/{aa}\": {\n \"get\": {\n \"operationId\": \"x-test.fixErrorSemanticUniquePathAa\",\n \"parameters\": [\n {\n \"in\": \"path\",\n \"name\": \"aa\",\n \"required\": true,\n \"type\": \"string\"\n }\n ],\n \"summary\": \"test x-swgg-fixErrorSemanticUniquePath's handling-behavior\",\n \"tags\": [\n \"x-test\"\n ]\n }\n },\n \"/x-test/fixErrorSemanticUniquePath/{bb}\": {\n \"get\": {\n \"operationId\": \"x-test.fixErrorSemanticUniquePathBb\",\n \"parameters\": [\n {\n \"in\": \"path\",\n \"name\": \"bb\",\n \"required\": true,\n \"type\": \"string\"\n }\n ],\n \"summary\": \"test x-swgg-fixErrorSemanticUniquePath's handling-behavior\",\n \"tags\": [\n \"x-test\"\n ]\n }\n },\n \"/x-test/onErrorJsonapi\": {\n \"get\": {\n \"operationId\": \"x-test.onErrorJsonapi\",\n \"parameters\": [\n {\n \"description\": \"data param\",\n \"format\": \"json\",\n \"in\": \"query\",\n \"name\": \"data\",\n \"type\": \"string\"\n },\n {\n \"description\": \"error param\",\n \"format\": \"json\",\n \"in\": \"query\",\n \"name\": \"error\",\n \"type\": \"string\"\n }\n ],\n \"summary\": \"test onErrorJsonapi handling-behavior\",\n \"tags\": [\n \"x-test\"\n ]\n }\n },\n \"/x-test/parametersDefault/{typeStringInPath}\": {\n \"post\": {\n \"consumes\": [\"application/x-www-form-urlencoded\"],\n \"operationId\": \"x-test.parametersDefault\",\n \"parameters\": [],\n \"summary\": \"test parameters' default handling-behavior\",\n \"tags\": [\n \"x-test\"\n ],\n \"x-swgg-required\": [\n \"typeBooleanRequired\"\n ]\n }\n },\n \"/x-test/parametersDefaultInFormDataXml\": {\n \"post\": {\n \"consumes\": [\n \"application/x-www-form-urlencoded\"\n ],\n \"operationId\": \"x-test.parametersDefaultInFormDataXml\",\n \"parameters\": [\n {\n \"default\": false,\n \"in\": \"formData\",\n \"name\": \"typeBoolean0\",\n \"type\": \"boolean\"\n },\n {\n \"default\": 0,\n \"in\": \"formData\",\n \"name\": \"typeInteger0\",\n \"type\": \"integer\"\n },\n {\n \"default\": 0,\n \"in\": \"formData\",\n \"name\": \"typeNumber0\",\n \"type\": \"number\"\n },\n {\n \"default\": \"aa\",\n \"in\": \"formData\",\n \"name\": \"typeString0\",\n \"type\": \"string\"\n }\n ],\n \"summary\": \"test parameters' string-in-body-required handling-behavior\",\n \"tags\": [\n \"x-test\"\n ],\n \"x-swgg-consumes0\": \"application/xml\"\n }\n },\n \"/x-test/parametersObjectInBody\": {\n \"post\": {\n \"operationId\": \"x-test.parametersObjectInBody\",\n \"parameters\": [\n {\n \"description\": \"TestMisc object\",\n \"in\": \"body\",\n \"name\": \"typeObjectInBody\",\n \"schema\": {\n \"$ref\": \"#/definitions/TestMisc\"\n }\n }\n ],\n \"summary\": \"test parameters' object-in-body handling-behavior\",\n \"tags\": [\n \"x-test\"\n ]\n }\n },\n \"/x-test/parametersStringInBody\": {\n \"post\": {\n \"operationId\": \"x-test.parametersStringInBody\",\n \"parameters\": [\n {\n \"in\": \"body\",\n \"name\": \"typeStringInBody\",\n \"schema\": {\n \"type\": \"string\"\n }\n }\n ],\n \"summary\": \"test parameters' string-in-body handling-behavior\",\n \"tags\": [\n \"x-test\"\n ]\n }\n },\n \"/x-test/parametersStringInBodyRequired\": {\n \"post\": {\n \"operationId\": \"x-test.parametersStringInBodyRequired\",\n \"parameters\": [\n {\n \"in\": \"body\",\n \"name\": \"typeStringInBodyRequired\",\n \"required\": true,\n \"schema\": {\n \"type\": \"string\"\n }\n }\n ],\n \"summary\": \"test parameters' string-in-body-required handling-behavior\",\n \"tags\": [\n \"x-test\"\n ]\n }\n }\n },\n \"swagger\": \"2.0\",\n \"tags\": [\n {\n \"name\": \"x-test\"\n },\n {\n \"name\": \"x-test-markdown\"\n }\n ],\n \"x-swgg-apiDict\": {\n \"operationId.file.fileUploadManyByForm.2\": {\n \"_schemaName\": \"File\"\n },\n \"operationId.x-test.crudCountManyByQuery\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudErrorDelete\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudErrorGet\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudErrorHead\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudErrorLogin\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudErrorOptions\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudErrorPatch\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudErrorPost\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudErrorPre\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudErrorPut\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudGetManyByQuery\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudGetOneById.id.id\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudGetOneByQuery\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudNullDelete\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudNullGet\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudNullHead\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudNullOptions\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudNullPatch\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudNullPost\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudNullPut\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudRemoveManyByQuery\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudRemoveOneById.id.id\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudSetManyById\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudSetOneById.id.id\": {\n \"_schemaName\": \"TestCrud\"\n },\n \"operationId.x-test.crudUpdateOneById.id.id\": {\n \"_schemaName\": \"TestCrud\"\n }\n },\n \"x-swgg-downloadStandaloneApp\": \"http://kaizhu256.github.io/node-swgg/build..beta..travis-ci.org/app/assets.app.js\",\n \"x-swgg-fixErrorSemanticUniquePath\": true,\n \"x-swgg-onEventDomDb\": true,\n \"x-swgg-tags0-override\": {\n \"x-test\": {\n \"description\": \"internal test-api\",\n \"x-swgg-descriptionLineList\": [\n \"internal test-api\"\n ]\n }\n }\n}\n/* jslint ignore:end */\n );\n}());\n\n\n\nObject.keys(\n local.assetsDict[\"/assets.swgg.swagger.test.json\"].parameters\n).forEach(function (key) {\n local.assertJsonEqual(\n key,\n local.assetsDict[\"/assets.swgg.swagger.test.json\"].parameters[key].name\n );\n local.assetsDict[\"/assets.swgg.swagger.test.json\"].paths[\n \"/x-test/parametersDefault/{typeStringInPath}\"\n ].post.parameters.push({\n $ref: \"#/parameters/\" + key\n });\n local.assetsDict[\n \"/assets.swgg.swagger.test.json\"\n ].definitions.TestCrud.properties[key] = {\n $ref: \"#/parameters/\" + key\n };\n});\nlocal.assetsDict[\"/assets.swgg.swagger.test.json\"].tags[1].description = (\n local.fsReadFileOrEmptyStringSync(\"README.md\", \"utf8\")\n);\nlocal.assetsDict[\"/assets.swgg.swagger.test.json\"].paths[\n \"/x-test-markdown/description\"\n].get.description = (\n local.assetsDict[\"/assets.swgg.swagger.test.json\"].tags[1].description\n);\n/* validateLineSortedReset */\nlocal.assetsDict[\"/assets.swgg.swagger.test.json\"] = JSON.stringify(\n local.assetsDict[\"/assets.swgg.swagger.test.json\"]\n);\n// init test-api\nlocal.apiUpdate(JSON.parse(local.assetsDict[\"/assets.swgg.swagger.test.json\"]));\n// test redundant http-body-parse-middleware handling-behavior\nlocal.middlewareList.push(local.middlewareBodyParse);\n// init test-middleware\nlocal.middlewareList.push(function (req, response, nextMiddleware) {\n switch (req.swgg.operation && req.swgg.operation.operationId) {\n case \"x-test.onErrorJsonapi\":\n // test redundant onErrorJsonapi handling-behavior\n local.onErrorJsonapi(function (err, data) {\n local.serverRespondJsonapi(req, response, err, data);\n })(\n JSON.parse(req.swgg.paramDict.error || \"null\"),\n JSON.parse(req.swgg.paramDict.data || \"null\")\n );\n break;\n case \"x-test.parametersDefault\":\n case \"x-test.parametersDefaultInFormDataXml\":\n case \"x-test.parametersObjectInBody\":\n case \"x-test.parametersStringInBody\":\n case \"x-test.parametersStringInBodyRequired\":\n // test redundant onErrorJsonapi handling-behavior\n local.serverRespondJsonapi(req, response, null, req.swgg.paramDict);\n break;\n default:\n // serve file\n local.middlewareFileServer(req, response, nextMiddleware);\n }\n});\n// init db\n// test dbRowRandomCreate's null-case handling-behavior\nlocal.dbRowRandomCreate();\nglobalThis.utility2_dbSeedList = globalThis.utility2_dbSeedList.concat([{\n // test dbRowListRandomCreate's default handling-behavior\n dbRowList: local.dbRowListRandomCreate({\n // init 100 extra random objects\n length: 100,\n dbRowList: [\n {\n id: \"testCase_crudCountManyByQuery_default\",\n typeBooleanRequired: true\n }, {\n id: \"testCase_crudGetManyByQuery_default\",\n typeBooleanRequired: true\n }, {\n id: \"testCase_crudGetOneById_default\",\n typeBooleanRequired: true\n }, {\n id: \"testCase_crudGetOneByQuery_default\",\n typeBooleanRequired: true\n }\n ],\n override: function (opt) {\n return {\n id: \"testCase_dbRowListRandomCreate_\" + (opt.ii + 100)\n };\n },\n schema: local.swaggerJson.definitions.TestCrud\n }),\n idIndexCreateList: [\n {\n name: \"id\"\n }\n ],\n name: \"TestCrud\"\n}, {\n dbRowList: [\n {\n id: \"testCase_fileGetOneById_default\",\n fileBlob: local.templateSwaggerUiLogoSmallBase64,\n fileContentType: \"image/png\",\n typeBooleanRequired: true\n }, {\n id: \"testCase_ui_fileMedia_audioNull\",\n fileBlob: \"\",\n fileContentType: \"audio/wav\",\n fileDescription: \"null audio file\",\n fileFilename: \"testCase_ui_fileMedia_audioNull.wav\"\n }, {\n id: \"testCase_ui_fileMedia_imageNull\",\n fileBlob: \"\",\n fileContentType: \"image/bmp\",\n fileDescription: \"null image file\",\n fileFilename: \"testCase_ui_fileMedia_imageNull.wav\"\n }, {\n id: \"testCase_ui_fileMedia_videoNull\",\n fileBlob: \"\",\n fileContentType: \"video/mpeg\",\n fileDescription: \"null video file\",\n fileFilename: \"testCase_ui_fileMedia_videoNull.mpg\"\n }, {\n id: \"testAudio1\",\n/* jslint ignore:start */\n fileBlob: '\\\n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\\\nkDf707k/nwYa6Pkl/gDgAAAAAA4ODg4ODg4ODg4=\\\n' ,\n/* jslint ignore:end */\n fileContentType: \"audio/ogg\",\n fileDescription: \"test audio\",\n fileFilename: \"Hello_world_said_by_eSpeakNG.ogg\"\n }, {\n id: \"testImage1\",\n/* jslint ignore:start */\n fileBlob: '\\\n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\\\nhbGOyJmqz7GqfSc2QQhScsFnpDUjQK1Uj//Z\\\n' ,\n/* jslint ignore:end */\n fileContentType: \"image/jpeg\",\n fileDescription: \"test image\",\n fileFilename: \"330px-Lenna_(test_image).jpg\"\n }, {\n id: \"testVideo1\",\n/* jslint ignore:start */\n fileBlob: '\\\n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\\\nVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RR\\\nEHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQP\\\nAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTR\\\nAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\nAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAA\\\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\n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\\\n' ,\n/* jslint ignore:end */\n fileContentType: \"video/webm\",\n fileDescription: \"test video\",\n fileFilename: \"big_buck_bunny_trailer.2008.160p.webm\"\n }\n ],\n idIndexCreateList: [\n {\n name: \"id\"\n }\n ],\n name: \"File\"\n}]);\n// seed db\nlocal.db.dbSeed(globalThis.utility2_dbSeedList, local.onErrorThrow);\n// run validation test\n// local.tryCatchOnError(function () {\n// local.testCase_swaggerJsonFromCurl_default(null, local.onErrorDefault);\n// local.testCase_swaggerValidate_default(null, local.onErrorDefault);\n// local.testCase_swaggerValidateDataParameters_default(\n// null,\n// local.onErrorDefault\n// );\n// local.testCase_swaggerValidateDataParameters_err(null, local.onErrorDefault);\n// }, local.onErrorDefault);\n}());\n}());\n","/assets.utility2.base.html":"\n\n\n\n\n\nswgg (2019.9.14)\n\n\n\n
    \n\n\n\n

    \n\n\n\n swgg (2019.9.14)\n\n\n\n

    \n

    this zero-dependency package will run a virtual swagger-ui server with persistent-storage in the browser, that your webapp can use (in-place of a real backend), with a working web-demo

    \n\ndownload standalone app
    \n
    \n
    \n\n\n\n\n\n\n
    \n\n\n\n\n\n\n\n\n\n\n\n\n
    \n [\n this app was created with\n utility2\n ]\n
    \n\n\n","/index.rollup.html":"\n\n\n\n\n\nswgg\n\n\n\n\n
    \n\n\n\n

    \n\n\n\n swgg (2019.9.14)\n\n\n\n

    \n

    this zero-dependency package will run a virtual swagger-ui server with persistent-storage in the browser, that your webapp can use (in-place of a real backend), with a working web-demo

    \n\ndownload standalone app
    \n
    \n
    \n\n\n\n\n\n
    \n
    \n
    \n
    \n\n
    \n\n

    \n swgg\n \n \n \n \n clear api-keys\n \n

    \n
    \n
    \n \n
    \n\n
    \n loading script\n
    \n
    \n
      \n
      \n [\n this document was created with\n swgg\n ]\n
      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"},"env":{"NODE_ENV":"test","npm_package_description":"this zero-dependency package will run a virtual swagger-ui server with persistent-storage in the browser, that your webapp can use (in-place of a real backend), with a working web-demo","npm_package_homepage":"https://github.com/kaizhu256/node-swgg","npm_package_name":"swgg","npm_package_nameLib":"swgg","npm_package_version":"2019.9.14"}}});