@cloudbase/js-sdk 3.6.4-alpha.0 → 3.6.4-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/dist/index.esm.js +1 -1
- package/app/dist/index.esm.js.map +1 -1
- package/app/dist/index.js +1 -1
- package/app/dist/index.js.map +1 -1
- package/app/dist/index.node.esm.js +1 -1
- package/app/dist/index.node.esm.js.map +1 -1
- package/app/dist/index.node.js +1 -1
- package/app/dist/index.node.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.node.cjs.js +1 -1
- package/dist/index.node.cjs.js.map +1 -1
- package/dist/index.node.esm.js +1 -1
- package/dist/index.node.esm.js.map +1 -1
- package/miniprogram_dist/index.js +1 -1
- package/package.json +16 -16
- package/types/package.json +1 -1
- package/utilities/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.node.cjs.js","mappings":"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","sources":["webpack://@cloudbase/js-sdk/webpack/runtime/create fake namespace object","webpack://@cloudbase/js-sdk/../node_modules/asynckit/index.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/abort.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/async.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/defer.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/iterate.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/state.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/terminator.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/parallel.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/serial.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/serialOrdered.js","webpack://@cloudbase/js-sdk/../app/src/constants/common.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/constants.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/context.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/index.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/metadata.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/request.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/tool.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/utils.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/wx.ts","webpack://@cloudbase/js-sdk/../database/src/index.ts","webpack://@cloudbase/js-sdk/../index.node.ts","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/constant.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/utils/symbol.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/helper/symbol.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/utils/type.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/lineString.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/polygon.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/multiPoint.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/multiLineString.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/multiPolygon.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serverDate/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/util.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/update.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/validate.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/point.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/lib/util.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/logic.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/operator-map.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/datatype.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/common.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/update.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/utils/utils.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/document.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/aggregate.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/collection.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/command.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/regexp/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/const/code.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/document.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/collection.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/index.js","webpack://@cloudbase/js-sdk/../node_modules/call-bind-apply-helpers/actualApply.js","webpack://@cloudbase/js-sdk/../node_modules/call-bind-apply-helpers/functionApply.js","webpack://@cloudbase/js-sdk/../node_modules/call-bind-apply-helpers/functionCall.js","webpack://@cloudbase/js-sdk/../node_modules/call-bind-apply-helpers/index.js","webpack://@cloudbase/js-sdk/../node_modules/call-bind-apply-helpers/reflectApply.js","webpack://@cloudbase/js-sdk/../node_modules/combined-stream/lib/combined_stream.js","webpack://@cloudbase/js-sdk/../node_modules/delayed-stream/lib/delayed_stream.js","webpack://@cloudbase/js-sdk/../node_modules/dunder-proto/get.js","webpack://@cloudbase/js-sdk/../node_modules/es-define-property/index.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/eval.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/index.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/range.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/ref.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/syntax.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/type.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/uri.js","webpack://@cloudbase/js-sdk/../node_modules/es-object-atoms/index.js","webpack://@cloudbase/js-sdk/../node_modules/es-set-tostringtag/index.js","webpack://@cloudbase/js-sdk/../node_modules/form-data/lib/form_data.js","webpack://@cloudbase/js-sdk/../node_modules/form-data/lib/populate.js","webpack://@cloudbase/js-sdk/../node_modules/function-bind/implementation.js","webpack://@cloudbase/js-sdk/../node_modules/function-bind/index.js","webpack://@cloudbase/js-sdk/../node_modules/get-intrinsic/index.js","webpack://@cloudbase/js-sdk/../node_modules/get-proto/Object.getPrototypeOf.js","webpack://@cloudbase/js-sdk/../node_modules/get-proto/Reflect.getPrototypeOf.js","webpack://@cloudbase/js-sdk/../node_modules/get-proto/index.js","webpack://@cloudbase/js-sdk/../node_modules/gopd/gOPD.js","webpack://@cloudbase/js-sdk/../node_modules/gopd/index.js","webpack://@cloudbase/js-sdk/../node_modules/has-symbols/index.js","webpack://@cloudbase/js-sdk/../node_modules/has-symbols/shams.js","webpack://@cloudbase/js-sdk/../node_modules/has-tostringtag/shams.js","webpack://@cloudbase/js-sdk/../node_modules/hasown/index.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/abs.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/floor.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/isNaN.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/max.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/min.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/pow.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/round.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/sign.js","webpack://@cloudbase/js-sdk/../node_modules/mime-db/index.js","webpack://@cloudbase/js-sdk/../node_modules/mime-types/index.js","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/adapter-interface\",\"commonjs2\":\"@cloudbase/adapter-interface\",\"amd\":\"@cloudbase/adapter-interface\",\"root\":\"@cloudbase/adapter-interface\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/ai\",\"commonjs2\":\"@cloudbase/ai\",\"amd\":\"@cloudbase/ai\",\"root\":\"@cloudbase/ai\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/apis\",\"commonjs2\":\"@cloudbase/apis\",\"amd\":\"@cloudbase/apis\",\"root\":\"@cloudbase/apis\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/app\",\"commonjs2\":\"@cloudbase/app\",\"amd\":\"@cloudbase/app\",\"root\":\"@cloudbase/app\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/auth\",\"commonjs2\":\"@cloudbase/auth\",\"amd\":\"@cloudbase/auth\",\"root\":\"@cloudbase/auth\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/cloudrun\",\"commonjs2\":\"@cloudbase/cloudrun\",\"amd\":\"@cloudbase/cloudrun\",\"root\":\"@cloudbase/cloudrun\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/functions\",\"commonjs2\":\"@cloudbase/functions\",\"amd\":\"@cloudbase/functions\",\"root\":\"@cloudbase/functions\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/model\",\"commonjs2\":\"@cloudbase/model\",\"amd\":\"@cloudbase/model\",\"root\":\"@cloudbase/model\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/mysql\",\"commonjs2\":\"@cloudbase/mysql\",\"amd\":\"@cloudbase/mysql\",\"root\":\"@cloudbase/mysql\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/realtime\",\"commonjs2\":\"@cloudbase/realtime\",\"amd\":\"@cloudbase/realtime\",\"root\":\"@cloudbase/realtime\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/signature-nodejs\",\"commonjs2\":\"@cloudbase/signature-nodejs\",\"amd\":\"@cloudbase/signature-nodejs\",\"root\":\"@cloudbase/signature-nodejs\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/storage\",\"commonjs2\":\"@cloudbase/storage\",\"amd\":\"@cloudbase/storage\",\"root\":\"@cloudbase/storage\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/utilities\",\"commonjs2\":\"@cloudbase/utilities\",\"amd\":\"@cloudbase/utilities\",\"root\":\"@cloudbase/utilities\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"bson\",\"commonjs2\":\"bson\",\"amd\":\"bson\",\"root\":\"bson\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"jsonwebtoken\",\"commonjs2\":\"jsonwebtoken\",\"amd\":\"jsonwebtoken\",\"root\":\"jsonwebtoken\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"web-streams-polyfill\",\"commonjs2\":\"web-streams-polyfill\",\"amd\":\"web-streams-polyfill\",\"root\":\"web-streams-polyfill\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"ws\",\"commonjs2\":\"ws\",\"amd\":\"ws\",\"root\":\"ws\"}","webpack://@cloudbase/js-sdk/external node-commonjs \"crypto\"","webpack://@cloudbase/js-sdk/external node-commonjs \"fs\"","webpack://@cloudbase/js-sdk/external node-commonjs \"http\"","webpack://@cloudbase/js-sdk/external node-commonjs \"https\"","webpack://@cloudbase/js-sdk/external node-commonjs \"path\"","webpack://@cloudbase/js-sdk/external node-commonjs \"stream\"","webpack://@cloudbase/js-sdk/external node-commonjs \"url\"","webpack://@cloudbase/js-sdk/external node-commonjs \"util\"","webpack://@cloudbase/js-sdk/webpack/bootstrap","webpack://@cloudbase/js-sdk/webpack/runtime/define property getters","webpack://@cloudbase/js-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@cloudbase/js-sdk/webpack/runtime/make namespace object","webpack://@cloudbase/js-sdk/webpack/startup"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","import { EndPointKey } from '@cloudbase/types'\nimport { constants } from '@cloudbase/utilities'\n\n// @ts-ignore\nconst { setSdkName: setUtilitiesSdkName, setProtocol: setUtilitiesProtocol } = constants\n/**\n * SDK\n */\nlet sdkVersion = ''\nlet sdkName = '@cloudbase/js-sdk'\n\nexport function setSdkVersion(version: string) {\n sdkVersion = version\n}\nexport function getSdkVersion() {\n return sdkVersion\n}\nexport function setSdkName(name: string) {\n sdkName = name\n setUtilitiesSdkName(name)\n}\nexport function getSdkName() {\n return sdkName\n}\nexport const DATA_VERSION = '2020-01-10'\n\ninterface EndPointInfo {\n env: string\n endPointKey: EndPointKey\n region?: string\n baseUrl?: string\n protocol?: Protocol\n}\n\ntype Protocol = 'http' | 'https' | 'http:' | 'https:'\n\n/**\n * 所有 endPoint 信息\n * 避免直接操作该数组\n * 使用 setEndPointInfo、 getEndPointInfo\n */\nconst END_POINT_INFO_ARR: Array<EndPointInfo> = []\n\n/** 用来查找 endPoint 的字段 */\nconst END_POINT_INFO_SEARCH_KEYS = ['env', 'endPointKey', 'region']\n\nexport const DEFAULT_PROTOCOL: 'http:' | 'https:' = 'https:'\n\nfunction findMatchedInfo(info: EndPointInfo) {\n // eslint-disable-next-line max-len, eqeqeq\n return END_POINT_INFO_ARR.find(targetInfo => END_POINT_INFO_SEARCH_KEYS.filter(searchKey => info[searchKey] != null).every(searchKey => targetInfo[searchKey] === info[searchKey],),)\n}\n\nexport function setEndPointInfo(newInfo: EndPointInfo) {\n if (newInfo.protocol && !/:$/.test(newInfo.protocol)) {\n newInfo.protocol = `${newInfo.protocol}:` as Protocol\n }\n\n const endPointInfo = findMatchedInfo(newInfo)\n if (endPointInfo) {\n // eslint-disable-next-line eqeqeq\n if (newInfo.baseUrl != null) {\n endPointInfo.baseUrl = newInfo.baseUrl\n }\n // eslint-disable-next-line eqeqeq\n if (newInfo.protocol != null) {\n endPointInfo.protocol = newInfo.protocol\n }\n } else {\n END_POINT_INFO_ARR.push({ ...newInfo, protocol: newInfo.protocol ?? DEFAULT_PROTOCOL })\n }\n\n // 保持旧代码逻辑\n if (newInfo.endPointKey === 'CLOUD_API') {\n setUtilitiesProtocol((newInfo.protocol ?? DEFAULT_PROTOCOL) as 'http:' | 'https:')\n }\n}\n\nexport function getEndPointInfo(env: string, endPointKey: EndPointKey, region?: string) {\n return findMatchedInfo({ env, endPointKey, region })\n}\n\nexport interface ISetEndPointWithKey {\n key: EndPointKey\n url?: string\n protocol?: 'http' | 'https'\n}\n\nexport function setGatewayEndPointWithEnv(env: string, protocol?: Protocol, intl?: boolean) {\n let baseUrl = `//${env}.api.tcloudbasegateway.com/v1`\n\n if (intl) {\n baseUrl = `//${env}.api.intl.tcloudbasegateway.com/v1`\n }\n\n setEndPointInfo({ endPointKey: 'GATEWAY', env, baseUrl, protocol })\n}\nexport function setRegionLevelEndpoint(env: string, region: string, protocol?: Protocol) {\n const baseUrl = `//${env}.${region || 'ap-shanghai'}.tcb-api.tencentcloudapi.com/web`\n setEndPointInfo({ env, region, baseUrl, protocol, endPointKey: 'CLOUD_API' })\n}\n\nexport function getBaseEndPoint(env: string, endPointKey: EndPointKey = 'CLOUD_API') {\n const info = getEndPointInfo(env, endPointKey || 'CLOUD_API')\n\n const { protocol: PROTOCOL, baseUrl: BASE_URL } = info\n const webEndpoint = `${PROTOCOL}${BASE_URL}`\n // @todo 临时兼容小程序\n return webEndpoint.match(/(http(s)?:)?\\/\\/([^/?#]*)/)[0]\n // return `${new URL(webEndpoint).origin}`\n}\n\nexport enum LOGINTYPE {\n NULL = 'NULL',\n ANONYMOUS = 'ANONYMOUS',\n WECHAT = 'WECHAT',\n WECHAT_PUBLIC = 'WECHAT-PUBLIC',\n WECHAT_OPEN = 'WECHAT-OPEN',\n CUSTOM = 'CUSTOM',\n EMAIL = 'EMAIL',\n USERNAME = 'USERNAME',\n PHONE = 'PHONE',\n}\n\nexport const OAUTH2_LOGINTYPE_PREFIX = 'OAUTH2'\n","/* eslint-disable @typescript-eslint/naming-convention */\n/** 统一错误码定义 */\nexport const ERROR = {\n INVALID_PARAM: {\n code: 'INVALID_PARAM',\n message: 'invalid param',\n },\n SYS_ERR: {\n code: 'SYS_ERR',\n message: 'system error',\n },\n STORAGE_REQUEST_FAIL: {\n code: 'STORAGE_REQUEST_FAIL',\n message: 'storage request fail',\n },\n STORAGE_FILE_NONEXIST: {\n code: 'STORAGE_FILE_NONEXIST',\n message: 'storage file not exist',\n },\n TCB_CLS_UNOPEN: {\n code: 'TCB_CLS_UNOPEN',\n message: '需要先开通日志检索功能',\n },\n INVALID_CONTEXT: {\n code: 'INVALID_CONTEXT',\n message: '无效的context对象,请使用 云函数入口的context参数',\n },\n}\n\n/** 管理端 API 路径,用于替换 /web 路径(需要密钥签名时) */\nexport const ADMIN_PATH = '/admin'\n\n/** 管理端获取客户端凭证 access_token,为管理员权限 */\nexport const CLIENT_AUTH_PATH = '/auth/v1/token/clientCredential'\n\n/** 自定义用户 ID 校验规则:4~32 位,允许字母、数字及部分特殊字符 */\nexport const checkCustomUserIdRegex = /^[a-zA-Z0-9_\\-#@~=*(){}[\\]:.,<>+]{4,32}$/\n\nexport enum SECRET_TYPE {\n 'SECRET' = 'SECRET',\n 'SESSION_SECRET' = 'SESSION_SECRET',\n}\n","/* eslint-disable import/no-mutable-exports */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-restricted-syntax */\nimport { ERROR, SECRET_TYPE } from './constants'\nimport { checkIsInScf, getEnv } from './utils'\nimport type { IContextParam, ICompleteCloudbaseContext } from './types'\nimport { ICloudbaseConfig } from '@cloudbase/types'\n\n/**\n * 解析并校验云函数入口的 Context 参数\n * 将下划线命名的字段转为驼峰格式,并解析环境变量\n *\n * @param context - 云函数入口传入的 context 对象\n * @returns 解析后的上下文对象,包含 environment(新架构)或 environ(老架构)\n * @throws INVALID_CONTEXT - context 不是对象或解析失败时\n */\nexport function parseContext(context: IContextParam) {\n if (typeof context !== 'object') {\n throw { ...ERROR.INVALID_CONTEXT, message: 'context 必须为对象类型' }\n }\n\n const parseResult: any = {}\n\n const {\n memory_limit_in_mb,\n time_limit_in_ms,\n request_id,\n function_version,\n namespace,\n function_name,\n\n environ,\n environment,\n } = context\n\n try {\n parseResult.memoryLimitInMb = memory_limit_in_mb\n parseResult.timeLimitIns = time_limit_in_ms\n parseResult.requestId = request_id\n parseResult.functionVersion = function_version\n parseResult.namespace = namespace\n parseResult.functionName = function_name\n\n if (environment) {\n // 新架构:environment 为 JSON 字符串,直接解析\n parseResult.environment = JSON.parse(environment)\n } else {\n // TODO: 考虑移除老架构的兼容逻辑\n // 老架构:environ 为分号分隔的 key=value 字符串\n // 存在 bug:value 含特殊字符时可能影响解析\n const parseEnviron: any = environ?.split(';')\n const parseEnvironObj: any = {}\n\n // eslint-disable-next-line @typescript-eslint/no-for-in-array\n for (const i in parseEnviron) {\n if (parseEnviron[i].includes('=')) {\n // 只按第一个 = 切割,保留 value 中的 =\n const equalIndex = parseEnviron[i].indexOf('=')\n const key = parseEnviron[i].slice(0, equalIndex)\n let value: any = parseEnviron[i].slice(equalIndex + 1)\n\n // value 含逗号时视为数组\n if (value.indexOf(',') >= 0) {\n value = value.split(',')\n }\n parseEnvironObj[key] = value\n }\n }\n\n parseResult.environ = parseEnvironObj\n }\n } catch (_err: any) {\n throw { ...ERROR.INVALID_CONTEXT }\n }\n\n return parseResult\n}\n\n/**\n * 获取当前云函数内的所有环境变量\n * 统一从 process.env 和 context 两个来源合并取值\n *\n * 取值优先级:context > process.env\n * 通过 TCB_CONTEXT_KEYS / WX_CONTEXT_KEYS 动态扩展需要读取的环境变量列表\n *\n * @param context - 可选,云函数入口的 context 参数\n * @returns 合并后的完整环境变量上下文\n */\nexport const getCloudbaseContext = (context?: IContextParam): ICompleteCloudbaseContext => {\n // 云函数环境下校验必要环境变量\n if (checkIsInScf()) {\n if (!getEnv('TENCENTCLOUD_REGION')) {\n console.error('[TCB][ERROR] missing `TENCENTCLOUD_REGION` environment')\n }\n if (!getEnv('SCF_NAMESPACE')) {\n console.error('[TCB][ERROR] missing `SCF_NAMESPACE` environment')\n }\n }\n\n // 第一步:从 process.env 读取基础环境变量\n const envObj = getEnv()\n const envFromProcessEnv: any = {\n TRIGGER_SRC: envObj.TRIGGER_SRC,\n _SCF_TCB_LOG: envObj._SCF_TCB_LOG,\n SCF_NAMESPACE: envObj.SCF_NAMESPACE,\n TENCENTCLOUD_RUNENV: envObj.TENCENTCLOUD_RUNENV,\n TENCENTCLOUD_SECRETID: envObj.TENCENTCLOUD_SECRETID,\n TENCENTCLOUD_SECRETKEY: envObj.TENCENTCLOUD_SECRETKEY,\n TENCENTCLOUD_SESSIONTOKEN: envObj.TENCENTCLOUD_SESSIONTOKEN,\n WX_CONTEXT_KEYS: envObj.WX_CONTEXT_KEYS,\n WX_TRIGGER_API_TOKEN_V0: envObj.WX_TRIGGER_API_TOKEN_V0,\n WX_CLIENTIP: envObj.WX_CLIENTIP,\n WX_CLIENTIPV6: envObj.WX_CLIENTIPV6,\n TCB_CONTEXT_KEYS: envObj.TCB_CONTEXT_KEYS,\n TCB_CONTEXT_CNFG: envObj.TCB_CONTEXT_CNFG,\n LOGINTYPE: envObj.LOGINTYPE,\n CLOUDBASE_APIKEY: envObj.CLOUDBASE_APIKEY,\n }\n\n // 第二步:从 context 中解析环境变量\n let envFromContext: any = {}\n if (context) {\n const { environment, environ } = parseContext(context)\n envFromContext = environment || environ || {}\n }\n\n // 第三步:根据 CONTEXT_KEYS 动态扩展变量列表(优先取 context 中的值)\n const tcbContextKeys = envFromContext.TCB_CONTEXT_KEYS || envObj.TCB_CONTEXT_KEYS\n const wxContextKeys = envFromContext.WX_CONTEXT_KEYS || envObj.WX_CONTEXT_KEYS\n\n // 根据 CONTEXT_KEYS 动态扩展变量列表\n for (const contextKeys of [tcbContextKeys, wxContextKeys]) {\n if (contextKeys) {\n try {\n for (const item of contextKeys.split(',')) {\n envFromProcessEnv[item] = envFromContext[item] || getEnv(item)\n }\n } catch (_e) {\n //\n }\n }\n }\n\n // 第四步:合并所有来源,context 的值覆盖 process.env,过滤 undefined\n const allContext = { ...envFromProcessEnv, ...envFromContext }\n\n return Object.fromEntries(Object.entries(allContext).filter(([, v]) => v !== undefined)) as any\n}\n\n/**\n * 获取 TCB_CONTEXT_CNFG 配置\n * 解析环境变量中约定的 JSON 配置\n */\nexport function getTcbContextConfig(): any {\n try {\n const context: any = getCloudbaseContext()\n const { TCB_CONTEXT_CNFG } = context\n if (TCB_CONTEXT_CNFG) {\n return JSON.parse(TCB_CONTEXT_CNFG)\n }\n return {}\n } catch (_e) {\n console.error('[TCB][ERROR] parse context error: ', _e)\n return {}\n }\n}\n\n/**\n * 获取服务端注入的 URL\n */\nexport function getServerInjectUrl(): string {\n const tcbContextConfig = getTcbContextConfig()\n return tcbContextConfig.URL || ''\n}\n\n/** 缓存 extendedContext,供其他模块读取(如 tool.ts 中获取 userId) */\nexport let INIT_CONFIG: ICloudbaseConfig = {} as unknown as ICloudbaseConfig\n\n/**\n * 从环境变量 / config 顶层字段 / context 中获取腾讯云密钥信息\n * 兼容 node-sdk 风格的顶层配置(secretId, secretKey, credentials, context 等)\n * 用于 API 请求签名\n */\nexport const getSecretInfo = (config?: ICloudbaseConfig) => {\n INIT_CONFIG = JSON.parse(JSON.stringify(config || INIT_CONFIG))\n\n // --- 环境变量中的密钥 ---\n const { TCB_ENV, SCF_NAMESPACE, TENCENTCLOUD_RUNENV, TENCENTCLOUD_SECRETID, TENCENTCLOUD_SECRETKEY, TENCENTCLOUD_SESSIONTOKEN, CLOUDBASE_APIKEY } = getCloudbaseContext()\n const topLevel = { ...INIT_CONFIG, ...config } as any\n\n // --- env 处理 ---\n // env 可能为 symbol(SYMBOL_CURRENT_ENV / SYMBOL_DEFAULT_ENV),尝试从环境变量获取\n let env = ''\n if (typeof config?.env === 'symbol' || !config?.env) {\n env = TCB_ENV || SCF_NAMESPACE || ''\n } else {\n env = config.env as string\n }\n\n // 本地调试环境特殊处理\n if (env === 'local' && TENCENTCLOUD_RUNENV === 'WX_LOCAL_SCF') {\n env = ''\n }\n\n const defaultInfo = {\n env,\n secretId: '',\n secretKey: '',\n sessionToken: '',\n accessKey: '',\n secretType: '',\n credentials: undefined as any,\n context: undefined as any,\n }\n\n // --- 顶层 context(functions-framework 上下文) ---\n if (topLevel?.context) {\n defaultInfo.context = topLevel.context\n }\n\n // --- 顶层 credentials(私钥认证) ---\n if (topLevel?.credentials) {\n defaultInfo.credentials = topLevel.credentials\n }\n\n // --- accessKey 优先级:config.accessKey > 环境变量 ---\n if (config?.accessKey || topLevel?.accessKey) {\n defaultInfo.accessKey = config?.accessKey || topLevel?.accessKey\n return defaultInfo\n }\n\n // --- 顶层 secretId/secretKey(node-sdk 风格兼容) ---\n if (topLevel?.secretId && topLevel?.secretKey) {\n return {\n ...defaultInfo,\n secretId: topLevel.secretId,\n secretKey: topLevel.secretKey,\n sessionToken: topLevel.sessionToken || '',\n secretType: topLevel.sessionToken ? SECRET_TYPE.SESSION_SECRET : SECRET_TYPE.SECRET,\n }\n }\n\n // --- config.auth 中的密钥 ---\n if (config?.auth?.secretId && config?.auth?.secretKey) {\n return {\n ...defaultInfo,\n secretId: config.auth.secretId,\n secretKey: config.auth.secretKey,\n sessionToken: config.auth.sessionToken || '',\n secretType: config.auth.secretType || SECRET_TYPE.SECRET,\n }\n }\n\n if (CLOUDBASE_APIKEY) {\n return {\n ...defaultInfo,\n accessKey: CLOUDBASE_APIKEY,\n }\n }\n\n if (TENCENTCLOUD_SECRETID && TENCENTCLOUD_SECRETKEY) {\n return {\n ...defaultInfo,\n secretId: TENCENTCLOUD_SECRETID,\n secretKey: TENCENTCLOUD_SECRETKEY,\n sessionToken: TENCENTCLOUD_SESSIONTOKEN || '',\n secretType: SECRET_TYPE.SESSION_SECRET,\n }\n }\n\n // --- context.extendedContext 中的临时密钥 ---\n const contextConfig = topLevel?.context || config?.context\n if (contextConfig?.extendedContext) {\n const { extendedContext } = contextConfig\n if (!env) {\n env = extendedContext.envId || ''\n }\n\n return {\n ...defaultInfo,\n env,\n secretId: extendedContext?.tmpSecret?.secretId || '',\n secretKey: extendedContext?.tmpSecret?.secretKey || '',\n sessionToken: extendedContext?.tmpSecret?.token || '',\n }\n }\n\n return { ...defaultInfo }\n}\n","/* eslint-disable prefer-destructuring */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport {\n SDKAdapterInterface,\n StorageInterface,\n StorageType,\n WebSocketContructor as WebSocketConstructor,\n} from '@cloudbase/adapter-interface'\n\nimport { NodeRequest } from './request'\nimport { nodeTool } from './tool'\nimport { getSecretInfo } from './context'\nimport { parseQueryString } from './utils'\nimport { ICloudbaseConfig } from '@cloudbase/types'\n\n// ws 延迟加载,避免非 Node 环境打包时引入\nlet _WS: any = null\nfunction getWS() {\n if (!_WS) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports\n _WS = require('ws')\n } catch (e) {\n console.error('缺少依赖 ws,请执行以下命令安装:\\n\\n'\n + ' npm install ws\\n\\n'\n + '该依赖用于 Node 环境下的 WebSocket 连接。',)\n }\n }\n return _WS\n}\n\n// Re-export for external consumers\nexport { NodeRequest } from './request'\nexport { parseQueryString, createWebStreamFromNodeReadableStream, E, TcbError, SYMBOL_CURRENT_ENV, SYMBOL_DEFAULT_ENV, isValidEnvFormat, isPageModuleName, filterValue, filterUndefined, processReturn, setThrowOnCode } from './utils'\nexport { getCloudbaseContext, parseContext, getSecretInfo, getServerInjectUrl, getTcbContextConfig } from './context'\nexport { getWxCloudToken, buildAdminUrl, sendWxRequest, sendWxFormDataRequest, callWxOpenApi, callCompatibleWxOpenApi, callWxPayApi, wxCallContainerApi, getWxOptions } from './wx'\nexport type {\n ICreateTicketOpts,\n IGetUserInfoResult,\n IGetEndUserInfoResult,\n IUserInfoQuery,\n IContextParam,\n ICompleteCloudbaseContext,\n ISCFContext,\n ICallWxOpenApiOptions,\n ICallWxOpenApiResult,\n ITemplateNotifyReq,\n Extension,\n} from './types'\n\n/**\n * 环境匹配检测:判断当前运行环境是否为 Node.js\n * SDK 通过此方法决定是否使用当前 adapter\n */\nfunction isMatch(): boolean {\n // eslint-disable-next-line eqeqeq\n return typeof process !== 'undefined' && process.versions != null && process.versions.node != null\n}\n\n/**\n * 基于 Map 的内存存储实现\n * Node.js 环境下无浏览器 Storage API,使用内存 Map 模拟\n */\nconst storage: StorageInterface = (() => {\n const db = new Map()\n return {\n mode: 'sync',\n setItem(key, value) {\n db.set(key, value)\n },\n getItem(key) {\n return db.get(key)\n },\n removeItem(key) {\n db.delete(key)\n },\n clear() {\n db.clear()\n },\n }\n})()\n\n/**\n * 生成 Node.js 环境的 SDK Adapter\n * 组装请求类、存储、WebSocket、认证等能力\n *\n * @param options - 配置项,包含 EventBus(用于验证码回调)\n * @returns SDK Adapter 实例\n */\nfunction genAdapter(options: any) {\n const adapter: SDKAdapterInterface & {\n getSecretInfo: (config?: ICloudbaseConfig) => {\n env: string\n secretId: string\n secretKey: string\n sessionToken: string\n accessKey: string\n secretType: string\n }\n nodeTool: (app: any, config: ICloudbaseConfig) => void\n } = {\n nodeTool,\n getSecretInfo,\n root: { globalThis: {} },\n reqClass: NodeRequest,\n wsClass: getWS() as WebSocketConstructor,\n sessionStorage: storage,\n localStorage: storage,\n primaryStorage: StorageType.session,\n captchaOptions: {\n /**\n * 验证码处理回调\n * 解析 data: URI 中的验证码参数,通过 EventBus 通知业务层\n * 等待业务层返回验证结果后 resolve\n */\n openURIWithCallback: (_url: string) => {\n const { EventBus } = options\n let queryObj: Record<string, string | string[]> = {}\n let url = _url\n\n // 从 data: URI 中提取查询参数\n const matched = _url.match(/^(data:.*?)(\\?[^#\\s]*)?$/)\n if (matched) {\n url = matched[1]\n const search = matched[2]\n if (search) {\n queryObj = parseQueryString(search)\n }\n }\n\n const { token, ...restQueryObj } = queryObj\n\n // data: 协议但无 token,视为无效验证码数据\n if (/^data:/.test(url) && !token) {\n return Promise.reject({\n error: 'invalid_argument',\n error_description: `invalie captcha data: ${_url}`,\n })\n }\n if (!token) {\n return Promise.reject({\n error: 'unimplemented',\n error_description: 'need to impl captcha data',\n })\n }\n\n return new Promise((resolve) => {\n // 通知业务层展示验证码\n EventBus.$emit('CAPTCHA_DATA_CHANGE', {\n ...restQueryObj,\n token,\n url,\n })\n\n // 等待业务层返回验证结果\n EventBus.$once('RESOLVE_CAPTCHA_DATA', (res: { captcha_token: string; expires_in: number }) => {\n resolve(res)\n })\n })\n },\n },\n }\n return adapter\n}\n\n/** Node.js Adapter 入口导出 */\nconst adapter = {\n genAdapter,\n isMatch,\n runtime: 'node-adapter',\n}\n\nexport default adapter\n","/* eslint-disable @typescript-eslint/naming-convention */\n// 注意:改地址已经不是一定可以访问的了\nexport const kMetadataBaseUrl = 'http://metadata.tencentyun.com'\n\nexport const kAppIdPath = 'meta-data/app-id'\nexport const kSecurityCredentialsPath = 'meta-data/cam/security-credentials'\n\nexport enum kMetadataVersions {\n 'v20170919' = '2017-09-19',\n 'v1.0' = '1.0',\n 'latest' = 'latest',\n}\n\nexport function isAppId(appIdStr: string) {\n return /^[1-9][0-9]{4,64}$/gim.test(appIdStr)\n}\n\nexport async function lookup(path: string, options: { timeout?: number } = {}): Promise<string> {\n const url = `${kMetadataBaseUrl}/${kMetadataVersions.latest}/${path}`\n\n const controller = new AbortController()\n let timer: ReturnType<typeof setTimeout> | undefined\n if (options.timeout) {\n timer = setTimeout(() => controller.abort(), options.timeout)\n }\n\n try {\n const resp = await fetch(url, { signal: controller.signal })\n if (resp.status === 200) {\n return await resp.text()\n }\n throw new Error(`[ERROR] GET ${url} status: ${resp.status}`)\n } finally {\n if (timer) clearTimeout(timer)\n }\n}\n\nconst metadataCache: { appId: string | undefined } = {\n appId: undefined,\n}\n/**\n * lookupAppId - 该方法主要用于判断是否在云上环境\n * @returns\n */\nexport async function lookupAppId(): Promise<string> {\n if (metadataCache.appId === undefined) {\n try {\n // 只有首次会请求且要求快速返回,超时时间很短,DNS无法解析将会超时返回\n // 在云环境中,这个时间通常在 10ms 内,部分耗时长(30+ms)的情况是 DNS 解析耗时长(27+ms)\n const appId = await lookup(kAppIdPath, { timeout: 30 })\n if (isAppId(appId)) {\n metadataCache.appId = appId\n } else {\n metadataCache.appId = ''\n }\n } catch (_e) {\n // ignore\n }\n }\n return metadataCache.appId || ''\n}\n\nexport async function lookupCredentials(ruleName: string): Promise<string> {\n // `${kMetadataBaseUrl}/meta-data/cam/security-credentials/TCB_QcsRole`\n // 这里设置了一个较短的超时时间,因为这个请求是在云环境中发起的,通常会很快返回\n return await lookup(`${kSecurityCredentialsPath}/${ruleName}`, {\n timeout: 200,\n })\n}\n","/* eslint-disable no-nested-ternary */\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport {\n IFetchOptions,\n IRequestConfig,\n IRequestMethod,\n IRequestOptions,\n ResponseObject,\n SDKRequestInterface,\n formatUrl,\n} from '@cloudbase/adapter-interface'\nimport { ADMIN_PATH, CLIENT_AUTH_PATH } from './constants'\nimport { getCloudbaseContext, getSecretInfo, INIT_CONFIG } from './context'\nimport type { ICustomReqOpts } from './types'\nimport {\n getEnv,\n isFormData,\n toQueryString,\n safeParseJson,\n obj2StrRecord,\n headersInit2Indexable,\n getCurrRunEnvTag,\n} from './utils'\nimport { ICloudbaseConfig } from '@cloudbase/types'\nimport { getSdkVersion } from '../../constants/common'\n// 延迟加载,避免非 Node 环境打包时引入此包\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet signFn: ((...args: any[]) => any) | null = null\nasync function getSign() {\n if (!signFn) {\n try {\n // @ts-ignore — 该包仅在 Node 运行时存在,开发环境可能未安装\n const mod = await import('@cloudbase/signature-nodejs')\n signFn = mod.sign\n } catch (e) {\n console.error('缺少依赖 @cloudbase/signature-nodejs,请执行以下命令安装:\\n\\n'\n + ' npm install @cloudbase/signature-nodejs\\n\\n'\n + '该依赖用于 Node 环境下的请求签名。')\n }\n }\n return signFn!\n}\n\n/**\n * Node.js 环境下的 HTTP 请求实现\n * 基于原生 fetch,支持 GET/POST/PUT/上传/下载/流式请求\n * 自动处理 V3 签名和 Bearer Token 认证\n */\nexport class NodeRequest implements SDKRequestInterface {\n /** 请求配置,包含认证信息 */\n config: IRequestConfig & ICloudbaseConfig\n\n /** 请求超时时间(毫秒);未设置(undefined)时表示不限制超时(不超时) */\n private readonly timeout: number | undefined\n\n /** 受超时控制的请求类型列表 */\n private readonly restrictedMethods: Array<IRequestMethod>\n\n constructor(config: IRequestConfig & ICloudbaseConfig) {\n const { timeout, restrictedMethods } = config\n // Node 环境默认不设置 timeout(不超时),仅当显式传入时才启用超时\n this.timeout = timeout\n this.restrictedMethods = restrictedMethods || ['get', 'post', 'upload', 'download']\n this.config = config\n }\n\n /**\n * 获取客户端凭证 access_token,为管理员权限\n * 用于不支持 V3 签名的接口(如数据模型、关系型数据库、AI)\n */\n async getClientCredential(opts: { origin: string }): Promise<any> {\n const res = await this.fetch({\n url: `${opts.origin}${CLIENT_AUTH_PATH}`,\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify({\n grant_type: 'client_credentials',\n }),\n })\n\n return res.data?.access_token\n }\n\n /**\n * 获取实际请求 URL\n * 当请求未携带 Authorization 且未自带 access_token 时,\n * 将 /web 路径替换为 /admin(管理端签名路径)\n */\n getRealUrl(url: string, headers: Record<string, any>, body: any) {\n if (headers.Authorization?.replace('Bearer', '')?.trim()) {\n return url\n }\n\n const params = typeof body === 'object' ? body : safeParseJson(body) || ''\n\n if (params.access_token) {\n return url\n }\n\n const urlObj = new URL(url)\n\n if (urlObj.pathname === '/web' && this.config.auth?.secretId && this.config.auth?.secretKey) {\n urlObj.pathname = ADMIN_PATH\n }\n return urlObj.toString()\n }\n\n public getReqOptions = async (\n url: string,\n options: {\n method?: any\n headers: any\n body?: any\n credentials?: string\n withCredentials?: boolean\n signal?: AbortSignal\n url?: any\n },\n ) => {\n const urlObj = new URL(url)\n\n const { TCB_SOURCE } = getCloudbaseContext()\n // Note: 云函数被调用时可能调用端未传递 SOURCE,TCB_SOURCE 可能为空\n const SOURCE = `${INIT_CONFIG.context?.extendedContext?.source || TCB_SOURCE || ''},${await getCurrRunEnvTag()}`\n\n options.headers = {\n ...options.headers,\n 'User-Agent': `adapter-node/${options.headers?.['X-SDK-Version'] || `@cloudbase/js-sdk/${getSdkVersion()}`}`,\n 'X-TCB-Source': SOURCE,\n 'X-Client-Timestamp': new Date().valueOf(),\n 'X-TCB-Region': INIT_CONFIG.region || getEnv('TENCENTCLOUD_REGION') || '',\n Host: urlObj.host,\n }\n\n // 调用方显式声明 withCredentials: false 时,表示这是一次匿名请求\n // (如 Storage 签名直传 / 公开下载,仅凭 token 或 Bucket public 属性鉴权)。\n // 此场景下不应注入登录态或 V3 管理签名,否则会与 token 鉴权冲突,造成「二次签名」。\n if (options.withCredentials === false) {\n return options\n }\n\n // 已携带有效 Authorization,直接返回\n if (options.headers.Authorization?.replace('Bearer', '')?.trim()) {\n return options\n }\n\n // auth 相关接口不需要签名\n if (urlObj.pathname.startsWith('/auth/') && urlObj.pathname !== CLIENT_AUTH_PATH) {\n return options\n }\n\n const isAdminPath = urlObj.pathname === ADMIN_PATH\n\n // 这些路径不支持 V3 签名,改用 clientCredential 获取 Bearer Token\n const UNSUPPORTED_V3_SIGN_PATH = ['/v1/model/', '/v1/rdb/', '/v1/ai/']\n\n if (UNSUPPORTED_V3_SIGN_PATH.some(v => urlObj.pathname.startsWith(v))) {\n const token = await this.getClientCredential({ origin: urlObj.origin })\n options.headers.Authorization = `Bearer ${token}`\n return options\n }\n\n let { secretId, secretKey, sessionToken } = { ...this.config, ...this.config?.auth }\n const { secretType } = { ...this.config, ...this.config?.auth }\n const { method, body } = options\n const headers = JSON.parse(JSON.stringify(options.headers))\n\n // ========== 处理 npm form-data 包实例 ==========\n // npm form-data 实例(来自 node-sdk 的 sendWxFormDataRequest):\n // - 通过 __plainObj 挂载了签名用的纯对象\n // - 签名时使用 plain object 的 key-value(multipart 签名方式)\n // - 发送时使用 form-data 的 getBuffer()(multipart/form-data 格式)\n const isNpmFormDataBody = this.isNpmFormData(body)\n let params: any\n\n if (isNpmFormDataBody) {\n // 从 form-data 实例上取签名用的纯对象\n params = body.__plainObj ? { ...body.__plainObj } : {}\n } else {\n params = typeof body === 'object' ? body : safeParseJson(body) || {}\n }\n\n params.envName = params?.env || this.config.env || getSecretInfo()?.env || ''\n\n // 参数自带 access_token,无需签名\n if (params.access_token) {\n return options\n }\n\n // GET 请求参数已在 URL 中,签名时 params 置空\n if (method.toLowerCase() === 'get') {\n params = undefined\n }\n\n // SESSION_SECRET 类型或无密钥时,从环境变量获取临时密钥\n if (!secretId || !secretKey || secretType === 'SESSION_SECRET') {\n const secretInfo = getSecretInfo()\n secretId = secretInfo.secretId\n secretKey = secretInfo.secretKey\n sessionToken = secretInfo.sessionToken\n }\n\n // 仍无密钥则跳过签名\n if (!secretId || !secretKey) {\n return options\n }\n\n delete headers.Authorization\n\n // content-type 需与服务端签名验证保持大小写一致\n if (headers['content-type']) {\n headers['content-type'] = headers['content-type'].toLowerCase()\n } else if (headers['Content-Type']) {\n headers['Content-Type'] = headers['Content-Type'].toLowerCase()\n }\n\n if (isAdminPath && !!sessionToken) {\n params.sessionToken = sessionToken\n }\n\n const signedParams = {\n secretId,\n secretKey,\n method,\n url,\n params,\n headers,\n withSignedParams: isAdminPath,\n timestamp: Math.floor(new Date().getTime() / 1000) - 1,\n isCloudApi: !isAdminPath,\n }\n\n if (!headers['content-type'] && !headers['Content-Type']) {\n return options\n }\n\n const sign = await getSign()\n if (!sign) return options\n\n const { authorization, timestamp } = sign(signedParams)\n\n if (typeof sessionToken === 'string' && sessionToken !== '') {\n if (isAdminPath) {\n headers.Authorization = `${authorization}`\n headers['X-Timestamp'] = timestamp\n headers['X-Signature-Expires'] = 600\n } else {\n // 临时密钥需要额外附带 Token\n headers.Authorization = `${authorization}, Timestamp=${timestamp}, Token=${sessionToken}`\n }\n } else {\n headers.Authorization = `${authorization}, Timestamp=${timestamp}`\n\n // admin 路径需要额外的时间戳和过期头\n if (isAdminPath) {\n headers['X-Timestamp'] = timestamp\n headers['X-Signature-Expires'] = 600\n }\n }\n\n // ========== 构建返回的 body ==========\n if (isNpmFormDataBody) {\n // npm form-data: 签名完成后,需要将 envName/sessionToken 等签名时追加的字段\n // 也同步追加到 form-data 实例中(因为服务端需要从 form-data body 中读取这些字段)\n // 然后用 form-data 的 getBuffer() 作为实际发送的 body\n const formDataInstance = body\n const existingKeys = new Set(Object.keys(formDataInstance.__plainObj || {}))\n\n // 把签名过程中追加的字段同步到 form-data 实例(仅追加之前不存在的)\n if (params.envName && !existingKeys.has('envName')) {\n formDataInstance.append('envName', params.envName)\n }\n if (params.sessionToken && !existingKeys.has('sessionToken')) {\n formDataInstance.append('sessionToken', params.sessionToken)\n }\n\n const formBuffer = formDataInstance.getBuffer()\n const formHeaders = formDataInstance.getHeaders()\n\n return {\n ...options,\n headers: {\n ...headers,\n ...formHeaders,\n 'content-length': String(formBuffer.length),\n },\n body: formBuffer,\n }\n }\n\n return {\n ...options,\n headers,\n body: typeof params === 'object' ? JSON.stringify(params) : params,\n }\n }\n\n public get = (options: IRequestOptions): Promise<ResponseObject> => this.request(\n {\n ...options,\n method: 'get',\n },\n this.restrictedMethods.includes('get'),\n )\n\n public post = (options: IRequestOptions): Promise<ResponseObject> => this.request(\n {\n ...options,\n method: 'post',\n },\n this.restrictedMethods.includes('post'),\n )\n\n public put = (options: IRequestOptions): Promise<ResponseObject> => this.request({\n ...options,\n method: 'put',\n })\n\n /**\n * 文件上传\n * POST 方式:构建 FormData 上传\n * PUT 方式:直接将文件作为 body 上传\n */\n public upload = (options: IRequestOptions): Promise<ResponseObject> => {\n const { data, file: rawFile, fileContent, name, method, headers = {} } = options as any\n // 优先使用 file(filePath),没有则回退到 fileContent(Buffer)\n const file = rawFile ?? fileContent\n if (file === undefined || name === undefined) {\n throw new Error('file and name is required')\n }\n const formFields = obj2StrRecord(data ?? {})\n const loweredMethod = method?.toLowerCase()\n const reqMethod = ['post', 'put'].find(m => m === loweredMethod) ?? 'put'\n const formData = new FormData()\n if (reqMethod === 'post') {\n Object.keys(formFields).forEach((key) => {\n formData.append(key, formFields[key])\n })\n formData.append('key', name)\n formData.append('file', file instanceof Blob ? file : new Blob([file]))\n return this.request(\n {\n ...options,\n data: formData,\n method: reqMethod,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n\n return this.request(\n {\n ...options,\n method: 'put',\n headers,\n body: file,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n\n /** 文件下载(Node.js 环境,通过 fetch 获取文件内容并写入本地文件或返回 Buffer) */\n public download = async (options: IRequestOptions): Promise<unknown> => {\n const res = await fetch(options.url!, {\n headers: {},\n // 未设置 timeout 时不施加超时中断\n signal: this.timeout ? AbortSignal.timeout(this.timeout) : undefined,\n })\n\n if (!res.ok) {\n throw new Error(`Download failed with status ${res.status}`)\n }\n\n const arrayBuffer = await res.arrayBuffer()\n const buffer = Buffer.from(arrayBuffer)\n\n // 如果指定了 tempFilePath,将文件写入本地\n const { tempFilePath } = options\n if (tempFilePath) {\n // 确保目录存在\n const dir = path.dirname(tempFilePath)\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true })\n }\n fs.writeFileSync(tempFilePath, buffer)\n return {\n statusCode: 200,\n tempFilePath,\n }\n }\n\n // 未指定路径时返回 Buffer\n return {\n statusCode: 200,\n tempFilePath: options.url,\n fileContent: buffer,\n }\n }\n\n /**\n * 底层 fetch 请求,支持流式响应\n * 超时通过 AbortController + setTimeout 实现\n */\n public fetch = async (options: Omit<IFetchOptions, 'signal'> & { signal?: AbortSignal; customReqOpts?: ICustomReqOpts }): Promise<ResponseObject> => {\n const { enableAbort = false, stream = false, signal, customReqOpts } = options\n const url = this.getRealUrl(options.url, options.headers || {}, options.body)\n const timeout = customReqOpts?.timeout || this.timeout\n const [abortController, cleanup] = this.createAbortController(timeout, enableAbort, signal)\n\n const headers = options.headers ? headersInit2Indexable(options.headers) : undefined\n\n const fetchOptions = await this.getReqOptions(url, {\n ...options,\n headers,\n body: options.body as any as NodeJS.ReadableStream,\n signal: abortController.signal,\n })\n\n this.applyDuplexIfNeeded(fetchOptions)\n\n try {\n const res = await fetch(url, fetchOptions as RequestInit)\n let data: any\n if (+res.status === 204) {\n data = ''\n } else if (stream) {\n data = res.body\n } else {\n // safeParseJson 避免当错误响应体非 JSON(如网关返回纯文本/HTML)时抛异常,\n // 从而保留 statusCode 供上层(如 exists() 判 400/404)使用。\n data = safeParseJson(await res.text())\n }\n return {\n data,\n statusCode: res.status,\n header: res.headers,\n // 透出原始 Response,便于上层按需 .blob() / .arrayBuffer() / 读取 body 流,避免二次包装。\n response: res,\n }\n } finally {\n cleanup()\n }\n }\n\n /**\n * 通用请求方法,被 get/post/put/upload 等调用\n * 负责构建 payload、设置超时、解析响应\n *\n * @param options - 请求选项\n * @param enableAbort - 是否启用超时中断(由 restrictedMethods 决定)\n */\n public request = async (options: IRequestOptions, enableAbort = false): Promise<ResponseObject> => {\n const {\n url,\n headers: rawHeaders = {},\n data,\n responseType,\n withCredentials,\n body,\n method: rawMethod,\n customReqOpts,\n } = options\n const headers = obj2StrRecord(rawHeaders)\n const method = String(rawMethod).toLowerCase() || 'get'\n const timeout = customReqOpts?.timeout || this.timeout\n // 桥接外部 signal 到内部 AbortController,支持调用方取消请求\n const externalSignal = (options as { signal?: AbortSignal }).signal\n const [abortController, cleanup] = this.createAbortController(timeout, enableAbort, externalSignal)\n\n // 构建请求 payload:FormData > urlencoded > raw body > JSON\n let payload\n if (isFormData(data)) {\n payload = data\n } else if (headers['content-type'] === 'application/x-www-form-urlencoded') {\n payload = toQueryString(data ?? {})\n } else if (body) {\n payload = body\n } else {\n payload = data ? JSON.stringify(data) : undefined\n }\n\n const realUrl = this.getRealUrl(\n formatUrl('https', url ?? '', method === 'get' ? data : {}),\n options.headers || {},\n payload,\n )\n\n const requestOptions = await this.getReqOptions(realUrl, {\n method,\n headers,\n body: payload,\n credentials: withCredentials ? 'include' : 'same-origin',\n signal: abortController.signal,\n })\n\n this.applyDuplexIfNeeded(requestOptions)\n\n try {\n const response = await fetch(realUrl, requestOptions as RequestInit)\n const result: ResponseObject = {\n header: {},\n statusCode: response.status,\n }\n\n try {\n if (responseType === 'blob') {\n result.data = await response.blob()\n } else if ((responseType as string) === 'buffer') {\n // 返回 Buffer(兼容旧版 node-sdk 二进制响应格式)\n result.data = Buffer.from(await response.arrayBuffer())\n } else {\n result.data = safeParseJson(await response.text())\n }\n } catch (e) {\n // 上传 POST 请求可能返回 XML 等非 JSON 格式,容错处理\n console.log('catch an error', e)\n if (responseType === 'blob') {\n result.data = await response.blob()\n } else if ((responseType as string) === 'buffer') {\n result.data = Buffer.from(await response.arrayBuffer())\n } else {\n result.data = await response.text()\n }\n }\n\n // 将响应头统一转为小写 key\n const { headers } = response\n headers.forEach((val, key) => (result.header[key.toLowerCase()] = val))\n\n return result\n } finally {\n cleanup()\n }\n }\n\n /**\n * 创建带超时的 AbortController\n * @returns [abortController, cleanup] — cleanup 用于清除定时器\n */\n private createAbortController(\n timeout: number | undefined,\n _enableAbort: boolean,\n externalSignal?: AbortSignal,\n ): [AbortController, () => void] {\n const controller = new AbortController()\n\n // 桥接外部 signal。用 { once: true } 避免调用方复用同一长生命周期\n // AbortController 多次发请求时累积监听器(轻微泄漏)。\n if (externalSignal) {\n if (externalSignal.aborted) {\n controller.abort()\n } else {\n externalSignal.addEventListener('abort', () => controller.abort(), { once: true })\n }\n }\n\n let timer: ReturnType<typeof setTimeout> | undefined\n // 仅当显式设置了 timeout 时才启用超时中断;未设置则不超时\n // (enableAbort 的取消能力通过 externalSignal 与返回的 controller 提供)\n if (timeout) {\n timer = setTimeout(() => {\n const timeoutMsg = `请求在${timeout / 1000}s内未完成,已中断`\n console.warn(timeoutMsg)\n controller.abort(new Error(timeoutMsg))\n }, timeout)\n }\n\n return [controller, () => clearTimeout(timer)]\n }\n\n /** Node 18+ 原生 fetch 在 body 为 stream 时要求 duplex: 'half' */\n private applyDuplexIfNeeded(options: any): void {\n if (options.body && typeof options.body?.pipe === 'function') {\n options.duplex = 'half'\n }\n }\n\n /**\n * 判断是否为 npm form-data 包的实例(具有 getHeaders / getBuffer 方法)\n * 区别于全局 FormData(Web API)\n */\n private isNpmFormData(obj: any): boolean {\n return obj && typeof obj === 'object'\n && typeof obj.getHeaders === 'function'\n && typeof obj.getBuffer === 'function'\n }\n}\n","import { ERROR } from './constants'\nimport { getCloudbaseContext, parseContext, getServerInjectUrl } from './context'\nimport { validateUid, E } from './utils'\nimport {\n callWxOpenApi,\n callCompatibleWxOpenApi,\n callWxPayApi,\n wxCallContainerApi,\n getWxOptions,\n type ISendWxRequestOptions,\n} from './wx'\nimport type {\n ICreateTicketOpts,\n IGetUserInfoResult,\n IGetEndUserInfoResult,\n IUserInfoQuery,\n ITemplateNotifyReq,\n ICustomReqOpts,\n ICompleteCloudbaseContext,\n} from './types'\nimport { ICloudbaseConfig } from '@cloudbase/types'\n\n// 延迟加载 jsonwebtoken,避免非 Node 环境打包时引入此包\nlet jwtSign: ((...args: any[]) => any) | null = null\nasync function getJwtSign() {\n if (!jwtSign) {\n try {\n // @ts-ignore — 该包仅在 Node 运行时存在,开发环境可能未安装\n const mod = await import('jsonwebtoken')\n jwtSign = mod.default?.sign || mod.sign\n } catch (e) {\n console.error('缺少依赖 jsonwebtoken,请执行以下命令安装:\\n\\n'\n + ' npm install jsonwebtoken\\n\\n'\n + '该依赖用于 Node 环境下的自定义登录票据生成。')\n }\n }\n return jwtSign!\n}\n\n// ========== 辅助函数 ==========\n\n/**\n * 从云函数运行时上下文中获取当前请求的用户信息\n */\nfunction getDefaultUserInfo(): IGetUserInfoResult {\n const { WX_OPENID, WX_APPID, TCB_UUID, TCB_CUSTOM_USER_ID, TCB_ISANONYMOUS_USER } = getCloudbaseContext()\n\n return {\n openId: WX_OPENID || '',\n appId: WX_APPID || '',\n uid: TCB_UUID || '',\n customUserId: TCB_CUSTOM_USER_ID || '',\n isAnonymous: TCB_ISANONYMOUS_USER === 'true',\n }\n}\n\n/**\n * 调用后端管理接口查询用户信息\n */\nfunction sendUserInfoRequest(app: any, params: Record<string, any>): Promise<any> {\n return app?.request?.send?.('auth.getUserInfoForAdmin', params, {\n pathname: 'web',\n endPointMode: 'CLOUD_API',\n })\n}\n\n// ========== scfContext 存储(静态) ==========\n\nlet _scfContext: any = null\n\n// ========== nodeTool 主函数 ==========\n\n/**\n * 初始化 Node 端全部能力,直接挂载到 js-sdk app 实例上\n * 包含:auth 扩展方法、微信 API、文件操作增强、callFunction/callContainer 增强、\n * 模板消息推送、context 解析等\n *\n * @param app - js-sdk cloudbase 实例(init 返回值)\n * @param config - 配置信息\n */\nexport const nodeTool = (app: any, config: ICloudbaseConfig) => {\n const nodeConfig = config as any\n\n // ========== parseContext / getCloudbaseContext ==========\n\n app.parseContext = (context: any) => {\n const parseResult = parseContext(context)\n _scfContext = parseResult\n return parseResult\n }\n\n app.getCloudbaseContext = (context?: any): ICompleteCloudbaseContext => getCloudbaseContext(context)\n\n // ========== auth 扩展 ==========\n\n if (app.auth) {\n const authMethods: Record<string, any> = {\n /** 获取当前请求的用户信息(从环境变量读取,同步) */\n getUserInfo(): IGetUserInfoResult {\n return getDefaultUserInfo()\n },\n\n /**\n * 获取终端用户信息\n * 不传 uid 时返回当前请求用户信息,传 uid 时查询指定用户\n */\n async getEndUserInfo(uid?: string): Promise<IGetEndUserInfoResult> {\n const defaultUserInfo = getDefaultUserInfo()\n\n if (uid === undefined) {\n return { userInfo: defaultUserInfo }\n }\n validateUid(uid)\n\n return sendUserInfoRequest(app, {\n uuid: uid,\n envName: config.env,\n }).then((result: any) => {\n if (result.code) {\n return result\n }\n return {\n userInfo: { ...defaultUserInfo, ...result.data },\n requestId: result.requestId,\n }\n })\n },\n\n /**\n * 创建自定义登录 Ticket\n */\n async createTicket(uid: string, options: ICreateTicketOpts = {}): Promise<string> {\n validateUid(uid)\n\n const timestamp = new Date().getTime()\n const { credentials } = config.auth || {}\n const { env } = config\n\n if (!env) {\n throw { ...ERROR.INVALID_PARAM, message: 'no env in config' }\n }\n\n if (!credentials?.env_id) {\n throw {\n ...ERROR.INVALID_PARAM,\n message: '当前私钥未包含env_id 信息, 请前往腾讯云云开发控制台,获取自定义登录最新私钥',\n }\n }\n\n if (credentials.env_id !== env) {\n throw {\n ...ERROR.INVALID_PARAM,\n message: '当前私钥所属环境与 init 指定环境不一致!',\n }\n }\n\n const {\n refresh = 3600 * 1000,\n expire = timestamp + 7 * 24 * 60 * 60 * 1000,\n } = options\n const sign = await getJwtSign()\n const token = sign(\n {\n alg: 'RS256',\n env,\n iat: timestamp,\n exp: timestamp + 10 * 60 * 1000,\n uid,\n refresh,\n expire,\n },\n credentials.private_key,\n {\n allowInsecureKeySizes: true,\n algorithm: 'RS256',\n },\n )\n\n return `${credentials.private_key_id}/@@/${token}`\n },\n\n /**\n * 按条件查询用户信息(管理端接口)\n */\n async queryUserInfo(query: IUserInfoQuery): Promise<any> {\n const { uid, platform, platformId } = query\n return sendUserInfoRequest(app, {\n uuid: uid,\n platform,\n platformId,\n envName: config.env,\n }).then((result: any) => {\n if (result.code) {\n return result\n }\n return {\n userInfo: { ...result.data },\n requestId: result.requestId,\n }\n })\n },\n\n /** 获取客户端 IP 地址 */\n getClientIP(): string {\n const { TCB_SOURCE_IP } = getCloudbaseContext()\n return TCB_SOURCE_IP || ''\n },\n\n /** 获取 Auth Context(从运行环境中解析) */\n getAuthContext(context?: any) {\n const fullContext = getCloudbaseContext(context) as any\n const { TCB_UUID, LOGINTYPE, QQ_OPENID, QQ_APPID } = fullContext\n const result: any = {\n uid: TCB_UUID,\n loginType: LOGINTYPE,\n }\n if (LOGINTYPE === 'QQ-MINI') {\n result.appId = QQ_APPID\n result.openId = QQ_OPENID\n }\n return result\n },\n\n /** 获取客户端凭证 */\n async getClientCredential(opts?: ICustomReqOpts) {\n if (nodeConfig.accessKey || config.accessKey) {\n return nodeConfig.accessKey || config.accessKey\n }\n\n const origin = app.request.getBaseEndPoint('GATEWAY')\n const clientAuthPath = '/auth/v1/token/clientCredential'\n\n const res = await app.request.post(\n {\n url: `${origin}${clientAuthPath}`,\n data: { grant_type: 'client_credentials' },\n headers: { 'content-type': 'application/json' },\n },\n opts ? { timeout: opts.timeout } : undefined\n )\n\n return res.data\n },\n }\n\n /**\n * 挂载 auth 扩展方法\n *\n * app.auth 是一个 Proxy 包装的函数对象:\n * - 作为属性访问 app.auth.xxx 时,访问的是这个函数对象本身\n * - 作为函数调用 app.auth() 时,返回的是内部缓存的 authInstance(纯 Auth 实例)\n *\n * 两者是不同的对象,所以需要:\n * 1. 在 app.auth(函数对象)上挂载方法 —— 支持 app.auth.getUserInfo()\n * 2. 用 Proxy 包装 app.auth,在每次调用 app.auth() 时,把方法也同步到返回的 authInstance 上\n * —— 支持 const auth = app.auth(); auth.getUserInfo()\n */\n const originalAuth = app.auth\n\n // 先在 app.auth 函数对象本身上挂载方法\n Object.keys(authMethods).forEach((key) => {\n originalAuth[key] = authMethods[key]\n })\n\n // 用 Proxy 拦截函数调用,确保 app.auth() 返回的实例也带有这些方法\n app.auth = new Proxy(originalAuth, {\n apply(target: any, thisArg: any, argArray: any[]) {\n const authInstance = Reflect.apply(target, thisArg, argArray)\n // 将扩展方法同步到 authInstance 上(如果还没有的话)\n if (authInstance && typeof authInstance === 'object') {\n Object.keys(authMethods).forEach((key) => {\n if (!(key in authInstance)) {\n authInstance[key] = authMethods[key]\n }\n })\n }\n return authInstance\n },\n })\n }\n\n // ========== sendTemplateNotification ==========\n\n app.sendTemplateNotification = (params: ITemplateNotifyReq, opts?: { timeout?: number }) => app?.callFunction?.(\n {\n name: 'lowcode-datasource',\n data: {\n methodName: 'callWedaApi',\n params: {\n action: 'PushNotifyMsg',\n data: {\n NotifyId: params.notifyId,\n Data: JSON.stringify(params.data),\n NotifyUsers: undefined,\n Url: params.url,\n },\n },\n mode: 'c',\n },\n },\n undefined,\n opts,\n )\n\n // ========== 微信 API ==========\n\n function _getWxOptions(): ISendWxRequestOptions {\n const serviceUrl = nodeConfig.serviceUrl || getServerInjectUrl() || undefined\n return getWxOptions(nodeConfig, _scfContext, serviceUrl || '', app.request)\n }\n\n app.callWxOpenApi = (wxOpenApiOptions: any, opts?: ICustomReqOpts) => callWxOpenApi(_getWxOptions(), wxOpenApiOptions, opts)\n\n app.callWxPayApi = (wxOpenApiOptions: any, opts?: ICustomReqOpts) => callWxPayApi(_getWxOptions(), wxOpenApiOptions, opts)\n\n app.wxCallContainerApi = (wxOpenApiOptions: any, opts?: ICustomReqOpts) => wxCallContainerApi(_getWxOptions(), wxOpenApiOptions, opts)\n\n app.callCompatibleWxOpenApi = (wxOpenApiOptions: any, opts?: ICustomReqOpts) => callCompatibleWxOpenApi(_getWxOptions(), wxOpenApiOptions, opts)\n\n // ========== getFileAuthority ==========\n\n app.getFileAuthority = async ({ fileList }: { fileList: Array<{ type: string; path: string }> }, opts?: ICustomReqOpts) => {\n const { LOGINTYPE } = getCloudbaseContext()\n if (!Array.isArray(fileList)) {\n throw E({\n ...ERROR.INVALID_PARAM,\n message: '[js-sdk] getCosFileAuthority fileList must be a array',\n })\n }\n\n if (\n fileList.some((file) => {\n if (!file?.path) return true\n if (!['READ', 'WRITE', 'READWRITE'].includes(file.type)) return true\n return false\n })\n ) {\n throw E({\n ...ERROR.INVALID_PARAM,\n message: '[js-sdk] getCosFileAuthority fileList param error',\n })\n }\n\n const { userInfo } = await app.auth.getEndUserInfo()\n const { openId, uid } = userInfo\n\n if (!openId && !uid) {\n throw E({\n ...ERROR.INVALID_PARAM,\n message: '[js-sdk] admin do not need getCosFileAuthority.',\n })\n }\n\n const params = {\n openId,\n uid,\n loginType: LOGINTYPE,\n fileList,\n }\n\n const res = await app.request.send(\n 'storage.getFileAuthority',\n params,\n { pathname: 'web', endPointMode: 'GATEWAY' },\n opts ? { timeout: opts.timeout } : undefined\n )\n\n if (res.code) {\n throw E({ ...res, message: `[js-sdk] getCosFileAuthority failed: ${res.code}` })\n } else {\n return res\n }\n }\n\n // ========== callApis ==========\n\n app.callApis = async (callApiOptions: any, opts?: ICustomReqOpts) => {\n if (app.apis) {\n const { name, path: apiPath = '', method = 'POST', header = {}, body, token } = callApiOptions\n const apiMethod = (method || 'POST').toLowerCase()\n return app.apis[name]?.[apiMethod]?.({\n path: apiPath,\n method,\n headers: header,\n body,\n token,\n }, opts)\n }\n throw new Error('callApis is not supported in current configuration')\n }\n}\n","import { utils } from '@cloudbase/utilities'\nimport { ReadableStream } from 'web-streams-polyfill'\nimport { ERROR, checkCustomUserIdRegex } from './constants'\nimport { lookupAppId } from './metadata'\n\n/** 从 @cloudbase/utilities 中提取的表单和查询字符串工具 */\nexport const { isFormData, toQueryString } = utils as {\n isFormData: (obj: unknown) => boolean\n toQueryString: (data: Record<string, any>) => string\n}\n\n/**\n * 跨端安全获取环境变量\n * Web 端、小游戏端等没有 process 全局对象,直接访问 process.env 会报错\n */\nexport function getEnv(): Record<string, string | undefined>\nexport function getEnv(key: string): string | undefined\nexport function getEnv(key?: string): string | undefined | Record<string, string | undefined> {\n if (typeof process === 'undefined' || !process.env) {\n return key !== undefined ? undefined : {}\n }\n return key !== undefined ? process.env[key] : process.env\n}\n\n/** 判断当前是否在 SCF(云函数)运行环境中 */\nexport const checkIsInScf = () => getEnv('TENCENTCLOUD_RUNENV') === 'SCF'\n\nexport function checkIsInCBR() {\n // CBR = CLOUDBASE_RUN\n return !!getEnv('CBR_ENV_ID')\n}\n\nconst kSumeruEnvSet = new Set(['formal', 'pre', 'test'])\nexport function checkIsInSumeru() {\n // SUMERU_ENV=formal | test | pre\n return kSumeruEnvSet.has(getEnv('SUMERU_ENV') || '')\n}\n\nexport async function checkIsInTencentCloud(): Promise<boolean> {\n if (getEnv('TENCENTCLOUD') === 'true') {\n return true\n }\n const appId = await lookupAppId()\n return typeof appId === 'string' && appId !== ''\n}\n\nexport const getCurrRunEnvTag = async (): Promise<string> => {\n if (checkIsInScf()) {\n return 'scf'\n } if (checkIsInCBR()) {\n return 'cbr'\n } if (checkIsInSumeru()) {\n return 'sumeru'\n } if (await checkIsInTencentCloud()) {\n return 'tencentcloud'\n }\n return 'unknown'\n}\n\n/**\n * 校验自定义用户 ID 格式\n * @throws 格式不合法时抛出 INVALID_PARAM 错误\n */\nexport const validateUid = (uid: string): void => {\n if (typeof uid !== 'string') {\n throw { ...ERROR.INVALID_PARAM, message: 'uid must be a string' }\n }\n if (!checkCustomUserIdRegex.test(uid)) {\n throw { ...ERROR.INVALID_PARAM, message: `Invalid uid: \"${uid}\"` }\n }\n}\n\n/**\n * 安全的 JSON 解析,解析失败时返回原始文本而非抛异常\n * @param text - 待解析的字符串\n * @returns 解析后的对象,空字符串返回 null,解析失败返回原始文本\n */\nexport function safeParseJson(text: string): any {\n if (!text || !text.trim()) {\n return null\n }\n try {\n return JSON.parse(text)\n } catch (e) {\n console.warn('catch an error', { e, text })\n return text\n }\n}\n\n/**\n * 将对象的所有值转为字符串类型\n * 用于将 headers 等对象统一为 Record<string, string>\n */\nexport function obj2StrRecord(obj: object): Record<string, string> {\n return Object.entries(obj).reduce<Record<string, string>>((acc, cur: [string, unknown]) => {\n const [key, value] = cur\n acc[key] = String(value)\n return acc\n }, {})\n}\n\n/**\n * 将 HeadersInit 转为可索引的普通对象\n * 兼容 Headers 实例和普通对象两种形式\n */\nexport function headersInit2Indexable(h: HeadersInit) {\n if (isHeaders(h)) {\n const ret: Record<string, string> = {}\n h.forEach((val, key) => {\n ret[key] = val\n })\n return ret\n }\n return h\n\n function isHeaders(h: HeadersInit): h is Headers {\n try {\n // Node 低版本可能没有全局 Headers\n return h instanceof Headers\n } catch (_) {\n return false\n }\n }\n}\n\n/**\n * 手动解析查询字符串,避免 URLSearchParams 的兼容性问题\n * 支持重复 key 自动转为数组\n * @param search - 查询字符串,可带前导 ? 或 #\n */\nexport function parseQueryString(search: string): Record<string, string | string[]> {\n const params: any = {}\n const cleanSearch = search.replace(/^[?#]/, '')\n\n if (!cleanSearch) {\n return params\n }\n\n const pairs = cleanSearch.split('&')\n\n pairs.forEach((item) => {\n let [key, value] = item.split('=')\n key = decodeURIComponent(key)\n value = decodeURIComponent(value || '')\n if (key) {\n if (params[key]) {\n // 已存在同名 key,转为数组\n if (Array.isArray(params[key])) {\n params[key].push(value)\n } else {\n params[key] = [params[key], value]\n }\n } else {\n params[key] = value\n }\n }\n })\n return params\n}\n\n/**\n * 将 Node ReadableStream 转换为 Web ReadableStream (polyfill)\n * 用于 fetch 流式响应在 Node 环境下的适配\n */\nexport function createWebStreamFromNodeReadableStream(stream: NodeJS.ReadableStream): ReadableStream {\n const asyncIterator = stream[Symbol.asyncIterator]()\n\n return new ReadableStream({\n async pull(controller) {\n const next = await asyncIterator.next()\n\n if (next.done) {\n controller.close()\n } else {\n controller.enqueue(next.value)\n }\n },\n })\n}\n\n// ========== 从 node-sdk utils/utils.ts 整合的工具函数 ==========\n\ninterface IErrorInfo {\n requestId?: string\n code?: string\n message?: string\n}\n\nexport class TcbError extends Error {\n public readonly code: string\n public readonly message: string\n public readonly requestId: string\n\n public constructor(error: IErrorInfo) {\n super(error.message)\n this.code = error.code || ''\n this.message = error.message || ''\n this.requestId = error.requestId || ''\n }\n}\n\n/** 创建 TcbError 实例的快捷方法 */\nexport function E(errObj: IErrorInfo) {\n return new TcbError(errObj)\n}\n\nexport function filterValue(o: any, value: any) {\n for (const key in o) {\n if (o[key] === value) {\n /* eslint-disable-next-line @typescript-eslint/no-dynamic-delete */\n delete o[key]\n }\n }\n}\n\nexport function filterUndefined(o: any) {\n filterValue(o, undefined)\n}\n\n// 兼容模式开关,兼容模式下,不抛出异常,直接返回\nlet throwOnCode = true\n\nexport function setThrowOnCode(value: boolean) {\n throwOnCode = value\n}\n\nexport function processReturn(result: any) {\n if (!throwOnCode) {\n return result\n }\n throw E({ ...result })\n}\n\n/**\n * 是否是场景模块名\n * $: 前缀,表示SaaS场景模块名,非实际环境ID\n */\nexport function isPageModuleName(envId = '') {\n return typeof envId === 'string' && envId.startsWith('$:')\n}\n\n// 20 + 1 + 16, 限制长度 40\nconst kEnvRuleReg = /^[a-z0-9_-]{1,40}$/\n\nexport function isValidEnvFormat(env = '') {\n return typeof env === 'string' && kEnvRuleReg.test(env)\n}\n\n// ========== 从 node-sdk const/symbol.ts 整合的常量 ==========\n\nexport const SYMBOL_CURRENT_ENV = Symbol.for('SYMBOL_CURRENT_ENV') // 当前环境\nexport const SYMBOL_DEFAULT_ENV = Symbol.for('SYMBOL_DEFAULT_ENV') // 默认环境\n","/**\n * 微信云开发相关请求辅助函数\n * 从 node-sdk 中提取,整合到 adapter-node 统一管理\n */\nimport * as fs from 'fs'\nimport { getCloudbaseContext } from './context'\nimport type { ICustomReqOpts } from './types'\n\n// ========== 微信业务函数(从 node-sdk wx/index.ts 整合) ==========\n\nimport { E } from './utils'\nimport { ERROR } from './constants'\n\n// ========== 微信 Token 辅助函数 ==========\n\nconst CLOUDBASE_ACCESS_TOKEN_PATH = '/.tencentcloudbase/wx/cloudbase_access_token'\nconst maxCacheAge = 10 * 60 * 1000\nconst cloudbaseAccessTokenInfo = { token: '', timestamp: 0 }\n\nfunction loadWxCloudbaseAccesstoken(): string {\n if (cloudbaseAccessTokenInfo.token && Date.now() - cloudbaseAccessTokenInfo.timestamp < maxCacheAge) {\n return cloudbaseAccessTokenInfo.token\n }\n\n try {\n if (process.env.TENCENTCLOUD_RUNENV === 'WX_LOCAL_SCF' || process.env.TENCENTCLOUD_RUNENV === 'SCF') {\n if (fs.existsSync(CLOUDBASE_ACCESS_TOKEN_PATH)) {\n cloudbaseAccessTokenInfo.token = fs.readFileSync(CLOUDBASE_ACCESS_TOKEN_PATH).toString()\n cloudbaseAccessTokenInfo.timestamp = Date.now()\n return cloudbaseAccessTokenInfo.token\n }\n }\n } catch (e) {\n console.warn('[TCB][ERROR]: loadWxCloudbaseAccesstoken error: ', e)\n }\n\n return ''\n}\n\nexport function getWxCloudToken(): { wxCloudApiToken: string; wxCloudbaseAccesstoken?: string } {\n const context: any = getCloudbaseContext()\n const { TRIGGER_SRC, WX_TRIGGER_API_TOKEN_V0, WX_API_TOKEN, WX_CLOUDBASE_ACCESSTOKEN = '' } = context\n\n const wxCloudToken: any = {}\n\n if (TRIGGER_SRC === 'timer') {\n wxCloudToken.wxCloudApiToken = WX_TRIGGER_API_TOKEN_V0 || WX_API_TOKEN || ''\n } else {\n wxCloudToken.wxCloudApiToken = WX_API_TOKEN || ''\n }\n\n if (!wxCloudToken.wxCloudApiToken) {\n wxCloudToken.wxCloudbaseAccesstoken = WX_CLOUDBASE_ACCESSTOKEN || loadWxCloudbaseAccesstoken()\n }\n\n return wxCloudToken\n}\n\n// ========== buildAdminUrl 辅助函数 ==========\n\n/** 判断 envId 是否可用作域名前缀(比通用格式校验更严格) */\nfunction isValidEnvDomain(envId: string): boolean {\n return /^[a-z][a-z0-9-]*[a-z0-9]$/.test(envId)\n}\n\nlet seqNum = 0\nfunction genSeqId(): string {\n seqNum += 1\n const eventId = `${Date.now().toString(16)}_${(seqNum).toString(16)}`\n const context: any = getCloudbaseContext()\n const { TCB_SEQID = '' } = context\n return TCB_SEQID ? `${TCB_SEQID}-${eventId}` : eventId\n}\n\n/**\n * 构建 /admin 路径的完整 URL\n * @param config - cloudbase 配置\n * @param scfContext - 云函数 context(含 requestId)\n * @param serviceUrl - 自定义服务端 URL(覆盖默认值)\n */\nexport function buildAdminUrl(config: any, scfContext?: any, serviceUrl?: string): string {\n const envId: string = typeof config.env === 'symbol'\n ? (process.env.TCB_ENV || process.env.SCF_NAMESPACE || '')\n : (config.env || '')\n const region = config.region || process.env.TENCENTCLOUD_REGION || ''\n const seqId = genSeqId()\n\n const endpoint = region\n ? `${region}.tcb-api.tencentcloudapi.com`\n : 'tcb-api.tencentcloudapi.com'\n const envEndpoint = isValidEnvDomain(envId) ? `${envId}.${endpoint}` : endpoint\n\n const protocol = 'https'\n const path = '/admin'\n const defaultUrl = `${protocol}://${envEndpoint}${path}`\n\n const url = serviceUrl || defaultUrl\n\n const qs = scfContext\n ? `env=${envId}&seqId=${seqId}&scfRequestId=${scfContext.requestId}`\n : `env=${envId}&seqId=${seqId}`\n\n return url.includes('?') ? `${url}${qs}` : `${url}?${qs}`\n}\n\n// ========== 微信请求函数 ==========\n\n/**\n * 为微信请求 params 补充 token 和 sessionToken 公共字段\n */\nfunction appendWxTokenParams(params: any): void {\n const context: any = getCloudbaseContext()\n const { wxCloudApiToken, wxCloudbaseAccesstoken } = getWxCloudToken()\n params.wxCloudApiToken = wxCloudApiToken\n if (wxCloudbaseAccesstoken) {\n params.wxCloudbaseAccesstoken = wxCloudbaseAccesstoken\n }\n params.tcb_sessionToken = context.TCB_SESSIONTOKEN || ''\n}\n\nexport interface ISendWxRequestOptions {\n /** app.request 实例(NodeRequest),需具有 post 和 send 方法 */\n requestInstance: any\n /** cloudbase 配置 */\n config: any\n /** 云函数入口 scfContext(含 requestId) */\n scfContext?: any\n /** 自定义服务端 URL */\n serviceUrl?: string\n}\n\n/**\n * 使用 JSON 格式发送 wx 请求(用于 callWxOpenApi)\n * @param options - 请求实例和配置\n * @param action - 请求动作(如 'wx.api')\n * @param params - 请求参数\n * @param reqOpts - 自定义请求选项(如 timeout)\n */\nexport async function sendWxRequest(\n options: ISendWxRequestOptions,\n action: string,\n params: any,\n reqOpts?: ICustomReqOpts\n) {\n appendWxTokenParams(params)\n\n return options.requestInstance.send(\n action,\n params,\n { pathname: 'web', endPointMode: 'GATEWAY' },\n reqOpts ? { timeout: reqOpts.timeout } : undefined\n )\n}\n\n/**\n * 使用 multipart/form-data 格式发送 wx 请求(用于 callCompatibleWxOpenApi / callWxPayApi / wxCallContainerApi)\n * 自动处理 form-data 构建、签名和发送\n * 与旧版 SDK 的请求格式(multipart/form-data + /admin 路径)完全一致\n *\n * @param options - 请求实例和配置\n * @param action - 请求动作(如 'wx.openApi'、'wx.wxPayApi'、'wx.wxCallContainerApi')\n * @param params - 请求参数\n * @param reqOpts - 自定义请求选项(如 timeout)\n */\nexport async function sendWxFormDataRequest(\n options: ISendWxRequestOptions,\n action: string,\n params: any,\n reqOpts?: ICustomReqOpts\n): Promise<any> {\n appendWxTokenParams(params)\n\n // 延迟加载 form-data 包\n let FormData: any\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n FormData = require('form-data')\n } catch (e) {\n throw new Error('缺少依赖 form-data,请执行 npm install form-data')\n }\n\n // 使用 form-data 包构建 FormData(兼容 Node.js < 18 的云函数环境)\n const formData = new FormData()\n formData.append('action', action)\n for (const key of Object.keys(params)) {\n if (params[key] !== undefined) {\n formData.append(key, params[key])\n }\n }\n\n // 构建签名用的纯对象(getReqOptions 用它做 multipart 签名)\n const plainObj: any = { action, ...params }\n ;(formData as any).__plainObj = plainObj\n\n // 构建 admin URL\n const url = buildAdminUrl(options.config, options.scfContext, options.serviceUrl)\n\n // 通过 request.post 发送(responseType 为 buffer 以兼容旧版二进制响应格式)\n const res = await options.requestInstance.post(\n {\n url,\n body: formData,\n headers: formData.getHeaders(),\n responseType: 'buffer',\n },\n reqOpts ? { timeout: reqOpts.timeout } : undefined\n )\n\n // 返回 response data\n if (res.data) {\n return res.data\n }\n return res\n}\n\n/**\n * 校验跨帐号调用配置\n */\nfunction validateCrossAccount(config: any, opts: any = {}): void {\n const getCrossAccountInfo = opts.getCrossAccountInfo || config.getCrossAccountInfo\n if (getCrossAccountInfo) {\n throw E({\n ...ERROR.INVALID_PARAM,\n message: 'invalid config: getCrossAccountInfo',\n })\n }\n}\n\n/**\n * 获取微信请求所需的 wxOptions 参数\n * @param config - cloudbase 配置\n * @param scfContext - 云函数 context\n * @param serviceUrl - 服务端注入 URL\n * @param requestInstance - request 实例\n */\nexport function getWxOptions(config: any, scfContext: any, serviceUrl: string, requestInstance: any): ISendWxRequestOptions {\n return { requestInstance, config, scfContext, serviceUrl }\n}\n\n/**\n * callWxOpenApi - 调用微信开放接口(JSON 格式)\n */\nexport async function callWxOpenApi(\n wxOptions: ISendWxRequestOptions,\n { apiName, apiOptions, cgiName, requestData }: { apiName: string; apiOptions?: any; cgiName?: string; requestData: any },\n opts?: ICustomReqOpts\n) {\n let transformRequestData: any\n try {\n transformRequestData = requestData ? JSON.stringify(requestData) : ''\n } catch (e: any) {\n throw E({ ...e, code: ERROR.INVALID_PARAM.code, message: '对象出现了循环引用' })\n }\n\n validateCrossAccount(wxOptions.config, opts)\n\n const params: any = {\n apiName,\n apiOptions,\n cgiName,\n requestData: transformRequestData,\n }\n\n const res = await sendWxRequest(wxOptions, 'wx.api', params, opts)\n\n if (res.code) {\n return res\n }\n\n let result: any\n try {\n result = JSON.parse(res.responseData)\n } catch (e) {\n result = res.responseData\n }\n return {\n result,\n requestId: res.requestId,\n }\n}\n\n/**\n * 通用的 form-data 格式微信 API 调用(内部复用)\n * callCompatibleWxOpenApi / callWxPayApi / wxCallContainerApi 均委托此函数\n */\nasync function callWxFormDataApi(\n action: string,\n wxOptions: ISendWxRequestOptions,\n { apiName, apiOptions, cgiName, requestData }: { apiName: string; apiOptions?: any; cgiName?: string; requestData: any },\n opts?: ICustomReqOpts\n) {\n validateCrossAccount(wxOptions.config, opts)\n return sendWxFormDataRequest(wxOptions, action, { apiName, apiOptions, cgiName, requestData }, opts)\n}\n\n/** callCompatibleWxOpenApi - 调用兼容的微信开放接口(form-data 格式) */\nexport const callCompatibleWxOpenApi = (\n wxOptions: ISendWxRequestOptions,\n apiOpts: { apiName: string; apiOptions?: any; cgiName?: string; requestData: any },\n opts?: ICustomReqOpts\n) => callWxFormDataApi('wx.openApi', wxOptions, apiOpts, opts)\n\n/** callWxPayApi - 调用微信支付接口(form-data 格式) */\nexport const callWxPayApi = (\n wxOptions: ISendWxRequestOptions,\n apiOpts: { apiName: string; apiOptions?: any; cgiName?: string; requestData: any },\n opts?: ICustomReqOpts\n) => callWxFormDataApi('wx.wxPayApi', wxOptions, apiOpts, opts)\n\n/** wxCallContainerApi - 调用微信云托管容器接口(form-data 格式) */\nexport const wxCallContainerApi = (\n wxOptions: ISendWxRequestOptions,\n apiOpts: { apiName: string; apiOptions?: any; cgiName?: string; requestData: any },\n opts?: ICustomReqOpts\n) => callWxFormDataApi('wx.wxCallContainerApi', wxOptions, apiOpts, opts)\n","import { Db } from '@cloudbase/database'\nimport { ICloudbase } from '@cloudbase/types'\nimport { ICloudbaseComponent } from '@cloudbase/types/component'\nimport cloudbaseNS from '../../index'\nimport { EJSON } from 'bson'\n\ndeclare const cloudbase: ICloudbase\ndeclare type QueryType = 'WHERE' | 'DOC'\n\n/**\n * 数据库配置接口\n */\ninterface IDbConfig {\n /** 实例 ID(可选,默认 '(default)') */\n instance?: string\n /** 数据库名称(可选,默认 '(default)') */\n database?: string\n}\n\ninterface IBaseReq extends IDbConfig {\n collectionName: string\n transactionId?: string\n}\n\ninterface IDocumentsQueryReq extends IBaseReq {\n query?: any\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n order?: string[]\n offset?: number\n limit?: number\n projection?: Object\n}\n\ninterface IDocumentsAddReq extends IBaseReq {\n data: Object | Object[]\n}\n\ninterface IDocumentsUpdateReq extends IBaseReq {\n query: Object\n data: Object\n /** 是否批量更新(默认 false) */\n multi?: boolean\n /** 把所有更新数据转为带操作符的 */\n merge?: boolean\n /** 不存在时是否创建(默认 false) */\n upsert?: boolean\n /** 是否替换整个文档(默认 false,为 true 时替换整个文档而非合并更新) */\n replaceMode?: boolean\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n}\n\ninterface IDocumentsRemoveReq extends IBaseReq {\n query: Object\n /** 是否批量删除(默认 false) */\n multi?: boolean\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n}\n\ninterface IDocumentsCountReq extends IBaseReq {\n query: Object\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n}\n\ninterface ICommonRes<T> {\n data?: T & { code?: string }\n requestId: string\n code?: string\n message?: string\n}\n\ninterface IAddRes {\n /** 单条插入时返回的文档 ID(批量插入时不返回) */\n _id?: string\n /** 批量插入时返回的文档 ID 列表 */\n ids?: string[]\n insertedIds: string[]\n}\n\ninterface IRunCommandsReq {\n transactionId?: string\n /** 命令数组,方法会将其转为 MongoDB 原生命令(EJSON 对象格式) */\n commands: Object[]\n}\n\nconst COMPONENT_NAME = 'database'\n\nconst gateWayFunc = {\n /**\n * 过滤响应,移除不必要的字段\n */\n filterRes: function <T>(res: ICommonRes<T> & { header?: any; statusCode?: number }): ICommonRes<T> {\n delete res.header\n delete res.statusCode\n return res\n },\n\n /**\n * 展开响应数据到顶层(用于事务等场景)\n */\n flattenResData: function <T>(res: ICommonRes<T>): any {\n if (typeof res.data === 'object' && res.data !== null) {\n const result = { ...res, ...res.data }\n delete result.data\n return result\n }\n return res\n },\n\n /**\n * 安全解析 EJSON\n */\n safeParseEJSON: function (data: any): any {\n if (typeof data !== 'string') return data\n try {\n return EJSON.parse(data)\n } catch {\n return data\n }\n },\n\n /**\n * 构建 URL 查询参数\n */\n buildQueryParams: function (params: Record<string, any>): string {\n return Object.entries(params)\n .filter(([_, value]) => value !== undefined && value !== null && value !== '')\n .map(([key, value]) => {\n const stringValue = typeof value === 'object' ? JSON.stringify(value) : String(value)\n return `${encodeURIComponent(key)}=${encodeURIComponent(stringValue)}`\n })\n .join('&')\n },\n\n /**\n * 获取 URL 前缀\n */\n getUrlPrefix: function (data: IDbConfig): string {\n const instance = data?.instance || '(default)'\n const database = data?.database || '(default)'\n return `/database/instances/${instance}/databases/${database}`\n },\n\n 'database.queryDocument': async function (\n data: IDocumentsQueryReq,\n ): Promise<ICommonRes<{ offset?: number; limit?: number; list: any[] }>> {\n const isQueryDoc = !!data.query?._id?.$eq\n const queryParams = gateWayFunc.buildQueryParams({\n projection: data.projection,\n transactionId: data.transactionId,\n ...(isQueryDoc\n ? {}\n : {\n offset: data.offset ?? 0,\n limit: data.limit ?? 100,\n order: data.order,\n query: data.query ? EJSON.stringify(data.query, { relaxed: false }) : undefined,\n }),\n })\n\n let url = `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents?${queryParams}`\n\n // 查询单个文档\n if (isQueryDoc) {\n url = `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents/${\n data.query._id?.$eq || data.query._id\n }?${queryParams}`\n }\n\n let res = await this.gateWay({\n url,\n method: 'GET',\n })\n\n // 尝试解析 EJSON 格式的数据\n res.data = gateWayFunc.safeParseEJSON(JSON.stringify(res.data))\n\n if (isQueryDoc && !res.code && !res.data?.code) {\n return {\n ...res,\n data: { list: [res.data] }\n }\n }\n\n // 确保 res.data.list 为数组,兼容后端返回数据或直接返回文档数组的情况\n if (!res.code && !res.data?.code) {\n if (Array.isArray(res.data)) {\n // 后端直接返回文档数组\n res = { ...res, data: { list: res.data } }\n } else if (res.data && !Array.isArray(res.data.list)) {\n // 后端返回对象但缺少 list 字段\n res = { ...res, data: { ...res.data, list: [] } }\n }\n } else {\n res = { ...res, code: res.code || res.data?.code, data: { ...res.data, list: [] } }\n }\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.addDocument': async function (data: IDocumentsAddReq): Promise<ICommonRes<IAddRes>> {\n let res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents`,\n method: 'POST',\n data: {\n data: Array.isArray(data.data) ? data.data : [data.data],\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n if (Array.isArray(data.data)) {\n // 数组模式(批量插入),返回 ids 列表\n res = {\n ...res,\n data: {\n ids: res.data?.insertedIds || [],\n ...res.data,\n },\n }\n } else if (res.data?.insertedIds?.[0]) {\n // 非数组模式(单条插入),将 _id 提升到顶层\n res = {\n ...res,\n data: {\n _id: res.data.insertedIds[0],\n ...res.data,\n },\n }\n }\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.updateDocument': async function (\n data: IDocumentsUpdateReq,\n ): Promise<ICommonRes<{ matched: number; updated: number; upsert_id: string }>> {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents`,\n method: 'PATCH',\n data: {\n query: data.query,\n data: data.data,\n multi: !!data.multi,\n upsert: !!data.upsert,\n replaceMode: !!data.replaceMode,\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.deleteDocument': async function (data: IDocumentsRemoveReq): Promise<ICommonRes<{ deleted: number }>> {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents/remove`,\n method: 'POST',\n data: {\n query: data.query,\n multi: !!data.multi,\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.countDocument': async function (data: IDocumentsCountReq): Promise<ICommonRes<{ total: number }>> {\n const queryParams = gateWayFunc.buildQueryParams({\n count: true,\n query: data.query ? EJSON.stringify(data.query, { relaxed: false }) : undefined,\n })\n\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents?${queryParams}`,\n method: 'GET',\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.addCollection': async function (data: { collectionName: string } & IDbConfig): Promise<ICommonRes<''>> {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections`,\n method: 'POST',\n data: { collectionName: data.collectionName },\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.aggregate': async function (\n data: { collectionName: string; stages: { stageKey: string; stageValue: any }[] } & IDbConfig,\n ): Promise<ICommonRes<{ list: string }>> {\n const pipeline = data.stages.map((stage) => {\n try {\n // stageValue 可能是字符串或对象,统一处理\n const value = typeof stage.stageValue === 'string' ? JSON.parse(stage.stageValue) : stage.stageValue\n return {\n [stage.stageKey]: EJSON.serialize(value),\n }\n } catch {\n return { [stage.stageKey]: stage.stageValue }\n }\n })\n\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents/aggregations`,\n method: 'POST',\n data: { pipeline },\n })\n\n // 将结果列表转为字符串格式(兼容原有逻辑)\n if (Array.isArray(res.data?.list)) {\n res.data.list = JSON.stringify(res.data.list.map((item: any) => JSON.stringify(item)))\n }\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.startTransaction': async function (data: IDbConfig) {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/transactions`,\n method: 'POST',\n })\n\n return gateWayFunc.filterRes(gateWayFunc.flattenResData(res))\n },\n\n 'database.commitTransaction': async function (data: { transactionId: string } & IDbConfig) {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/transactions/${data.transactionId}/commit`,\n method: 'POST',\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.abortTransaction': async function (data: { transactionId: string } & IDbConfig) {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/transactions/${data.transactionId}/rollback`,\n method: 'POST',\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.getInTransaction': async function (data: IDocumentsQueryReq) {\n const res = await gateWayFunc['database.queryDocument'].call(this, data)\n\n if (typeof res.data === 'object' && res.data !== null) {\n if (res.data?.code) {\n return gateWayFunc.flattenResData(res)\n }\n return { ...res, data: JSON.stringify(res.data) as any }\n }\n\n return res\n },\n\n 'database.updateDocInTransaction': async function (data: IDocumentsUpdateReq) {\n // 尝试解析 EJSON 格式的数据\n data.data = gateWayFunc.safeParseEJSON(data.data)\n\n const res = await gateWayFunc['database.updateDocument'].call(this, data)\n return gateWayFunc.flattenResData(res)\n },\n\n 'database.deleteDocInTransaction': async function (data: IDocumentsRemoveReq) {\n const res = await gateWayFunc['database.deleteDocument'].call(this, data)\n return gateWayFunc.flattenResData(res)\n },\n\n 'database.insertDocInTransaction': async function (\n data: IDocumentsAddReq,\n ): Promise<ICommonRes<IAddRes & { inserted?: number }>> {\n // 尝试解析 EJSON 格式的数据\n data.data = gateWayFunc.safeParseEJSON(data.data)\n\n let res = await gateWayFunc['database.addDocument'].call(this, data)\n\n if (typeof res.data === 'object' && res.data !== null) {\n const hasId = !!res.data?._id\n res = {\n ...res,\n inserted: hasId ? 1 : 0,\n ok: hasId ? 1 : 0,\n ...res.data,\n } as any\n } else {\n res = { inserted: 0, ok: 0, ...res } as any\n }\n\n delete res.data\n\n return res\n },\n\n 'database.runCommands': async function (\n data: IRunCommandsReq & IDbConfig,\n ): Promise<ICommonRes<{ list: Object[][] }>> {\n let res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/commands`,\n method: 'POST',\n data: {\n commands: EJSON.serialize(data.commands),\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n if (typeof res.data === 'object' && res.data !== null) {\n res = { ...res, ...res.data }\n delete res.data\n delete res.request_id\n }\n\n // 尝试将结果转换为普通对象\n try {\n res = EJSON.deserialize(res)\n } catch {\n // 忽略转换失败\n }\n\n return gateWayFunc.filterRes(res)\n },\n}\n\nfunction database(dbConfig?: IDbConfig) {\n const { adapter, runtime } = this.platform\n\n class Req extends this.request.constructor {\n constructor(config) {\n super(config)\n }\n\n async send(action: string, data: any) {\n let res = null\n\n if (this.config.endPointMode === 'GATEWAY' && gateWayFunc[action]) {\n res = await gateWayFunc[action].call(this, data)\n } else {\n res = await super.send(action, data)\n }\n\n return res\n }\n }\n\n Db.reqClass = Req\n // 未登录情况下传入空函数\n Db.getAccessToken = this.authInstance ? this.authInstance.getAccessToken.bind(this.authInstance) : () => ''\n Db.runtime = runtime\n if (this.wsClientClass) {\n Db.wsClass = adapter.wsClass\n Db.wsClientClass = this.wsClientClass\n }\n\n if (!Db.ws) {\n Db.ws = null\n }\n\n class NewDb extends Db {\n constructor(config?: IDbConfig) {\n super(config)\n }\n\n async runCommands(params: IRunCommandsReq): Promise<ICommonRes<{ list: Object[][] }>> {\n let request = Db.createRequest(this.config)\n\n return request.send('database.runCommands', params)\n }\n }\n\n return new NewDb({ ...this.config, _fromApp: this, ...dbConfig })\n}\n\nconst component: ICloudbaseComponent = {\n name: COMPONENT_NAME,\n entity: {\n database,\n },\n}\ntry {\n cloudbase.registerComponent(component)\n} catch (e) {}\n\nexport function registerDatabase(app: ICloudbase | typeof cloudbaseNS) {\n try {\n app.registerComponent(component)\n } catch (e) {\n console.warn(e)\n }\n}\n\ntry {\n ;(window as any).registerDatabase = registerDatabase\n} catch (e) {}\n","/**\n * Node.js 总入口\n * 在 app/src/index.node.ts 基础上注册所有子模块\n *\n * webpack alias 会将 @cloudbase/app 解析到 packages/app 源码目录\n */\n// @ts-ignore - webpack alias resolves this\nimport cloudbase from '@cloudbase/app'\n\n\nimport { registerAuth } from '@cloudbase/auth'\nimport { registerFunctions } from '@cloudbase/functions'\nimport { registerStorage } from '@cloudbase/storage'\nimport { registerRealtime } from '@cloudbase/realtime'\nimport { registerModel } from '@cloudbase/model'\nimport { registerAi } from '@cloudbase/ai'\nimport { registerCloudrun } from '@cloudbase/cloudrun'\nimport { registerMySQL } from '@cloudbase/mysql'\nimport { registerApis } from '@cloudbase/apis'\n// @ts-ignore\nimport { registerDatabase } from '../database/src/index'\nimport { ICloudbase } from '@cloudbase/types'\n\n// __SDK_VERSION__ will be replaced at build time\ndeclare const __SDK_VERSION__: string\nconst version: string = __SDK_VERSION__\ncloudbase.registerVersion(version)\n\n// Node 环境下加载 Node adapter\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports\n const { getSdkVersion } = require('@cloudbase/app/src/constants/common')\n // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports\n const nodeAdapter = require('@cloudbase/app/src/libs/adapter-node')\n\n cloudbase.useAdapters(nodeAdapter.default)\n\n // 将 node-sdk 常用的静态属性/方法挂到 cloudbase 实例上\n const cb = cloudbase as any\n cb.version = getSdkVersion()\n cb.SYMBOL_CURRENT_ENV = nodeAdapter.SYMBOL_CURRENT_ENV\n cb.SYMBOL_DEFAULT_ENV = nodeAdapter.SYMBOL_DEFAULT_ENV\n cb.parseContext = nodeAdapter.parseContext\n cb.getCloudbaseContext = nodeAdapter.getCloudbaseContext\n} catch (error) {\n // Node adapter 加载失败时静默处理\n}\n\n// 注册所有子模块\ntry {\n registerAuth(cloudbase)\n registerFunctions(cloudbase)\n registerStorage(cloudbase)\n registerDatabase(cloudbase)\n registerRealtime(cloudbase)\n registerModel(cloudbase)\n registerAi(cloudbase)\n registerCloudrun(cloudbase)\n registerMySQL(cloudbase)\n registerApis(cloudbase)\n} catch (e) {}\n\ndeclare global {\n interface Window {\n cloudbase: ICloudbase\n }\n}\ntry {\n (window as Window).cloudbase = cloudbase\n} catch (e) {}\n// @ts-ignore\nexport = cloudbase\nexport default cloudbase\n","var _a;\nvar ErrorCode;\n(function (ErrorCode) {\n ErrorCode[\"DocIDError\"] = \"\\u6587\\u6863ID\\u4E0D\\u5408\\u6CD5\";\n ErrorCode[\"CollNameError\"] = \"\\u96C6\\u5408\\u540D\\u79F0\\u4E0D\\u5408\\u6CD5\";\n ErrorCode[\"OpStrError\"] = \"\\u64CD\\u4F5C\\u7B26\\u4E0D\\u5408\\u6CD5\";\n ErrorCode[\"DirectionError\"] = \"\\u6392\\u5E8F\\u5B57\\u7B26\\u4E0D\\u5408\\u6CD5\";\n ErrorCode[\"IntergerError\"] = \"must be integer\";\n ErrorCode[\"QueryParamTypeError\"] = \"\\u67E5\\u8BE2\\u53C2\\u6570\\u5FC5\\u987B\\u4E3A\\u5BF9\\u8C61\";\n ErrorCode[\"QueryParamValueError\"] = \"\\u67E5\\u8BE2\\u53C2\\u6570\\u5BF9\\u8C61\\u503C\\u4E0D\\u80FD\\u5747\\u4E3Aundefined\";\n})(ErrorCode || (ErrorCode = {}));\nvar FieldType = {\n String: 'String',\n Number: 'Number',\n Object: 'Object',\n Array: 'Array',\n Boolean: 'Boolean',\n Null: 'Null',\n GeoPoint: 'GeoPoint',\n GeoLineString: 'GeoLineString',\n GeoPolygon: 'GeoPolygon',\n GeoMultiPoint: 'GeoMultiPoint',\n GeoMultiLineString: 'GeoMultiLineString',\n GeoMultiPolygon: 'GeoMultiPolygon',\n Timestamp: 'Date',\n Command: 'Command',\n ServerDate: 'ServerDate',\n BsonDate: 'BsonDate'\n};\nvar OrderDirectionList = ['desc', 'asc'];\nvar WhereFilterOpList = ['<', '<=', '==', '>=', '>'];\nvar Opeartor;\n(function (Opeartor) {\n Opeartor[\"lt\"] = \"<\";\n Opeartor[\"gt\"] = \">\";\n Opeartor[\"lte\"] = \"<=\";\n Opeartor[\"gte\"] = \">=\";\n Opeartor[\"eq\"] = \"==\";\n})(Opeartor || (Opeartor = {}));\nvar OperatorMap = (_a = {},\n _a[Opeartor.eq] = '$eq',\n _a[Opeartor.lt] = '$lt',\n _a[Opeartor.lte] = '$lte',\n _a[Opeartor.gt] = '$gt',\n _a[Opeartor.gte] = '$gte',\n _a);\nvar UpdateOperatorList = [\n '$set',\n '$inc',\n '$mul',\n '$unset',\n '$push',\n '$pop',\n '$unshift',\n '$shift',\n '$currentDate',\n '$each',\n '$position'\n];\nvar QueryType;\n(function (QueryType) {\n QueryType[\"WHERE\"] = \"WHERE\";\n QueryType[\"DOC\"] = \"DOC\";\n})(QueryType || (QueryType = {}));\nexport { ErrorCode, FieldType, WhereFilterOpList, Opeartor, OperatorMap, OrderDirectionList, UpdateOperatorList, QueryType };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _symbols = [];\nvar __internalMark__ = {};\nvar HiddenSymbol = (function () {\n function HiddenSymbol(target) {\n Object.defineProperties(this, {\n target: {\n enumerable: false,\n writable: false,\n configurable: false,\n value: target,\n },\n });\n }\n return HiddenSymbol;\n}());\nvar InternalSymbol = (function (_super) {\n __extends(InternalSymbol, _super);\n function InternalSymbol(target, __mark__) {\n if (__mark__ !== __internalMark__) {\n throw new TypeError('InternalSymbol cannot be constructed with new operator');\n }\n return _super.call(this, target) || this;\n }\n InternalSymbol.for = function (target) {\n for (var i = 0, len = _symbols.length; i < len; i++) {\n if (_symbols[i].target === target) {\n return _symbols[i].instance;\n }\n }\n var symbol = new InternalSymbol(target, __internalMark__);\n _symbols.push({\n target: target,\n instance: symbol,\n });\n return symbol;\n };\n return InternalSymbol;\n}(HiddenSymbol));\nexport { InternalSymbol };\nexport default InternalSymbol;\n","import InternalSymbol from '../utils/symbol';\nexport * from '../utils/symbol';\nexport var SYMBOL_UNSET_FIELD_NAME = InternalSymbol.for('UNSET_FIELD_NAME');\nexport var SYMBOL_UPDATE_COMMAND = InternalSymbol.for('UPDATE_COMMAND');\nexport var SYMBOL_QUERY_COMMAND = InternalSymbol.for('QUERY_COMMAND');\nexport var SYMBOL_LOGIC_COMMAND = InternalSymbol.for('LOGIC_COMMAND');\nexport var SYMBOL_GEO_POINT = InternalSymbol.for('GEO_POINT');\nexport var SYMBOL_GEO_LINE_STRING = InternalSymbol.for('SYMBOL_GEO_LINE_STRING');\nexport var SYMBOL_GEO_POLYGON = InternalSymbol.for('SYMBOL_GEO_POLYGON');\nexport var SYMBOL_GEO_MULTI_POINT = InternalSymbol.for('SYMBOL_GEO_MULTI_POINT');\nexport var SYMBOL_GEO_MULTI_LINE_STRING = InternalSymbol.for('SYMBOL_GEO_MULTI_LINE_STRING');\nexport var SYMBOL_GEO_MULTI_POLYGON = InternalSymbol.for('SYMBOL_GEO_MULTI_POLYGON');\nexport var SYMBOL_SERVER_DATE = InternalSymbol.for('SERVER_DATE');\nexport var SYMBOL_REGEXP = InternalSymbol.for('REGEXP');\n","import { InternalSymbol } from './symbol';\nexport var getType = function (x) { return Object.prototype.toString.call(x).slice(8, -1).toLowerCase(); };\nexport var isObject = function (x) { return getType(x) === 'object'; };\nexport var isString = function (x) { return getType(x) === 'string'; };\nexport var isNumber = function (x) { return getType(x) === 'number'; };\nexport var isPromise = function (x) { return getType(x) === 'promise'; };\nexport var isFunction = function (x) { return typeof x === 'function'; };\nexport var isArray = function (x) { return Array.isArray(x); };\nexport var isDate = function (x) { return getType(x) === 'date'; };\nexport var isRegExp = function (x) { return getType(x) === 'regexp'; };\nexport var isInternalObject = function (x) { return x && (x._internalType instanceof InternalSymbol); };\nexport var isPlainObject = function (obj) {\n if (typeof obj !== 'object' || obj === null)\n return false;\n var proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto;\n};\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_LINE_STRING } from '../helper/symbol';\nimport { Point } from './point';\nimport { isArray, isNumber } from '../utils/type';\nvar LineString = (function () {\n function LineString(points) {\n if (!isArray(points)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof points));\n }\n if (points.length < 2) {\n throw new Error('\"points\" must contain 2 points at least');\n }\n points.forEach(function (point) {\n if (!(point instanceof Point)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof point, \"[]\"));\n }\n });\n this.points = points;\n }\n LineString.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'LineString',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n },\n _a;\n };\n LineString.prototype.toJSON = function () {\n return {\n type: 'LineString',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n };\n };\n LineString.validate = function (lineString) {\n var e_1, _a;\n if (lineString.type !== 'LineString' || !isArray(lineString.coordinates)) {\n return false;\n }\n try {\n for (var _b = __values(lineString.coordinates), _c = _b.next(); !_c.done; _c = _b.next()) {\n var point = _c.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n LineString.isClosed = function (lineString) {\n var firstPoint = lineString.points[0];\n var lastPoint = lineString.points[lineString.points.length - 1];\n if (firstPoint.latitude === lastPoint.latitude && firstPoint.longitude === lastPoint.longitude) {\n return true;\n }\n };\n Object.defineProperty(LineString.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_LINE_STRING;\n },\n enumerable: false,\n configurable: true\n });\n return LineString;\n}());\nexport { LineString };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_MULTI_POLYGON } from '../helper/symbol';\nimport { isArray, isNumber } from '../utils/type';\nimport { LineString } from './lineString';\nvar Polygon = (function () {\n function Polygon(lines) {\n if (!isArray(lines)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof lines));\n }\n if (lines.length === 0) {\n throw new Error('Polygon must contain 1 linestring at least');\n }\n lines.forEach(function (line) {\n if (!(line instanceof LineString)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof line, \"[]\"));\n }\n if (!LineString.isClosed(line)) {\n throw new Error(\"LineString \".concat(line.points.map(function (p) { return p.toReadableString(); }), \" is not a closed cycle\"));\n }\n });\n this.lines = lines;\n }\n Polygon.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'Polygon',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n },\n _a;\n };\n Polygon.prototype.toJSON = function () {\n return {\n type: 'Polygon',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n };\n };\n Polygon.validate = function (polygon) {\n var e_1, _a, e_2, _b;\n if (polygon.type !== 'Polygon' || !isArray(polygon.coordinates)) {\n return false;\n }\n try {\n for (var _c = __values(polygon.coordinates), _d = _c.next(); !_d.done; _d = _c.next()) {\n var line = _d.value;\n if (!this.isCloseLineString(line)) {\n return false;\n }\n try {\n for (var line_1 = (e_2 = void 0, __values(line)), line_1_1 = line_1.next(); !line_1_1.done; line_1_1 = line_1.next()) {\n var point = line_1_1.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (line_1_1 && !line_1_1.done && (_b = line_1.return)) _b.call(line_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n Polygon.isCloseLineString = function (lineString) {\n var firstPoint = lineString[0];\n var lastPoint = lineString[lineString.length - 1];\n if (firstPoint[0] !== lastPoint[0] || firstPoint[1] !== lastPoint[1]) {\n return false;\n }\n return true;\n };\n Object.defineProperty(Polygon.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_MULTI_POLYGON;\n },\n enumerable: false,\n configurable: true\n });\n return Polygon;\n}());\nexport { Polygon };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_MULTI_POINT } from '../helper/symbol';\nimport { Point } from './point';\nimport { isArray, isNumber } from '../utils/type';\nvar MultiPoint = (function () {\n function MultiPoint(points) {\n if (!isArray(points)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof points));\n }\n if (points.length === 0) {\n throw new Error('\"points\" must contain 1 point at least');\n }\n points.forEach(function (point) {\n if (!(point instanceof Point)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof point, \"[]\"));\n }\n });\n this.points = points;\n }\n MultiPoint.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'MultiPoint',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n },\n _a;\n };\n MultiPoint.prototype.toJSON = function () {\n return {\n type: 'MultiPoint',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n };\n };\n MultiPoint.validate = function (multiPoint) {\n var e_1, _a;\n if (multiPoint.type !== 'MultiPoint' || !isArray(multiPoint.coordinates)) {\n return false;\n }\n try {\n for (var _b = __values(multiPoint.coordinates), _c = _b.next(); !_c.done; _c = _b.next()) {\n var point = _c.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n Object.defineProperty(MultiPoint.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_MULTI_POINT;\n },\n enumerable: false,\n configurable: true\n });\n return MultiPoint;\n}());\nexport { MultiPoint };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_MULTI_LINE_STRING } from '../helper/symbol';\nimport { isArray, isNumber } from '../utils/type';\nimport { LineString } from './lineString';\nvar MultiLineString = (function () {\n function MultiLineString(lines) {\n if (!isArray(lines)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof lines));\n }\n if (lines.length === 0) {\n throw new Error('Polygon must contain 1 linestring at least');\n }\n lines.forEach(function (line) {\n if (!(line instanceof LineString)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof line, \"[]\"));\n }\n });\n this.lines = lines;\n }\n MultiLineString.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'MultiLineString',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n },\n _a;\n };\n MultiLineString.prototype.toJSON = function () {\n return {\n type: 'MultiLineString',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n };\n };\n MultiLineString.validate = function (multiLineString) {\n var e_1, _a, e_2, _b;\n if (multiLineString.type !== 'MultiLineString' || !isArray(multiLineString.coordinates)) {\n return false;\n }\n try {\n for (var _c = __values(multiLineString.coordinates), _d = _c.next(); !_d.done; _d = _c.next()) {\n var line = _d.value;\n try {\n for (var line_1 = (e_2 = void 0, __values(line)), line_1_1 = line_1.next(); !line_1_1.done; line_1_1 = line_1.next()) {\n var point = line_1_1.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (line_1_1 && !line_1_1.done && (_b = line_1.return)) _b.call(line_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n Object.defineProperty(MultiLineString.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_MULTI_LINE_STRING;\n },\n enumerable: false,\n configurable: true\n });\n return MultiLineString;\n}());\nexport { MultiLineString };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_POLYGON } from '../helper/symbol';\nimport { isArray, isNumber } from '../utils/type';\nimport { Polygon } from './polygon';\nvar MultiPolygon = (function () {\n function MultiPolygon(polygons) {\n var e_1, _a;\n if (!isArray(polygons)) {\n throw new TypeError(\"\\\"polygons\\\" must be of type Polygon[]. Received type \".concat(typeof polygons));\n }\n if (polygons.length === 0) {\n throw new Error('MultiPolygon must contain 1 polygon at least');\n }\n try {\n for (var polygons_1 = __values(polygons), polygons_1_1 = polygons_1.next(); !polygons_1_1.done; polygons_1_1 = polygons_1.next()) {\n var polygon = polygons_1_1.value;\n if (!(polygon instanceof Polygon)) {\n throw new TypeError(\"\\\"polygon\\\" must be of type Polygon[]. Received type \".concat(typeof polygon, \"[]\"));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (polygons_1_1 && !polygons_1_1.done && (_a = polygons_1.return)) _a.call(polygons_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.polygons = polygons;\n }\n MultiPolygon.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'MultiPolygon',\n coordinates: this.polygons.map(function (polygon) {\n return polygon.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n });\n })\n },\n _a;\n };\n MultiPolygon.prototype.toJSON = function () {\n return {\n type: 'MultiPolygon',\n coordinates: this.polygons.map(function (polygon) {\n return polygon.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n });\n })\n };\n };\n MultiPolygon.validate = function (multiPolygon) {\n var e_2, _a, e_3, _b, e_4, _c;\n if (multiPolygon.type !== 'MultiPolygon' || !isArray(multiPolygon.coordinates)) {\n return false;\n }\n try {\n for (var _d = __values(multiPolygon.coordinates), _e = _d.next(); !_e.done; _e = _d.next()) {\n var polygon = _e.value;\n try {\n for (var polygon_1 = (e_3 = void 0, __values(polygon)), polygon_1_1 = polygon_1.next(); !polygon_1_1.done; polygon_1_1 = polygon_1.next()) {\n var line = polygon_1_1.value;\n try {\n for (var line_1 = (e_4 = void 0, __values(line)), line_1_1 = line_1.next(); !line_1_1.done; line_1_1 = line_1.next()) {\n var point = line_1_1.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (line_1_1 && !line_1_1.done && (_c = line_1.return)) _c.call(line_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (polygon_1_1 && !polygon_1_1.done && (_b = polygon_1.return)) _b.call(polygon_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return true;\n };\n Object.defineProperty(MultiPolygon.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_POLYGON;\n },\n enumerable: false,\n configurable: true\n });\n return MultiPolygon;\n}());\nexport { MultiPolygon };\n","import { SYMBOL_SERVER_DATE } from '../helper/symbol';\nvar ServerDate = (function () {\n function ServerDate(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.offset, offset = _c === void 0 ? 0 : _c;\n this.offset = offset;\n }\n Object.defineProperty(ServerDate.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_SERVER_DATE;\n },\n enumerable: false,\n configurable: true\n });\n ServerDate.prototype.parse = function () {\n return {\n $date: {\n offset: this.offset\n }\n };\n };\n return ServerDate;\n}());\nexport { ServerDate };\nexport function ServerDateConstructor(opt) {\n return new ServerDate(opt);\n}\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { FieldType } from './constant';\nimport { Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon } from './geo/index';\nimport { ServerDate } from './serverDate/index';\nvar Util = (function () {\n function Util() {\n }\n Util.formatResDocumentData = function (documents) {\n return documents.map(function (document) {\n return Util.formatField(document);\n });\n };\n Util.formatField = function (document) {\n var keys = Object.keys(document);\n var protoField = {};\n if (Array.isArray(document)) {\n protoField = [];\n }\n keys.forEach(function (key) {\n var item = document[key];\n var type = Util.whichType(item);\n var realValue;\n switch (type) {\n case FieldType.GeoPoint:\n realValue = new Point(item.coordinates[0], item.coordinates[1]);\n break;\n case FieldType.GeoLineString:\n realValue = new LineString(item.coordinates.map(function (point) { return new Point(point[0], point[1]); }));\n break;\n case FieldType.GeoPolygon:\n realValue = new Polygon(item.coordinates.map(function (line) { return new LineString(line.map(function (_a) {\n var _b = __read(_a, 2), lng = _b[0], lat = _b[1];\n return new Point(lng, lat);\n })); }));\n break;\n case FieldType.GeoMultiPoint:\n realValue = new MultiPoint(item.coordinates.map(function (point) { return new Point(point[0], point[1]); }));\n break;\n case FieldType.GeoMultiLineString:\n realValue = new MultiLineString(item.coordinates.map(function (line) { return new LineString(line.map(function (_a) {\n var _b = __read(_a, 2), lng = _b[0], lat = _b[1];\n return new Point(lng, lat);\n })); }));\n break;\n case FieldType.GeoMultiPolygon:\n realValue = new MultiPolygon(item.coordinates.map(function (polygon) {\n return new Polygon(polygon.map(function (line) { return new LineString(line.map(function (_a) {\n var _b = __read(_a, 2), lng = _b[0], lat = _b[1];\n return new Point(lng, lat);\n })); }));\n }));\n break;\n case FieldType.Timestamp:\n realValue = new Date(item.$timestamp * 1000);\n break;\n case FieldType.Object:\n case FieldType.Array:\n realValue = Util.formatField(item);\n break;\n case FieldType.ServerDate:\n realValue = new Date(item.$date);\n break;\n default:\n realValue = item;\n }\n if (Array.isArray(protoField)) {\n protoField.push(realValue);\n }\n else {\n protoField[key] = realValue;\n }\n });\n return protoField;\n };\n Util.whichType = function (obj) {\n var type = Object.prototype.toString.call(obj).slice(8, -1);\n if (type === FieldType.Timestamp) {\n return FieldType.BsonDate;\n }\n if (type === FieldType.Object) {\n if (obj instanceof Point) {\n return FieldType.GeoPoint;\n }\n else if (obj instanceof Date) {\n return FieldType.Timestamp;\n }\n else if (obj instanceof ServerDate) {\n return FieldType.ServerDate;\n }\n if (obj.$timestamp) {\n type = FieldType.Timestamp;\n }\n else if (obj.$date) {\n type = FieldType.ServerDate;\n }\n else if (Point.validate(obj)) {\n type = FieldType.GeoPoint;\n }\n else if (LineString.validate(obj)) {\n type = FieldType.GeoLineString;\n }\n else if (Polygon.validate(obj)) {\n type = FieldType.GeoPolygon;\n }\n else if (MultiPoint.validate(obj)) {\n type = FieldType.GeoMultiPoint;\n }\n else if (MultiLineString.validate(obj)) {\n type = FieldType.GeoMultiLineString;\n }\n else if (MultiPolygon.validate(obj)) {\n type = FieldType.GeoMultiPolygon;\n }\n }\n return type;\n };\n Util.generateDocId = function () {\n var chars = 'ABCDEFabcdef0123456789';\n var autoId = '';\n for (var i = 0; i < 24; i++) {\n autoId += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return autoId;\n };\n return Util;\n}());\nexport { Util };\n","import { SYMBOL_UNSET_FIELD_NAME, SYMBOL_UPDATE_COMMAND } from '../helper/symbol';\nexport var UPDATE_COMMANDS_LITERAL;\n(function (UPDATE_COMMANDS_LITERAL) {\n UPDATE_COMMANDS_LITERAL[\"SET\"] = \"set\";\n UPDATE_COMMANDS_LITERAL[\"REMOVE\"] = \"remove\";\n UPDATE_COMMANDS_LITERAL[\"INC\"] = \"inc\";\n UPDATE_COMMANDS_LITERAL[\"MUL\"] = \"mul\";\n UPDATE_COMMANDS_LITERAL[\"PUSH\"] = \"push\";\n UPDATE_COMMANDS_LITERAL[\"PULL\"] = \"pull\";\n UPDATE_COMMANDS_LITERAL[\"PULL_ALL\"] = \"pullAll\";\n UPDATE_COMMANDS_LITERAL[\"POP\"] = \"pop\";\n UPDATE_COMMANDS_LITERAL[\"SHIFT\"] = \"shift\";\n UPDATE_COMMANDS_LITERAL[\"UNSHIFT\"] = \"unshift\";\n UPDATE_COMMANDS_LITERAL[\"ADD_TO_SET\"] = \"addToSet\";\n UPDATE_COMMANDS_LITERAL[\"BIT\"] = \"bit\";\n UPDATE_COMMANDS_LITERAL[\"RENAME\"] = \"rename\";\n UPDATE_COMMANDS_LITERAL[\"MAX\"] = \"max\";\n UPDATE_COMMANDS_LITERAL[\"MIN\"] = \"min\";\n})(UPDATE_COMMANDS_LITERAL || (UPDATE_COMMANDS_LITERAL = {}));\nvar UpdateCommand = (function () {\n function UpdateCommand(operator, operands, fieldName) {\n this._internalType = SYMBOL_UPDATE_COMMAND;\n Object.defineProperties(this, {\n _internalType: {\n enumerable: false,\n configurable: false,\n },\n });\n this.operator = operator;\n this.operands = operands;\n this.fieldName = fieldName || SYMBOL_UNSET_FIELD_NAME;\n }\n UpdateCommand.prototype._setFieldName = function (fieldName) {\n var command = new UpdateCommand(this.operator, this.operands, fieldName);\n return command;\n };\n return UpdateCommand;\n}());\nexport { UpdateCommand };\nexport function isUpdateCommand(object) {\n return object && (object instanceof UpdateCommand) && (object._internalType === SYMBOL_UPDATE_COMMAND);\n}\nexport function isKnownUpdateCommand(object) {\n return isUpdateCommand(object) && (object.operator.toUpperCase() in UPDATE_COMMANDS_LITERAL);\n}\nexport default UpdateCommand;\n","import { ErrorCode, WhereFilterOpList, OrderDirectionList, FieldType } from './constant';\nimport { Util } from './util';\nvar Validate = (function () {\n function Validate() {\n }\n Validate.isGeopoint = function (point, degree) {\n if (Util.whichType(degree) !== FieldType.Number) {\n throw new Error('Geo Point must be number type');\n }\n var degreeAbs = Math.abs(degree);\n if (point === 'latitude' && degreeAbs > 90) {\n throw new Error('latitude should be a number ranges from -90 to 90');\n }\n else if (point === 'longitude' && degreeAbs > 180) {\n throw new Error('longitude should be a number ranges from -180 to 180');\n }\n return true;\n };\n Validate.isInteger = function (param, num) {\n if (!Number.isInteger(num)) {\n throw new Error(param + ErrorCode.IntergerError);\n }\n return true;\n };\n Validate.isFieldOrder = function (direction) {\n if (OrderDirectionList.indexOf(direction) === -1) {\n throw new Error(ErrorCode.DirectionError);\n }\n return true;\n };\n Validate.isFieldPath = function (path) {\n if (!/^[a-zA-Z0-9-_\\.]/.test(path)) {\n throw new Error();\n }\n return true;\n };\n Validate.isOperator = function (op) {\n if (WhereFilterOpList.indexOf(op) === -1) {\n throw new Error(ErrorCode.OpStrError);\n }\n return true;\n };\n Validate.isCollName = function (name) {\n if (!/^[a-zA-Z0-9]([a-zA-Z0-9-_]){1,32}$/.test(name)) {\n throw new Error(ErrorCode.CollNameError);\n }\n return true;\n };\n Validate.isDocID = function (docId) {\n if (!/^([a-fA-F0-9]){24}$/.test(docId)) {\n throw new Error(ErrorCode.DocIDError);\n }\n return true;\n };\n return Validate;\n}());\nexport { Validate };\n","import { Validate } from '../validate';\nimport { SYMBOL_GEO_POINT } from '../helper/symbol';\nimport { isArray } from '../utils/type';\nvar Point = (function () {\n function Point(longitude, latitude) {\n Validate.isGeopoint('longitude', longitude);\n Validate.isGeopoint('latitude', latitude);\n this.longitude = longitude;\n this.latitude = latitude;\n }\n Point.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'Point',\n coordinates: [this.longitude, this.latitude]\n },\n _a;\n };\n Point.prototype.toJSON = function () {\n return {\n type: 'Point',\n coordinates: [\n this.longitude,\n this.latitude,\n ],\n };\n };\n Point.prototype.toReadableString = function () {\n return \"[\".concat(this.longitude, \",\").concat(this.latitude, \"]\");\n };\n Point.validate = function (point) {\n return point.type === 'Point' &&\n isArray(point.coordinates) &&\n Validate.isGeopoint('longitude', point.coordinates[0]) &&\n Validate.isGeopoint('latitude', point.coordinates[1]);\n };\n Object.defineProperty(Point.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_POINT;\n },\n enumerable: false,\n configurable: true\n });\n return Point;\n}());\nexport { Point };\n","export var createPromiseCallback = function () {\n var cb = function () { };\n if (!Promise) {\n cb.promise = {};\n var throwPromiseNotDefined = function () {\n throw new Error('Your Node runtime does support ES6 Promises. ' +\n 'Set \"global.Promise\" to your preferred implementation of promises.');\n };\n Object.defineProperty(cb.promise, 'then', { get: throwPromiseNotDefined });\n Object.defineProperty(cb.promise, 'catch', { get: throwPromiseNotDefined });\n return cb;\n }\n var promise = new Promise(function (resolve, reject) {\n cb = function (err, data) {\n if (err)\n return reject(err);\n return resolve(data);\n };\n });\n cb.promise = promise;\n return cb;\n};\n","import { SYMBOL_UNSET_FIELD_NAME, SYMBOL_LOGIC_COMMAND } from '../helper/symbol';\nimport { isQueryCommand } from './query';\nexport var AND = 'and';\nexport var OR = 'or';\nexport var NOT = 'not';\nexport var NOR = 'nor';\nexport var LOGIC_COMMANDS_LITERAL;\n(function (LOGIC_COMMANDS_LITERAL) {\n LOGIC_COMMANDS_LITERAL[\"AND\"] = \"and\";\n LOGIC_COMMANDS_LITERAL[\"OR\"] = \"or\";\n LOGIC_COMMANDS_LITERAL[\"NOT\"] = \"not\";\n LOGIC_COMMANDS_LITERAL[\"NOR\"] = \"nor\";\n})(LOGIC_COMMANDS_LITERAL || (LOGIC_COMMANDS_LITERAL = {}));\nvar LogicCommand = (function () {\n function LogicCommand(operator, operands, fieldName) {\n this._internalType = SYMBOL_LOGIC_COMMAND;\n Object.defineProperties(this, {\n _internalType: {\n enumerable: false,\n configurable: false,\n },\n });\n this.operator = operator;\n this.operands = operands;\n this.fieldName = fieldName || SYMBOL_UNSET_FIELD_NAME;\n if (this.fieldName !== SYMBOL_UNSET_FIELD_NAME) {\n if (Array.isArray(operands)) {\n operands = operands.slice();\n this.operands = operands;\n for (var i = 0, len = operands.length; i < len; i++) {\n var query = operands[i];\n if (isLogicCommand(query) || isQueryCommand(query)) {\n operands[i] = query._setFieldName(this.fieldName);\n }\n }\n }\n else {\n var query = operands;\n if (isLogicCommand(query) || isQueryCommand(query)) {\n operands = query._setFieldName(this.fieldName);\n }\n }\n }\n }\n LogicCommand.prototype._setFieldName = function (fieldName) {\n var operands = this.operands.map(function (operand) {\n if (operand instanceof LogicCommand) {\n return operand._setFieldName(fieldName);\n }\n else {\n return operand;\n }\n });\n var command = new LogicCommand(this.operator, operands, fieldName);\n return command;\n };\n LogicCommand.prototype.and = function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = Array.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n expressions.unshift(this);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.AND, expressions, this.fieldName);\n };\n LogicCommand.prototype.or = function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = Array.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n expressions.unshift(this);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.OR, expressions, this.fieldName);\n };\n return LogicCommand;\n}());\nexport { LogicCommand };\nexport function isLogicCommand(object) {\n return object && (object instanceof LogicCommand) && (object._internalType === SYMBOL_LOGIC_COMMAND);\n}\nexport function isKnownLogicCommand(object) {\n return isLogicCommand && (object.operator.toUpperCase() in LOGIC_COMMANDS_LITERAL);\n}\nexport default LogicCommand;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { LogicCommand } from './logic';\nimport { SYMBOL_QUERY_COMMAND } from '../helper/symbol';\nimport { Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon } from '../geo/index';\nimport { isNumber } from '../utils/type';\nexport var EQ = 'eq';\nexport var NEQ = 'neq';\nexport var GT = 'gt';\nexport var GTE = 'gte';\nexport var LT = 'lt';\nexport var LTE = 'lte';\nexport var IN = 'in';\nexport var NIN = 'nin';\nexport var ALL = 'all';\nexport var ELEM_MATCH = 'elemMatch';\nexport var EXISTS = 'exists';\nexport var SIZE = 'size';\nexport var MOD = 'mod';\nexport var QUERY_COMMANDS_LITERAL;\n(function (QUERY_COMMANDS_LITERAL) {\n QUERY_COMMANDS_LITERAL[\"EQ\"] = \"eq\";\n QUERY_COMMANDS_LITERAL[\"NEQ\"] = \"neq\";\n QUERY_COMMANDS_LITERAL[\"GT\"] = \"gt\";\n QUERY_COMMANDS_LITERAL[\"GTE\"] = \"gte\";\n QUERY_COMMANDS_LITERAL[\"LT\"] = \"lt\";\n QUERY_COMMANDS_LITERAL[\"LTE\"] = \"lte\";\n QUERY_COMMANDS_LITERAL[\"IN\"] = \"in\";\n QUERY_COMMANDS_LITERAL[\"NIN\"] = \"nin\";\n QUERY_COMMANDS_LITERAL[\"ALL\"] = \"all\";\n QUERY_COMMANDS_LITERAL[\"ELEM_MATCH\"] = \"elemMatch\";\n QUERY_COMMANDS_LITERAL[\"EXISTS\"] = \"exists\";\n QUERY_COMMANDS_LITERAL[\"SIZE\"] = \"size\";\n QUERY_COMMANDS_LITERAL[\"MOD\"] = \"mod\";\n QUERY_COMMANDS_LITERAL[\"GEO_NEAR\"] = \"geoNear\";\n QUERY_COMMANDS_LITERAL[\"GEO_WITHIN\"] = \"geoWithin\";\n QUERY_COMMANDS_LITERAL[\"GEO_INTERSECTS\"] = \"geoIntersects\";\n})(QUERY_COMMANDS_LITERAL || (QUERY_COMMANDS_LITERAL = {}));\nvar QueryCommand = (function (_super) {\n __extends(QueryCommand, _super);\n function QueryCommand(operator, operands, fieldName) {\n var _this = _super.call(this, operator, operands, fieldName) || this;\n _this.operator = operator;\n _this._internalType = SYMBOL_QUERY_COMMAND;\n return _this;\n }\n QueryCommand.prototype.toJSON = function () {\n var _a, _b;\n switch (this.operator) {\n case QUERY_COMMANDS_LITERAL.IN:\n case QUERY_COMMANDS_LITERAL.NIN:\n return _a = {},\n _a['$' + this.operator] = this.operands,\n _a;\n default:\n return _b = {},\n _b['$' + this.operator] = this.operands[0],\n _b;\n }\n };\n QueryCommand.prototype._setFieldName = function (fieldName) {\n var command = new QueryCommand(this.operator, this.operands, fieldName);\n return command;\n };\n QueryCommand.prototype.eq = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.EQ, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.neq = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.NEQ, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.gt = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GT, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.gte = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GTE, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.lt = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.LT, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.lte = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.LTE, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.in = function (list) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.IN, list, this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.nin = function (list) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.NIN, list, this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.geoNear = function (val) {\n if (!(val.geometry instanceof Point)) {\n throw new TypeError(\"\\\"geometry\\\" must be of type Point. Received type \".concat(typeof val.geometry));\n }\n if (val.maxDistance !== undefined && !isNumber(val.maxDistance)) {\n throw new TypeError(\"\\\"maxDistance\\\" must be of type Number. Received type \".concat(typeof val.maxDistance));\n }\n if (val.minDistance !== undefined && !isNumber(val.minDistance)) {\n throw new TypeError(\"\\\"minDistance\\\" must be of type Number. Received type \".concat(typeof val.minDistance));\n }\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_NEAR, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.geoWithin = function (val) {\n if (!(val.geometry instanceof MultiPolygon) && !(val.geometry instanceof Polygon)) {\n throw new TypeError(\"\\\"geometry\\\" must be of type Polygon or MultiPolygon. Received type \".concat(typeof val.geometry));\n }\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_WITHIN, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.geoIntersects = function (val) {\n if (!(val.geometry instanceof Point) &&\n !(val.geometry instanceof LineString) &&\n !(val.geometry instanceof Polygon) &&\n !(val.geometry instanceof MultiPoint) &&\n !(val.geometry instanceof MultiLineString) &&\n !(val.geometry instanceof MultiPolygon)) {\n throw new TypeError(\"\\\"geometry\\\" must be of type Point, LineString, Polygon, MultiPoint, MultiLineString or MultiPolygon. Received type \".concat(typeof val.geometry));\n }\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_INTERSECTS, [val], this.fieldName);\n return this.and(command);\n };\n return QueryCommand;\n}(LogicCommand));\nexport { QueryCommand };\nexport function isQueryCommand(object) {\n return object && object instanceof QueryCommand && object._internalType === SYMBOL_QUERY_COMMAND;\n}\nexport function isKnownQueryCommand(object) {\n return isQueryCommand(object) && object.operator.toUpperCase() in QUERY_COMMANDS_LITERAL;\n}\nexport function isComparisonCommand(object) {\n return isQueryCommand(object);\n}\nexport default QueryCommand;\n","import { QUERY_COMMANDS_LITERAL } from './commands/query';\nimport { LOGIC_COMMANDS_LITERAL } from './commands/logic';\nimport { UPDATE_COMMANDS_LITERAL } from './commands/update';\nexport var OperatorMap = {};\nfor (var key in QUERY_COMMANDS_LITERAL) {\n OperatorMap[key] = '$' + key;\n}\nfor (var key in LOGIC_COMMANDS_LITERAL) {\n OperatorMap[key] = '$' + key;\n}\nfor (var key in UPDATE_COMMANDS_LITERAL) {\n OperatorMap[key] = '$' + key;\n}\nOperatorMap[QUERY_COMMANDS_LITERAL.NEQ] = '$ne';\nOperatorMap[UPDATE_COMMANDS_LITERAL.REMOVE] = '$unset';\nOperatorMap[UPDATE_COMMANDS_LITERAL.SHIFT] = '$pop';\nOperatorMap[UPDATE_COMMANDS_LITERAL.UNSHIFT] = '$push';\nexport function operatorToString(operator) {\n return OperatorMap[operator] || '$' + operator;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { SYMBOL_GEO_POINT, SYMBOL_SERVER_DATE, SYMBOL_REGEXP } from '../helper/symbol';\nimport { getType, isObject, isArray, isDate, isNumber, isInternalObject, isRegExp } from '../utils/type';\nimport { Point } from '../geo/index';\nimport { ServerDate } from '../serverDate/index';\nexport function serialize(val) {\n return serializeHelper(val, [val]);\n}\nfunction serializeHelper(val, visited) {\n if (isInternalObject(val)) {\n switch (val._internalType) {\n case SYMBOL_GEO_POINT: {\n return val.toJSON();\n }\n case SYMBOL_SERVER_DATE: {\n return val.parse();\n }\n case SYMBOL_REGEXP: {\n return val.parse();\n }\n default: {\n return val.toJSON ? val.toJSON() : val;\n }\n }\n }\n else if (isDate(val)) {\n return {\n $date: +val,\n };\n }\n else if (isRegExp(val)) {\n return {\n $regex: val.source,\n $options: val.flags,\n };\n }\n else if (isArray(val)) {\n return val.map(function (item) {\n if (visited.indexOf(item) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n return serializeHelper(item, __spreadArray(__spreadArray([], __read(visited), false), [\n item,\n ], false));\n });\n }\n else if (isObject(val)) {\n var ret = __assign({}, val);\n for (var key in ret) {\n if (visited.indexOf(ret[key]) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n ret[key] = serializeHelper(ret[key], __spreadArray(__spreadArray([], __read(visited), false), [\n ret[key],\n ], false));\n }\n return ret;\n }\n else {\n return val;\n }\n}\nexport function deserialize(object) {\n var ret = __assign({}, object);\n for (var key in ret) {\n switch (key) {\n case '$date': {\n switch (getType(ret[key])) {\n case 'number': {\n return new Date(ret[key]);\n }\n case 'object': {\n return new ServerDate(ret[key]);\n }\n }\n break;\n }\n case 'type': {\n switch (ret.type) {\n case 'Point': {\n if (isArray(ret.coordinates) && isNumber(ret.coordinates[0]) && isNumber(ret.coordinates[1])) {\n return new Point(ret.coordinates[0], ret.coordinates[1]);\n }\n break;\n }\n }\n break;\n }\n }\n }\n return object;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { getType, isObject, isArray, isDate, isRegExp, isInternalObject } from '../utils/type';\nimport { serialize as serializeInternalDataType, deserialize as deserializeInternalDataType } from './datatype';\nfunction flatten(query, shouldPreserverObject, parents, visited) {\n var cloned = __assign({}, query);\n for (var key in query) {\n if (/^\\$/.test(key))\n continue;\n var value = query[key];\n if (!value)\n continue;\n if (isObject(value) && !shouldPreserverObject(value)) {\n if (visited.indexOf(value) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n var newParents = __spreadArray(__spreadArray([], __read(parents), false), [\n key,\n ], false);\n var newVisited = __spreadArray(__spreadArray([], __read(visited), false), [\n value,\n ], false);\n var flattenedChild = flatten(value, shouldPreserverObject, newParents, newVisited);\n cloned[key] = flattenedChild;\n var hasKeyNotCombined = false;\n for (var childKey in flattenedChild) {\n if (!/^\\$/.test(childKey)) {\n cloned[\"\".concat(key, \".\").concat(childKey)] = flattenedChild[childKey];\n delete cloned[key][childKey];\n }\n else {\n hasKeyNotCombined = true;\n }\n }\n if (!hasKeyNotCombined) {\n delete cloned[key];\n }\n }\n }\n return cloned;\n}\nexport function flattenQueryObject(query) {\n return flatten(query, isConversionRequired, [], [query]);\n}\nexport function flattenObject(object) {\n return flatten(object, function (_) { return false; }, [], [object]);\n}\nexport function mergeConditionAfterEncode(query, condition, key) {\n if (!condition[key]) {\n delete query[key];\n }\n for (var conditionKey in condition) {\n if (query[conditionKey]) {\n if (isArray(query[conditionKey])) {\n query[conditionKey].push(condition[conditionKey]);\n }\n else if (isObject(query[conditionKey])) {\n if (isObject(condition[conditionKey])) {\n Object.assign(query[conditionKey], condition[conditionKey]);\n }\n else {\n console.warn(\"unmergable condition, query is object but condition is \".concat(getType(condition), \", can only overwrite\"), condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n console.warn(\"to-merge query is of type \".concat(getType(query), \", can only overwrite\"), query, condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n query[conditionKey] = condition[conditionKey];\n }\n }\n}\nexport function isConversionRequired(val) {\n return isInternalObject(val) || isDate(val) || isRegExp(val);\n}\nexport function encodeInternalDataType(val) {\n return serializeInternalDataType(val);\n}\nexport function decodeInternalDataType(object) {\n return deserializeInternalDataType(object);\n}\n","import { UpdateCommand, isUpdateCommand, UPDATE_COMMANDS_LITERAL } from '../commands/update';\nimport { SYMBOL_UNSET_FIELD_NAME } from '../helper/symbol';\nimport { getType, isArray } from '../utils/type';\nimport { operatorToString } from '../operator-map';\nimport { flattenQueryObject, encodeInternalDataType, mergeConditionAfterEncode } from './common';\nvar UpdateSerializer = (function () {\n function UpdateSerializer() {\n }\n UpdateSerializer.encode = function (query) {\n var stringifier = new UpdateSerializer();\n return stringifier.encodeUpdate(query);\n };\n UpdateSerializer.prototype.encodeUpdate = function (query) {\n if (isUpdateCommand(query)) {\n return this.encodeUpdateCommand(query);\n }\n else if (getType(query) === 'object') {\n return this.encodeUpdateObject(query);\n }\n else {\n return query;\n }\n };\n UpdateSerializer.prototype.encodeUpdateCommand = function (query) {\n if (query.fieldName === SYMBOL_UNSET_FIELD_NAME) {\n throw new Error('Cannot encode a comparison command with unset field name');\n }\n switch (query.operator) {\n case UPDATE_COMMANDS_LITERAL.PUSH:\n case UPDATE_COMMANDS_LITERAL.PULL:\n case UPDATE_COMMANDS_LITERAL.PULL_ALL:\n case UPDATE_COMMANDS_LITERAL.POP:\n case UPDATE_COMMANDS_LITERAL.SHIFT:\n case UPDATE_COMMANDS_LITERAL.UNSHIFT:\n case UPDATE_COMMANDS_LITERAL.ADD_TO_SET: {\n return this.encodeArrayUpdateCommand(query);\n }\n default: {\n return this.encodeFieldUpdateCommand(query);\n }\n }\n };\n UpdateSerializer.prototype.encodeFieldUpdateCommand = function (query) {\n var _a, _b, _c, _d;\n var $op = operatorToString(query.operator);\n switch (query.operator) {\n case UPDATE_COMMANDS_LITERAL.REMOVE: {\n return _a = {},\n _a[$op] = (_b = {},\n _b[query.fieldName] = '',\n _b),\n _a;\n }\n default: {\n return _c = {},\n _c[$op] = (_d = {},\n _d[query.fieldName] = query.operands[0],\n _d),\n _c;\n }\n }\n };\n UpdateSerializer.prototype.encodeArrayUpdateCommand = function (query) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n var $op = operatorToString(query.operator);\n switch (query.operator) {\n case UPDATE_COMMANDS_LITERAL.PUSH: {\n var modifiers = void 0;\n if (isArray(query.operands)) {\n modifiers = {\n $each: query.operands.map(encodeInternalDataType)\n };\n }\n else {\n modifiers = query.operands;\n }\n return _a = {},\n _a[$op] = (_b = {},\n _b[query.fieldName] = modifiers,\n _b),\n _a;\n }\n case UPDATE_COMMANDS_LITERAL.UNSHIFT: {\n var modifiers = {\n $each: query.operands.map(encodeInternalDataType),\n $position: 0\n };\n return _c = {},\n _c[$op] = (_d = {},\n _d[query.fieldName] = modifiers,\n _d),\n _c;\n }\n case UPDATE_COMMANDS_LITERAL.POP: {\n return _e = {},\n _e[$op] = (_f = {},\n _f[query.fieldName] = 1,\n _f),\n _e;\n }\n case UPDATE_COMMANDS_LITERAL.SHIFT: {\n return _g = {},\n _g[$op] = (_h = {},\n _h[query.fieldName] = -1,\n _h),\n _g;\n }\n default: {\n return _j = {},\n _j[$op] = (_k = {},\n _k[query.fieldName] = encodeInternalDataType(query.operands),\n _k),\n _j;\n }\n }\n };\n UpdateSerializer.prototype.encodeUpdateObject = function (query) {\n var flattened = flattenQueryObject(query);\n for (var key in flattened) {\n if (/^\\$/.test(key))\n continue;\n var val = flattened[key];\n if (isUpdateCommand(val)) {\n flattened[key] = val._setFieldName(key);\n var condition = this.encodeUpdateCommand(flattened[key]);\n mergeConditionAfterEncode(flattened, condition, key);\n }\n else {\n flattened[key] = val = encodeInternalDataType(val);\n var $setCommand = new UpdateCommand(UPDATE_COMMANDS_LITERAL.SET, [val], key);\n var condition = this.encodeUpdateCommand($setCommand);\n mergeConditionAfterEncode(flattened, condition, key);\n }\n }\n return flattened;\n };\n return UpdateSerializer;\n}());\nexport { UpdateSerializer };\n","import { Db } from '../';\nexport var sleep = function (ms) {\n if (ms === void 0) { ms = 0; }\n return new Promise(function (r) { return setTimeout(r, ms); });\n};\nvar counters = {};\nexport var autoCount = function (domain) {\n if (domain === void 0) { domain = 'any'; }\n if (!counters[domain]) {\n counters[domain] = 0;\n }\n return counters[domain]++;\n};\nvar wsList = {};\nexport function getWsInstance(db) {\n if (!Db.wsClientClass) {\n throw new Error('to use realtime you must import realtime module first');\n }\n var env = db.config.env;\n if (!wsList[env]) {\n wsList[env] = new Db.wsClientClass({\n context: {\n appConfig: {\n docSizeLimit: 1000,\n realtimePingInterval: 10000,\n realtimePongWaitTimeout: 5000,\n request: Db.createRequest(db.config)\n }\n }\n });\n }\n return wsList[env];\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { createPromiseCallback } from './lib/util';\nimport { Db } from './index';\nimport { Util } from './util';\nimport { UpdateSerializer } from './serializer/update';\nimport { serialize } from './serializer/datatype';\nimport { UpdateCommand } from './commands/update';\nimport { QueryType } from './constant';\nimport { getWsInstance } from './utils/utils';\nvar DocumentReference = (function () {\n function DocumentReference(db, coll, docID, projection) {\n if (projection === void 0) { projection = {}; }\n var _this = this;\n this.watch = function (options) {\n var ws = getWsInstance(_this._db);\n return ws.watch(__assign(__assign({}, options), { envId: _this._db.config.env, collectionName: _this._coll, query: JSON.stringify({\n _id: _this.id\n }) }));\n };\n this._db = db;\n this._coll = coll;\n this.id = docID;\n this.request = Db.createRequest(this._db.config);\n this.projection = projection;\n }\n DocumentReference.prototype.create = function (data, callback) {\n callback = callback || createPromiseCallback();\n var isBatch = Array.isArray(data);\n var params = {\n collectionName: this._coll,\n data: isBatch ? data.map(function (item) { return serialize(item); }) : serialize(data)\n };\n if (!isBatch && this.id) {\n params['_id'] = this.id;\n }\n this.request\n .send('database.addDocument', params)\n .then(function (res) {\n var _a;\n if (res.code) {\n callback(0, res);\n }\n else {\n if (isBatch) {\n callback(0, {\n ids: ((_a = res.data) === null || _a === void 0 ? void 0 : _a.insertedIds) || [],\n requestId: res.requestId\n });\n }\n else {\n callback(0, {\n id: res.data._id,\n requestId: res.requestId\n });\n }\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.set = function (data, callback) {\n callback = callback || createPromiseCallback();\n if (!this.id) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: 'docId不能为空'\n });\n }\n if (!data || typeof data !== 'object') {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '参数必需是非空对象'\n });\n }\n if (data.hasOwnProperty('_id')) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '不能更新_id的值'\n });\n }\n var hasOperator = false;\n var checkMixed = function (objs) {\n if (typeof objs === 'object') {\n for (var key in objs) {\n if (objs[key] instanceof UpdateCommand) {\n hasOperator = true;\n }\n else if (typeof objs[key] === 'object') {\n checkMixed(objs[key]);\n }\n }\n }\n };\n checkMixed(data);\n if (hasOperator) {\n return Promise.resolve({\n code: 'DATABASE_REQUEST_FAILED',\n message: 'update operator complicit'\n });\n }\n var merge = false;\n var param = {\n collectionName: this._coll,\n queryType: QueryType.DOC,\n data: serialize(data),\n multi: false,\n merge: merge,\n upsert: true\n };\n if (this.id) {\n param['query'] = { _id: this.id };\n }\n this.request\n .send('database.updateDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n updated: res.data.updated,\n upsertedId: res.data.upserted_id,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.update = function (data, callback) {\n callback = callback || createPromiseCallback();\n if (!data || typeof data !== 'object') {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '参数必需是非空对象'\n });\n }\n if (data.hasOwnProperty('_id')) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '不能更新_id的值'\n });\n }\n var query = { _id: this.id };\n var merge = true;\n var param = {\n collectionName: this._coll,\n data: UpdateSerializer.encode(data),\n query: query,\n queryType: QueryType.DOC,\n multi: false,\n merge: merge,\n upsert: false\n };\n this.request\n .send('database.updateDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n updated: res.data.updated,\n upsertedId: res.data.upserted_id,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.remove = function (callback) {\n callback = callback || createPromiseCallback();\n var query = { _id: this.id };\n var param = {\n collectionName: this._coll,\n query: query,\n queryType: QueryType.DOC,\n multi: false\n };\n this.request\n .send('database.deleteDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n deleted: res.data.deleted,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.get = function (callback) {\n callback = callback || createPromiseCallback();\n var query = { _id: this.id };\n var param = {\n collectionName: this._coll,\n query: query,\n queryType: QueryType.DOC,\n multi: false,\n projection: this.projection\n };\n this.request\n .send('database.queryDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n var documents = Util.formatResDocumentData(res.data.list);\n callback(0, {\n data: documents,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.field = function (projection) {\n for (var k in projection) {\n if (projection[k]) {\n projection[k] = 1;\n }\n else {\n projection[k] = 0;\n }\n }\n return new DocumentReference(this._db, this._coll, this.id, projection);\n };\n return DocumentReference;\n}());\nexport { DocumentReference };\n","import { isQueryCommand, isComparisonCommand, QUERY_COMMANDS_LITERAL } from '../commands/query';\nimport { isLogicCommand, LOGIC_COMMANDS_LITERAL } from '../commands/logic';\nimport { SYMBOL_UNSET_FIELD_NAME } from '../helper/symbol';\nimport { getType, isObject, isArray, isRegExp } from '../utils/type';\nimport { operatorToString } from '../operator-map';\nimport { flattenQueryObject, isConversionRequired, encodeInternalDataType } from './common';\nvar QuerySerializer = (function () {\n function QuerySerializer() {\n }\n QuerySerializer.encode = function (query) {\n var encoder = new QueryEncoder();\n return encoder.encodeQuery(query);\n };\n return QuerySerializer;\n}());\nexport { QuerySerializer };\nvar QueryEncoder = (function () {\n function QueryEncoder() {\n }\n QueryEncoder.prototype.encodeQuery = function (query, key) {\n var _a;\n if (isConversionRequired(query)) {\n if (isLogicCommand(query)) {\n return this.encodeLogicCommand(query);\n }\n else if (isQueryCommand(query)) {\n return this.encodeQueryCommand(query);\n }\n else {\n return _a = {}, _a[key] = this.encodeQueryObject(query), _a;\n }\n }\n else {\n if (isObject(query)) {\n return this.encodeQueryObject(query);\n }\n else {\n return query;\n }\n }\n };\n QueryEncoder.prototype.encodeRegExp = function (query) {\n return {\n $regex: query.source,\n $options: query.flags\n };\n };\n QueryEncoder.prototype.encodeLogicCommand = function (query) {\n var _a, _b, _c, _d, _e, _f, _g;\n var _this = this;\n switch (query.operator) {\n case LOGIC_COMMANDS_LITERAL.NOR:\n case LOGIC_COMMANDS_LITERAL.AND:\n case LOGIC_COMMANDS_LITERAL.OR: {\n var $op = operatorToString(query.operator);\n var subqueries = query.operands.map(function (oprand) {\n return _this.encodeQuery(oprand, query.fieldName);\n });\n return _a = {},\n _a[$op] = subqueries,\n _a;\n }\n case LOGIC_COMMANDS_LITERAL.NOT: {\n var $op = operatorToString(query.operator);\n var operatorExpression = query.operands[0];\n if (isRegExp(operatorExpression)) {\n return _b = {},\n _b[query.fieldName] = (_c = {},\n _c[$op] = this.encodeRegExp(operatorExpression),\n _c),\n _b;\n }\n else {\n var subqueries = this.encodeQuery(operatorExpression)[query.fieldName];\n return _d = {},\n _d[query.fieldName] = (_e = {},\n _e[$op] = subqueries,\n _e),\n _d;\n }\n }\n default: {\n var $op = operatorToString(query.operator);\n if (query.operands.length === 1) {\n var subquery = this.encodeQuery(query.operands[0]);\n return _f = {},\n _f[$op] = subquery,\n _f;\n }\n else {\n var subqueries = query.operands.map(this.encodeQuery.bind(this));\n return _g = {},\n _g[$op] = subqueries,\n _g;\n }\n }\n }\n };\n QueryEncoder.prototype.encodeQueryCommand = function (query) {\n if (isComparisonCommand(query)) {\n return this.encodeComparisonCommand(query);\n }\n else {\n return this.encodeComparisonCommand(query);\n }\n };\n QueryEncoder.prototype.encodeComparisonCommand = function (query) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (query.fieldName === SYMBOL_UNSET_FIELD_NAME) {\n throw new Error('Cannot encode a comparison command with unset field name');\n }\n var $op = operatorToString(query.operator);\n switch (query.operator) {\n case QUERY_COMMANDS_LITERAL.EQ:\n case QUERY_COMMANDS_LITERAL.NEQ:\n case QUERY_COMMANDS_LITERAL.LT:\n case QUERY_COMMANDS_LITERAL.LTE:\n case QUERY_COMMANDS_LITERAL.GT:\n case QUERY_COMMANDS_LITERAL.GTE:\n case QUERY_COMMANDS_LITERAL.ELEM_MATCH:\n case QUERY_COMMANDS_LITERAL.EXISTS:\n case QUERY_COMMANDS_LITERAL.SIZE:\n case QUERY_COMMANDS_LITERAL.MOD: {\n return _a = {},\n _a[query.fieldName] = (_b = {},\n _b[$op] = encodeInternalDataType(query.operands[0]),\n _b),\n _a;\n }\n case QUERY_COMMANDS_LITERAL.IN:\n case QUERY_COMMANDS_LITERAL.NIN:\n case QUERY_COMMANDS_LITERAL.ALL: {\n return _c = {},\n _c[query.fieldName] = (_d = {},\n _d[$op] = encodeInternalDataType(query.operands),\n _d),\n _c;\n }\n case QUERY_COMMANDS_LITERAL.GEO_NEAR: {\n var options = query.operands[0];\n return _e = {},\n _e[query.fieldName] = {\n $nearSphere: {\n $geometry: options.geometry.toJSON(),\n $maxDistance: options.maxDistance,\n $minDistance: options.minDistance\n }\n },\n _e;\n }\n case QUERY_COMMANDS_LITERAL.GEO_WITHIN: {\n var options = query.operands[0];\n return _f = {},\n _f[query.fieldName] = {\n $geoWithin: {\n $geometry: options.geometry.toJSON()\n }\n },\n _f;\n }\n case QUERY_COMMANDS_LITERAL.GEO_INTERSECTS: {\n var options = query.operands[0];\n return _g = {},\n _g[query.fieldName] = {\n $geoIntersects: {\n $geometry: options.geometry.toJSON()\n }\n },\n _g;\n }\n default: {\n return _h = {},\n _h[query.fieldName] = (_j = {},\n _j[$op] = encodeInternalDataType(query.operands[0]),\n _j),\n _h;\n }\n }\n };\n QueryEncoder.prototype.encodeQueryObject = function (query) {\n var flattened = flattenQueryObject(query);\n for (var key in flattened) {\n var val = flattened[key];\n if (isLogicCommand(val)) {\n flattened[key] = val._setFieldName(key);\n var condition = this.encodeLogicCommand(flattened[key]);\n this.mergeConditionAfterEncode(flattened, condition, key);\n }\n else if (isComparisonCommand(val)) {\n flattened[key] = val._setFieldName(key);\n var condition = this.encodeComparisonCommand(flattened[key]);\n this.mergeConditionAfterEncode(flattened, condition, key);\n }\n else if (isConversionRequired(val)) {\n flattened[key] = encodeInternalDataType(val);\n }\n }\n return flattened;\n };\n QueryEncoder.prototype.mergeConditionAfterEncode = function (query, condition, key) {\n if (!condition[key]) {\n delete query[key];\n }\n for (var conditionKey in condition) {\n if (query[conditionKey]) {\n if (isArray(query[conditionKey])) {\n query[conditionKey] = query[conditionKey].concat(condition[conditionKey]);\n }\n else if (isObject(query[conditionKey])) {\n if (isObject(condition[conditionKey])) {\n Object.assign(query, condition);\n }\n else {\n console.warn(\"unmergable condition, query is object but condition is \".concat(getType(condition), \", can only overwrite\"), condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n console.warn(\"to-merge query is of type \".concat(getType(query), \", can only overwrite\"), query, condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n query[conditionKey] = condition[conditionKey];\n }\n }\n };\n return QueryEncoder;\n}());\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { createPromiseCallback } from './lib/util';\nimport { QueryType } from './constant';\nimport { Db } from './index';\nimport { Validate } from './validate';\nimport { Util } from './util';\nimport { QuerySerializer } from './serializer/query';\nimport { UpdateSerializer } from './serializer/update';\nimport { ErrorCode } from './constant';\nimport { getWsInstance } from './utils/utils';\nvar Query = (function () {\n function Query(db, coll, fieldFilters, fieldOrders, queryOptions) {\n var _this = this;\n this.watch = function (options) {\n var ws = getWsInstance(_this._db);\n return ws.watch(__assign(__assign({}, options), { envId: _this._db.config.env, collectionName: _this._coll, query: JSON.stringify(_this._fieldFilters || {}), limit: _this._queryOptions.limit, orderBy: _this._fieldOrders\n ? _this._fieldOrders.reduce(function (acc, cur) {\n acc[cur.field] = cur.direction;\n return acc;\n }, {})\n : undefined }));\n };\n this._db = db;\n this._coll = coll;\n this._fieldFilters = fieldFilters;\n this._fieldOrders = fieldOrders || [];\n this._queryOptions = queryOptions || {};\n this._request = Db.createRequest(this._db.config);\n }\n Query.prototype.get = function (callback) {\n callback = callback || createPromiseCallback();\n var newOder = [];\n if (this._fieldOrders) {\n this._fieldOrders.forEach(function (order) {\n newOder.push(order);\n });\n }\n var param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n if (newOder.length > 0) {\n param.order = newOder;\n }\n if (this._queryOptions.offset) {\n param.offset = this._queryOptions.offset;\n }\n if (this._queryOptions.limit) {\n param.limit = this._queryOptions.limit < 1000 ? this._queryOptions.limit : 1000;\n }\n else {\n param.limit = 100;\n }\n if (this._queryOptions.projection) {\n param.projection = this._queryOptions.projection;\n }\n this._request\n .send('database.queryDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n var documents = Util.formatResDocumentData(res.data.list);\n var result = {\n data: documents,\n requestId: res.requestId\n };\n if (res.total !== undefined)\n result.total = res.total;\n if (res.limit !== undefined)\n result.limit = res.limit;\n if (res.offset !== undefined)\n result.offset = res.offset;\n callback(0, result);\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n Query.prototype.count = function (callback) {\n callback = callback || createPromiseCallback();\n var param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n this._request\n .send('database.countDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n requestId: res.requestId,\n total: res.data.total\n });\n }\n })\n .catch(function (e) {\n callback(e);\n });\n return callback.promise;\n };\n Query.prototype.where = function (query) {\n if (Object.prototype.toString.call(query).slice(8, -1) !== 'Object') {\n throw Error(ErrorCode.QueryParamTypeError);\n }\n var keys = Object.keys(query);\n var checkFlag = keys.some(function (item) {\n return query[item] !== undefined;\n });\n if (keys.length && !checkFlag) {\n throw Error(ErrorCode.QueryParamValueError);\n }\n return new Query(this._db, this._coll, QuerySerializer.encode(query), this._fieldOrders, this._queryOptions);\n };\n Query.prototype.orderBy = function (fieldPath, directionStr) {\n Validate.isFieldPath(fieldPath);\n Validate.isFieldOrder(directionStr);\n var newOrder = {\n field: fieldPath,\n direction: directionStr\n };\n var combinedOrders = this._fieldOrders.concat(newOrder);\n return new Query(this._db, this._coll, this._fieldFilters, combinedOrders, this._queryOptions);\n };\n Query.prototype.limit = function (limit) {\n Validate.isInteger('limit', limit);\n var option = __assign({}, this._queryOptions);\n option.limit = limit;\n return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.skip = function (offset) {\n Validate.isInteger('offset', offset);\n var option = __assign({}, this._queryOptions);\n option.offset = offset;\n return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.update = function (data, callback) {\n callback = callback || createPromiseCallback();\n if (!data || typeof data !== 'object') {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '参数必需是非空对象'\n });\n }\n if (data.hasOwnProperty('_id')) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '不能更新_id的值'\n });\n }\n var param = {\n collectionName: this._coll,\n query: this._fieldFilters,\n queryType: QueryType.WHERE,\n multi: true,\n merge: true,\n upsert: false,\n data: UpdateSerializer.encode(data)\n };\n this._request\n .send('database.updateDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n requestId: res.requestId,\n updated: res.data.updated,\n upsertId: res.data.upsert_id\n });\n }\n })\n .catch(function (e) {\n callback(e);\n });\n return callback.promise;\n };\n Query.prototype.field = function (projection) {\n for (var k in projection) {\n if (projection[k]) {\n if (typeof projection[k] !== 'object') {\n projection[k] = 1;\n }\n }\n else {\n projection[k] = 0;\n }\n }\n var option = __assign({}, this._queryOptions);\n option.projection = projection;\n return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.remove = function (callback) {\n callback = callback || createPromiseCallback();\n if (Object.keys(this._queryOptions).length > 0) {\n console.warn('`offset`, `limit` and `projection` are not supported in remove() operation');\n }\n if (this._fieldOrders.length > 0) {\n console.warn('`orderBy` is not supported in remove() operation');\n }\n var param = {\n collectionName: this._coll,\n query: QuerySerializer.encode(this._fieldFilters),\n queryType: QueryType.WHERE,\n multi: true\n };\n this._request\n .send('database.deleteDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n requestId: res.requestId,\n deleted: res.data.deleted\n });\n }\n })\n .catch(function (e) {\n callback(e);\n });\n return callback.promise;\n };\n return Query;\n}());\nexport { Query };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Db } from './index';\nimport { EJSON } from 'bson';\nimport { QuerySerializer } from './serializer/query';\nimport { Point } from './geo';\nvar Aggregation = (function () {\n function Aggregation(db, collectionName) {\n this._stages = [];\n if (db && collectionName) {\n this._db = db;\n this._request = Db.createRequest(this._db.config);\n this._collectionName = collectionName;\n }\n }\n Aggregation.prototype.end = function () {\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._collectionName || !this._db) {\n throw new Error('Aggregation pipeline cannot send request');\n }\n return [4, this._request.send('database.aggregate', {\n collectionName: this._collectionName,\n stages: this._stages\n })];\n case 1:\n result = _a.sent();\n if (result && result.data && result.data.list) {\n return [2, {\n requestId: result.requestId,\n data: JSON.parse(result.data.list).map(EJSON.parse)\n }];\n }\n return [2, result];\n }\n });\n });\n };\n Aggregation.prototype.unwrap = function () {\n return this._stages;\n };\n Aggregation.prototype.done = function () {\n return this._stages.map(function (_a) {\n var _b;\n var stageKey = _a.stageKey, stageValue = _a.stageValue;\n return _b = {},\n _b[stageKey] = JSON.parse(stageValue),\n _b;\n });\n };\n Aggregation.prototype._pipe = function (stage, param) {\n this._stages.push({\n stageKey: \"$\".concat(stage),\n stageValue: JSON.stringify(param)\n });\n return this;\n };\n Aggregation.prototype.addFields = function (param) {\n return this._pipe('addFields', param);\n };\n Aggregation.prototype.bucket = function (param) {\n return this._pipe('bucket', param);\n };\n Aggregation.prototype.bucketAuto = function (param) {\n return this._pipe('bucketAuto', param);\n };\n Aggregation.prototype.count = function (param) {\n return this._pipe('count', param);\n };\n Aggregation.prototype.geoNear = function (param) {\n if (param.query) {\n param.query = QuerySerializer.encode(param.query);\n }\n if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {\n param.distanceMultiplier = param.distanceMultiplier;\n }\n if (param.near) {\n param.near = new Point(param.near.longitude, param.near.latitude).toJSON();\n }\n return this._pipe('geoNear', param);\n };\n Aggregation.prototype.group = function (param) {\n return this._pipe('group', param);\n };\n Aggregation.prototype.limit = function (param) {\n return this._pipe('limit', param);\n };\n Aggregation.prototype.match = function (param) {\n return this._pipe('match', QuerySerializer.encode(param));\n };\n Aggregation.prototype.project = function (param) {\n return this._pipe('project', param);\n };\n Aggregation.prototype.lookup = function (param) {\n return this._pipe('lookup', param);\n };\n Aggregation.prototype.replaceRoot = function (param) {\n return this._pipe('replaceRoot', param);\n };\n Aggregation.prototype.sample = function (param) {\n return this._pipe('sample', param);\n };\n Aggregation.prototype.skip = function (param) {\n return this._pipe('skip', param);\n };\n Aggregation.prototype.sort = function (param) {\n return this._pipe('sort', param);\n };\n Aggregation.prototype.sortByCount = function (param) {\n return this._pipe('sortByCount', param);\n };\n Aggregation.prototype.unwind = function (param) {\n return this._pipe('unwind', param);\n };\n return Aggregation;\n}());\nexport default Aggregation;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DocumentReference } from './document';\nimport { Query } from './query';\nimport Aggregation from './aggregate';\nvar CollectionReference = (function (_super) {\n __extends(CollectionReference, _super);\n function CollectionReference(db, coll) {\n return _super.call(this, db, coll) || this;\n }\n Object.defineProperty(CollectionReference.prototype, \"name\", {\n get: function () {\n return this._coll;\n },\n enumerable: false,\n configurable: true\n });\n CollectionReference.prototype.doc = function (docID) {\n if (typeof docID !== 'string' && typeof docID !== 'number') {\n throw new Error('docId必须为字符串或数字');\n }\n return new DocumentReference(this._db, this._coll, docID);\n };\n CollectionReference.prototype.add = function (data, callback) {\n var docRef = new DocumentReference(this._db, this._coll, undefined);\n return docRef.create(data, callback);\n };\n CollectionReference.prototype.aggregate = function () {\n return new Aggregation(this._db, this._coll);\n };\n return CollectionReference;\n}(Query));\nexport { CollectionReference };\n","import { QueryCommand, QUERY_COMMANDS_LITERAL } from './commands/query';\nimport { LogicCommand, LOGIC_COMMANDS_LITERAL } from './commands/logic';\nimport { UpdateCommand, UPDATE_COMMANDS_LITERAL } from './commands/update';\nimport { isArray, isObject, isString } from './utils/type';\nimport Aggregation from './aggregate';\nexport var Command = {\n eq: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.EQ, [val]);\n },\n neq: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.NEQ, [val]);\n },\n lt: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.LT, [val]);\n },\n lte: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.LTE, [val]);\n },\n gt: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GT, [val]);\n },\n gte: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GTE, [val]);\n },\n in: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.IN, val);\n },\n nin: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.NIN, val);\n },\n all: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.ALL, val);\n },\n elemMatch: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.ELEM_MATCH, [val]);\n },\n exists: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.EXISTS, [val]);\n },\n size: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.SIZE, [val]);\n },\n mod: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.MOD, [val]);\n },\n geoNear: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_NEAR, [val]);\n },\n geoWithin: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_WITHIN, [val]);\n },\n geoIntersects: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_INTERSECTS, [val]);\n },\n and: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.AND, expressions);\n },\n nor: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.NOR, expressions);\n },\n or: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.OR, expressions);\n },\n not: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.NOT, expressions);\n },\n set: function (val) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.SET, [val]);\n },\n remove: function () {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.REMOVE, []);\n },\n inc: function (val) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.INC, [val]);\n },\n mul: function (val) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.MUL, [val]);\n },\n push: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var values;\n if (isObject(args[0]) && args[0].hasOwnProperty('each')) {\n var options = args[0];\n values = {\n $each: options.each,\n $position: options.position,\n $sort: options.sort,\n $slice: options.slice\n };\n }\n else if (isArray(args[0])) {\n values = args[0];\n }\n else {\n values = Array.from(args);\n }\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.PUSH, values);\n },\n pull: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.PULL, values);\n },\n pullAll: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.PULL_ALL, values);\n },\n pop: function () {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.POP, []);\n },\n shift: function () {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.SHIFT, []);\n },\n unshift: function () {\n var __values__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __values__[_i] = arguments[_i];\n }\n var values = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.UNSHIFT, values);\n },\n addToSet: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.ADD_TO_SET, values);\n },\n rename: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.RENAME, [values]);\n },\n bit: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.BIT, [values]);\n },\n max: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.MAX, [values]);\n },\n min: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.MIN, [values]);\n },\n expr: function (values) {\n return {\n $expr: values\n };\n },\n jsonSchema: function (schema) {\n return {\n $jsonSchema: schema\n };\n },\n text: function (values) {\n if (isString(values)) {\n return {\n $search: values.search\n };\n }\n else {\n return {\n $search: values.search,\n $language: values.language,\n $caseSensitive: values.caseSensitive,\n $diacriticSensitive: values.diacriticSensitive\n };\n }\n },\n aggregate: {\n pipeline: function () {\n return new Aggregation();\n },\n abs: function (param) { return new AggregationOperator('abs', param); },\n add: function (param) { return new AggregationOperator('add', param); },\n ceil: function (param) { return new AggregationOperator('ceil', param); },\n divide: function (param) { return new AggregationOperator('divide', param); },\n exp: function (param) { return new AggregationOperator('exp', param); },\n floor: function (param) { return new AggregationOperator('floor', param); },\n ln: function (param) { return new AggregationOperator('ln', param); },\n log: function (param) { return new AggregationOperator('log', param); },\n log10: function (param) { return new AggregationOperator('log10', param); },\n mod: function (param) { return new AggregationOperator('mod', param); },\n multiply: function (param) { return new AggregationOperator('multiply', param); },\n pow: function (param) { return new AggregationOperator('pow', param); },\n sqrt: function (param) { return new AggregationOperator('sqrt', param); },\n subtract: function (param) { return new AggregationOperator('subtract', param); },\n trunc: function (param) { return new AggregationOperator('trunc', param); },\n arrayElemAt: function (param) { return new AggregationOperator('arrayElemAt', param); },\n arrayToObject: function (param) { return new AggregationOperator('arrayToObject', param); },\n concatArrays: function (param) { return new AggregationOperator('concatArrays', param); },\n filter: function (param) { return new AggregationOperator('filter', param); },\n in: function (param) { return new AggregationOperator('in', param); },\n indexOfArray: function (param) { return new AggregationOperator('indexOfArray', param); },\n isArray: function (param) { return new AggregationOperator('isArray', param); },\n map: function (param) { return new AggregationOperator('map', param); },\n range: function (param) { return new AggregationOperator('range', param); },\n reduce: function (param) { return new AggregationOperator('reduce', param); },\n reverseArray: function (param) { return new AggregationOperator('reverseArray', param); },\n size: function (param) { return new AggregationOperator('size', param); },\n slice: function (param) { return new AggregationOperator('slice', param); },\n zip: function (param) { return new AggregationOperator('zip', param); },\n and: function (param) { return new AggregationOperator('and', param); },\n not: function (param) { return new AggregationOperator('not', param); },\n or: function (param) { return new AggregationOperator('or', param); },\n cmp: function (param) { return new AggregationOperator('cmp', param); },\n eq: function (param) { return new AggregationOperator('eq', param); },\n gt: function (param) { return new AggregationOperator('gt', param); },\n gte: function (param) { return new AggregationOperator('gte', param); },\n lt: function (param) { return new AggregationOperator('lt', param); },\n lte: function (param) { return new AggregationOperator('lte', param); },\n neq: function (param) { return new AggregationOperator('ne', param); },\n cond: function (param) { return new AggregationOperator('cond', param); },\n ifNull: function (param) { return new AggregationOperator('ifNull', param); },\n switch: function (param) { return new AggregationOperator('switch', param); },\n dateFromParts: function (param) { return new AggregationOperator('dateFromParts', param); },\n dateFromString: function (param) { return new AggregationOperator('dateFromString', param); },\n dayOfMonth: function (param) { return new AggregationOperator('dayOfMonth', param); },\n dayOfWeek: function (param) { return new AggregationOperator('dayOfWeek', param); },\n dayOfYear: function (param) { return new AggregationOperator('dayOfYear', param); },\n isoDayOfWeek: function (param) { return new AggregationOperator('isoDayOfWeek', param); },\n isoWeek: function (param) { return new AggregationOperator('isoWeek', param); },\n isoWeekYear: function (param) { return new AggregationOperator('isoWeekYear', param); },\n millisecond: function (param) { return new AggregationOperator('millisecond', param); },\n minute: function (param) { return new AggregationOperator('minute', param); },\n month: function (param) { return new AggregationOperator('month', param); },\n second: function (param) { return new AggregationOperator('second', param); },\n hour: function (param) { return new AggregationOperator('hour', param); },\n week: function (param) { return new AggregationOperator('week', param); },\n year: function (param) { return new AggregationOperator('year', param); },\n literal: function (param) { return new AggregationOperator('literal', param); },\n mergeObjects: function (param) { return new AggregationOperator('mergeObjects', param); },\n objectToArray: function (param) { return new AggregationOperator('objectToArray', param); },\n allElementsTrue: function (param) { return new AggregationOperator('allElementsTrue', param); },\n anyElementTrue: function (param) { return new AggregationOperator('anyElementTrue', param); },\n setDifference: function (param) { return new AggregationOperator('setDifference', param); },\n setEquals: function (param) { return new AggregationOperator('setEquals', param); },\n setIntersection: function (param) { return new AggregationOperator('setIntersection', param); },\n setIsSubset: function (param) { return new AggregationOperator('setIsSubset', param); },\n setUnion: function (param) { return new AggregationOperator('setUnion', param); },\n concat: function (param) { return new AggregationOperator('concat', param); },\n dateToString: function (param) { return new AggregationOperator('dateToString', param); },\n indexOfBytes: function (param) { return new AggregationOperator('indexOfBytes', param); },\n indexOfCP: function (param) { return new AggregationOperator('indexOfCP', param); },\n split: function (param) { return new AggregationOperator('split', param); },\n strLenBytes: function (param) { return new AggregationOperator('strLenBytes', param); },\n strLenCP: function (param) { return new AggregationOperator('strLenCP', param); },\n strcasecmp: function (param) { return new AggregationOperator('strcasecmp', param); },\n substr: function (param) { return new AggregationOperator('substr', param); },\n substrBytes: function (param) { return new AggregationOperator('substrBytes', param); },\n substrCP: function (param) { return new AggregationOperator('substrCP', param); },\n toLower: function (param) { return new AggregationOperator('toLower', param); },\n toUpper: function (param) { return new AggregationOperator('toUpper', param); },\n meta: function (param) { return new AggregationOperator('meta', param); },\n addToSet: function (param) { return new AggregationOperator('addToSet', param); },\n avg: function (param) { return new AggregationOperator('avg', param); },\n first: function (param) { return new AggregationOperator('first', param); },\n last: function (param) { return new AggregationOperator('last', param); },\n max: function (param) { return new AggregationOperator('max', param); },\n min: function (param) { return new AggregationOperator('min', param); },\n push: function (param) { return new AggregationOperator('push', param); },\n stdDevPop: function (param) { return new AggregationOperator('stdDevPop', param); },\n stdDevSamp: function (param) { return new AggregationOperator('stdDevSamp', param); },\n sum: function (param) { return new AggregationOperator('sum', param); },\n let: function (param) { return new AggregationOperator('let', param); }\n },\n project: {\n slice: function (param) { return new ProjectionOperator('slice', param); },\n elemMatch: function (param) { return new ProjectionOperator('elemMatch', param); }\n }\n};\nvar AggregationOperator = (function () {\n function AggregationOperator(name, param) {\n this['$' + name] = param;\n }\n return AggregationOperator;\n}());\nvar ProjectionOperator = (function () {\n function ProjectionOperator(name, param) {\n this['$' + name] = param;\n }\n return ProjectionOperator;\n}());\nexport default Command;\n","import { SYMBOL_REGEXP } from '../helper/symbol';\nvar RegExp = (function () {\n function RegExp(_a) {\n var regexp = _a.regexp, options = _a.options;\n if (!regexp) {\n throw new TypeError('regexp must be a string');\n }\n this.$regex = regexp;\n this.$options = options;\n }\n RegExp.prototype.parse = function () {\n return {\n $regex: this.$regex,\n $options: this.$options\n };\n };\n Object.defineProperty(RegExp.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_REGEXP;\n },\n enumerable: false,\n configurable: true\n });\n return RegExp;\n}());\nexport { RegExp };\nexport function RegExpConstructor(param) {\n return new RegExp(param);\n}\n","export var ERRORS = {\n CREATE_WATCH_NET_ERROR: {\n code: 'CREATE_WATCH_NET_ERROR',\n message: 'create watch network error'\n },\n CREATE_WACTH_EXCEED_ERROR: {\n code: 'CREATE_WACTH_EXCEED_ERROR',\n message: 'maximum connections exceed'\n },\n CREATE_WATCH_SERVER_ERROR: {\n code: 'CREATE_WATCH_SERVER_ERROR',\n message: 'create watch server error'\n },\n CONN_ERROR: {\n code: 'CONN_ERROR',\n message: 'connection error'\n },\n INVALID_PARAM: {\n code: 'INVALID_PARAM',\n message: 'Invalid request param'\n },\n INSERT_DOC_FAIL: {\n code: 'INSERT_DOC_FAIL',\n message: 'insert document failed'\n },\n DATABASE_TRANSACTION_CONFLICT: {\n code: 'DATABASE_TRANSACTION_CONFLICT',\n message: 'database transaction conflict'\n }\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { EJSON } from 'bson';\nimport { ERRORS } from '../const/code';\nimport { UpdateSerializer } from '../serializer/update';\nimport { serialize } from '../serializer/datatype';\nimport { Util } from '../util';\nvar GET_DOC = 'database.getInTransaction';\nvar UPDATE_DOC = 'database.updateDocInTransaction';\nvar DELETE_DOC = 'database.deleteDocInTransaction';\nvar INSERT_DOC = 'database.insertDocInTransaction';\nvar DocumentReference = (function () {\n function DocumentReference(transaction, coll, docID) {\n this._coll = coll;\n this.id = docID;\n this._transaction = transaction;\n this._request = this._transaction.getRequestMethod();\n this._transactionId = this._transaction.getTransactionId();\n }\n DocumentReference.prototype.create = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var params, res, inserted, ok;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n params = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n data: EJSON.stringify(serialize(data), { relaxed: false })\n };\n if (this.id) {\n params['_id'] = this.id;\n }\n return [4, this._request.send(INSERT_DOC, params)];\n case 1:\n res = _a.sent();\n if (res.code) {\n throw res;\n }\n inserted = EJSON.parse(res.inserted);\n ok = EJSON.parse(res.ok);\n if (ok == 1 && inserted == 1) {\n return [2, __assign(__assign({}, res), { ok: ok, inserted: inserted })];\n }\n else {\n throw new Error(ERRORS.INSERT_DOC_FAIL.message);\n }\n return [2];\n }\n });\n });\n };\n DocumentReference.prototype.get = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n }\n };\n return [4, this._request.send(GET_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, {\n data: res.data !== 'null' ? Util.formatField(EJSON.parse(res.data)) : EJSON.parse(res.data),\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.set = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n },\n data: EJSON.stringify(serialize(data), { relaxed: false }),\n upsert: true\n };\n return [4, this._request.send(UPDATE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { updated: EJSON.parse(res.updated), upserted: res.upserted\n ? JSON.parse(res.upserted)\n : null })];\n }\n });\n });\n };\n DocumentReference.prototype.update = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n },\n data: EJSON.stringify(UpdateSerializer.encode(data), {\n relaxed: false\n })\n };\n return [4, this._request.send(UPDATE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { updated: EJSON.parse(res.updated) })];\n }\n });\n });\n };\n DocumentReference.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n }\n };\n return [4, this._request.send(DELETE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { deleted: EJSON.parse(res.deleted) })];\n }\n });\n });\n };\n return DocumentReference;\n}());\nexport { DocumentReference };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { EJSON } from 'bson';\nimport { ErrorCode } from '../constant';\nimport { Validate } from '../validate';\nimport { QuerySerializer } from '../serializer/query';\nimport { UpdateSerializer } from '../serializer/update';\nimport { Util } from '../util';\nvar GET_DOC = 'database.getInTransaction';\nvar UPDATE_DOC = 'database.updateDocInTransaction';\nvar DELETE_DOC = 'database.deleteDocInTransaction';\nvar Query = (function () {\n function Query(transaction, coll, fieldFilters, fieldOrders, queryOptions) {\n this._coll = coll;\n this._transaction = transaction;\n this._fieldFilters = fieldFilters;\n this._fieldOrders = fieldOrders || [];\n this._queryOptions = queryOptions || {};\n this._request = this._transaction.getRequestMethod();\n this._transactionId = this._transaction.getTransactionId();\n }\n Query.prototype.where = function (query) {\n if (Object.prototype.toString.call(query).slice(8, -1) !== 'Object') {\n throw Error(ErrorCode.QueryParamTypeError);\n }\n var keys = Object.keys(query);\n var checkFlag = keys.some(function (item) {\n return query[item] !== undefined;\n });\n if (keys.length && !checkFlag) {\n throw Error(ErrorCode.QueryParamValueError);\n }\n return new Query(this._transaction, this._coll, QuerySerializer.encode(query), this._fieldOrders, this._queryOptions);\n };\n Query.prototype.orderBy = function (fieldPath, directionStr) {\n Validate.isFieldPath(fieldPath);\n Validate.isFieldOrder(directionStr);\n var newOrder = {\n field: fieldPath,\n direction: directionStr\n };\n var combinedOrders = this._fieldOrders.concat(newOrder);\n return new Query(this._transaction, this._coll, this._fieldFilters, combinedOrders, this._queryOptions);\n };\n Query.prototype.limit = function (limit) {\n Validate.isInteger('limit', limit);\n var option = __assign({}, this._queryOptions);\n option.limit = limit;\n return new Query(this._transaction, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.skip = function (offset) {\n Validate.isInteger('offset', offset);\n var option = __assign({}, this._queryOptions);\n option.offset = offset;\n return new Query(this._transaction, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.field = function (projection) {\n for (var k in projection) {\n if (projection[k]) {\n if (typeof projection[k] !== 'object') {\n projection[k] = 1;\n }\n }\n else {\n projection[k] = 0;\n }\n }\n var option = __assign({}, this._queryOptions);\n option.projection = projection;\n return new Query(this._transaction, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.get = function () {\n return __awaiter(this, void 0, void 0, function () {\n var newOrder, param, res, data, documents, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n newOrder = [];\n if (this._fieldOrders) {\n this._fieldOrders.forEach(function (order) {\n newOrder.push(order);\n });\n }\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n if (newOrder.length > 0) {\n param.order = newOrder;\n }\n if (this._queryOptions.offset) {\n param.offset = this._queryOptions.offset;\n }\n if (this._queryOptions.limit) {\n param.limit = this._queryOptions.limit < 1000 ? this._queryOptions.limit : 1000;\n }\n else {\n param.limit = 100;\n }\n if (this._queryOptions.projection) {\n param.projection = this._queryOptions.projection;\n }\n return [4, this._request.send(GET_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n data = res.data !== 'null' ? EJSON.parse(res.data) : null;\n documents = data ? (Array.isArray(data) ? Util.formatResDocumentData(data) : [Util.formatField(data)]) : [];\n result = {\n data: documents,\n requestId: res.requestId\n };\n if (res.total !== undefined)\n result.total = res.total;\n if (res.limit !== undefined)\n result.limit = res.limit;\n if (res.offset !== undefined)\n result.offset = res.offset;\n return [2, result];\n }\n });\n });\n };\n Query.prototype.count = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res, data, total;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n return [4, this._request.send(GET_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n data = res.data !== 'null' ? EJSON.parse(res.data) : null;\n total = Array.isArray(data) ? data.length : (data ? 1 : 0);\n return [2, {\n requestId: res.requestId,\n total: res.total !== undefined ? res.total : total\n }];\n }\n });\n });\n };\n Query.prototype.update = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!data || typeof data !== 'object') {\n throw new Error('参数必需是非空对象');\n }\n if (data.hasOwnProperty('_id')) {\n throw new Error('不能更新_id的值');\n }\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: this._fieldFilters,\n data: EJSON.stringify(UpdateSerializer.encode(data), { relaxed: false })\n };\n return [4, this._request.send(UPDATE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { updated: EJSON.parse(res.updated) })];\n }\n });\n });\n };\n Query.prototype.remove = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (Object.keys(this._queryOptions).length > 0) {\n console.warn('`offset`, `limit` and `projection` are not supported in remove() operation');\n }\n if (this._fieldOrders.length > 0) {\n console.warn('`orderBy` is not supported in remove() operation');\n }\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: this._fieldFilters\n };\n return [4, this._request.send(DELETE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { deleted: EJSON.parse(res.deleted) })];\n }\n });\n });\n };\n return Query;\n}());\nexport { Query };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DocumentReference } from './document';\nimport { Query } from './query';\nvar CollectionReference = (function (_super) {\n __extends(CollectionReference, _super);\n function CollectionReference(transaction, coll) {\n return _super.call(this, transaction, coll) || this;\n }\n Object.defineProperty(CollectionReference.prototype, \"name\", {\n get: function () {\n return this._coll;\n },\n enumerable: false,\n configurable: true\n });\n CollectionReference.prototype.doc = function (docID) {\n if (typeof docID !== 'string' && typeof docID !== 'number') {\n throw new Error('docId必须为字符串或数字');\n }\n return new DocumentReference(this._transaction, this._coll, docID);\n };\n CollectionReference.prototype.add = function (data) {\n var docID;\n if (data._id !== undefined) {\n docID = data._id;\n }\n var docRef = new DocumentReference(this._transaction, this._coll, docID);\n return docRef.create(data);\n };\n return CollectionReference;\n}(Query));\nexport { CollectionReference };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Db } from '../index';\nimport { CollectionReference } from './collection';\nimport { ERRORS } from '../const/code';\nvar START = 'database.startTransaction';\nvar COMMIT = 'database.commitTransaction';\nvar ABORT = 'database.abortTransaction';\nvar Transaction = (function () {\n function Transaction(db) {\n this._db = db;\n this._request = Db.createRequest(this._db.config);\n this.aborted = false;\n this.commited = false;\n this.inited = false;\n }\n Transaction.prototype.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, this._request.send(START)];\n case 1:\n res = _a.sent();\n if (res.code) {\n throw res;\n }\n this.inited = true;\n this._id = res.transactionId;\n return [2];\n }\n });\n });\n };\n Transaction.prototype.collection = function (collName) {\n if (!collName) {\n throw new Error('Collection name is required');\n }\n return new CollectionReference(this, collName);\n };\n Transaction.prototype.getTransactionId = function () {\n return this._id;\n };\n Transaction.prototype.getRequestMethod = function () {\n return this._request;\n };\n Transaction.prototype.commit = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n transactionId: this._id\n };\n return [4, this._request.send(COMMIT, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n this.commited = true;\n return [2, res];\n }\n });\n });\n };\n Transaction.prototype.rollback = function (customRollbackRes) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n transactionId: this._id\n };\n return [4, this._request.send(ABORT, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n this.aborted = true;\n this.abortReason = customRollbackRes;\n return [2, res];\n }\n });\n });\n };\n return Transaction;\n}());\nexport { Transaction };\nexport function startTransaction() {\n return __awaiter(this, void 0, void 0, function () {\n var transaction;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n transaction = new Transaction(this);\n return [4, transaction.init()];\n case 1:\n _a.sent();\n return [2, transaction];\n }\n });\n });\n}\nexport function runTransaction(callback, times) {\n if (times === void 0) { times = 3; }\n return __awaiter(this, void 0, void 0, function () {\n var transaction, callbackRes, error_1, throwWithRollback;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 4, , 10]);\n transaction = new Transaction(this);\n return [4, transaction.init()];\n case 1:\n _a.sent();\n return [4, callback(transaction)];\n case 2:\n callbackRes = _a.sent();\n if (transaction.aborted === true) {\n throw transaction.abortReason;\n }\n return [4, transaction.commit()];\n case 3:\n _a.sent();\n return [2, callbackRes];\n case 4:\n error_1 = _a.sent();\n if (transaction.inited === false) {\n throw error_1;\n }\n throwWithRollback = function (error) { return __awaiter(_this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(!transaction.aborted && !transaction.commited)) return [3, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4, transaction.rollback()];\n case 2:\n _a.sent();\n return [3, 4];\n case 3:\n err_1 = _a.sent();\n return [3, 4];\n case 4: throw error;\n case 5:\n if (transaction.aborted === true) {\n throw transaction.abortReason;\n }\n throw error;\n }\n });\n }); };\n if (!(times <= 0)) return [3, 6];\n return [4, throwWithRollback(error_1)];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6:\n if (!(error_1 && error_1.code === ERRORS.DATABASE_TRANSACTION_CONFLICT.code)) return [3, 8];\n return [4, runTransaction.bind(this)(callback, --times)];\n case 7: return [2, _a.sent()];\n case 8: return [4, throwWithRollback(error_1)];\n case 9:\n _a.sent();\n return [3, 10];\n case 10: return [2];\n }\n });\n });\n}\n","import * as Geo from './geo/index';\nimport { CollectionReference } from './collection';\nimport { Command } from './command';\nimport { ServerDateConstructor } from './serverDate/index';\nimport { RegExpConstructor } from './regexp/index';\nimport { startTransaction, runTransaction } from './transaction/index';\nimport { LogicCommand } from './commands/logic';\nimport { QueryCommand } from './commands/query';\nimport { UpdateCommand } from './commands/update';\nexport { Query } from './query';\nexport { CollectionReference } from './collection';\nexport { DocumentReference } from './document';\nvar Db = (function () {\n function Db(config) {\n this.config = config;\n this.Geo = Geo;\n this.serverDate = ServerDateConstructor;\n this.command = Command;\n this.RegExp = RegExpConstructor;\n this.startTransaction = startTransaction;\n this.runTransaction = runTransaction;\n this.logicCommand = LogicCommand;\n this.updateCommand = UpdateCommand;\n this.queryCommand = QueryCommand;\n }\n Db.createRequest = function (config) {\n var request = new Db.reqClass(config);\n var originalSend = request.send;\n request.send = function (action, data) {\n if (config.instance) {\n data.instance = config.instance;\n }\n if (config.database) {\n data.database = config.database;\n }\n return originalSend.call(this, action, data);\n };\n return request;\n };\n Db.prototype.collection = function (collName) {\n if (!collName) {\n throw new Error('Collection name is required');\n }\n return new CollectionReference(this, collName);\n };\n Db.prototype.createCollection = function (collName) {\n var request = Db.createRequest(this.config);\n var params = {\n collectionName: collName\n };\n return request.send('database.addCollection', params);\n };\n return Db;\n}());\nexport { Db };\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar $TypeError = require('es-errors/type');\n\nvar toStringTag = hasToStringTag ? Symbol.toStringTag : null;\n\n/** @type {import('.')} */\nmodule.exports = function setToStringTag(object, value) {\n\tvar overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;\n\tvar nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;\n\tif (\n\t\t(typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean')\n\t\t|| (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean')\n\t) {\n\t\tthrow new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans');\n\t}\n\tif (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) {\n\t\tif ($defineProperty) {\n\t\t\t$defineProperty(object, toStringTag, {\n\t\t\t\tconfigurable: !nonConfigurable,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t} else {\n\t\t\tobject[toStringTag] = value; // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n","'use strict';\n\nvar CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar crypto = require('crypto');\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar setToStringTag = require('es-set-tostringtag');\nvar hasOwn = require('hasown');\nvar populate = require('./populate.js');\n\n/**\n * Escape CR, LF, and `\"` in a multipart `name`/`filename` parameter, so a field\n * name or filename can not break out of its header line to inject headers or\n * smuggle additional parts. Matches the WHATWG HTML multipart/form-data encoding.\n *\n * @param {string} str - the parameter value to escape\n * @returns {string} the escaped value\n */\nfunction escapeHeaderParam(str) {\n return String(str).replace(/\\r/g, '%0D').replace(/\\n/g, '%0A').replace(/\"/g, '%22');\n}\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {}; // eslint-disable-line no-param-reassign\n for (var option in options) { // eslint-disable-line no-restricted-syntax\n this[option] = options[option];\n }\n}\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function (field, value, options) {\n options = options || {}; // eslint-disable-line no-param-reassign\n\n // allow filename as single option\n if (typeof options === 'string') {\n options = { filename: options }; // eslint-disable-line no-param-reassign\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value === 'number' || value == null) {\n value = String(value); // eslint-disable-line no-param-reassign\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n /*\n * Please convert your array into string\n * the way web server expects it\n */\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function (header, value, options) {\n var valueLength = 0;\n\n /*\n * used w/ getLengthSync(), when length is known.\n * e.g. for streaming directly from a remote server,\n * w/ a known file a size, and not wanting to wait for\n * incoming file to finish to get its size.\n */\n if (options.knownLength != null) {\n valueLength += Number(options.knownLength);\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || (!value.path && !(value.readable && hasOwn(value, 'httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function (value, callback) {\n if (hasOwn(value, 'fd')) {\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0)); // eslint-disable-line callback-return\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function (err, stat) {\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n var fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (hasOwn(value, 'httpVersion')) {\n callback(null, Number(value.headers['content-length'])); // eslint-disable-line callback-return\n\n // or request stream http://github.com/mikeal/request\n } else if (hasOwn(value, 'httpModule')) {\n // wait till response come back\n value.on('response', function (response) {\n value.pause();\n callback(null, Number(response.headers['content-length']));\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream'); // eslint-disable-line callback-return\n }\n};\n\nFormData.prototype._multiPartHeader = function (field, value, options) {\n /*\n * custom header specified (as string)?\n * it becomes responsible for boundary\n * (e.g. to handle extra CRLFs on .NET servers)\n */\n if (typeof options.header === 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + escapeHeaderParam(field) + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header === 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(headers, prop)) {\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function (value, options) { // eslint-disable-line consistent-return\n var filename;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || (value && (value.name || value.path))) {\n /*\n * custom filename take precedence\n * formidable and the browser add a name property\n * fs- and request- streams have path property\n */\n filename = path.basename(options.filename || (value && (value.name || value.path)));\n } else if (value && value.readable && hasOwn(value, 'httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n return 'filename=\"' + escapeHeaderParam(filename) + '\"';\n }\n};\n\nFormData.prototype._getContentType = function (value, options) {\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value && value.readable && hasOwn(value, 'httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && value && typeof value === 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function () {\n return function (next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = this._streams.length === 0;\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function () {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function (userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(userHeaders, header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function (boundary) {\n if (typeof boundary !== 'string') {\n throw new TypeError('FormData boundary must be a string');\n }\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function () {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function () {\n var dataBuffer = new Buffer.alloc(0); // eslint-disable-line new-cap\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n // Add content to the buffer.\n if (Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]);\n } else {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring(2, boundary.length + 2) !== boundary) {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData.LINE_BREAK)]);\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);\n};\n\nFormData.prototype._generateBoundary = function () {\n // This generates a 50 character boundary similar to those used by Firefox.\n\n // They are optimized for boyer-moore parsing.\n this._boundary = '--------------------------' + crypto.randomBytes(12).toString('hex');\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually and add it as knownLength option\nFormData.prototype.getLengthSync = function () {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n /*\n * Some async length retrievers are present\n * therefore synchronous length calculation is false.\n * Please use getLength(callback) to get proper length\n */\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function () {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function (cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function (err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function (length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function (params, cb) {\n var request;\n var options;\n var defaults = { method: 'post' };\n\n // parse provided url if it's string or treat it as options object\n if (typeof params === 'string') {\n params = parseUrl(params); // eslint-disable-line no-param-reassign\n /* eslint sort-keys: 0 */\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n } else { // use custom params\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol === 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol === 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function (err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function (err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\nsetToStringTag(FormData.prototype, 'FormData');\n\n// Public API\nmodule.exports = FormData;\n","'use strict';\n\n// populates missing values\nmodule.exports = function (dst, src) {\n Object.keys(src).forEach(function (prop) {\n dst[prop] = dst[prop] || src[prop]; // eslint-disable-line no-param-reassign\n });\n\n return dst;\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","module.exports = require(\"@cloudbase/adapter-interface\");","module.exports = require(\"@cloudbase/ai\");","module.exports = require(\"@cloudbase/apis\");","module.exports = require(\"@cloudbase/app\");","module.exports = require(\"@cloudbase/auth\");","module.exports = require(\"@cloudbase/cloudrun\");","module.exports = require(\"@cloudbase/functions\");","module.exports = require(\"@cloudbase/model\");","module.exports = require(\"@cloudbase/mysql\");","module.exports = require(\"@cloudbase/realtime\");","module.exports = require(\"@cloudbase/signature-nodejs\");","module.exports = require(\"@cloudbase/storage\");","module.exports = require(\"@cloudbase/utilities\");","module.exports = require(\"bson\");","module.exports = require(\"jsonwebtoken\");","module.exports = require(\"web-streams-polyfill\");","module.exports = require(\"ws\");","module.exports = require(\"crypto\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"url\");","module.exports = require(\"util\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(4144);\n"],"names":["leafPrototypes","getProto","module","exports","parallel","__webpack_require__","serial","serialOrdered","clean","key","this","jobs","state","Object","keys","forEach","bind","defer","callback","isAsync","err","result","fn","nextTick","setImmediate","process","setTimeout","async","abort","list","iterator","index","item","length","runJob","error","output","results","sortMethod","isNamedList","Array","isArray","initState","keyedList","size","sort","a","b","iterate","terminator","ascending","iteratorHandler","descending","utilities_1","require","setUtilitiesSdkName","constants","setSdkName","setUtilitiesProtocol","setProtocol","sdkVersion","sdkName","version","name","LOGINTYPE","END_POINT_INFO_ARR","END_POINT_INFO_SEARCH_KEYS","findMatchedInfo","info","find","targetInfo","filter","searchKey","every","setEndPointInfo","newInfo","protocol","test","concat","endPointInfo","baseUrl","push","__assign","_a","DEFAULT_PROTOCOL","endPointKey","_b","getEndPointInfo","env","region","intl","PROTOCOL","BASE_URL","match","SECRET_TYPE","INVALID_PARAM","code","message","SYS_ERR","STORAGE_REQUEST_FAIL","STORAGE_FILE_NONEXIST","TCB_CLS_UNOPEN","INVALID_CONTEXT","constants_1","utils_1","parseContext","context","ERROR","parseResult","memory_limit_in_mb","time_limit_in_ms","request_id","function_version","namespace","function_name","environ","environment","memoryLimitInMb","timeLimitIns","requestId","functionVersion","functionName","JSON","parse","parseEnviron","split","parseEnvironObj","i","includes","equalIndex","indexOf","slice","value","_err","getTcbContextConfig","TCB_CONTEXT_CNFG","getCloudbaseContext","_e","console","checkIsInScf","getEnv","envObj","envFromProcessEnv","TRIGGER_SRC","_SCF_TCB_LOG","SCF_NAMESPACE","TENCENTCLOUD_RUNENV","TENCENTCLOUD_SECRETID","TENCENTCLOUD_SECRETKEY","TENCENTCLOUD_SESSIONTOKEN","WX_CONTEXT_KEYS","WX_TRIGGER_API_TOKEN_V0","WX_CLIENTIP","WX_CLIENTIPV6","TCB_CONTEXT_KEYS","CLOUDBASE_APIKEY","envFromContext","_i","contextKeys","_c","_d","allContext","fromEntries","entries","undefined","URL","config","stringify","INIT_CONFIG","_g","TCB_ENV","topLevel","defaultInfo","secretId","secretKey","sessionToken","accessKey","secretType","credentials","SESSION_SECRET","SECRET","auth","contextConfig","extendedContext","envId","tmpSecret","_f","token","adapter_interface_1","request_1","tool_1","context_1","_WS","getWS","e","request_2","enumerable","get","NodeRequest","utils_2","parseQueryString","createWebStreamFromNodeReadableStream","E","TcbError","SYMBOL_CURRENT_ENV","SYMBOL_DEFAULT_ENV","isValidEnvFormat","isPageModuleName","filterValue","filterUndefined","processReturn","setThrowOnCode","context_2","getSecretInfo","getServerInjectUrl","wx_1","getWxCloudToken","buildAdminUrl","sendWxRequest","sendWxFormDataRequest","callWxOpenApi","callCompatibleWxOpenApi","callWxPayApi","wxCallContainerApi","getWxOptions","db","storage","Map","mode","setItem","set","getItem","removeItem","delete","clear","adapter","genAdapter","options","nodeTool","root","globalThis","reqClass","wsClass","sessionStorage","localStorage","primaryStorage","StorageType","session","captchaOptions","openURIWithCallback","_url","EventBus","queryObj","url","matched","search","restQueryObj","__rest","Promise","reject","error_description","resolve","$emit","$once","res","isMatch","versions","node","runtime","kMetadataVersions","isAppId","appIdStr","lookup","path","kMetadataBaseUrl","latest","controller","AbortController","timeout","timer","fetch","signal","resp","sent","status","text","Error","clearTimeout","metadataCache","appId","kAppIdPath","ruleName","kSecurityCredentialsPath","fs","__importStar","common_1","signFn","getSign","then","t","mod","sign","_this","getReqOptions","__awaiter","urlObj","TCB_SOURCE","source","getCurrRunEnvTag","SOURCE","apply","_o","headers","getSdkVersion","Date","valueOf","Host","host","withCredentials","_j","_h","Authorization","replace","trim","pathname","startsWith","CLIENT_AUTH_PATH","isAdminPath","ADMIN_PATH","some","v","getClientCredential","origin","_k","_l","method","body","isNpmFormDataBody","isNpmFormData","params","__plainObj","safeParseJson","envName","_m","access_token","toLowerCase","secretInfo","signedParams","withSignedParams","timestamp","Math","floor","getTime","isCloudApi","authorization","formDataInstance","existingKeys","Set","has","append","formBuffer","getBuffer","formHeaders","getHeaders","String","request","restrictedMethods","post","put","upload","data","rawFile","file","fileContent","formFields","obj2StrRecord","loweredMethod","reqMethod","m","formData","FormData","Blob","download","AbortSignal","ok","arrayBuffer","buffer","Buffer","from","tempFilePath","dir","dirname","existsSync","mkdirSync","recursive","writeFileSync","statusCode","enableAbort","stream","customReqOpts","getRealUrl","createAbortController","abortController","cleanup","headersInit2Indexable","fetchOptions","applyDuplexIfNeeded","header","response","rawHeaders","responseType","rawMethod","externalSignal","payload","isFormData","toQueryString","realUrl","formatUrl","requestOptions","_p","result_1","blob","log","e_2","val","prototype","opts","grant_type","toString","_enableAbort","aborted","addEventListener","once","timeoutMsg","warn","pipe","duplex","obj","jwtSign","getJwtSign","default","getDefaultUserInfo","openId","WX_OPENID","WX_APPID","uid","TCB_UUID","customUserId","TCB_CUSTOM_USER_ID","isAnonymous","TCB_ISANONYMOUS_USER","sendUserInfoRequest","app","send","call","endPointMode","_scfContext","nodeConfig","authMethods_1","getUserInfo","getEndUserInfo","defaultUserInfo","userInfo","validateUid","uuid","createTicket","env_id","refresh","expire","alg","iat","exp","private_key","allowInsecureKeySizes","algorithm","private_key_id","queryUserInfo","query","platform","platformId","getClientIP","TCB_SOURCE_IP","getAuthContext","fullContext","QQ_OPENID","QQ_APPID","loginType","getBaseEndPoint","originalAuth_1","Proxy","target","thisArg","argArray","authInstance","Reflect","_getWxOptions","serviceUrl","sendTemplateNotification","callFunction","methodName","action","NotifyId","notifyId","Data","NotifyUsers","Url","wxOpenApiOptions","getFileAuthority","fileList","type","callApis","callApiOptions","apis","apiPath","apiMethod","web_streams_polyfill_1","metadata_1","checkIsInCBR","utils","kSumeruEnvSet","checkIsInSumeru","checkIsInTencentCloud","lookupAppId","checkCustomUserIdRegex","reduce","acc","cur","h","Headers","_","isHeaders","ret_1","cleanSearch","decodeURIComponent","asyncIterator","Symbol","ReadableStream","pull","next","done","close","enqueue","_super","__extends","errObj","o","throwOnCode","kEnvRuleReg","for","CLOUDBASE_ACCESS_TOKEN_PATH","cloudbaseAccessTokenInfo","WX_API_TOKEN","WX_CLOUDBASE_ACCESSTOKEN","wxCloudToken","wxCloudApiToken","wxCloudbaseAccesstoken","now","readFileSync","loadWxCloudbaseAccesstoken","seqNum","scfContext","TENCENTCLOUD_REGION","seqId","eventId","TCB_SEQID","genSeqId","endpoint","envEndpoint","isValidEnvDomain","defaultUrl","qs","appendWxTokenParams","tcb_sessionToken","TCB_SESSIONTOKEN","reqOpts","requestInstance","plainObj","validateCrossAccount","getCrossAccountInfo","callWxFormDataApi","wxOptions","apiName","apiOptions","cgiName","requestData","transformRequestData","responseData","apiOpts","database_1","bson_1","gateWayFunc","filterRes","flattenResData","safeParseEJSON","EJSON","buildQueryParams","map","stringValue","encodeURIComponent","join","getUrlPrefix","instance","database","isQueryDoc","_id","$eq","queryParams","projection","transactionId","offset","limit","order","relaxed","collectionName","gateWay","ids","insertedIds","multi","upsert","replaceMode","count","pipeline","stages","stage","stageValue","stageKey","serialize","hasId","inserted","commands","deserialize","component","entity","dbConfig","Req","constructor","Db","getAccessToken","wsClientClass","ws","NewDb","runCommands","createRequest","_fromApp","cloudbase","registerComponent","registerDatabase","window","app_1","auth_1","functions_1","storage_1","realtime_1","model_1","ai_1","cloudrun_1","mysql_1","apis_1","index_1","registerVersion","__SDK_VERSION__","nodeAdapter","useAdapters","cb","registerAuth","registerFunctions","registerStorage","registerRealtime","registerModel","registerAi","registerCloudrun","registerMySQL","registerApis","ErrorCode","Opeartor","QueryType","FieldType","OrderDirectionList","WhereFilterOpList","eq","lt","lte","gt","gte","extendStatics","d","setPrototypeOf","__proto__","p","hasOwnProperty","TypeError","__","create","_symbols","__internalMark__","InternalSymbol","__mark__","len","symbol","defineProperties","writable","configurable","SYMBOL_UNSET_FIELD_NAME","SYMBOL_UPDATE_COMMAND","SYMBOL_QUERY_COMMAND","SYMBOL_LOGIC_COMMAND","SYMBOL_GEO_POINT","SYMBOL_GEO_LINE_STRING","SYMBOL_GEO_POLYGON","SYMBOL_GEO_MULTI_POINT","SYMBOL_GEO_MULTI_LINE_STRING","SYMBOL_GEO_MULTI_POLYGON","SYMBOL_SERVER_DATE","SYMBOL_REGEXP","getType","x","isObject","isNumber","isDate","isRegExp","isInternalObject","_internalType","LineString","points","point","Point","coordinates","toJSON","validate","lineString","e_1","s","__values","e_1_1","return","isClosed","firstPoint","lastPoint","latitude","longitude","defineProperty","Polygon","lines","line","toReadableString","polygon","isCloseLineString","line_1","line_1_1","e_2_1","MultiPoint","multiPoint","MultiLineString","multiLineString","MultiPolygon","polygons","polygons_1","polygons_1_1","multiPolygon","e_3","e_4","polygon_1","polygon_1_1","e_4_1","e_3_1","ServerDate","$date","ServerDateConstructor","opt","UPDATE_COMMANDS_LITERAL","__read","n","r","ar","Util","formatResDocumentData","documents","document","formatField","protoField","realValue","whichType","lng","lat","$timestamp","generateDocId","autoId","charAt","chars","random","Validate","isGeopoint","degree","degreeAbs","abs","isInteger","param","num","Number","isFieldOrder","direction","isFieldPath","isOperator","op","isCollName","isDocID","docId","createPromiseCallback","promise","throwPromiseNotDefined","LOGIC_COMMANDS_LITERAL","UpdateCommand","operator","operands","fieldName","_setFieldName","isUpdateCommand","object","LogicCommand","isLogicCommand","isQueryCommand","operand","and","__expressions__","arguments","expressions","unshift","AND","or","OR","QUERY_COMMANDS_LITERAL","QueryCommand","IN","NIN","command","EQ","neq","NEQ","GT","GTE","LT","LTE","in","nin","geoNear","geometry","maxDistance","minDistance","GEO_NEAR","geoWithin","GEO_WITHIN","geoIntersects","GEO_INTERSECTS","isComparisonCommand","OperatorMap","operatorToString","assign","__spreadArray","to","pack","l","serializeHelper","visited","$regex","$options","flags","ret","flatten","shouldPreserverObject","parents","cloned","flattenedChild","hasKeyNotCombined","childKey","flattenQueryObject","isConversionRequired","mergeConditionAfterEncode","condition","conditionKey","encodeInternalDataType","serializeInternalDataType","UpdateSerializer","encode","encodeUpdate","encodeUpdateCommand","encodeUpdateObject","encodeArrayUpdateCommand","encodeFieldUpdateCommand","$op","modifiers","$each","$position","flattened","$setCommand","wsList","getWsInstance","appConfig","docSizeLimit","realtimePingInterval","realtimePongWaitTimeout","DocumentReference","coll","docID","watch","_db","_coll","id","isBatch","catch","hasOperator","checkMixed","objs","queryType","merge","updated","upsertedId","upserted_id","update","remove","deleted","field","k","QuerySerializer","QueryEncoder","encodeQuery","encodeLogicCommand","encodeQueryCommand","encodeQueryObject","encodeRegExp","subqueries","oprand","operatorExpression","subquery","encodeComparisonCommand","$nearSphere","$geometry","$maxDistance","$minDistance","$geoWithin","$geoIntersects","Query","fieldFilters","fieldOrders","queryOptions","_fieldFilters","_queryOptions","orderBy","_fieldOrders","_request","newOder","total","where","checkFlag","fieldPath","directionStr","newOrder","combinedOrders","option","skip","upsertId","upsert_id","Aggregation","_stages","_collectionName","end","_arguments","generator","f","y","g","label","trys","ops","verb","throw","pop","step","__generator","P","fulfilled","rejected","unwrap","_pipe","addFields","bucket","bucketAuto","distanceMultiplier","near","group","project","replaceRoot","sample","sortByCount","unwind","aggregate","CollectionReference","doc","add","Command","all","elemMatch","exists","nor","not","inc","mul","values","args","each","position","$sort","$slice","pullAll","shift","__values__","addToSet","rename","bit","max","min","expr","$expr","jsonSchema","schema","$jsonSchema","$search","$language","language","$caseSensitive","caseSensitive","$diacriticSensitive","diacriticSensitive","AggregationOperator","ceil","divide","ln","log10","multiply","pow","sqrt","subtract","trunc","arrayElemAt","arrayToObject","concatArrays","indexOfArray","range","reverseArray","zip","cmp","cond","ifNull","switch","dateFromParts","dateFromString","dayOfMonth","dayOfWeek","dayOfYear","isoDayOfWeek","isoWeek","isoWeekYear","millisecond","minute","month","second","hour","week","year","literal","mergeObjects","objectToArray","allElementsTrue","anyElementTrue","setDifference","setEquals","setIntersection","setIsSubset","setUnion","dateToString","indexOfBytes","indexOfCP","strLenBytes","strLenCP","strcasecmp","substr","substrBytes","substrCP","toLower","toUpper","meta","avg","first","last","stdDevPop","stdDevSamp","sum","let","ProjectionOperator","RegExp","regexp","RegExpConstructor","ERRORS","UPDATE_DOC","transaction","_transaction","getRequestMethod","_transactionId","getTransactionId","upserted","GET_DOC","Transaction","commited","inited","init","collection","collName","commit","rollback","customRollbackRes","abortReason","startTransaction","runTransaction","times","callbackRes","error_1","throwWithRollback","Geo","serverDate","logicCommand","updateCommand","queryCommand","originalSend","createCollection","$apply","$call","$reflectApply","Function","$TypeError","$actualApply","util","Stream","DelayedStream","CombinedStream","readable","dataSize","maxDataSize","pauseStreams","_released","_streams","_currentStream","_insideLoop","_pendingNext","inherits","combinedStream","isStreamLike","isBuffer","newStream","Infinity","pauseStream","on","_checkDataSize","_handleErrors","pause","dest","resume","_getNext","_realGetNext","_pipeNext","write","self","_emitError","emit","_reset","destroy","_updateDataSize","_maxDataSizeExceeded","_bufferedEvents","delayedStream","realEmit","_handleEmit","setEncoding","release","_checkIfMaxDataSizeExceeded","hasProtoAccessor","callBind","gOPD","desc","$Object","$getPrototypeOf","getPrototypeOf","$defineProperty","EvalError","RangeError","ReferenceError","SyntaxError","URIError","GetIntrinsic","hasToStringTag","hasOwn","toStringTag","overrideIfSet","force","nonConfigurable","http","https","parseUrl","crypto","mime","asynckit","setToStringTag","populate","escapeHeaderParam","str","_overheadLength","_valueLength","_valuesToMeasure","LINE_BREAK","DEFAULT_CONTENT_TYPE","filename","_error","_multiPartHeader","footer","_multiPartFooter","_trackLength","valueLength","knownLength","byteLength","_lengthRetriever","start","stat","fileSize","contentDisposition","_getContentDisposition","contentType","_getContentType","contents","prop","getBoundary","filepath","normalize","basename","client","_httpMessage","_lastBoundary","userHeaders","setBoundary","boundary","_boundary","_generateBoundary","dataBuffer","alloc","substring","randomBytes","getLengthSync","hasKnownLength","getLength","submit","defaults","port","hostname","setHeader","onResponse","responce","removeListener","dst","src","toStr","concatty","arr","j","that","bound","arrLike","slicy","boundLength","boundArgs","joiny","Empty","implementation","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$URIError","round","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","$ObjectGPO","$ReflectGPO","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","decodeURI","encodeURI","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","parseFloat","parseInt","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","splice","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","allowMissing","alias","intrinsicName","parts","string","number","quote","subString","stringToPath","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","reflectGetProto","originalGetProto","getDunderProto","O","getOwnPropertyDescriptor","origSymbol","hasSymbolSham","getOwnPropertySymbols","sym","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","$hasOwn","$isNaN","extensions","types","preference","extname","EXTRACT_TYPE_REGEXP","TEXT_TYPE_REGEXP","charset","charsets","extension","exts","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","__esModule","ns","def","current","definition","__webpack_exports__"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.node.cjs.js","mappings":"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","sources":["webpack://@cloudbase/js-sdk/webpack/runtime/create fake namespace object","webpack://@cloudbase/js-sdk/../node_modules/asynckit/index.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/abort.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/async.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/defer.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/iterate.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/state.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/lib/terminator.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/parallel.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/serial.js","webpack://@cloudbase/js-sdk/../node_modules/asynckit/serialOrdered.js","webpack://@cloudbase/js-sdk/../app/src/constants/common.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/constants.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/context.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/index.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/metadata.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/request.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/tool.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/utils.ts","webpack://@cloudbase/js-sdk/../app/src/libs/adapter-node/wx.ts","webpack://@cloudbase/js-sdk/../database/src/index.ts","webpack://@cloudbase/js-sdk/../index.node.ts","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/constant.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/utils/symbol.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/helper/symbol.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/utils/type.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/lineString.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/polygon.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/multiPoint.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/multiLineString.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/multiPolygon.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serverDate/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/util.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/update.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/validate.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/point.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/lib/util.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/logic.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/operator-map.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/datatype.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/common.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/update.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/utils/utils.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/document.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/aggregate.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/collection.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/command.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/regexp/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/const/code.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/document.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/collection.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/index.js","webpack://@cloudbase/js-sdk/../node_modules/call-bind-apply-helpers/actualApply.js","webpack://@cloudbase/js-sdk/../node_modules/call-bind-apply-helpers/functionApply.js","webpack://@cloudbase/js-sdk/../node_modules/call-bind-apply-helpers/functionCall.js","webpack://@cloudbase/js-sdk/../node_modules/call-bind-apply-helpers/index.js","webpack://@cloudbase/js-sdk/../node_modules/call-bind-apply-helpers/reflectApply.js","webpack://@cloudbase/js-sdk/../node_modules/combined-stream/lib/combined_stream.js","webpack://@cloudbase/js-sdk/../node_modules/delayed-stream/lib/delayed_stream.js","webpack://@cloudbase/js-sdk/../node_modules/dunder-proto/get.js","webpack://@cloudbase/js-sdk/../node_modules/es-define-property/index.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/eval.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/index.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/range.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/ref.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/syntax.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/type.js","webpack://@cloudbase/js-sdk/../node_modules/es-errors/uri.js","webpack://@cloudbase/js-sdk/../node_modules/es-object-atoms/index.js","webpack://@cloudbase/js-sdk/../node_modules/es-set-tostringtag/index.js","webpack://@cloudbase/js-sdk/../node_modules/form-data/lib/form_data.js","webpack://@cloudbase/js-sdk/../node_modules/form-data/lib/populate.js","webpack://@cloudbase/js-sdk/../node_modules/function-bind/implementation.js","webpack://@cloudbase/js-sdk/../node_modules/function-bind/index.js","webpack://@cloudbase/js-sdk/../node_modules/get-intrinsic/index.js","webpack://@cloudbase/js-sdk/../node_modules/get-proto/Object.getPrototypeOf.js","webpack://@cloudbase/js-sdk/../node_modules/get-proto/Reflect.getPrototypeOf.js","webpack://@cloudbase/js-sdk/../node_modules/get-proto/index.js","webpack://@cloudbase/js-sdk/../node_modules/gopd/gOPD.js","webpack://@cloudbase/js-sdk/../node_modules/gopd/index.js","webpack://@cloudbase/js-sdk/../node_modules/has-symbols/index.js","webpack://@cloudbase/js-sdk/../node_modules/has-symbols/shams.js","webpack://@cloudbase/js-sdk/../node_modules/has-tostringtag/shams.js","webpack://@cloudbase/js-sdk/../node_modules/hasown/index.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/abs.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/floor.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/isNaN.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/max.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/min.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/pow.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/round.js","webpack://@cloudbase/js-sdk/../node_modules/math-intrinsics/sign.js","webpack://@cloudbase/js-sdk/../node_modules/mime-db/index.js","webpack://@cloudbase/js-sdk/../node_modules/mime-types/index.js","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/adapter-interface\",\"commonjs2\":\"@cloudbase/adapter-interface\",\"amd\":\"@cloudbase/adapter-interface\",\"root\":\"@cloudbase/adapter-interface\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/ai\",\"commonjs2\":\"@cloudbase/ai\",\"amd\":\"@cloudbase/ai\",\"root\":\"@cloudbase/ai\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/apis\",\"commonjs2\":\"@cloudbase/apis\",\"amd\":\"@cloudbase/apis\",\"root\":\"@cloudbase/apis\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/app\",\"commonjs2\":\"@cloudbase/app\",\"amd\":\"@cloudbase/app\",\"root\":\"@cloudbase/app\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/auth\",\"commonjs2\":\"@cloudbase/auth\",\"amd\":\"@cloudbase/auth\",\"root\":\"@cloudbase/auth\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/cloudrun\",\"commonjs2\":\"@cloudbase/cloudrun\",\"amd\":\"@cloudbase/cloudrun\",\"root\":\"@cloudbase/cloudrun\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/functions\",\"commonjs2\":\"@cloudbase/functions\",\"amd\":\"@cloudbase/functions\",\"root\":\"@cloudbase/functions\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/model\",\"commonjs2\":\"@cloudbase/model\",\"amd\":\"@cloudbase/model\",\"root\":\"@cloudbase/model\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/mysql\",\"commonjs2\":\"@cloudbase/mysql\",\"amd\":\"@cloudbase/mysql\",\"root\":\"@cloudbase/mysql\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/realtime\",\"commonjs2\":\"@cloudbase/realtime\",\"amd\":\"@cloudbase/realtime\",\"root\":\"@cloudbase/realtime\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/signature-nodejs\",\"commonjs2\":\"@cloudbase/signature-nodejs\",\"amd\":\"@cloudbase/signature-nodejs\",\"root\":\"@cloudbase/signature-nodejs\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/storage\",\"commonjs2\":\"@cloudbase/storage\",\"amd\":\"@cloudbase/storage\",\"root\":\"@cloudbase/storage\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"@cloudbase/utilities\",\"commonjs2\":\"@cloudbase/utilities\",\"amd\":\"@cloudbase/utilities\",\"root\":\"@cloudbase/utilities\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"bson\",\"commonjs2\":\"bson\",\"amd\":\"bson\",\"root\":\"bson\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"jsonwebtoken\",\"commonjs2\":\"jsonwebtoken\",\"amd\":\"jsonwebtoken\",\"root\":\"jsonwebtoken\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"web-streams-polyfill\",\"commonjs2\":\"web-streams-polyfill\",\"amd\":\"web-streams-polyfill\",\"root\":\"web-streams-polyfill\"}","webpack://@cloudbase/js-sdk/external commonjs2 {\"commonjs\":\"ws\",\"commonjs2\":\"ws\",\"amd\":\"ws\",\"root\":\"ws\"}","webpack://@cloudbase/js-sdk/external node-commonjs \"crypto\"","webpack://@cloudbase/js-sdk/external node-commonjs \"fs\"","webpack://@cloudbase/js-sdk/external node-commonjs \"http\"","webpack://@cloudbase/js-sdk/external node-commonjs \"https\"","webpack://@cloudbase/js-sdk/external node-commonjs \"path\"","webpack://@cloudbase/js-sdk/external node-commonjs \"stream\"","webpack://@cloudbase/js-sdk/external node-commonjs \"url\"","webpack://@cloudbase/js-sdk/external node-commonjs \"util\"","webpack://@cloudbase/js-sdk/webpack/bootstrap","webpack://@cloudbase/js-sdk/webpack/runtime/define property getters","webpack://@cloudbase/js-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@cloudbase/js-sdk/webpack/runtime/make namespace object","webpack://@cloudbase/js-sdk/webpack/startup"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","import { EndPointKey } from '@cloudbase/types'\nimport { constants } from '@cloudbase/utilities'\n\n// @ts-ignore\nconst { setSdkName: setUtilitiesSdkName, setProtocol: setUtilitiesProtocol } = constants\n/**\n * SDK\n */\nlet sdkVersion = ''\nlet sdkName = '@cloudbase/js-sdk'\n\nexport function setSdkVersion(version: string) {\n sdkVersion = version\n}\nexport function getSdkVersion() {\n return sdkVersion\n}\nexport function setSdkName(name: string) {\n sdkName = name\n setUtilitiesSdkName(name)\n}\nexport function getSdkName() {\n return sdkName\n}\nexport const DATA_VERSION = '2020-01-10'\n\ninterface EndPointInfo {\n env: string\n endPointKey: EndPointKey\n region?: string\n baseUrl?: string\n protocol?: Protocol\n}\n\ntype Protocol = 'http' | 'https' | 'http:' | 'https:'\n\n/**\n * 所有 endPoint 信息\n * 避免直接操作该数组\n * 使用 setEndPointInfo、 getEndPointInfo\n */\nconst END_POINT_INFO_ARR: Array<EndPointInfo> = []\n\n/** 用来查找 endPoint 的字段 */\nconst END_POINT_INFO_SEARCH_KEYS = ['env', 'endPointKey', 'region']\n\nexport const DEFAULT_PROTOCOL: 'http:' | 'https:' = 'https:'\n\nfunction findMatchedInfo(info: EndPointInfo) {\n // eslint-disable-next-line max-len, eqeqeq\n return END_POINT_INFO_ARR.find(targetInfo => END_POINT_INFO_SEARCH_KEYS.filter(searchKey => info[searchKey] != null).every(searchKey => targetInfo[searchKey] === info[searchKey],),)\n}\n\nexport function setEndPointInfo(newInfo: EndPointInfo) {\n if (newInfo.protocol && !/:$/.test(newInfo.protocol)) {\n newInfo.protocol = `${newInfo.protocol}:` as Protocol\n }\n\n const endPointInfo = findMatchedInfo(newInfo)\n if (endPointInfo) {\n // eslint-disable-next-line eqeqeq\n if (newInfo.baseUrl != null) {\n endPointInfo.baseUrl = newInfo.baseUrl\n }\n // eslint-disable-next-line eqeqeq\n if (newInfo.protocol != null) {\n endPointInfo.protocol = newInfo.protocol\n }\n } else {\n END_POINT_INFO_ARR.push({ ...newInfo, protocol: newInfo.protocol ?? DEFAULT_PROTOCOL })\n }\n\n // 保持旧代码逻辑\n if (newInfo.endPointKey === 'CLOUD_API') {\n setUtilitiesProtocol((newInfo.protocol ?? DEFAULT_PROTOCOL) as 'http:' | 'https:')\n }\n}\n\nexport function getEndPointInfo(env: string, endPointKey: EndPointKey, region?: string) {\n return findMatchedInfo({ env, endPointKey, region })\n}\n\nexport interface ISetEndPointWithKey {\n key: EndPointKey\n url?: string\n protocol?: 'http' | 'https'\n}\n\nexport function setGatewayEndPointWithEnv(env: string, protocol?: Protocol, intl?: boolean) {\n let baseUrl = `//${env}.api.tcloudbasegateway.com/v1`\n\n if (intl) {\n baseUrl = `//${env}.api.intl.tcloudbasegateway.com/v1`\n }\n\n setEndPointInfo({ endPointKey: 'GATEWAY', env, baseUrl, protocol })\n}\nexport function setRegionLevelEndpoint(env: string, region: string, protocol?: Protocol) {\n const baseUrl = `//${env}.${region || 'ap-shanghai'}.tcb-api.tencentcloudapi.com/web`\n setEndPointInfo({ env, region, baseUrl, protocol, endPointKey: 'CLOUD_API' })\n}\n\nexport function getBaseEndPoint(env: string, endPointKey: EndPointKey = 'CLOUD_API') {\n const info = getEndPointInfo(env, endPointKey || 'CLOUD_API')\n\n const { protocol: PROTOCOL, baseUrl: BASE_URL } = info\n const webEndpoint = `${PROTOCOL}${BASE_URL}`\n // @todo 临时兼容小程序\n return webEndpoint.match(/(http(s)?:)?\\/\\/([^/?#]*)/)[0]\n // return `${new URL(webEndpoint).origin}`\n}\n\nexport enum LOGINTYPE {\n NULL = 'NULL',\n ANONYMOUS = 'ANONYMOUS',\n WECHAT = 'WECHAT',\n WECHAT_PUBLIC = 'WECHAT-PUBLIC',\n WECHAT_OPEN = 'WECHAT-OPEN',\n CUSTOM = 'CUSTOM',\n EMAIL = 'EMAIL',\n USERNAME = 'USERNAME',\n PHONE = 'PHONE',\n}\n\nexport const OAUTH2_LOGINTYPE_PREFIX = 'OAUTH2'\n","/* eslint-disable @typescript-eslint/naming-convention */\n/** 统一错误码定义 */\nexport const ERROR = {\n INVALID_PARAM: {\n code: 'INVALID_PARAM',\n message: 'invalid param',\n },\n SYS_ERR: {\n code: 'SYS_ERR',\n message: 'system error',\n },\n STORAGE_REQUEST_FAIL: {\n code: 'STORAGE_REQUEST_FAIL',\n message: 'storage request fail',\n },\n STORAGE_FILE_NONEXIST: {\n code: 'STORAGE_FILE_NONEXIST',\n message: 'storage file not exist',\n },\n TCB_CLS_UNOPEN: {\n code: 'TCB_CLS_UNOPEN',\n message: '需要先开通日志检索功能',\n },\n INVALID_CONTEXT: {\n code: 'INVALID_CONTEXT',\n message: '无效的context对象,请使用 云函数入口的context参数',\n },\n}\n\n/** 管理端 API 路径,用于替换 /web 路径(需要密钥签名时) */\nexport const ADMIN_PATH = '/admin'\n\n/** 管理端获取客户端凭证 access_token,为管理员权限 */\nexport const CLIENT_AUTH_PATH = '/auth/v1/token/clientCredential'\n\n/** 自定义用户 ID 校验规则:4~32 位,允许字母、数字及部分特殊字符 */\nexport const checkCustomUserIdRegex = /^[a-zA-Z0-9_\\-#@~=*(){}[\\]:.,<>+]{4,32}$/\n\nexport enum SECRET_TYPE {\n 'SECRET' = 'SECRET',\n 'SESSION_SECRET' = 'SESSION_SECRET',\n}\n","/* eslint-disable import/no-mutable-exports */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable no-restricted-syntax */\nimport { ERROR, SECRET_TYPE } from './constants'\nimport { checkIsInScf, getEnv } from './utils'\nimport type { IContextParam, ICompleteCloudbaseContext } from './types'\nimport { ICloudbaseConfig } from '@cloudbase/types'\n\n/**\n * 解析并校验云函数入口的 Context 参数\n * 将下划线命名的字段转为驼峰格式,并解析环境变量\n *\n * @param context - 云函数入口传入的 context 对象\n * @returns 解析后的上下文对象,包含 environment(新架构)或 environ(老架构)\n * @throws INVALID_CONTEXT - context 不是对象或解析失败时\n */\nexport function parseContext(context: IContextParam) {\n if (typeof context !== 'object') {\n throw { ...ERROR.INVALID_CONTEXT, message: 'context 必须为对象类型' }\n }\n\n const parseResult: any = {}\n\n const {\n memory_limit_in_mb,\n time_limit_in_ms,\n request_id,\n function_version,\n namespace,\n function_name,\n\n environ,\n environment,\n } = context\n\n try {\n parseResult.memoryLimitInMb = memory_limit_in_mb\n parseResult.timeLimitIns = time_limit_in_ms\n parseResult.requestId = request_id\n parseResult.functionVersion = function_version\n parseResult.namespace = namespace\n parseResult.functionName = function_name\n\n if (environment) {\n // 新架构:environment 为 JSON 字符串,直接解析\n parseResult.environment = JSON.parse(environment)\n } else {\n // TODO: 考虑移除老架构的兼容逻辑\n // 老架构:environ 为分号分隔的 key=value 字符串\n // 存在 bug:value 含特殊字符时可能影响解析\n const parseEnviron: any = environ?.split(';')\n const parseEnvironObj: any = {}\n\n // eslint-disable-next-line @typescript-eslint/no-for-in-array\n for (const i in parseEnviron) {\n if (parseEnviron[i].includes('=')) {\n // 只按第一个 = 切割,保留 value 中的 =\n const equalIndex = parseEnviron[i].indexOf('=')\n const key = parseEnviron[i].slice(0, equalIndex)\n let value: any = parseEnviron[i].slice(equalIndex + 1)\n\n // value 含逗号时视为数组\n if (value.indexOf(',') >= 0) {\n value = value.split(',')\n }\n parseEnvironObj[key] = value\n }\n }\n\n parseResult.environ = parseEnvironObj\n }\n } catch (_err: any) {\n throw { ...ERROR.INVALID_CONTEXT }\n }\n\n return parseResult\n}\n\n/**\n * 获取当前云函数内的所有环境变量\n * 统一从 process.env 和 context 两个来源合并取值\n *\n * 取值优先级:context > process.env\n * 通过 TCB_CONTEXT_KEYS / WX_CONTEXT_KEYS 动态扩展需要读取的环境变量列表\n *\n * @param context - 可选,云函数入口的 context 参数\n * @returns 合并后的完整环境变量上下文\n */\nexport const getCloudbaseContext = (context?: IContextParam): ICompleteCloudbaseContext => {\n // 云函数环境下校验必要环境变量\n if (checkIsInScf()) {\n if (!getEnv('TENCENTCLOUD_REGION')) {\n console.error('[TCB][ERROR] missing `TENCENTCLOUD_REGION` environment')\n }\n if (!getEnv('SCF_NAMESPACE')) {\n console.error('[TCB][ERROR] missing `SCF_NAMESPACE` environment')\n }\n }\n\n // 第一步:从 process.env 读取基础环境变量\n const envObj = getEnv()\n const envFromProcessEnv: any = {\n TRIGGER_SRC: envObj.TRIGGER_SRC,\n _SCF_TCB_LOG: envObj._SCF_TCB_LOG,\n SCF_NAMESPACE: envObj.SCF_NAMESPACE,\n TENCENTCLOUD_RUNENV: envObj.TENCENTCLOUD_RUNENV,\n TENCENTCLOUD_SECRETID: envObj.TENCENTCLOUD_SECRETID,\n TENCENTCLOUD_SECRETKEY: envObj.TENCENTCLOUD_SECRETKEY,\n TENCENTCLOUD_SESSIONTOKEN: envObj.TENCENTCLOUD_SESSIONTOKEN,\n WX_CONTEXT_KEYS: envObj.WX_CONTEXT_KEYS,\n WX_TRIGGER_API_TOKEN_V0: envObj.WX_TRIGGER_API_TOKEN_V0,\n WX_CLIENTIP: envObj.WX_CLIENTIP,\n WX_CLIENTIPV6: envObj.WX_CLIENTIPV6,\n TCB_CONTEXT_KEYS: envObj.TCB_CONTEXT_KEYS,\n TCB_CONTEXT_CNFG: envObj.TCB_CONTEXT_CNFG,\n LOGINTYPE: envObj.LOGINTYPE,\n CLOUDBASE_APIKEY: envObj.CLOUDBASE_APIKEY,\n }\n\n // 第二步:从 context 中解析环境变量\n let envFromContext: any = {}\n if (context) {\n const { environment, environ } = parseContext(context)\n envFromContext = environment || environ || {}\n }\n\n // 第三步:根据 CONTEXT_KEYS 动态扩展变量列表(优先取 context 中的值)\n const tcbContextKeys = envFromContext.TCB_CONTEXT_KEYS || envObj.TCB_CONTEXT_KEYS\n const wxContextKeys = envFromContext.WX_CONTEXT_KEYS || envObj.WX_CONTEXT_KEYS\n\n // 根据 CONTEXT_KEYS 动态扩展变量列表\n for (const contextKeys of [tcbContextKeys, wxContextKeys]) {\n if (contextKeys) {\n try {\n for (const item of contextKeys.split(',')) {\n envFromProcessEnv[item] = envFromContext[item] || getEnv(item)\n }\n } catch (_e) {\n //\n }\n }\n }\n\n // 第四步:合并所有来源,context 的值覆盖 process.env,过滤 undefined\n const allContext = { ...envFromProcessEnv, ...envFromContext }\n\n return Object.fromEntries(Object.entries(allContext).filter(([, v]) => v !== undefined)) as any\n}\n\n/**\n * 获取 TCB_CONTEXT_CNFG 配置\n * 解析环境变量中约定的 JSON 配置\n */\nexport function getTcbContextConfig(): any {\n try {\n const context: any = getCloudbaseContext()\n const { TCB_CONTEXT_CNFG } = context\n if (TCB_CONTEXT_CNFG) {\n return JSON.parse(TCB_CONTEXT_CNFG)\n }\n return {}\n } catch (_e) {\n console.error('[TCB][ERROR] parse context error: ', _e)\n return {}\n }\n}\n\n/**\n * 获取服务端注入的 URL\n */\nexport function getServerInjectUrl(): string {\n const tcbContextConfig = getTcbContextConfig()\n return tcbContextConfig.URL || ''\n}\n\n/** 缓存 extendedContext,供其他模块读取(如 tool.ts 中获取 userId) */\nexport let INIT_CONFIG: ICloudbaseConfig = {} as unknown as ICloudbaseConfig\n\n/**\n * 从环境变量 / config 顶层字段 / context 中获取腾讯云密钥信息\n * 兼容 node-sdk 风格的顶层配置(secretId, secretKey, credentials, context 等)\n * 用于 API 请求签名\n */\nexport const getSecretInfo = (config?: ICloudbaseConfig) => {\n INIT_CONFIG = JSON.parse(JSON.stringify(config || INIT_CONFIG))\n\n // --- 环境变量中的密钥 ---\n const { TCB_ENV, SCF_NAMESPACE, TENCENTCLOUD_RUNENV, TENCENTCLOUD_SECRETID, TENCENTCLOUD_SECRETKEY, TENCENTCLOUD_SESSIONTOKEN, CLOUDBASE_APIKEY } = getCloudbaseContext()\n const topLevel = { ...INIT_CONFIG, ...config } as any\n\n // --- env 处理 ---\n // env 可能为 symbol(SYMBOL_CURRENT_ENV / SYMBOL_DEFAULT_ENV),尝试从环境变量获取\n let env = ''\n if (typeof config?.env === 'symbol' || !config?.env) {\n env = TCB_ENV || SCF_NAMESPACE || ''\n } else {\n env = config.env as string\n }\n\n // 本地调试环境特殊处理\n if (env === 'local' && TENCENTCLOUD_RUNENV === 'WX_LOCAL_SCF') {\n env = ''\n }\n\n const defaultInfo = {\n env,\n secretId: '',\n secretKey: '',\n sessionToken: '',\n accessKey: '',\n secretType: '',\n credentials: undefined as any,\n context: undefined as any,\n }\n\n // --- 顶层 context(functions-framework 上下文) ---\n if (topLevel?.context) {\n defaultInfo.context = topLevel.context\n }\n\n // --- 顶层 credentials(私钥认证) ---\n if (topLevel?.credentials) {\n defaultInfo.credentials = topLevel.credentials\n }\n\n // --- accessKey 优先级:config.accessKey > 环境变量 ---\n if (config?.accessKey || topLevel?.accessKey) {\n defaultInfo.accessKey = config?.accessKey || topLevel?.accessKey\n return defaultInfo\n }\n\n // --- 顶层 secretId/secretKey(node-sdk 风格兼容) ---\n if (topLevel?.secretId && topLevel?.secretKey) {\n return {\n ...defaultInfo,\n secretId: topLevel.secretId,\n secretKey: topLevel.secretKey,\n sessionToken: topLevel.sessionToken || '',\n secretType: topLevel.sessionToken ? SECRET_TYPE.SESSION_SECRET : SECRET_TYPE.SECRET,\n }\n }\n\n // --- config.auth 中的密钥 ---\n if (config?.auth?.secretId && config?.auth?.secretKey) {\n return {\n ...defaultInfo,\n secretId: config.auth.secretId,\n secretKey: config.auth.secretKey,\n sessionToken: config.auth.sessionToken || '',\n secretType: config.auth.secretType || SECRET_TYPE.SECRET,\n }\n }\n\n if (CLOUDBASE_APIKEY) {\n return {\n ...defaultInfo,\n accessKey: CLOUDBASE_APIKEY,\n }\n }\n\n if (TENCENTCLOUD_SECRETID && TENCENTCLOUD_SECRETKEY) {\n return {\n ...defaultInfo,\n secretId: TENCENTCLOUD_SECRETID,\n secretKey: TENCENTCLOUD_SECRETKEY,\n sessionToken: TENCENTCLOUD_SESSIONTOKEN || '',\n secretType: SECRET_TYPE.SESSION_SECRET,\n }\n }\n\n // --- context.extendedContext 中的临时密钥 ---\n const contextConfig = topLevel?.context || config?.context\n if (contextConfig?.extendedContext) {\n const { extendedContext } = contextConfig\n if (!env) {\n env = extendedContext.envId || ''\n }\n\n return {\n ...defaultInfo,\n env,\n secretId: extendedContext?.tmpSecret?.secretId || '',\n secretKey: extendedContext?.tmpSecret?.secretKey || '',\n sessionToken: extendedContext?.tmpSecret?.token || '',\n }\n }\n\n return { ...defaultInfo }\n}\n","/* eslint-disable prefer-destructuring */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport {\n SDKAdapterInterface,\n StorageInterface,\n StorageType,\n WebSocketContructor as WebSocketConstructor,\n} from '@cloudbase/adapter-interface'\n\nimport { NodeRequest } from './request'\nimport { nodeTool } from './tool'\nimport { getSecretInfo } from './context'\nimport { parseQueryString } from './utils'\nimport { ICloudbaseConfig } from '@cloudbase/types'\n\n// ws 延迟加载,避免非 Node 环境打包时引入\nlet _WS: any = null\nfunction getWS() {\n if (!_WS) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports\n _WS = require('ws')\n } catch (e) {\n console.error('缺少依赖 ws,请执行以下命令安装:\\n\\n'\n + ' npm install ws\\n\\n'\n + '该依赖用于 Node 环境下的 WebSocket 连接。',)\n }\n }\n return _WS\n}\n\n// Re-export for external consumers\nexport { NodeRequest } from './request'\nexport { parseQueryString, createWebStreamFromNodeReadableStream, E, TcbError, SYMBOL_CURRENT_ENV, SYMBOL_DEFAULT_ENV, isValidEnvFormat, isPageModuleName, filterValue, filterUndefined, processReturn, setThrowOnCode } from './utils'\nexport { getCloudbaseContext, parseContext, getSecretInfo, getServerInjectUrl, getTcbContextConfig } from './context'\nexport { getWxCloudToken, buildAdminUrl, sendWxRequest, sendWxFormDataRequest, callWxOpenApi, callCompatibleWxOpenApi, callWxPayApi, wxCallContainerApi, getWxOptions } from './wx'\nexport type {\n ICreateTicketOpts,\n IGetUserInfoResult,\n IGetEndUserInfoResult,\n IUserInfoQuery,\n IContextParam,\n ICompleteCloudbaseContext,\n ISCFContext,\n ICallWxOpenApiOptions,\n ICallWxOpenApiResult,\n ITemplateNotifyReq,\n Extension,\n} from './types'\n\n/**\n * 环境匹配检测:判断当前运行环境是否为 Node.js\n * SDK 通过此方法决定是否使用当前 adapter\n */\nfunction isMatch(): boolean {\n // eslint-disable-next-line eqeqeq\n return typeof process !== 'undefined' && process.versions != null && process.versions.node != null\n}\n\n/**\n * 基于 Map 的内存存储实现\n * Node.js 环境下无浏览器 Storage API,使用内存 Map 模拟\n */\nconst storage: StorageInterface = (() => {\n const db = new Map()\n return {\n mode: 'sync',\n setItem(key, value) {\n db.set(key, value)\n },\n getItem(key) {\n return db.get(key)\n },\n removeItem(key) {\n db.delete(key)\n },\n clear() {\n db.clear()\n },\n }\n})()\n\n/**\n * 生成 Node.js 环境的 SDK Adapter\n * 组装请求类、存储、WebSocket、认证等能力\n *\n * @param options - 配置项,包含 EventBus(用于验证码回调)\n * @returns SDK Adapter 实例\n */\nfunction genAdapter(options: any) {\n const adapter: SDKAdapterInterface & {\n getSecretInfo: (config?: ICloudbaseConfig) => {\n env: string\n secretId: string\n secretKey: string\n sessionToken: string\n accessKey: string\n secretType: string\n }\n nodeTool: (app: any, config: ICloudbaseConfig) => void\n } = {\n nodeTool,\n getSecretInfo,\n root: { globalThis: {} },\n reqClass: NodeRequest,\n wsClass: getWS() as WebSocketConstructor,\n sessionStorage: storage,\n localStorage: storage,\n primaryStorage: StorageType.session,\n captchaOptions: {\n /**\n * 验证码处理回调\n * 解析 data: URI 中的验证码参数,通过 EventBus 通知业务层\n * 等待业务层返回验证结果后 resolve\n */\n openURIWithCallback: (_url: string) => {\n const { EventBus } = options\n let queryObj: Record<string, string | string[]> = {}\n let url = _url\n\n // 从 data: URI 中提取查询参数\n const matched = _url.match(/^(data:.*?)(\\?[^#\\s]*)?$/)\n if (matched) {\n url = matched[1]\n const search = matched[2]\n if (search) {\n queryObj = parseQueryString(search)\n }\n }\n\n const { token, ...restQueryObj } = queryObj\n\n // data: 协议但无 token,视为无效验证码数据\n if (/^data:/.test(url) && !token) {\n return Promise.reject({\n error: 'invalid_argument',\n error_description: `invalie captcha data: ${_url}`,\n })\n }\n if (!token) {\n return Promise.reject({\n error: 'unimplemented',\n error_description: 'need to impl captcha data',\n })\n }\n\n return new Promise((resolve) => {\n // 通知业务层展示验证码\n EventBus.$emit('CAPTCHA_DATA_CHANGE', {\n ...restQueryObj,\n token,\n url,\n })\n\n // 等待业务层返回验证结果\n EventBus.$once('RESOLVE_CAPTCHA_DATA', (res: { captcha_token: string; expires_in: number }) => {\n resolve(res)\n })\n })\n },\n },\n }\n return adapter\n}\n\n/** Node.js Adapter 入口导出 */\nconst adapter = {\n genAdapter,\n isMatch,\n runtime: 'node-adapter',\n}\n\nexport default adapter\n","/* eslint-disable @typescript-eslint/naming-convention */\n// 注意:改地址已经不是一定可以访问的了\nexport const kMetadataBaseUrl = 'http://metadata.tencentyun.com'\n\nexport const kAppIdPath = 'meta-data/app-id'\nexport const kSecurityCredentialsPath = 'meta-data/cam/security-credentials'\n\nexport enum kMetadataVersions {\n 'v20170919' = '2017-09-19',\n 'v1.0' = '1.0',\n 'latest' = 'latest',\n}\n\nexport function isAppId(appIdStr: string) {\n return /^[1-9][0-9]{4,64}$/gim.test(appIdStr)\n}\n\nexport async function lookup(path: string, options: { timeout?: number } = {}): Promise<string> {\n const url = `${kMetadataBaseUrl}/${kMetadataVersions.latest}/${path}`\n\n const controller = new AbortController()\n let timer: ReturnType<typeof setTimeout> | undefined\n if (options.timeout) {\n timer = setTimeout(() => controller.abort(), options.timeout)\n }\n\n try {\n const resp = await fetch(url, { signal: controller.signal })\n if (resp.status === 200) {\n return await resp.text()\n }\n throw new Error(`[ERROR] GET ${url} status: ${resp.status}`)\n } finally {\n if (timer) clearTimeout(timer)\n }\n}\n\nconst metadataCache: { appId: string | undefined } = {\n appId: undefined,\n}\n/**\n * lookupAppId - 该方法主要用于判断是否在云上环境\n * @returns\n */\nexport async function lookupAppId(): Promise<string> {\n if (metadataCache.appId === undefined) {\n try {\n // 只有首次会请求且要求快速返回,超时时间很短,DNS无法解析将会超时返回\n // 在云环境中,这个时间通常在 10ms 内,部分耗时长(30+ms)的情况是 DNS 解析耗时长(27+ms)\n const appId = await lookup(kAppIdPath, { timeout: 30 })\n if (isAppId(appId)) {\n metadataCache.appId = appId\n } else {\n metadataCache.appId = ''\n }\n } catch (_e) {\n // ignore\n }\n }\n return metadataCache.appId || ''\n}\n\nexport async function lookupCredentials(ruleName: string): Promise<string> {\n // `${kMetadataBaseUrl}/meta-data/cam/security-credentials/TCB_QcsRole`\n // 这里设置了一个较短的超时时间,因为这个请求是在云环境中发起的,通常会很快返回\n return await lookup(`${kSecurityCredentialsPath}/${ruleName}`, {\n timeout: 200,\n })\n}\n","/* eslint-disable no-nested-ternary */\nimport * as fs from 'fs'\nimport * as path from 'path'\nimport {\n IFetchOptions,\n IRequestConfig,\n IRequestMethod,\n IRequestOptions,\n ResponseObject,\n SDKRequestInterface,\n formatUrl,\n} from '@cloudbase/adapter-interface'\nimport { ADMIN_PATH, CLIENT_AUTH_PATH } from './constants'\nimport { getCloudbaseContext, getSecretInfo, INIT_CONFIG } from './context'\nimport type { ICustomReqOpts } from './types'\nimport {\n getEnv,\n isFormData,\n toQueryString,\n safeParseJson,\n obj2StrRecord,\n headersInit2Indexable,\n getCurrRunEnvTag,\n} from './utils'\nimport { ICloudbaseConfig } from '@cloudbase/types'\nimport { getSdkVersion } from '../../constants/common'\n// 延迟加载,避免非 Node 环境打包时引入此包\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet signFn: ((...args: any[]) => any) | null = null\nasync function getSign() {\n if (!signFn) {\n try {\n // @ts-ignore — 该包仅在 Node 运行时存在,开发环境可能未安装\n const mod = await import('@cloudbase/signature-nodejs')\n signFn = mod.sign\n } catch (e) {\n console.error('缺少依赖 @cloudbase/signature-nodejs,请执行以下命令安装:\\n\\n'\n + ' npm install @cloudbase/signature-nodejs\\n\\n'\n + '该依赖用于 Node 环境下的请求签名。')\n }\n }\n return signFn!\n}\n\n/**\n * Node.js 环境下的 HTTP 请求实现\n * 基于原生 fetch,支持 GET/POST/PUT/上传/下载/流式请求\n * 自动处理 V3 签名和 Bearer Token 认证\n */\nexport class NodeRequest implements SDKRequestInterface {\n /** 请求配置,包含认证信息 */\n config: IRequestConfig & ICloudbaseConfig\n\n /** 请求超时时间(毫秒);未设置(undefined)时表示不限制超时(不超时) */\n private readonly timeout: number | undefined\n\n /** 受超时控制的请求类型列表 */\n private readonly restrictedMethods: Array<IRequestMethod>\n\n constructor(config: IRequestConfig & ICloudbaseConfig) {\n const { timeout, restrictedMethods } = config\n // Node 环境默认不设置 timeout(不超时),仅当显式传入时才启用超时\n this.timeout = timeout\n this.restrictedMethods = restrictedMethods || ['get', 'post', 'upload', 'download']\n this.config = config\n }\n\n /**\n * 获取客户端凭证 access_token,为管理员权限\n * 用于不支持 V3 签名的接口(如数据模型、关系型数据库、AI)\n */\n async getClientCredential(opts: { origin: string }): Promise<any> {\n const res = await this.fetch({\n url: `${opts.origin}${CLIENT_AUTH_PATH}`,\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify({\n grant_type: 'client_credentials',\n }),\n })\n\n return res.data?.access_token\n }\n\n /**\n * 获取实际请求 URL\n * 当请求未携带 Authorization 且未自带 access_token 时,\n * 将 /web 路径替换为 /admin(管理端签名路径)\n */\n getRealUrl(url: string, headers: Record<string, any>, body: any) {\n if (headers.Authorization?.replace('Bearer', '')?.trim()) {\n return url\n }\n\n const params = typeof body === 'object' ? body : safeParseJson(body) || ''\n\n if (params.access_token) {\n return url\n }\n\n const urlObj = new URL(url)\n\n if (urlObj.pathname === '/web' && this.config.auth?.secretId && this.config.auth?.secretKey) {\n urlObj.pathname = ADMIN_PATH\n }\n return urlObj.toString()\n }\n\n public getReqOptions = async (\n url: string,\n options: {\n method?: any\n headers: any\n body?: any\n credentials?: string\n withCredentials?: boolean\n signal?: AbortSignal\n url?: any\n },\n ) => {\n const urlObj = new URL(url)\n\n const { TCB_SOURCE } = getCloudbaseContext()\n // Note: 云函数被调用时可能调用端未传递 SOURCE,TCB_SOURCE 可能为空\n const SOURCE = `${INIT_CONFIG.context?.extendedContext?.source || TCB_SOURCE || ''},${await getCurrRunEnvTag()}`\n\n options.headers = {\n ...options.headers,\n 'User-Agent': `adapter-node/${options.headers?.['X-SDK-Version'] || `@cloudbase/js-sdk/${getSdkVersion()}`}`,\n 'X-TCB-Source': SOURCE,\n 'X-Client-Timestamp': new Date().valueOf(),\n 'X-TCB-Region': INIT_CONFIG.region || getEnv('TENCENTCLOUD_REGION') || '',\n Host: urlObj.host,\n }\n\n // 调用方显式声明 withCredentials: false 时,表示这是一次匿名请求\n // (如 Storage 签名直传 / 公开下载,仅凭 token 或 Bucket public 属性鉴权)。\n // 此场景下不应注入登录态或 V3 管理签名,否则会与 token 鉴权冲突,造成「二次签名」。\n if (options.withCredentials === false) {\n return options\n }\n\n // 已携带有效 Authorization,直接返回\n if (options.headers.Authorization?.replace('Bearer', '')?.trim()) {\n return options\n }\n\n // auth 相关接口不需要签名\n if (urlObj.pathname.startsWith('/auth/') && urlObj.pathname !== CLIENT_AUTH_PATH) {\n return options\n }\n\n const isAdminPath = urlObj.pathname === ADMIN_PATH\n\n // 这些路径不支持 V3 签名,改用 clientCredential 获取 Bearer Token\n const UNSUPPORTED_V3_SIGN_PATH = ['/v1/model/', '/v1/rdb/', '/v1/ai/']\n\n if (UNSUPPORTED_V3_SIGN_PATH.some(v => urlObj.pathname.startsWith(v))) {\n const token = await this.getClientCredential({ origin: urlObj.origin })\n options.headers.Authorization = `Bearer ${token}`\n return options\n }\n\n let { secretId, secretKey, sessionToken } = { ...this.config, ...this.config?.auth }\n const { secretType } = { ...this.config, ...this.config?.auth }\n const { method, body } = options\n const headers = JSON.parse(JSON.stringify(options.headers))\n\n // ========== 处理 npm form-data 包实例 ==========\n // npm form-data 实例(来自 node-sdk 的 sendWxFormDataRequest):\n // - 通过 __plainObj 挂载了签名用的纯对象\n // - 签名时使用 plain object 的 key-value(multipart 签名方式)\n // - 发送时使用 form-data 的 getBuffer()(multipart/form-data 格式)\n const isNpmFormDataBody = this.isNpmFormData(body)\n let params: any\n\n if (isNpmFormDataBody) {\n // 从 form-data 实例上取签名用的纯对象\n params = body.__plainObj ? { ...body.__plainObj } : {}\n } else {\n params = typeof body === 'object' ? body : safeParseJson(body) || {}\n }\n\n params.envName = params?.env || this.config.env || getSecretInfo()?.env || ''\n\n // 参数自带 access_token,无需签名\n if (params.access_token) {\n return options\n }\n\n // GET 请求参数已在 URL 中,签名时 params 置空\n if (method.toLowerCase() === 'get') {\n params = undefined\n }\n\n // SESSION_SECRET 类型或无密钥时,从环境变量获取临时密钥\n if (!secretId || !secretKey || secretType === 'SESSION_SECRET') {\n const secretInfo = getSecretInfo()\n secretId = secretInfo.secretId\n secretKey = secretInfo.secretKey\n sessionToken = secretInfo.sessionToken\n }\n\n // 仍无密钥则跳过签名\n if (!secretId || !secretKey) {\n return options\n }\n\n delete headers.Authorization\n\n // content-type 需与服务端签名验证保持大小写一致\n if (headers['content-type']) {\n headers['content-type'] = headers['content-type'].toLowerCase()\n } else if (headers['Content-Type']) {\n headers['Content-Type'] = headers['Content-Type'].toLowerCase()\n }\n\n if (isAdminPath && !!sessionToken) {\n params.sessionToken = sessionToken\n }\n\n const signedParams = {\n secretId,\n secretKey,\n method,\n url,\n params,\n headers,\n withSignedParams: isAdminPath,\n timestamp: Math.floor(new Date().getTime() / 1000) - 1,\n isCloudApi: !isAdminPath,\n }\n\n if (!headers['content-type'] && !headers['Content-Type']) {\n return options\n }\n\n const sign = await getSign()\n if (!sign) return options\n\n const { authorization, timestamp } = sign(signedParams)\n\n if (typeof sessionToken === 'string' && sessionToken !== '') {\n if (isAdminPath) {\n headers.Authorization = `${authorization}`\n headers['X-Timestamp'] = timestamp\n headers['X-Signature-Expires'] = 600\n } else {\n // 临时密钥需要额外附带 Token\n headers.Authorization = `${authorization}, Timestamp=${timestamp}, Token=${sessionToken}`\n }\n } else {\n headers.Authorization = `${authorization}, Timestamp=${timestamp}`\n\n // admin 路径需要额外的时间戳和过期头\n if (isAdminPath) {\n headers['X-Timestamp'] = timestamp\n headers['X-Signature-Expires'] = 600\n }\n }\n\n // ========== 构建返回的 body ==========\n if (isNpmFormDataBody) {\n // npm form-data: 签名完成后,需要将 envName/sessionToken 等签名时追加的字段\n // 也同步追加到 form-data 实例中(因为服务端需要从 form-data body 中读取这些字段)\n // 然后用 form-data 的 getBuffer() 作为实际发送的 body\n const formDataInstance = body\n const existingKeys = new Set(Object.keys(formDataInstance.__plainObj || {}))\n\n // 把签名过程中追加的字段同步到 form-data 实例(仅追加之前不存在的)\n if (params.envName && !existingKeys.has('envName')) {\n formDataInstance.append('envName', params.envName)\n }\n if (params.sessionToken && !existingKeys.has('sessionToken')) {\n formDataInstance.append('sessionToken', params.sessionToken)\n }\n\n const formBuffer = formDataInstance.getBuffer()\n const formHeaders = formDataInstance.getHeaders()\n\n return {\n ...options,\n headers: {\n ...headers,\n ...formHeaders,\n 'content-length': String(formBuffer.length),\n },\n body: formBuffer,\n }\n }\n\n return {\n ...options,\n headers,\n body: typeof params === 'object' ? JSON.stringify(params) : params,\n }\n }\n\n public get = (options: IRequestOptions): Promise<ResponseObject> => this.request(\n {\n ...options,\n method: 'get',\n },\n this.restrictedMethods.includes('get'),\n )\n\n public post = (options: IRequestOptions): Promise<ResponseObject> => this.request(\n {\n ...options,\n method: 'post',\n },\n this.restrictedMethods.includes('post'),\n )\n\n public put = (options: IRequestOptions): Promise<ResponseObject> => this.request({\n ...options,\n method: 'put',\n })\n\n /**\n * 文件上传\n * POST 方式:构建 FormData 上传\n * PUT 方式:直接将文件作为 body 上传\n */\n public upload = (options: IRequestOptions): Promise<ResponseObject> => {\n const { data, file: rawFile, fileContent, name, method, headers = {} } = options as any\n // 优先使用 file(filePath),没有则回退到 fileContent(Buffer)\n const file = rawFile ?? fileContent\n if (file === undefined || name === undefined) {\n throw new Error('file and name is required')\n }\n const formFields = obj2StrRecord(data ?? {})\n const loweredMethod = method?.toLowerCase()\n const reqMethod = ['post', 'put'].find(m => m === loweredMethod) ?? 'put'\n const formData = new FormData()\n if (reqMethod === 'post') {\n Object.keys(formFields).forEach((key) => {\n formData.append(key, formFields[key])\n })\n formData.append('key', name)\n formData.append('file', file instanceof Blob ? file : new Blob([file]))\n return this.request(\n {\n ...options,\n data: formData,\n method: reqMethod,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n\n return this.request(\n {\n ...options,\n method: 'put',\n headers,\n body: file,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n\n /** 文件下载(Node.js 环境,通过 fetch 获取文件内容并写入本地文件或返回 Buffer) */\n public download = async (options: IRequestOptions): Promise<unknown> => {\n const res = await fetch(options.url!, {\n headers: {},\n // 未设置 timeout 时不施加超时中断\n signal: this.timeout ? AbortSignal.timeout(this.timeout) : undefined,\n })\n\n if (!res.ok) {\n throw new Error(`Download failed with status ${res.status}`)\n }\n\n const arrayBuffer = await res.arrayBuffer()\n const buffer = Buffer.from(arrayBuffer)\n\n // 如果指定了 tempFilePath,将文件写入本地\n const { tempFilePath } = options\n if (tempFilePath) {\n // 确保目录存在\n const dir = path.dirname(tempFilePath)\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true })\n }\n fs.writeFileSync(tempFilePath, buffer)\n return {\n statusCode: 200,\n tempFilePath,\n }\n }\n\n // 未指定路径时返回 Buffer\n return {\n statusCode: 200,\n tempFilePath: options.url,\n fileContent: buffer,\n }\n }\n\n /**\n * 底层 fetch 请求,支持流式响应\n * 超时通过 AbortController + setTimeout 实现\n */\n public fetch = async (options: Omit<IFetchOptions, 'signal'> & { signal?: AbortSignal; customReqOpts?: ICustomReqOpts }): Promise<ResponseObject> => {\n const { enableAbort = false, stream = false, signal, customReqOpts } = options\n const url = this.getRealUrl(options.url, options.headers || {}, options.body)\n const timeout = customReqOpts?.timeout || this.timeout\n const [abortController, cleanup] = this.createAbortController(timeout, enableAbort, signal)\n\n const headers = options.headers ? headersInit2Indexable(options.headers) : undefined\n\n const fetchOptions = await this.getReqOptions(url, {\n ...options,\n headers,\n body: options.body as any as NodeJS.ReadableStream,\n signal: abortController.signal,\n })\n\n this.applyDuplexIfNeeded(fetchOptions)\n\n try {\n const res = await fetch(url, fetchOptions as RequestInit)\n let data: any\n if (+res.status === 204) {\n data = ''\n } else if (stream) {\n data = res.body\n } else {\n // safeParseJson 避免当错误响应体非 JSON(如网关返回纯文本/HTML)时抛异常,\n // 从而保留 statusCode 供上层(如 exists() 判 400/404)使用。\n data = safeParseJson(await res.text())\n }\n return {\n data,\n statusCode: res.status,\n header: res.headers,\n // 透出原始 Response,便于上层按需 .blob() / .arrayBuffer() / 读取 body 流,避免二次包装。\n response: res,\n }\n } finally {\n cleanup()\n }\n }\n\n /**\n * 通用请求方法,被 get/post/put/upload 等调用\n * 负责构建 payload、设置超时、解析响应\n *\n * @param options - 请求选项\n * @param enableAbort - 是否启用超时中断(由 restrictedMethods 决定)\n */\n public request = async (options: IRequestOptions, enableAbort = false): Promise<ResponseObject> => {\n const {\n url,\n headers: rawHeaders = {},\n data,\n responseType,\n withCredentials,\n body,\n method: rawMethod,\n customReqOpts,\n } = options\n const headers = obj2StrRecord(rawHeaders)\n const method = String(rawMethod).toLowerCase() || 'get'\n const timeout = customReqOpts?.timeout || this.timeout\n // 桥接外部 signal 到内部 AbortController,支持调用方取消请求\n const externalSignal = (options as { signal?: AbortSignal }).signal\n const [abortController, cleanup] = this.createAbortController(timeout, enableAbort, externalSignal)\n\n // 构建请求 payload:FormData > urlencoded > raw body > JSON\n let payload\n if (isFormData(data)) {\n payload = data\n } else if (headers['content-type'] === 'application/x-www-form-urlencoded') {\n payload = toQueryString(data ?? {})\n } else if (body) {\n payload = body\n } else {\n payload = data ? JSON.stringify(data) : undefined\n }\n\n const realUrl = this.getRealUrl(\n formatUrl('https', url ?? '', method === 'get' ? data : {}),\n options.headers || {},\n payload,\n )\n\n const requestOptions = await this.getReqOptions(realUrl, {\n method,\n headers,\n body: payload,\n credentials: withCredentials ? 'include' : 'same-origin',\n signal: abortController.signal,\n })\n\n this.applyDuplexIfNeeded(requestOptions)\n\n try {\n const response = await fetch(realUrl, requestOptions as RequestInit)\n const result: ResponseObject = {\n header: {},\n statusCode: response.status,\n }\n\n try {\n if (responseType === 'blob') {\n result.data = await response.blob()\n } else if ((responseType as string) === 'buffer') {\n // 返回 Buffer(兼容旧版 node-sdk 二进制响应格式)\n result.data = Buffer.from(await response.arrayBuffer())\n } else {\n result.data = safeParseJson(await response.text())\n }\n } catch (e) {\n // 上传 POST 请求可能返回 XML 等非 JSON 格式,容错处理\n console.log('catch an error', e)\n if (responseType === 'blob') {\n result.data = await response.blob()\n } else if ((responseType as string) === 'buffer') {\n result.data = Buffer.from(await response.arrayBuffer())\n } else {\n result.data = await response.text()\n }\n }\n\n // 将响应头统一转为小写 key\n const { headers } = response\n headers.forEach((val, key) => (result.header[key.toLowerCase()] = val))\n\n return result\n } finally {\n cleanup()\n }\n }\n\n /**\n * 创建带超时的 AbortController\n * @returns [abortController, cleanup] — cleanup 用于清除定时器\n */\n private createAbortController(\n timeout: number | undefined,\n _enableAbort: boolean,\n externalSignal?: AbortSignal,\n ): [AbortController, () => void] {\n const controller = new AbortController()\n\n // 桥接外部 signal。用 { once: true } 避免调用方复用同一长生命周期\n // AbortController 多次发请求时累积监听器(轻微泄漏)。\n if (externalSignal) {\n if (externalSignal.aborted) {\n controller.abort()\n } else {\n externalSignal.addEventListener('abort', () => controller.abort(), { once: true })\n }\n }\n\n let timer: ReturnType<typeof setTimeout> | undefined\n // 仅当显式设置了 timeout 时才启用超时中断;未设置则不超时\n // (enableAbort 的取消能力通过 externalSignal 与返回的 controller 提供)\n if (timeout) {\n timer = setTimeout(() => {\n const timeoutMsg = `请求在${timeout / 1000}s内未完成,已中断`\n console.warn(timeoutMsg)\n controller.abort(new Error(timeoutMsg))\n }, timeout)\n }\n\n return [controller, () => clearTimeout(timer)]\n }\n\n /** Node 18+ 原生 fetch 在 body 为 stream 时要求 duplex: 'half' */\n private applyDuplexIfNeeded(options: any): void {\n if (options.body && typeof options.body?.pipe === 'function') {\n options.duplex = 'half'\n }\n }\n\n /**\n * 判断是否为 npm form-data 包的实例(具有 getHeaders / getBuffer 方法)\n * 区别于全局 FormData(Web API)\n */\n private isNpmFormData(obj: any): boolean {\n return obj && typeof obj === 'object'\n && typeof obj.getHeaders === 'function'\n && typeof obj.getBuffer === 'function'\n }\n}\n","import { ERROR } from './constants'\nimport { getCloudbaseContext, parseContext, getServerInjectUrl } from './context'\nimport { validateUid, E } from './utils'\nimport {\n callWxOpenApi,\n callCompatibleWxOpenApi,\n callWxPayApi,\n wxCallContainerApi,\n getWxOptions,\n type ISendWxRequestOptions,\n} from './wx'\nimport type {\n ICreateTicketOpts,\n IGetUserInfoResult,\n IGetEndUserInfoResult,\n IUserInfoQuery,\n ITemplateNotifyReq,\n ICustomReqOpts,\n ICompleteCloudbaseContext,\n} from './types'\nimport { ICloudbaseConfig } from '@cloudbase/types'\n\n// 延迟加载 jsonwebtoken,避免非 Node 环境打包时引入此包\nlet jwtSign: ((...args: any[]) => any) | null = null\nasync function getJwtSign() {\n if (!jwtSign) {\n try {\n // @ts-ignore — 该包仅在 Node 运行时存在,开发环境可能未安装\n const mod = await import('jsonwebtoken')\n jwtSign = mod.default?.sign || mod.sign\n } catch (e) {\n console.error('缺少依赖 jsonwebtoken,请执行以下命令安装:\\n\\n'\n + ' npm install jsonwebtoken\\n\\n'\n + '该依赖用于 Node 环境下的自定义登录票据生成。')\n }\n }\n return jwtSign!\n}\n\n// ========== 辅助函数 ==========\n\n/**\n * 从云函数运行时上下文中获取当前请求的用户信息\n */\nfunction getDefaultUserInfo(): IGetUserInfoResult {\n const { WX_OPENID, WX_APPID, TCB_UUID, TCB_CUSTOM_USER_ID, TCB_ISANONYMOUS_USER } = getCloudbaseContext()\n\n return {\n openId: WX_OPENID || '',\n appId: WX_APPID || '',\n uid: TCB_UUID || '',\n customUserId: TCB_CUSTOM_USER_ID || '',\n isAnonymous: TCB_ISANONYMOUS_USER === 'true',\n }\n}\n\n/**\n * 调用后端管理接口查询用户信息\n */\nfunction sendUserInfoRequest(app: any, params: Record<string, any>): Promise<any> {\n return app?.request?.send?.('auth.getUserInfoForAdmin', params, {\n pathname: 'web',\n endPointMode: 'CLOUD_API',\n })\n}\n\n// ========== scfContext 存储(静态) ==========\n\nlet _scfContext: any = null\n\n// ========== nodeTool 主函数 ==========\n\n/**\n * 初始化 Node 端全部能力,直接挂载到 js-sdk app 实例上\n * 包含:auth 扩展方法、微信 API、文件操作增强、callFunction/callContainer 增强、\n * 模板消息推送、context 解析等\n *\n * @param app - js-sdk cloudbase 实例(init 返回值)\n * @param config - 配置信息\n */\nexport const nodeTool = (app: any, config: ICloudbaseConfig) => {\n const nodeConfig = config as any\n\n // ========== parseContext / getCloudbaseContext ==========\n\n app.parseContext = (context: any) => {\n const parseResult = parseContext(context)\n _scfContext = parseResult\n return parseResult\n }\n\n app.getCloudbaseContext = (context?: any): ICompleteCloudbaseContext => getCloudbaseContext(context)\n\n // ========== auth 扩展 ==========\n\n if (app.auth) {\n const authMethods: Record<string, any> = {\n /** 获取当前请求的用户信息(从环境变量读取,同步) */\n getUserInfo(): IGetUserInfoResult {\n return getDefaultUserInfo()\n },\n\n /**\n * 获取终端用户信息\n * 不传 uid 时返回当前请求用户信息,传 uid 时查询指定用户\n */\n async getEndUserInfo(uid?: string): Promise<IGetEndUserInfoResult> {\n const defaultUserInfo = getDefaultUserInfo()\n\n if (uid === undefined) {\n return { userInfo: defaultUserInfo }\n }\n validateUid(uid)\n\n return sendUserInfoRequest(app, {\n uuid: uid,\n envName: config.env,\n }).then((result: any) => {\n if (result.code) {\n return result\n }\n return {\n userInfo: { ...defaultUserInfo, ...result.data },\n requestId: result.requestId,\n }\n })\n },\n\n /**\n * 创建自定义登录 Ticket\n */\n async createTicket(uid: string, options: ICreateTicketOpts = {}): Promise<string> {\n validateUid(uid)\n\n const timestamp = new Date().getTime()\n const { credentials } = config.auth || {}\n const { env } = config\n\n if (!env) {\n throw { ...ERROR.INVALID_PARAM, message: 'no env in config' }\n }\n\n if (!credentials?.env_id) {\n throw {\n ...ERROR.INVALID_PARAM,\n message: '当前私钥未包含env_id 信息, 请前往腾讯云云开发控制台,获取自定义登录最新私钥',\n }\n }\n\n if (credentials.env_id !== env) {\n throw {\n ...ERROR.INVALID_PARAM,\n message: '当前私钥所属环境与 init 指定环境不一致!',\n }\n }\n\n const {\n refresh = 3600 * 1000,\n expire = timestamp + 7 * 24 * 60 * 60 * 1000,\n } = options\n const sign = await getJwtSign()\n const token = sign(\n {\n alg: 'RS256',\n env,\n iat: timestamp,\n exp: timestamp + 10 * 60 * 1000,\n uid,\n refresh,\n expire,\n },\n credentials.private_key,\n {\n allowInsecureKeySizes: true,\n algorithm: 'RS256',\n },\n )\n\n return `${credentials.private_key_id}/@@/${token}`\n },\n\n /**\n * 按条件查询用户信息(管理端接口)\n */\n async queryUserInfo(query: IUserInfoQuery): Promise<any> {\n const { uid, platform, platformId } = query\n return sendUserInfoRequest(app, {\n uuid: uid,\n platform,\n platformId,\n envName: config.env,\n }).then((result: any) => {\n if (result.code) {\n return result\n }\n return {\n userInfo: { ...result.data },\n requestId: result.requestId,\n }\n })\n },\n\n /** 获取客户端 IP 地址 */\n getClientIP(): string {\n const { TCB_SOURCE_IP } = getCloudbaseContext()\n return TCB_SOURCE_IP || ''\n },\n\n /** 获取 Auth Context(从运行环境中解析) */\n getAuthContext(context?: any) {\n const fullContext = getCloudbaseContext(context) as any\n const { TCB_UUID, LOGINTYPE, QQ_OPENID, QQ_APPID } = fullContext\n const result: any = {\n uid: TCB_UUID,\n loginType: LOGINTYPE,\n }\n if (LOGINTYPE === 'QQ-MINI') {\n result.appId = QQ_APPID\n result.openId = QQ_OPENID\n }\n return result\n },\n\n /** 获取客户端凭证 */\n async getClientCredential(opts?: ICustomReqOpts) {\n if (nodeConfig.accessKey || config.accessKey) {\n return nodeConfig.accessKey || config.accessKey\n }\n\n const origin = app.request.getBaseEndPoint('GATEWAY')\n const clientAuthPath = '/auth/v1/token/clientCredential'\n\n const res = await app.request.post(\n {\n url: `${origin}${clientAuthPath}`,\n data: { grant_type: 'client_credentials' },\n headers: { 'content-type': 'application/json' },\n },\n opts ? { timeout: opts.timeout } : undefined\n )\n\n return res.data\n },\n }\n\n /**\n * 挂载 auth 扩展方法\n *\n * app.auth 是一个 Proxy 包装的函数对象:\n * - 作为属性访问 app.auth.xxx 时,访问的是这个函数对象本身\n * - 作为函数调用 app.auth() 时,返回的是内部缓存的 authInstance(纯 Auth 实例)\n *\n * 两者是不同的对象,所以需要:\n * 1. 在 app.auth(函数对象)上挂载方法 —— 支持 app.auth.getUserInfo()\n * 2. 用 Proxy 包装 app.auth,在每次调用 app.auth() 时,把方法也同步到返回的 authInstance 上\n * —— 支持 const auth = app.auth(); auth.getUserInfo()\n */\n const originalAuth = app.auth\n\n // 先在 app.auth 函数对象本身上挂载方法\n Object.keys(authMethods).forEach((key) => {\n originalAuth[key] = authMethods[key]\n })\n\n // 用 Proxy 拦截函数调用,确保 app.auth() 返回的实例也带有这些方法\n app.auth = new Proxy(originalAuth, {\n apply(target: any, thisArg: any, argArray: any[]) {\n const authInstance = Reflect.apply(target, thisArg, argArray)\n // 将扩展方法同步到 authInstance 上(如果还没有的话)\n if (authInstance && typeof authInstance === 'object') {\n Object.keys(authMethods).forEach((key) => {\n if (!(key in authInstance)) {\n authInstance[key] = authMethods[key]\n }\n })\n }\n return authInstance\n },\n })\n }\n\n // ========== sendTemplateNotification ==========\n\n app.sendTemplateNotification = (params: ITemplateNotifyReq, opts?: { timeout?: number }) => app?.callFunction?.(\n {\n name: 'lowcode-datasource',\n data: {\n methodName: 'callWedaApi',\n params: {\n action: 'PushNotifyMsg',\n data: {\n NotifyId: params.notifyId,\n Data: JSON.stringify(params.data),\n NotifyUsers: undefined,\n Url: params.url,\n },\n },\n mode: 'c',\n },\n },\n undefined,\n opts,\n )\n\n // ========== 微信 API ==========\n\n function _getWxOptions(): ISendWxRequestOptions {\n const serviceUrl = nodeConfig.serviceUrl || getServerInjectUrl() || undefined\n return getWxOptions(nodeConfig, _scfContext, serviceUrl || '', app.request)\n }\n\n app.callWxOpenApi = (wxOpenApiOptions: any, opts?: ICustomReqOpts) => callWxOpenApi(_getWxOptions(), wxOpenApiOptions, opts)\n\n app.callWxPayApi = (wxOpenApiOptions: any, opts?: ICustomReqOpts) => callWxPayApi(_getWxOptions(), wxOpenApiOptions, opts)\n\n app.wxCallContainerApi = (wxOpenApiOptions: any, opts?: ICustomReqOpts) => wxCallContainerApi(_getWxOptions(), wxOpenApiOptions, opts)\n\n app.callCompatibleWxOpenApi = (wxOpenApiOptions: any, opts?: ICustomReqOpts) => callCompatibleWxOpenApi(_getWxOptions(), wxOpenApiOptions, opts)\n\n // ========== getFileAuthority ==========\n\n app.getFileAuthority = async ({ fileList }: { fileList: Array<{ type: string; path: string }> }, opts?: ICustomReqOpts) => {\n const { LOGINTYPE } = getCloudbaseContext()\n if (!Array.isArray(fileList)) {\n throw E({\n ...ERROR.INVALID_PARAM,\n message: '[js-sdk] getCosFileAuthority fileList must be a array',\n })\n }\n\n if (\n fileList.some((file) => {\n if (!file?.path) return true\n if (!['READ', 'WRITE', 'READWRITE'].includes(file.type)) return true\n return false\n })\n ) {\n throw E({\n ...ERROR.INVALID_PARAM,\n message: '[js-sdk] getCosFileAuthority fileList param error',\n })\n }\n\n const { userInfo } = await app.auth.getEndUserInfo()\n const { openId, uid } = userInfo\n\n if (!openId && !uid) {\n throw E({\n ...ERROR.INVALID_PARAM,\n message: '[js-sdk] admin do not need getCosFileAuthority.',\n })\n }\n\n const params = {\n openId,\n uid,\n loginType: LOGINTYPE,\n fileList,\n }\n\n const res = await app.request.send(\n 'storage.getFileAuthority',\n params,\n { pathname: 'web', endPointMode: 'GATEWAY' },\n opts ? { timeout: opts.timeout } : undefined\n )\n\n if (res.code) {\n throw E({ ...res, message: `[js-sdk] getCosFileAuthority failed: ${res.code}` })\n } else {\n return res\n }\n }\n\n // ========== callApis ==========\n\n app.callApis = async (callApiOptions: any, opts?: ICustomReqOpts) => {\n if (app.apis) {\n const { name, path: apiPath = '', method = 'POST', header = {}, body, token } = callApiOptions\n const apiMethod = (method || 'POST').toLowerCase()\n return app.apis[name]?.[apiMethod]?.({\n path: apiPath,\n method,\n headers: header,\n body,\n token,\n }, opts)\n }\n throw new Error('callApis is not supported in current configuration')\n }\n}\n","import { utils } from '@cloudbase/utilities'\nimport { ReadableStream } from 'web-streams-polyfill'\nimport { ERROR, checkCustomUserIdRegex } from './constants'\nimport { lookupAppId } from './metadata'\n\n/** 从 @cloudbase/utilities 中提取的表单和查询字符串工具 */\nexport const { isFormData, toQueryString } = utils as {\n isFormData: (obj: unknown) => boolean\n toQueryString: (data: Record<string, any>) => string\n}\n\n/**\n * 跨端安全获取环境变量\n * Web 端、小游戏端等没有 process 全局对象,直接访问 process.env 会报错\n */\nexport function getEnv(): Record<string, string | undefined>\nexport function getEnv(key: string): string | undefined\nexport function getEnv(key?: string): string | undefined | Record<string, string | undefined> {\n if (typeof process === 'undefined' || !process.env) {\n return key !== undefined ? undefined : {}\n }\n return key !== undefined ? process.env[key] : process.env\n}\n\n/** 判断当前是否在 SCF(云函数)运行环境中 */\nexport const checkIsInScf = () => getEnv('TENCENTCLOUD_RUNENV') === 'SCF'\n\nexport function checkIsInCBR() {\n // CBR = CLOUDBASE_RUN\n return !!getEnv('CBR_ENV_ID')\n}\n\nconst kSumeruEnvSet = new Set(['formal', 'pre', 'test'])\nexport function checkIsInSumeru() {\n // SUMERU_ENV=formal | test | pre\n return kSumeruEnvSet.has(getEnv('SUMERU_ENV') || '')\n}\n\nexport async function checkIsInTencentCloud(): Promise<boolean> {\n if (getEnv('TENCENTCLOUD') === 'true') {\n return true\n }\n const appId = await lookupAppId()\n return typeof appId === 'string' && appId !== ''\n}\n\nexport const getCurrRunEnvTag = async (): Promise<string> => {\n if (checkIsInScf()) {\n return 'scf'\n } if (checkIsInCBR()) {\n return 'cbr'\n } if (checkIsInSumeru()) {\n return 'sumeru'\n } if (await checkIsInTencentCloud()) {\n return 'tencentcloud'\n }\n return 'unknown'\n}\n\n/**\n * 校验自定义用户 ID 格式\n * @throws 格式不合法时抛出 INVALID_PARAM 错误\n */\nexport const validateUid = (uid: string): void => {\n if (typeof uid !== 'string') {\n throw { ...ERROR.INVALID_PARAM, message: 'uid must be a string' }\n }\n if (!checkCustomUserIdRegex.test(uid)) {\n throw { ...ERROR.INVALID_PARAM, message: `Invalid uid: \"${uid}\"` }\n }\n}\n\n/**\n * 安全的 JSON 解析,解析失败时返回原始文本而非抛异常\n * @param text - 待解析的字符串\n * @returns 解析后的对象,空字符串返回 null,解析失败返回原始文本\n */\nexport function safeParseJson(text: string): any {\n if (!text || !text.trim()) {\n return null\n }\n try {\n return JSON.parse(text)\n } catch (e) {\n console.warn('catch an error', { e, text })\n return text\n }\n}\n\n/**\n * 将对象的所有值转为字符串类型\n * 用于将 headers 等对象统一为 Record<string, string>\n */\nexport function obj2StrRecord(obj: object): Record<string, string> {\n return Object.entries(obj).reduce<Record<string, string>>((acc, cur: [string, unknown]) => {\n const [key, value] = cur\n acc[key] = String(value)\n return acc\n }, {})\n}\n\n/**\n * 将 HeadersInit 转为可索引的普通对象\n * 兼容 Headers 实例和普通对象两种形式\n */\nexport function headersInit2Indexable(h: HeadersInit) {\n if (isHeaders(h)) {\n const ret: Record<string, string> = {}\n h.forEach((val, key) => {\n ret[key] = val\n })\n return ret\n }\n return h\n\n function isHeaders(h: HeadersInit): h is Headers {\n try {\n // Node 低版本可能没有全局 Headers\n return h instanceof Headers\n } catch (_) {\n return false\n }\n }\n}\n\n/**\n * 手动解析查询字符串,避免 URLSearchParams 的兼容性问题\n * 支持重复 key 自动转为数组\n * @param search - 查询字符串,可带前导 ? 或 #\n */\nexport function parseQueryString(search: string): Record<string, string | string[]> {\n const params: any = {}\n const cleanSearch = search.replace(/^[?#]/, '')\n\n if (!cleanSearch) {\n return params\n }\n\n const pairs = cleanSearch.split('&')\n\n pairs.forEach((item) => {\n let [key, value] = item.split('=')\n key = decodeURIComponent(key)\n value = decodeURIComponent(value || '')\n if (key) {\n if (params[key]) {\n // 已存在同名 key,转为数组\n if (Array.isArray(params[key])) {\n params[key].push(value)\n } else {\n params[key] = [params[key], value]\n }\n } else {\n params[key] = value\n }\n }\n })\n return params\n}\n\n/**\n * 将 Node ReadableStream 转换为 Web ReadableStream (polyfill)\n * 用于 fetch 流式响应在 Node 环境下的适配\n */\nexport function createWebStreamFromNodeReadableStream(stream: NodeJS.ReadableStream): ReadableStream {\n const asyncIterator = stream[Symbol.asyncIterator]()\n\n return new ReadableStream({\n async pull(controller) {\n const next = await asyncIterator.next()\n\n if (next.done) {\n controller.close()\n } else {\n controller.enqueue(next.value)\n }\n },\n })\n}\n\n// ========== 从 node-sdk utils/utils.ts 整合的工具函数 ==========\n\ninterface IErrorInfo {\n requestId?: string\n code?: string\n message?: string\n}\n\nexport class TcbError extends Error {\n public readonly code: string\n public readonly message: string\n public readonly requestId: string\n\n public constructor(error: IErrorInfo) {\n super(error.message)\n this.code = error.code || ''\n this.message = error.message || ''\n this.requestId = error.requestId || ''\n }\n}\n\n/** 创建 TcbError 实例的快捷方法 */\nexport function E(errObj: IErrorInfo) {\n return new TcbError(errObj)\n}\n\nexport function filterValue(o: any, value: any) {\n for (const key in o) {\n if (o[key] === value) {\n /* eslint-disable-next-line @typescript-eslint/no-dynamic-delete */\n delete o[key]\n }\n }\n}\n\nexport function filterUndefined(o: any) {\n filterValue(o, undefined)\n}\n\n// 兼容模式开关,兼容模式下,不抛出异常,直接返回\nlet throwOnCode = true\n\nexport function setThrowOnCode(value: boolean) {\n throwOnCode = value\n}\n\nexport function processReturn(result: any) {\n if (!throwOnCode) {\n return result\n }\n throw E({ ...result })\n}\n\n/**\n * 是否是场景模块名\n * $: 前缀,表示SaaS场景模块名,非实际环境ID\n */\nexport function isPageModuleName(envId = '') {\n return typeof envId === 'string' && envId.startsWith('$:')\n}\n\n// 20 + 1 + 16, 限制长度 40\nconst kEnvRuleReg = /^[a-z0-9_-]{1,40}$/\n\nexport function isValidEnvFormat(env = '') {\n return typeof env === 'string' && kEnvRuleReg.test(env)\n}\n\n// ========== 从 node-sdk const/symbol.ts 整合的常量 ==========\n\nexport const SYMBOL_CURRENT_ENV = Symbol.for('SYMBOL_CURRENT_ENV') // 当前环境\nexport const SYMBOL_DEFAULT_ENV = Symbol.for('SYMBOL_DEFAULT_ENV') // 默认环境\n","/**\n * 微信云开发相关请求辅助函数\n * 从 node-sdk 中提取,整合到 adapter-node 统一管理\n */\nimport * as fs from 'fs'\nimport { getCloudbaseContext } from './context'\nimport type { ICustomReqOpts } from './types'\n\n// ========== 微信业务函数(从 node-sdk wx/index.ts 整合) ==========\n\nimport { E } from './utils'\nimport { ERROR } from './constants'\n\n// ========== 微信 Token 辅助函数 ==========\n\nconst CLOUDBASE_ACCESS_TOKEN_PATH = '/.tencentcloudbase/wx/cloudbase_access_token'\nconst maxCacheAge = 10 * 60 * 1000\nconst cloudbaseAccessTokenInfo = { token: '', timestamp: 0 }\n\nfunction loadWxCloudbaseAccesstoken(): string {\n if (cloudbaseAccessTokenInfo.token && Date.now() - cloudbaseAccessTokenInfo.timestamp < maxCacheAge) {\n return cloudbaseAccessTokenInfo.token\n }\n\n try {\n if (process.env.TENCENTCLOUD_RUNENV === 'WX_LOCAL_SCF' || process.env.TENCENTCLOUD_RUNENV === 'SCF') {\n if (fs.existsSync(CLOUDBASE_ACCESS_TOKEN_PATH)) {\n cloudbaseAccessTokenInfo.token = fs.readFileSync(CLOUDBASE_ACCESS_TOKEN_PATH).toString()\n cloudbaseAccessTokenInfo.timestamp = Date.now()\n return cloudbaseAccessTokenInfo.token\n }\n }\n } catch (e) {\n console.warn('[TCB][ERROR]: loadWxCloudbaseAccesstoken error: ', e)\n }\n\n return ''\n}\n\nexport function getWxCloudToken(): { wxCloudApiToken: string; wxCloudbaseAccesstoken?: string } {\n const context: any = getCloudbaseContext()\n const { TRIGGER_SRC, WX_TRIGGER_API_TOKEN_V0, WX_API_TOKEN, WX_CLOUDBASE_ACCESSTOKEN = '' } = context\n\n const wxCloudToken: any = {}\n\n if (TRIGGER_SRC === 'timer') {\n wxCloudToken.wxCloudApiToken = WX_TRIGGER_API_TOKEN_V0 || WX_API_TOKEN || ''\n } else {\n wxCloudToken.wxCloudApiToken = WX_API_TOKEN || ''\n }\n\n if (!wxCloudToken.wxCloudApiToken) {\n wxCloudToken.wxCloudbaseAccesstoken = WX_CLOUDBASE_ACCESSTOKEN || loadWxCloudbaseAccesstoken()\n }\n\n return wxCloudToken\n}\n\n// ========== buildAdminUrl 辅助函数 ==========\n\n/** 判断 envId 是否可用作域名前缀(比通用格式校验更严格) */\nfunction isValidEnvDomain(envId: string): boolean {\n return /^[a-z][a-z0-9-]*[a-z0-9]$/.test(envId)\n}\n\nlet seqNum = 0\nfunction genSeqId(): string {\n seqNum += 1\n const eventId = `${Date.now().toString(16)}_${(seqNum).toString(16)}`\n const context: any = getCloudbaseContext()\n const { TCB_SEQID = '' } = context\n return TCB_SEQID ? `${TCB_SEQID}-${eventId}` : eventId\n}\n\n/**\n * 构建 /admin 路径的完整 URL\n * @param config - cloudbase 配置\n * @param scfContext - 云函数 context(含 requestId)\n * @param serviceUrl - 自定义服务端 URL(覆盖默认值)\n */\nexport function buildAdminUrl(config: any, scfContext?: any, serviceUrl?: string): string {\n const envId: string = typeof config.env === 'symbol'\n ? (process.env.TCB_ENV || process.env.SCF_NAMESPACE || '')\n : (config.env || '')\n const region = config.region || process.env.TENCENTCLOUD_REGION || ''\n const seqId = genSeqId()\n\n const endpoint = region\n ? `${region}.tcb-api.tencentcloudapi.com`\n : 'tcb-api.tencentcloudapi.com'\n const envEndpoint = isValidEnvDomain(envId) ? `${envId}.${endpoint}` : endpoint\n\n const protocol = 'https'\n const path = '/admin'\n const defaultUrl = `${protocol}://${envEndpoint}${path}`\n\n const url = serviceUrl || defaultUrl\n\n const qs = scfContext\n ? `env=${envId}&seqId=${seqId}&scfRequestId=${scfContext.requestId}`\n : `env=${envId}&seqId=${seqId}`\n\n return url.includes('?') ? `${url}${qs}` : `${url}?${qs}`\n}\n\n// ========== 微信请求函数 ==========\n\n/**\n * 为微信请求 params 补充 token 和 sessionToken 公共字段\n */\nfunction appendWxTokenParams(params: any): void {\n const context: any = getCloudbaseContext()\n const { wxCloudApiToken, wxCloudbaseAccesstoken } = getWxCloudToken()\n params.wxCloudApiToken = wxCloudApiToken\n if (wxCloudbaseAccesstoken) {\n params.wxCloudbaseAccesstoken = wxCloudbaseAccesstoken\n }\n params.tcb_sessionToken = context.TCB_SESSIONTOKEN || ''\n}\n\nexport interface ISendWxRequestOptions {\n /** app.request 实例(NodeRequest),需具有 post 和 send 方法 */\n requestInstance: any\n /** cloudbase 配置 */\n config: any\n /** 云函数入口 scfContext(含 requestId) */\n scfContext?: any\n /** 自定义服务端 URL */\n serviceUrl?: string\n}\n\n/**\n * 使用 JSON 格式发送 wx 请求(用于 callWxOpenApi)\n * @param options - 请求实例和配置\n * @param action - 请求动作(如 'wx.api')\n * @param params - 请求参数\n * @param reqOpts - 自定义请求选项(如 timeout)\n */\nexport async function sendWxRequest(\n options: ISendWxRequestOptions,\n action: string,\n params: any,\n reqOpts?: ICustomReqOpts\n) {\n appendWxTokenParams(params)\n\n return options.requestInstance.send(\n action,\n params,\n { pathname: 'web', endPointMode: 'GATEWAY' },\n reqOpts ? { timeout: reqOpts.timeout } : undefined\n )\n}\n\n/**\n * 使用 multipart/form-data 格式发送 wx 请求(用于 callCompatibleWxOpenApi / callWxPayApi / wxCallContainerApi)\n * 自动处理 form-data 构建、签名和发送\n * 与旧版 SDK 的请求格式(multipart/form-data + /admin 路径)完全一致\n *\n * @param options - 请求实例和配置\n * @param action - 请求动作(如 'wx.openApi'、'wx.wxPayApi'、'wx.wxCallContainerApi')\n * @param params - 请求参数\n * @param reqOpts - 自定义请求选项(如 timeout)\n */\nexport async function sendWxFormDataRequest(\n options: ISendWxRequestOptions,\n action: string,\n params: any,\n reqOpts?: ICustomReqOpts\n): Promise<any> {\n appendWxTokenParams(params)\n\n // 延迟加载 form-data 包\n let FormData: any\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n FormData = require('form-data')\n } catch (e) {\n throw new Error('缺少依赖 form-data,请执行 npm install form-data')\n }\n\n // 使用 form-data 包构建 FormData(兼容 Node.js < 18 的云函数环境)\n const formData = new FormData()\n formData.append('action', action)\n for (const key of Object.keys(params)) {\n if (params[key] !== undefined) {\n formData.append(key, params[key])\n }\n }\n\n // 构建签名用的纯对象(getReqOptions 用它做 multipart 签名)\n const plainObj: any = { action, ...params }\n ;(formData as any).__plainObj = plainObj\n\n // 构建 admin URL\n const url = buildAdminUrl(options.config, options.scfContext, options.serviceUrl)\n\n // 通过 request.post 发送(responseType 为 buffer 以兼容旧版二进制响应格式)\n const res = await options.requestInstance.post(\n {\n url,\n body: formData,\n headers: formData.getHeaders(),\n responseType: 'buffer',\n },\n reqOpts ? { timeout: reqOpts.timeout } : undefined\n )\n\n // 返回 response data\n if (res.data) {\n return res.data\n }\n return res\n}\n\n/**\n * 校验跨帐号调用配置\n */\nfunction validateCrossAccount(config: any, opts: any = {}): void {\n const getCrossAccountInfo = opts.getCrossAccountInfo || config.getCrossAccountInfo\n if (getCrossAccountInfo) {\n throw E({\n ...ERROR.INVALID_PARAM,\n message: 'invalid config: getCrossAccountInfo',\n })\n }\n}\n\n/**\n * 获取微信请求所需的 wxOptions 参数\n * @param config - cloudbase 配置\n * @param scfContext - 云函数 context\n * @param serviceUrl - 服务端注入 URL\n * @param requestInstance - request 实例\n */\nexport function getWxOptions(config: any, scfContext: any, serviceUrl: string, requestInstance: any): ISendWxRequestOptions {\n return { requestInstance, config, scfContext, serviceUrl }\n}\n\n/**\n * callWxOpenApi - 调用微信开放接口(JSON 格式)\n */\nexport async function callWxOpenApi(\n wxOptions: ISendWxRequestOptions,\n { apiName, apiOptions, cgiName, requestData }: { apiName: string; apiOptions?: any; cgiName?: string; requestData: any },\n opts?: ICustomReqOpts\n) {\n let transformRequestData: any\n try {\n transformRequestData = requestData ? JSON.stringify(requestData) : ''\n } catch (e: any) {\n throw E({ ...e, code: ERROR.INVALID_PARAM.code, message: '对象出现了循环引用' })\n }\n\n validateCrossAccount(wxOptions.config, opts)\n\n const params: any = {\n apiName,\n apiOptions,\n cgiName,\n requestData: transformRequestData,\n }\n\n const res = await sendWxRequest(wxOptions, 'wx.api', params, opts)\n\n if (res.code) {\n return res\n }\n\n let result: any\n try {\n result = JSON.parse(res.responseData)\n } catch (e) {\n result = res.responseData\n }\n return {\n result,\n requestId: res.requestId,\n }\n}\n\n/**\n * 通用的 form-data 格式微信 API 调用(内部复用)\n * callCompatibleWxOpenApi / callWxPayApi / wxCallContainerApi 均委托此函数\n */\nasync function callWxFormDataApi(\n action: string,\n wxOptions: ISendWxRequestOptions,\n { apiName, apiOptions, cgiName, requestData }: { apiName: string; apiOptions?: any; cgiName?: string; requestData: any },\n opts?: ICustomReqOpts\n) {\n validateCrossAccount(wxOptions.config, opts)\n return sendWxFormDataRequest(wxOptions, action, { apiName, apiOptions, cgiName, requestData }, opts)\n}\n\n/** callCompatibleWxOpenApi - 调用兼容的微信开放接口(form-data 格式) */\nexport const callCompatibleWxOpenApi = (\n wxOptions: ISendWxRequestOptions,\n apiOpts: { apiName: string; apiOptions?: any; cgiName?: string; requestData: any },\n opts?: ICustomReqOpts\n) => callWxFormDataApi('wx.openApi', wxOptions, apiOpts, opts)\n\n/** callWxPayApi - 调用微信支付接口(form-data 格式) */\nexport const callWxPayApi = (\n wxOptions: ISendWxRequestOptions,\n apiOpts: { apiName: string; apiOptions?: any; cgiName?: string; requestData: any },\n opts?: ICustomReqOpts\n) => callWxFormDataApi('wx.wxPayApi', wxOptions, apiOpts, opts)\n\n/** wxCallContainerApi - 调用微信云托管容器接口(form-data 格式) */\nexport const wxCallContainerApi = (\n wxOptions: ISendWxRequestOptions,\n apiOpts: { apiName: string; apiOptions?: any; cgiName?: string; requestData: any },\n opts?: ICustomReqOpts\n) => callWxFormDataApi('wx.wxCallContainerApi', wxOptions, apiOpts, opts)\n","import { Db } from '@cloudbase/database'\nimport { ICloudbase } from '@cloudbase/types'\nimport { ICloudbaseComponent } from '@cloudbase/types/component'\nimport cloudbaseNS from '../../index'\nimport { EJSON } from 'bson'\n\ndeclare const cloudbase: ICloudbase\ndeclare type QueryType = 'WHERE' | 'DOC'\n\n/**\n * 数据库配置接口\n */\ninterface IDbConfig {\n /** 实例 ID(可选,默认 '(default)') */\n instance?: string\n /** 数据库名称(可选,默认 '(default)') */\n database?: string\n}\n\ninterface IBaseReq extends IDbConfig {\n collectionName: string\n transactionId?: string\n}\n\ninterface IDocumentsQueryReq extends IBaseReq {\n query?: any\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n order?: string[]\n offset?: number\n limit?: number\n projection?: Object\n}\n\ninterface IDocumentsAddReq extends IBaseReq {\n data: Object | Object[]\n}\n\ninterface IDocumentsUpdateReq extends IBaseReq {\n query: Object\n data: Object\n /** 是否批量更新(默认 false) */\n multi?: boolean\n /** 把所有更新数据转为带操作符的 */\n merge?: boolean\n /** 不存在时是否创建(默认 false) */\n upsert?: boolean\n /** 是否替换整个文档(默认 false,为 true 时替换整个文档而非合并更新) */\n replaceMode?: boolean\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n}\n\ninterface IDocumentsRemoveReq extends IBaseReq {\n query: Object\n /** 是否批量删除(默认 false) */\n multi?: boolean\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n}\n\ninterface IDocumentsCountReq extends IBaseReq {\n query: Object\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n}\n\ninterface ICommonRes<T> {\n data?: T & { code?: string }\n requestId: string\n code?: string\n message?: string\n}\n\ninterface IAddRes {\n /** 单条插入时返回的文档 ID(批量插入时不返回) */\n _id?: string\n /** 批量插入时返回的文档 ID 列表 */\n ids?: string[]\n insertedIds: string[]\n}\n\ninterface IRunCommandsReq {\n transactionId?: string\n /** 命令数组,方法会将其转为 MongoDB 原生命令(EJSON 对象格式) */\n commands: Object[]\n}\n\nconst COMPONENT_NAME = 'database'\n\nconst gateWayFunc = {\n /**\n * 过滤响应,移除不必要的字段\n */\n filterRes: function <T>(res: ICommonRes<T> & { header?: any; statusCode?: number }): ICommonRes<T> {\n delete res.header\n delete res.statusCode\n return res\n },\n\n /**\n * 展开响应数据到顶层(用于事务等场景)\n */\n flattenResData: function <T>(res: ICommonRes<T>): any {\n if (typeof res.data === 'object' && res.data !== null) {\n const result = { ...res, ...res.data }\n delete result.data\n return result\n }\n return res\n },\n\n /**\n * 安全解析 EJSON\n */\n safeParseEJSON: function (data: any): any {\n if (typeof data !== 'string') return data\n try {\n return EJSON.parse(data)\n } catch {\n return data\n }\n },\n\n /**\n * 构建 URL 查询参数\n */\n buildQueryParams: function (params: Record<string, any>): string {\n return Object.entries(params)\n .filter(([_, value]) => value !== undefined && value !== null && value !== '')\n .map(([key, value]) => {\n const stringValue = typeof value === 'object' ? JSON.stringify(value) : String(value)\n return `${encodeURIComponent(key)}=${encodeURIComponent(stringValue)}`\n })\n .join('&')\n },\n\n /**\n * 获取 URL 前缀\n */\n getUrlPrefix: function (data: IDbConfig): string {\n const instance = data?.instance || '(default)'\n const database = data?.database || '(default)'\n return `/database/instances/${instance}/databases/${database}`\n },\n\n 'database.queryDocument': async function (\n data: IDocumentsQueryReq,\n ): Promise<ICommonRes<{ offset?: number; limit?: number; list: any[] }>> {\n const isQueryDoc = !!data.query?._id?.$eq\n const queryParams = gateWayFunc.buildQueryParams({\n projection: data.projection,\n transactionId: data.transactionId,\n ...(isQueryDoc\n ? {}\n : {\n offset: data.offset ?? 0,\n limit: data.limit ?? 100,\n order: data.order,\n query: data.query ? EJSON.stringify(data.query, { relaxed: false }) : undefined,\n }),\n })\n\n let url = `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents?${queryParams}`\n\n // 查询单个文档\n if (isQueryDoc) {\n url = `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents/${\n data.query._id?.$eq || data.query._id\n }?${queryParams}`\n }\n\n let res = await this.gateWay({\n url,\n method: 'GET',\n })\n\n // 尝试解析 EJSON 格式的数据\n res.data = gateWayFunc.safeParseEJSON(JSON.stringify(res.data))\n\n if (isQueryDoc && !res.code && !res.data?.code) {\n return {\n ...res,\n data: { list: [res.data] }\n }\n }\n\n // 确保 res.data.list 为数组,兼容后端返回数据或直接返回文档数组的情况\n if (!res.code && !res.data?.code) {\n if (Array.isArray(res.data)) {\n // 后端直接返回文档数组\n res = { ...res, data: { list: res.data } }\n } else if (res.data && !Array.isArray(res.data.list)) {\n // 后端返回对象但缺少 list 字段\n res = { ...res, data: { ...res.data, list: [] } }\n }\n } else {\n res = { ...res, code: res.code || res.data?.code, data: { ...res.data, list: [] } }\n }\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.addDocument': async function (data: IDocumentsAddReq): Promise<ICommonRes<IAddRes>> {\n let res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents`,\n method: 'POST',\n data: {\n data: Array.isArray(data.data) ? data.data : [data.data],\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n if (Array.isArray(data.data)) {\n // 数组模式(批量插入),返回 ids 列表\n res = {\n ...res,\n data: {\n ids: res.data?.insertedIds || [],\n ...res.data,\n },\n }\n } else if (res.data?.insertedIds?.[0]) {\n // 非数组模式(单条插入),将 _id 提升到顶层\n res = {\n ...res,\n data: {\n _id: res.data.insertedIds[0],\n ...res.data,\n },\n }\n }\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.updateDocument': async function (\n data: IDocumentsUpdateReq,\n ): Promise<ICommonRes<{ matched: number; updated: number; upsert_id: string }>> {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents`,\n method: 'PATCH',\n data: {\n query: data.query,\n data: data.data,\n multi: !!data.multi,\n upsert: !!data.upsert,\n replaceMode: !!data.replaceMode,\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.deleteDocument': async function (data: IDocumentsRemoveReq): Promise<ICommonRes<{ deleted: number }>> {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents/remove`,\n method: 'POST',\n data: {\n query: data.query,\n multi: !!data.multi,\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.countDocument': async function (data: IDocumentsCountReq): Promise<ICommonRes<{ total: number }>> {\n const queryParams = gateWayFunc.buildQueryParams({\n count: true,\n query: data.query ? EJSON.stringify(data.query, { relaxed: false }) : undefined,\n })\n\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents?${queryParams}`,\n method: 'GET',\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.addCollection': async function (data: { collectionName: string } & IDbConfig): Promise<ICommonRes<''>> {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections`,\n method: 'POST',\n data: { collectionName: data.collectionName },\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.aggregate': async function (\n data: { collectionName: string; stages: { stageKey: string; stageValue: any }[] } & IDbConfig,\n ): Promise<ICommonRes<{ list: string }>> {\n const pipeline = data.stages.map((stage) => {\n try {\n // stageValue 可能是字符串或对象,统一处理\n const value = typeof stage.stageValue === 'string' ? JSON.parse(stage.stageValue) : stage.stageValue\n return {\n [stage.stageKey]: EJSON.serialize(value),\n }\n } catch {\n return { [stage.stageKey]: stage.stageValue }\n }\n })\n\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents/aggregations`,\n method: 'POST',\n data: { pipeline },\n })\n\n // 将结果列表转为字符串格式(兼容原有逻辑)\n if (Array.isArray(res.data?.list)) {\n res.data.list = JSON.stringify(res.data.list.map((item: any) => JSON.stringify(item)))\n }\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.startTransaction': async function (data: IDbConfig) {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/transactions`,\n method: 'POST',\n })\n\n return gateWayFunc.filterRes(gateWayFunc.flattenResData(res))\n },\n\n 'database.commitTransaction': async function (data: { transactionId: string } & IDbConfig) {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/transactions/${data.transactionId}/commit`,\n method: 'POST',\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.abortTransaction': async function (data: { transactionId: string } & IDbConfig) {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/transactions/${data.transactionId}/rollback`,\n method: 'POST',\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n 'database.getInTransaction': async function (data: IDocumentsQueryReq) {\n const res = await gateWayFunc['database.queryDocument'].call(this, data)\n\n if (typeof res.data === 'object' && res.data !== null) {\n if (res.data?.code) {\n return gateWayFunc.flattenResData(res)\n }\n return { ...res, data: JSON.stringify(res.data) as any }\n }\n\n return res\n },\n\n 'database.updateDocInTransaction': async function (data: IDocumentsUpdateReq) {\n // 尝试解析 EJSON 格式的数据\n data.data = gateWayFunc.safeParseEJSON(data.data)\n\n const res = await gateWayFunc['database.updateDocument'].call(this, data)\n return gateWayFunc.flattenResData(res)\n },\n\n 'database.deleteDocInTransaction': async function (data: IDocumentsRemoveReq) {\n const res = await gateWayFunc['database.deleteDocument'].call(this, data)\n return gateWayFunc.flattenResData(res)\n },\n\n 'database.insertDocInTransaction': async function (\n data: IDocumentsAddReq,\n ): Promise<ICommonRes<IAddRes & { inserted?: number }>> {\n // 尝试解析 EJSON 格式的数据\n data.data = gateWayFunc.safeParseEJSON(data.data)\n\n let res = await gateWayFunc['database.addDocument'].call(this, data)\n\n if (typeof res.data === 'object' && res.data !== null) {\n const hasId = !!res.data?._id\n res = {\n ...res,\n inserted: hasId ? 1 : 0,\n ok: hasId ? 1 : 0,\n ...res.data,\n } as any\n } else {\n res = { inserted: 0, ok: 0, ...res } as any\n }\n\n delete res.data\n\n return res\n },\n\n 'database.runCommands': async function (\n data: IRunCommandsReq & IDbConfig,\n ): Promise<ICommonRes<{ list: Object[][] }>> {\n let res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/commands`,\n method: 'POST',\n data: {\n commands: EJSON.serialize(data.commands),\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n if (typeof res.data === 'object' && res.data !== null) {\n res = { ...res, ...res.data }\n delete res.data\n delete res.request_id\n }\n\n // 尝试将结果转换为普通对象\n try {\n res = EJSON.deserialize(res)\n } catch {\n // 忽略转换失败\n }\n\n return gateWayFunc.filterRes(res)\n },\n}\n\nfunction database(dbConfig?: IDbConfig) {\n const { adapter, runtime } = this.platform\n\n class Req extends this.request.constructor {\n constructor(config) {\n super(config)\n }\n\n async send(action: string, data: any) {\n let res = null\n\n if (this.config.endPointMode === 'GATEWAY' && gateWayFunc[action]) {\n res = await gateWayFunc[action].call(this, data)\n } else {\n res = await super.send(action, data)\n }\n\n return res\n }\n }\n\n Db.reqClass = Req\n // 未登录情况下传入空函数\n Db.getAccessToken = this.authInstance ? this.authInstance.getAccessToken.bind(this.authInstance) : () => ''\n Db.runtime = runtime\n if (this.wsClientClass) {\n Db.wsClass = adapter.wsClass\n Db.wsClientClass = this.wsClientClass\n }\n\n if (!Db.ws) {\n Db.ws = null\n }\n\n class NewDb extends Db {\n constructor(config?: IDbConfig) {\n super(config)\n }\n\n async runCommands(params: IRunCommandsReq): Promise<ICommonRes<{ list: Object[][] }>> {\n let request = Db.createRequest(this.config)\n\n return request.send('database.runCommands', params)\n }\n }\n\n return new NewDb({ ...this.config, _fromApp: this, ...dbConfig })\n}\n\nconst component: ICloudbaseComponent = {\n name: COMPONENT_NAME,\n entity: {\n database,\n },\n}\ntry {\n cloudbase.registerComponent(component)\n} catch (e) {}\n\nexport function registerDatabase(app: ICloudbase | typeof cloudbaseNS) {\n try {\n app.registerComponent(component)\n } catch (e) {\n console.warn(e)\n }\n}\n\ntry {\n ;(window as any).registerDatabase = registerDatabase\n} catch (e) {}\n","/**\n * Node.js 总入口\n * 在 app/src/index.node.ts 基础上注册所有子模块\n *\n * webpack alias 会将 @cloudbase/app 解析到 packages/app 源码目录\n */\n// @ts-ignore - webpack alias resolves this\nimport cloudbase from '@cloudbase/app'\n\n\nimport { registerAuth } from '@cloudbase/auth'\nimport { registerFunctions } from '@cloudbase/functions'\nimport { registerStorage } from '@cloudbase/storage'\nimport { registerRealtime } from '@cloudbase/realtime'\nimport { registerModel } from '@cloudbase/model'\nimport { registerAi } from '@cloudbase/ai'\nimport { registerCloudrun } from '@cloudbase/cloudrun'\nimport { registerMySQL } from '@cloudbase/mysql'\nimport { registerApis } from '@cloudbase/apis'\n// @ts-ignore\nimport { registerDatabase } from '../database/src/index'\nimport { ICloudbase } from '@cloudbase/types'\n\n// __SDK_VERSION__ will be replaced at build time\ndeclare const __SDK_VERSION__: string\nconst version: string = __SDK_VERSION__\ncloudbase.registerVersion(version)\n\n// Node 环境下加载 Node adapter\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports\n const { getSdkVersion } = require('@cloudbase/app/src/constants/common')\n // eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports\n const nodeAdapter = require('@cloudbase/app/src/libs/adapter-node')\n\n cloudbase.useAdapters(nodeAdapter.default)\n\n // 将 node-sdk 常用的静态属性/方法挂到 cloudbase 实例上\n const cb = cloudbase as any\n cb.version = getSdkVersion()\n cb.SYMBOL_CURRENT_ENV = nodeAdapter.SYMBOL_CURRENT_ENV\n cb.SYMBOL_DEFAULT_ENV = nodeAdapter.SYMBOL_DEFAULT_ENV\n cb.parseContext = nodeAdapter.parseContext\n cb.getCloudbaseContext = nodeAdapter.getCloudbaseContext\n} catch (error) {\n // Node adapter 加载失败时静默处理\n}\n\n// 注册所有子模块\ntry {\n registerAuth(cloudbase)\n registerFunctions(cloudbase)\n registerStorage(cloudbase)\n registerDatabase(cloudbase)\n registerRealtime(cloudbase)\n registerModel(cloudbase)\n registerAi(cloudbase)\n registerCloudrun(cloudbase)\n registerMySQL(cloudbase)\n registerApis(cloudbase)\n} catch (e) {}\n\ndeclare global {\n interface Window {\n cloudbase: ICloudbase\n }\n}\ntry {\n (window as Window).cloudbase = cloudbase\n} catch (e) {}\n// @ts-ignore\nexport = cloudbase\nexport default cloudbase\n","var _a;\nvar ErrorCode;\n(function (ErrorCode) {\n ErrorCode[\"DocIDError\"] = \"\\u6587\\u6863ID\\u4E0D\\u5408\\u6CD5\";\n ErrorCode[\"CollNameError\"] = \"\\u96C6\\u5408\\u540D\\u79F0\\u4E0D\\u5408\\u6CD5\";\n ErrorCode[\"OpStrError\"] = \"\\u64CD\\u4F5C\\u7B26\\u4E0D\\u5408\\u6CD5\";\n ErrorCode[\"DirectionError\"] = \"\\u6392\\u5E8F\\u5B57\\u7B26\\u4E0D\\u5408\\u6CD5\";\n ErrorCode[\"IntergerError\"] = \"must be integer\";\n ErrorCode[\"QueryParamTypeError\"] = \"\\u67E5\\u8BE2\\u53C2\\u6570\\u5FC5\\u987B\\u4E3A\\u5BF9\\u8C61\";\n ErrorCode[\"QueryParamValueError\"] = \"\\u67E5\\u8BE2\\u53C2\\u6570\\u5BF9\\u8C61\\u503C\\u4E0D\\u80FD\\u5747\\u4E3Aundefined\";\n})(ErrorCode || (ErrorCode = {}));\nvar FieldType = {\n String: 'String',\n Number: 'Number',\n Object: 'Object',\n Array: 'Array',\n Boolean: 'Boolean',\n Null: 'Null',\n GeoPoint: 'GeoPoint',\n GeoLineString: 'GeoLineString',\n GeoPolygon: 'GeoPolygon',\n GeoMultiPoint: 'GeoMultiPoint',\n GeoMultiLineString: 'GeoMultiLineString',\n GeoMultiPolygon: 'GeoMultiPolygon',\n Timestamp: 'Date',\n Command: 'Command',\n ServerDate: 'ServerDate',\n BsonDate: 'BsonDate'\n};\nvar OrderDirectionList = ['desc', 'asc'];\nvar WhereFilterOpList = ['<', '<=', '==', '>=', '>'];\nvar Opeartor;\n(function (Opeartor) {\n Opeartor[\"lt\"] = \"<\";\n Opeartor[\"gt\"] = \">\";\n Opeartor[\"lte\"] = \"<=\";\n Opeartor[\"gte\"] = \">=\";\n Opeartor[\"eq\"] = \"==\";\n})(Opeartor || (Opeartor = {}));\nvar OperatorMap = (_a = {},\n _a[Opeartor.eq] = '$eq',\n _a[Opeartor.lt] = '$lt',\n _a[Opeartor.lte] = '$lte',\n _a[Opeartor.gt] = '$gt',\n _a[Opeartor.gte] = '$gte',\n _a);\nvar UpdateOperatorList = [\n '$set',\n '$inc',\n '$mul',\n '$unset',\n '$push',\n '$pop',\n '$unshift',\n '$shift',\n '$currentDate',\n '$each',\n '$position'\n];\nvar QueryType;\n(function (QueryType) {\n QueryType[\"WHERE\"] = \"WHERE\";\n QueryType[\"DOC\"] = \"DOC\";\n})(QueryType || (QueryType = {}));\nexport { ErrorCode, FieldType, WhereFilterOpList, Opeartor, OperatorMap, OrderDirectionList, UpdateOperatorList, QueryType };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _symbols = [];\nvar __internalMark__ = {};\nvar HiddenSymbol = (function () {\n function HiddenSymbol(target) {\n Object.defineProperties(this, {\n target: {\n enumerable: false,\n writable: false,\n configurable: false,\n value: target,\n },\n });\n }\n return HiddenSymbol;\n}());\nvar InternalSymbol = (function (_super) {\n __extends(InternalSymbol, _super);\n function InternalSymbol(target, __mark__) {\n if (__mark__ !== __internalMark__) {\n throw new TypeError('InternalSymbol cannot be constructed with new operator');\n }\n return _super.call(this, target) || this;\n }\n InternalSymbol.for = function (target) {\n for (var i = 0, len = _symbols.length; i < len; i++) {\n if (_symbols[i].target === target) {\n return _symbols[i].instance;\n }\n }\n var symbol = new InternalSymbol(target, __internalMark__);\n _symbols.push({\n target: target,\n instance: symbol,\n });\n return symbol;\n };\n return InternalSymbol;\n}(HiddenSymbol));\nexport { InternalSymbol };\nexport default InternalSymbol;\n","import InternalSymbol from '../utils/symbol';\nexport * from '../utils/symbol';\nexport var SYMBOL_UNSET_FIELD_NAME = InternalSymbol.for('UNSET_FIELD_NAME');\nexport var SYMBOL_UPDATE_COMMAND = InternalSymbol.for('UPDATE_COMMAND');\nexport var SYMBOL_QUERY_COMMAND = InternalSymbol.for('QUERY_COMMAND');\nexport var SYMBOL_LOGIC_COMMAND = InternalSymbol.for('LOGIC_COMMAND');\nexport var SYMBOL_GEO_POINT = InternalSymbol.for('GEO_POINT');\nexport var SYMBOL_GEO_LINE_STRING = InternalSymbol.for('SYMBOL_GEO_LINE_STRING');\nexport var SYMBOL_GEO_POLYGON = InternalSymbol.for('SYMBOL_GEO_POLYGON');\nexport var SYMBOL_GEO_MULTI_POINT = InternalSymbol.for('SYMBOL_GEO_MULTI_POINT');\nexport var SYMBOL_GEO_MULTI_LINE_STRING = InternalSymbol.for('SYMBOL_GEO_MULTI_LINE_STRING');\nexport var SYMBOL_GEO_MULTI_POLYGON = InternalSymbol.for('SYMBOL_GEO_MULTI_POLYGON');\nexport var SYMBOL_SERVER_DATE = InternalSymbol.for('SERVER_DATE');\nexport var SYMBOL_REGEXP = InternalSymbol.for('REGEXP');\n","import { InternalSymbol } from './symbol';\nexport var getType = function (x) { return Object.prototype.toString.call(x).slice(8, -1).toLowerCase(); };\nexport var isObject = function (x) { return getType(x) === 'object'; };\nexport var isString = function (x) { return getType(x) === 'string'; };\nexport var isNumber = function (x) { return getType(x) === 'number'; };\nexport var isPromise = function (x) { return getType(x) === 'promise'; };\nexport var isFunction = function (x) { return typeof x === 'function'; };\nexport var isArray = function (x) { return Array.isArray(x); };\nexport var isDate = function (x) { return getType(x) === 'date'; };\nexport var isRegExp = function (x) { return getType(x) === 'regexp'; };\nexport var isInternalObject = function (x) { return x && (x._internalType instanceof InternalSymbol); };\nexport var isPlainObject = function (obj) {\n if (typeof obj !== 'object' || obj === null)\n return false;\n var proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto;\n};\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_LINE_STRING } from '../helper/symbol';\nimport { Point } from './point';\nimport { isArray, isNumber } from '../utils/type';\nvar LineString = (function () {\n function LineString(points) {\n if (!isArray(points)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof points));\n }\n if (points.length < 2) {\n throw new Error('\"points\" must contain 2 points at least');\n }\n points.forEach(function (point) {\n if (!(point instanceof Point)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof point, \"[]\"));\n }\n });\n this.points = points;\n }\n LineString.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'LineString',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n },\n _a;\n };\n LineString.prototype.toJSON = function () {\n return {\n type: 'LineString',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n };\n };\n LineString.validate = function (lineString) {\n var e_1, _a;\n if (lineString.type !== 'LineString' || !isArray(lineString.coordinates)) {\n return false;\n }\n try {\n for (var _b = __values(lineString.coordinates), _c = _b.next(); !_c.done; _c = _b.next()) {\n var point = _c.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n LineString.isClosed = function (lineString) {\n var firstPoint = lineString.points[0];\n var lastPoint = lineString.points[lineString.points.length - 1];\n if (firstPoint.latitude === lastPoint.latitude && firstPoint.longitude === lastPoint.longitude) {\n return true;\n }\n };\n Object.defineProperty(LineString.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_LINE_STRING;\n },\n enumerable: false,\n configurable: true\n });\n return LineString;\n}());\nexport { LineString };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_MULTI_POLYGON } from '../helper/symbol';\nimport { isArray, isNumber } from '../utils/type';\nimport { LineString } from './lineString';\nvar Polygon = (function () {\n function Polygon(lines) {\n if (!isArray(lines)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof lines));\n }\n if (lines.length === 0) {\n throw new Error('Polygon must contain 1 linestring at least');\n }\n lines.forEach(function (line) {\n if (!(line instanceof LineString)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof line, \"[]\"));\n }\n if (!LineString.isClosed(line)) {\n throw new Error(\"LineString \".concat(line.points.map(function (p) { return p.toReadableString(); }), \" is not a closed cycle\"));\n }\n });\n this.lines = lines;\n }\n Polygon.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'Polygon',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n },\n _a;\n };\n Polygon.prototype.toJSON = function () {\n return {\n type: 'Polygon',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n };\n };\n Polygon.validate = function (polygon) {\n var e_1, _a, e_2, _b;\n if (polygon.type !== 'Polygon' || !isArray(polygon.coordinates)) {\n return false;\n }\n try {\n for (var _c = __values(polygon.coordinates), _d = _c.next(); !_d.done; _d = _c.next()) {\n var line = _d.value;\n if (!this.isCloseLineString(line)) {\n return false;\n }\n try {\n for (var line_1 = (e_2 = void 0, __values(line)), line_1_1 = line_1.next(); !line_1_1.done; line_1_1 = line_1.next()) {\n var point = line_1_1.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (line_1_1 && !line_1_1.done && (_b = line_1.return)) _b.call(line_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n Polygon.isCloseLineString = function (lineString) {\n var firstPoint = lineString[0];\n var lastPoint = lineString[lineString.length - 1];\n if (firstPoint[0] !== lastPoint[0] || firstPoint[1] !== lastPoint[1]) {\n return false;\n }\n return true;\n };\n Object.defineProperty(Polygon.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_MULTI_POLYGON;\n },\n enumerable: false,\n configurable: true\n });\n return Polygon;\n}());\nexport { Polygon };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_MULTI_POINT } from '../helper/symbol';\nimport { Point } from './point';\nimport { isArray, isNumber } from '../utils/type';\nvar MultiPoint = (function () {\n function MultiPoint(points) {\n if (!isArray(points)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof points));\n }\n if (points.length === 0) {\n throw new Error('\"points\" must contain 1 point at least');\n }\n points.forEach(function (point) {\n if (!(point instanceof Point)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof point, \"[]\"));\n }\n });\n this.points = points;\n }\n MultiPoint.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'MultiPoint',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n },\n _a;\n };\n MultiPoint.prototype.toJSON = function () {\n return {\n type: 'MultiPoint',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n };\n };\n MultiPoint.validate = function (multiPoint) {\n var e_1, _a;\n if (multiPoint.type !== 'MultiPoint' || !isArray(multiPoint.coordinates)) {\n return false;\n }\n try {\n for (var _b = __values(multiPoint.coordinates), _c = _b.next(); !_c.done; _c = _b.next()) {\n var point = _c.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n Object.defineProperty(MultiPoint.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_MULTI_POINT;\n },\n enumerable: false,\n configurable: true\n });\n return MultiPoint;\n}());\nexport { MultiPoint };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_MULTI_LINE_STRING } from '../helper/symbol';\nimport { isArray, isNumber } from '../utils/type';\nimport { LineString } from './lineString';\nvar MultiLineString = (function () {\n function MultiLineString(lines) {\n if (!isArray(lines)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof lines));\n }\n if (lines.length === 0) {\n throw new Error('Polygon must contain 1 linestring at least');\n }\n lines.forEach(function (line) {\n if (!(line instanceof LineString)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof line, \"[]\"));\n }\n });\n this.lines = lines;\n }\n MultiLineString.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'MultiLineString',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n },\n _a;\n };\n MultiLineString.prototype.toJSON = function () {\n return {\n type: 'MultiLineString',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n };\n };\n MultiLineString.validate = function (multiLineString) {\n var e_1, _a, e_2, _b;\n if (multiLineString.type !== 'MultiLineString' || !isArray(multiLineString.coordinates)) {\n return false;\n }\n try {\n for (var _c = __values(multiLineString.coordinates), _d = _c.next(); !_d.done; _d = _c.next()) {\n var line = _d.value;\n try {\n for (var line_1 = (e_2 = void 0, __values(line)), line_1_1 = line_1.next(); !line_1_1.done; line_1_1 = line_1.next()) {\n var point = line_1_1.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (line_1_1 && !line_1_1.done && (_b = line_1.return)) _b.call(line_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n Object.defineProperty(MultiLineString.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_MULTI_LINE_STRING;\n },\n enumerable: false,\n configurable: true\n });\n return MultiLineString;\n}());\nexport { MultiLineString };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_POLYGON } from '../helper/symbol';\nimport { isArray, isNumber } from '../utils/type';\nimport { Polygon } from './polygon';\nvar MultiPolygon = (function () {\n function MultiPolygon(polygons) {\n var e_1, _a;\n if (!isArray(polygons)) {\n throw new TypeError(\"\\\"polygons\\\" must be of type Polygon[]. Received type \".concat(typeof polygons));\n }\n if (polygons.length === 0) {\n throw new Error('MultiPolygon must contain 1 polygon at least');\n }\n try {\n for (var polygons_1 = __values(polygons), polygons_1_1 = polygons_1.next(); !polygons_1_1.done; polygons_1_1 = polygons_1.next()) {\n var polygon = polygons_1_1.value;\n if (!(polygon instanceof Polygon)) {\n throw new TypeError(\"\\\"polygon\\\" must be of type Polygon[]. Received type \".concat(typeof polygon, \"[]\"));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (polygons_1_1 && !polygons_1_1.done && (_a = polygons_1.return)) _a.call(polygons_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.polygons = polygons;\n }\n MultiPolygon.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'MultiPolygon',\n coordinates: this.polygons.map(function (polygon) {\n return polygon.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n });\n })\n },\n _a;\n };\n MultiPolygon.prototype.toJSON = function () {\n return {\n type: 'MultiPolygon',\n coordinates: this.polygons.map(function (polygon) {\n return polygon.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n });\n })\n };\n };\n MultiPolygon.validate = function (multiPolygon) {\n var e_2, _a, e_3, _b, e_4, _c;\n if (multiPolygon.type !== 'MultiPolygon' || !isArray(multiPolygon.coordinates)) {\n return false;\n }\n try {\n for (var _d = __values(multiPolygon.coordinates), _e = _d.next(); !_e.done; _e = _d.next()) {\n var polygon = _e.value;\n try {\n for (var polygon_1 = (e_3 = void 0, __values(polygon)), polygon_1_1 = polygon_1.next(); !polygon_1_1.done; polygon_1_1 = polygon_1.next()) {\n var line = polygon_1_1.value;\n try {\n for (var line_1 = (e_4 = void 0, __values(line)), line_1_1 = line_1.next(); !line_1_1.done; line_1_1 = line_1.next()) {\n var point = line_1_1.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (line_1_1 && !line_1_1.done && (_c = line_1.return)) _c.call(line_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (polygon_1_1 && !polygon_1_1.done && (_b = polygon_1.return)) _b.call(polygon_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return true;\n };\n Object.defineProperty(MultiPolygon.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_POLYGON;\n },\n enumerable: false,\n configurable: true\n });\n return MultiPolygon;\n}());\nexport { MultiPolygon };\n","import { SYMBOL_SERVER_DATE } from '../helper/symbol';\nvar ServerDate = (function () {\n function ServerDate(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.offset, offset = _c === void 0 ? 0 : _c;\n this.offset = offset;\n }\n Object.defineProperty(ServerDate.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_SERVER_DATE;\n },\n enumerable: false,\n configurable: true\n });\n ServerDate.prototype.parse = function () {\n return {\n $date: {\n offset: this.offset\n }\n };\n };\n return ServerDate;\n}());\nexport { ServerDate };\nexport function ServerDateConstructor(opt) {\n return new ServerDate(opt);\n}\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { FieldType } from './constant';\nimport { Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon } from './geo/index';\nimport { ServerDate } from './serverDate/index';\nvar Util = (function () {\n function Util() {\n }\n Util.formatResDocumentData = function (documents) {\n return documents.map(function (document) {\n return Util.formatField(document);\n });\n };\n Util.formatField = function (document) {\n var keys = Object.keys(document);\n var protoField = {};\n if (Array.isArray(document)) {\n protoField = [];\n }\n keys.forEach(function (key) {\n var item = document[key];\n var type = Util.whichType(item);\n var realValue;\n switch (type) {\n case FieldType.GeoPoint:\n realValue = new Point(item.coordinates[0], item.coordinates[1]);\n break;\n case FieldType.GeoLineString:\n realValue = new LineString(item.coordinates.map(function (point) { return new Point(point[0], point[1]); }));\n break;\n case FieldType.GeoPolygon:\n realValue = new Polygon(item.coordinates.map(function (line) { return new LineString(line.map(function (_a) {\n var _b = __read(_a, 2), lng = _b[0], lat = _b[1];\n return new Point(lng, lat);\n })); }));\n break;\n case FieldType.GeoMultiPoint:\n realValue = new MultiPoint(item.coordinates.map(function (point) { return new Point(point[0], point[1]); }));\n break;\n case FieldType.GeoMultiLineString:\n realValue = new MultiLineString(item.coordinates.map(function (line) { return new LineString(line.map(function (_a) {\n var _b = __read(_a, 2), lng = _b[0], lat = _b[1];\n return new Point(lng, lat);\n })); }));\n break;\n case FieldType.GeoMultiPolygon:\n realValue = new MultiPolygon(item.coordinates.map(function (polygon) {\n return new Polygon(polygon.map(function (line) { return new LineString(line.map(function (_a) {\n var _b = __read(_a, 2), lng = _b[0], lat = _b[1];\n return new Point(lng, lat);\n })); }));\n }));\n break;\n case FieldType.Timestamp:\n realValue = new Date(item.$timestamp * 1000);\n break;\n case FieldType.Object:\n case FieldType.Array:\n realValue = Util.formatField(item);\n break;\n case FieldType.ServerDate:\n realValue = new Date(item.$date);\n break;\n default:\n realValue = item;\n }\n if (Array.isArray(protoField)) {\n protoField.push(realValue);\n }\n else {\n protoField[key] = realValue;\n }\n });\n return protoField;\n };\n Util.whichType = function (obj) {\n var type = Object.prototype.toString.call(obj).slice(8, -1);\n if (type === FieldType.Timestamp) {\n return FieldType.BsonDate;\n }\n if (type === FieldType.Object) {\n if (obj instanceof Point) {\n return FieldType.GeoPoint;\n }\n else if (obj instanceof Date) {\n return FieldType.Timestamp;\n }\n else if (obj instanceof ServerDate) {\n return FieldType.ServerDate;\n }\n if (obj.$timestamp) {\n type = FieldType.Timestamp;\n }\n else if (obj.$date) {\n type = FieldType.ServerDate;\n }\n else if (Point.validate(obj)) {\n type = FieldType.GeoPoint;\n }\n else if (LineString.validate(obj)) {\n type = FieldType.GeoLineString;\n }\n else if (Polygon.validate(obj)) {\n type = FieldType.GeoPolygon;\n }\n else if (MultiPoint.validate(obj)) {\n type = FieldType.GeoMultiPoint;\n }\n else if (MultiLineString.validate(obj)) {\n type = FieldType.GeoMultiLineString;\n }\n else if (MultiPolygon.validate(obj)) {\n type = FieldType.GeoMultiPolygon;\n }\n }\n return type;\n };\n Util.generateDocId = function () {\n var chars = 'ABCDEFabcdef0123456789';\n var autoId = '';\n for (var i = 0; i < 24; i++) {\n autoId += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return autoId;\n };\n return Util;\n}());\nexport { Util };\n","import { SYMBOL_UNSET_FIELD_NAME, SYMBOL_UPDATE_COMMAND } from '../helper/symbol';\nexport var UPDATE_COMMANDS_LITERAL;\n(function (UPDATE_COMMANDS_LITERAL) {\n UPDATE_COMMANDS_LITERAL[\"SET\"] = \"set\";\n UPDATE_COMMANDS_LITERAL[\"REMOVE\"] = \"remove\";\n UPDATE_COMMANDS_LITERAL[\"INC\"] = \"inc\";\n UPDATE_COMMANDS_LITERAL[\"MUL\"] = \"mul\";\n UPDATE_COMMANDS_LITERAL[\"PUSH\"] = \"push\";\n UPDATE_COMMANDS_LITERAL[\"PULL\"] = \"pull\";\n UPDATE_COMMANDS_LITERAL[\"PULL_ALL\"] = \"pullAll\";\n UPDATE_COMMANDS_LITERAL[\"POP\"] = \"pop\";\n UPDATE_COMMANDS_LITERAL[\"SHIFT\"] = \"shift\";\n UPDATE_COMMANDS_LITERAL[\"UNSHIFT\"] = \"unshift\";\n UPDATE_COMMANDS_LITERAL[\"ADD_TO_SET\"] = \"addToSet\";\n UPDATE_COMMANDS_LITERAL[\"BIT\"] = \"bit\";\n UPDATE_COMMANDS_LITERAL[\"RENAME\"] = \"rename\";\n UPDATE_COMMANDS_LITERAL[\"MAX\"] = \"max\";\n UPDATE_COMMANDS_LITERAL[\"MIN\"] = \"min\";\n})(UPDATE_COMMANDS_LITERAL || (UPDATE_COMMANDS_LITERAL = {}));\nvar UpdateCommand = (function () {\n function UpdateCommand(operator, operands, fieldName) {\n this._internalType = SYMBOL_UPDATE_COMMAND;\n Object.defineProperties(this, {\n _internalType: {\n enumerable: false,\n configurable: false,\n },\n });\n this.operator = operator;\n this.operands = operands;\n this.fieldName = fieldName || SYMBOL_UNSET_FIELD_NAME;\n }\n UpdateCommand.prototype._setFieldName = function (fieldName) {\n var command = new UpdateCommand(this.operator, this.operands, fieldName);\n return command;\n };\n return UpdateCommand;\n}());\nexport { UpdateCommand };\nexport function isUpdateCommand(object) {\n return object && (object instanceof UpdateCommand) && (object._internalType === SYMBOL_UPDATE_COMMAND);\n}\nexport function isKnownUpdateCommand(object) {\n return isUpdateCommand(object) && (object.operator.toUpperCase() in UPDATE_COMMANDS_LITERAL);\n}\nexport default UpdateCommand;\n","import { ErrorCode, WhereFilterOpList, OrderDirectionList, FieldType } from './constant';\nimport { Util } from './util';\nvar Validate = (function () {\n function Validate() {\n }\n Validate.isGeopoint = function (point, degree) {\n if (Util.whichType(degree) !== FieldType.Number) {\n throw new Error('Geo Point must be number type');\n }\n var degreeAbs = Math.abs(degree);\n if (point === 'latitude' && degreeAbs > 90) {\n throw new Error('latitude should be a number ranges from -90 to 90');\n }\n else if (point === 'longitude' && degreeAbs > 180) {\n throw new Error('longitude should be a number ranges from -180 to 180');\n }\n return true;\n };\n Validate.isInteger = function (param, num) {\n if (!Number.isInteger(num)) {\n throw new Error(param + ErrorCode.IntergerError);\n }\n return true;\n };\n Validate.isFieldOrder = function (direction) {\n if (OrderDirectionList.indexOf(direction) === -1) {\n throw new Error(ErrorCode.DirectionError);\n }\n return true;\n };\n Validate.isFieldPath = function (path) {\n if (!/^[a-zA-Z0-9-_\\.]/.test(path)) {\n throw new Error();\n }\n return true;\n };\n Validate.isOperator = function (op) {\n if (WhereFilterOpList.indexOf(op) === -1) {\n throw new Error(ErrorCode.OpStrError);\n }\n return true;\n };\n Validate.isCollName = function (name) {\n if (!/^[a-zA-Z0-9]([a-zA-Z0-9-_]){1,32}$/.test(name)) {\n throw new Error(ErrorCode.CollNameError);\n }\n return true;\n };\n Validate.isDocID = function (docId) {\n if (!/^([a-fA-F0-9]){24}$/.test(docId)) {\n throw new Error(ErrorCode.DocIDError);\n }\n return true;\n };\n return Validate;\n}());\nexport { Validate };\n","import { Validate } from '../validate';\nimport { SYMBOL_GEO_POINT } from '../helper/symbol';\nimport { isArray } from '../utils/type';\nvar Point = (function () {\n function Point(longitude, latitude) {\n Validate.isGeopoint('longitude', longitude);\n Validate.isGeopoint('latitude', latitude);\n this.longitude = longitude;\n this.latitude = latitude;\n }\n Point.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'Point',\n coordinates: [this.longitude, this.latitude]\n },\n _a;\n };\n Point.prototype.toJSON = function () {\n return {\n type: 'Point',\n coordinates: [\n this.longitude,\n this.latitude,\n ],\n };\n };\n Point.prototype.toReadableString = function () {\n return \"[\".concat(this.longitude, \",\").concat(this.latitude, \"]\");\n };\n Point.validate = function (point) {\n return point.type === 'Point' &&\n isArray(point.coordinates) &&\n Validate.isGeopoint('longitude', point.coordinates[0]) &&\n Validate.isGeopoint('latitude', point.coordinates[1]);\n };\n Object.defineProperty(Point.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_POINT;\n },\n enumerable: false,\n configurable: true\n });\n return Point;\n}());\nexport { Point };\n","export var createPromiseCallback = function () {\n var cb = function () { };\n if (!Promise) {\n cb.promise = {};\n var throwPromiseNotDefined = function () {\n throw new Error('Your Node runtime does support ES6 Promises. ' +\n 'Set \"global.Promise\" to your preferred implementation of promises.');\n };\n Object.defineProperty(cb.promise, 'then', { get: throwPromiseNotDefined });\n Object.defineProperty(cb.promise, 'catch', { get: throwPromiseNotDefined });\n return cb;\n }\n var promise = new Promise(function (resolve, reject) {\n cb = function (err, data) {\n if (err)\n return reject(err);\n return resolve(data);\n };\n });\n cb.promise = promise;\n return cb;\n};\n","import { SYMBOL_UNSET_FIELD_NAME, SYMBOL_LOGIC_COMMAND } from '../helper/symbol';\nimport { isQueryCommand } from './query';\nexport var AND = 'and';\nexport var OR = 'or';\nexport var NOT = 'not';\nexport var NOR = 'nor';\nexport var LOGIC_COMMANDS_LITERAL;\n(function (LOGIC_COMMANDS_LITERAL) {\n LOGIC_COMMANDS_LITERAL[\"AND\"] = \"and\";\n LOGIC_COMMANDS_LITERAL[\"OR\"] = \"or\";\n LOGIC_COMMANDS_LITERAL[\"NOT\"] = \"not\";\n LOGIC_COMMANDS_LITERAL[\"NOR\"] = \"nor\";\n})(LOGIC_COMMANDS_LITERAL || (LOGIC_COMMANDS_LITERAL = {}));\nvar LogicCommand = (function () {\n function LogicCommand(operator, operands, fieldName) {\n this._internalType = SYMBOL_LOGIC_COMMAND;\n Object.defineProperties(this, {\n _internalType: {\n enumerable: false,\n configurable: false,\n },\n });\n this.operator = operator;\n this.operands = operands;\n this.fieldName = fieldName || SYMBOL_UNSET_FIELD_NAME;\n if (this.fieldName !== SYMBOL_UNSET_FIELD_NAME) {\n if (Array.isArray(operands)) {\n operands = operands.slice();\n this.operands = operands;\n for (var i = 0, len = operands.length; i < len; i++) {\n var query = operands[i];\n if (isLogicCommand(query) || isQueryCommand(query)) {\n operands[i] = query._setFieldName(this.fieldName);\n }\n }\n }\n else {\n var query = operands;\n if (isLogicCommand(query) || isQueryCommand(query)) {\n operands = query._setFieldName(this.fieldName);\n }\n }\n }\n }\n LogicCommand.prototype._setFieldName = function (fieldName) {\n var operands = this.operands.map(function (operand) {\n if (operand instanceof LogicCommand) {\n return operand._setFieldName(fieldName);\n }\n else {\n return operand;\n }\n });\n var command = new LogicCommand(this.operator, operands, fieldName);\n return command;\n };\n LogicCommand.prototype.and = function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = Array.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n expressions.unshift(this);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.AND, expressions, this.fieldName);\n };\n LogicCommand.prototype.or = function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = Array.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n expressions.unshift(this);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.OR, expressions, this.fieldName);\n };\n return LogicCommand;\n}());\nexport { LogicCommand };\nexport function isLogicCommand(object) {\n return object && (object instanceof LogicCommand) && (object._internalType === SYMBOL_LOGIC_COMMAND);\n}\nexport function isKnownLogicCommand(object) {\n return isLogicCommand && (object.operator.toUpperCase() in LOGIC_COMMANDS_LITERAL);\n}\nexport default LogicCommand;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { LogicCommand } from './logic';\nimport { SYMBOL_QUERY_COMMAND } from '../helper/symbol';\nimport { Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon } from '../geo/index';\nimport { isNumber } from '../utils/type';\nexport var EQ = 'eq';\nexport var NEQ = 'neq';\nexport var GT = 'gt';\nexport var GTE = 'gte';\nexport var LT = 'lt';\nexport var LTE = 'lte';\nexport var IN = 'in';\nexport var NIN = 'nin';\nexport var ALL = 'all';\nexport var ELEM_MATCH = 'elemMatch';\nexport var EXISTS = 'exists';\nexport var SIZE = 'size';\nexport var MOD = 'mod';\nexport var QUERY_COMMANDS_LITERAL;\n(function (QUERY_COMMANDS_LITERAL) {\n QUERY_COMMANDS_LITERAL[\"EQ\"] = \"eq\";\n QUERY_COMMANDS_LITERAL[\"NEQ\"] = \"neq\";\n QUERY_COMMANDS_LITERAL[\"GT\"] = \"gt\";\n QUERY_COMMANDS_LITERAL[\"GTE\"] = \"gte\";\n QUERY_COMMANDS_LITERAL[\"LT\"] = \"lt\";\n QUERY_COMMANDS_LITERAL[\"LTE\"] = \"lte\";\n QUERY_COMMANDS_LITERAL[\"IN\"] = \"in\";\n QUERY_COMMANDS_LITERAL[\"NIN\"] = \"nin\";\n QUERY_COMMANDS_LITERAL[\"ALL\"] = \"all\";\n QUERY_COMMANDS_LITERAL[\"ELEM_MATCH\"] = \"elemMatch\";\n QUERY_COMMANDS_LITERAL[\"EXISTS\"] = \"exists\";\n QUERY_COMMANDS_LITERAL[\"SIZE\"] = \"size\";\n QUERY_COMMANDS_LITERAL[\"MOD\"] = \"mod\";\n QUERY_COMMANDS_LITERAL[\"GEO_NEAR\"] = \"geoNear\";\n QUERY_COMMANDS_LITERAL[\"GEO_WITHIN\"] = \"geoWithin\";\n QUERY_COMMANDS_LITERAL[\"GEO_INTERSECTS\"] = \"geoIntersects\";\n})(QUERY_COMMANDS_LITERAL || (QUERY_COMMANDS_LITERAL = {}));\nvar QueryCommand = (function (_super) {\n __extends(QueryCommand, _super);\n function QueryCommand(operator, operands, fieldName) {\n var _this = _super.call(this, operator, operands, fieldName) || this;\n _this.operator = operator;\n _this._internalType = SYMBOL_QUERY_COMMAND;\n return _this;\n }\n QueryCommand.prototype.toJSON = function () {\n var _a, _b;\n switch (this.operator) {\n case QUERY_COMMANDS_LITERAL.IN:\n case QUERY_COMMANDS_LITERAL.NIN:\n return _a = {},\n _a['$' + this.operator] = this.operands,\n _a;\n default:\n return _b = {},\n _b['$' + this.operator] = this.operands[0],\n _b;\n }\n };\n QueryCommand.prototype._setFieldName = function (fieldName) {\n var command = new QueryCommand(this.operator, this.operands, fieldName);\n return command;\n };\n QueryCommand.prototype.eq = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.EQ, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.neq = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.NEQ, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.gt = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GT, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.gte = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GTE, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.lt = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.LT, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.lte = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.LTE, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.in = function (list) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.IN, list, this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.nin = function (list) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.NIN, list, this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.geoNear = function (val) {\n if (!(val.geometry instanceof Point)) {\n throw new TypeError(\"\\\"geometry\\\" must be of type Point. Received type \".concat(typeof val.geometry));\n }\n if (val.maxDistance !== undefined && !isNumber(val.maxDistance)) {\n throw new TypeError(\"\\\"maxDistance\\\" must be of type Number. Received type \".concat(typeof val.maxDistance));\n }\n if (val.minDistance !== undefined && !isNumber(val.minDistance)) {\n throw new TypeError(\"\\\"minDistance\\\" must be of type Number. Received type \".concat(typeof val.minDistance));\n }\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_NEAR, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.geoWithin = function (val) {\n if (!(val.geometry instanceof MultiPolygon) && !(val.geometry instanceof Polygon)) {\n throw new TypeError(\"\\\"geometry\\\" must be of type Polygon or MultiPolygon. Received type \".concat(typeof val.geometry));\n }\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_WITHIN, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.geoIntersects = function (val) {\n if (!(val.geometry instanceof Point) &&\n !(val.geometry instanceof LineString) &&\n !(val.geometry instanceof Polygon) &&\n !(val.geometry instanceof MultiPoint) &&\n !(val.geometry instanceof MultiLineString) &&\n !(val.geometry instanceof MultiPolygon)) {\n throw new TypeError(\"\\\"geometry\\\" must be of type Point, LineString, Polygon, MultiPoint, MultiLineString or MultiPolygon. Received type \".concat(typeof val.geometry));\n }\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_INTERSECTS, [val], this.fieldName);\n return this.and(command);\n };\n return QueryCommand;\n}(LogicCommand));\nexport { QueryCommand };\nexport function isQueryCommand(object) {\n return object && object instanceof QueryCommand && object._internalType === SYMBOL_QUERY_COMMAND;\n}\nexport function isKnownQueryCommand(object) {\n return isQueryCommand(object) && object.operator.toUpperCase() in QUERY_COMMANDS_LITERAL;\n}\nexport function isComparisonCommand(object) {\n return isQueryCommand(object);\n}\nexport default QueryCommand;\n","import { QUERY_COMMANDS_LITERAL } from './commands/query';\nimport { LOGIC_COMMANDS_LITERAL } from './commands/logic';\nimport { UPDATE_COMMANDS_LITERAL } from './commands/update';\nexport var OperatorMap = {};\nfor (var key in QUERY_COMMANDS_LITERAL) {\n OperatorMap[key] = '$' + key;\n}\nfor (var key in LOGIC_COMMANDS_LITERAL) {\n OperatorMap[key] = '$' + key;\n}\nfor (var key in UPDATE_COMMANDS_LITERAL) {\n OperatorMap[key] = '$' + key;\n}\nOperatorMap[QUERY_COMMANDS_LITERAL.NEQ] = '$ne';\nOperatorMap[UPDATE_COMMANDS_LITERAL.REMOVE] = '$unset';\nOperatorMap[UPDATE_COMMANDS_LITERAL.SHIFT] = '$pop';\nOperatorMap[UPDATE_COMMANDS_LITERAL.UNSHIFT] = '$push';\nexport function operatorToString(operator) {\n return OperatorMap[operator] || '$' + operator;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { SYMBOL_GEO_POINT, SYMBOL_SERVER_DATE, SYMBOL_REGEXP } from '../helper/symbol';\nimport { getType, isObject, isArray, isDate, isNumber, isInternalObject, isRegExp } from '../utils/type';\nimport { Point } from '../geo/index';\nimport { ServerDate } from '../serverDate/index';\nexport function serialize(val) {\n return serializeHelper(val, [val]);\n}\nfunction serializeHelper(val, visited) {\n if (isInternalObject(val)) {\n switch (val._internalType) {\n case SYMBOL_GEO_POINT: {\n return val.toJSON();\n }\n case SYMBOL_SERVER_DATE: {\n return val.parse();\n }\n case SYMBOL_REGEXP: {\n return val.parse();\n }\n default: {\n return val.toJSON ? val.toJSON() : val;\n }\n }\n }\n else if (isDate(val)) {\n return {\n $date: +val,\n };\n }\n else if (isRegExp(val)) {\n return {\n $regex: val.source,\n $options: val.flags,\n };\n }\n else if (isArray(val)) {\n return val.map(function (item) {\n if (visited.indexOf(item) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n return serializeHelper(item, __spreadArray(__spreadArray([], __read(visited), false), [\n item,\n ], false));\n });\n }\n else if (isObject(val)) {\n var ret = __assign({}, val);\n for (var key in ret) {\n if (visited.indexOf(ret[key]) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n ret[key] = serializeHelper(ret[key], __spreadArray(__spreadArray([], __read(visited), false), [\n ret[key],\n ], false));\n }\n return ret;\n }\n else {\n return val;\n }\n}\nexport function deserialize(object) {\n var ret = __assign({}, object);\n for (var key in ret) {\n switch (key) {\n case '$date': {\n switch (getType(ret[key])) {\n case 'number': {\n return new Date(ret[key]);\n }\n case 'object': {\n return new ServerDate(ret[key]);\n }\n }\n break;\n }\n case 'type': {\n switch (ret.type) {\n case 'Point': {\n if (isArray(ret.coordinates) && isNumber(ret.coordinates[0]) && isNumber(ret.coordinates[1])) {\n return new Point(ret.coordinates[0], ret.coordinates[1]);\n }\n break;\n }\n }\n break;\n }\n }\n }\n return object;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { getType, isObject, isArray, isDate, isRegExp, isInternalObject } from '../utils/type';\nimport { serialize as serializeInternalDataType, deserialize as deserializeInternalDataType } from './datatype';\nfunction flatten(query, shouldPreserverObject, parents, visited) {\n var cloned = __assign({}, query);\n for (var key in query) {\n if (/^\\$/.test(key))\n continue;\n var value = query[key];\n if (!value)\n continue;\n if (isObject(value) && !shouldPreserverObject(value)) {\n if (visited.indexOf(value) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n var newParents = __spreadArray(__spreadArray([], __read(parents), false), [\n key,\n ], false);\n var newVisited = __spreadArray(__spreadArray([], __read(visited), false), [\n value,\n ], false);\n var flattenedChild = flatten(value, shouldPreserverObject, newParents, newVisited);\n cloned[key] = flattenedChild;\n var hasKeyNotCombined = false;\n for (var childKey in flattenedChild) {\n if (!/^\\$/.test(childKey)) {\n cloned[\"\".concat(key, \".\").concat(childKey)] = flattenedChild[childKey];\n delete cloned[key][childKey];\n }\n else {\n hasKeyNotCombined = true;\n }\n }\n if (!hasKeyNotCombined) {\n delete cloned[key];\n }\n }\n }\n return cloned;\n}\nexport function flattenQueryObject(query) {\n return flatten(query, isConversionRequired, [], [query]);\n}\nexport function flattenObject(object) {\n return flatten(object, function (_) { return false; }, [], [object]);\n}\nexport function mergeConditionAfterEncode(query, condition, key) {\n if (!condition[key]) {\n delete query[key];\n }\n for (var conditionKey in condition) {\n if (query[conditionKey]) {\n if (isArray(query[conditionKey])) {\n query[conditionKey].push(condition[conditionKey]);\n }\n else if (isObject(query[conditionKey])) {\n if (isObject(condition[conditionKey])) {\n Object.assign(query[conditionKey], condition[conditionKey]);\n }\n else {\n console.warn(\"unmergable condition, query is object but condition is \".concat(getType(condition), \", can only overwrite\"), condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n console.warn(\"to-merge query is of type \".concat(getType(query), \", can only overwrite\"), query, condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n query[conditionKey] = condition[conditionKey];\n }\n }\n}\nexport function isConversionRequired(val) {\n return isInternalObject(val) || isDate(val) || isRegExp(val);\n}\nexport function encodeInternalDataType(val) {\n return serializeInternalDataType(val);\n}\nexport function decodeInternalDataType(object) {\n return deserializeInternalDataType(object);\n}\n","import { UpdateCommand, isUpdateCommand, UPDATE_COMMANDS_LITERAL } from '../commands/update';\nimport { SYMBOL_UNSET_FIELD_NAME } from '../helper/symbol';\nimport { getType, isArray } from '../utils/type';\nimport { operatorToString } from '../operator-map';\nimport { flattenQueryObject, encodeInternalDataType, mergeConditionAfterEncode } from './common';\nvar UpdateSerializer = (function () {\n function UpdateSerializer() {\n }\n UpdateSerializer.encode = function (query) {\n var stringifier = new UpdateSerializer();\n return stringifier.encodeUpdate(query);\n };\n UpdateSerializer.prototype.encodeUpdate = function (query) {\n if (isUpdateCommand(query)) {\n return this.encodeUpdateCommand(query);\n }\n else if (getType(query) === 'object') {\n return this.encodeUpdateObject(query);\n }\n else {\n return query;\n }\n };\n UpdateSerializer.prototype.encodeUpdateCommand = function (query) {\n if (query.fieldName === SYMBOL_UNSET_FIELD_NAME) {\n throw new Error('Cannot encode a comparison command with unset field name');\n }\n switch (query.operator) {\n case UPDATE_COMMANDS_LITERAL.PUSH:\n case UPDATE_COMMANDS_LITERAL.PULL:\n case UPDATE_COMMANDS_LITERAL.PULL_ALL:\n case UPDATE_COMMANDS_LITERAL.POP:\n case UPDATE_COMMANDS_LITERAL.SHIFT:\n case UPDATE_COMMANDS_LITERAL.UNSHIFT:\n case UPDATE_COMMANDS_LITERAL.ADD_TO_SET: {\n return this.encodeArrayUpdateCommand(query);\n }\n default: {\n return this.encodeFieldUpdateCommand(query);\n }\n }\n };\n UpdateSerializer.prototype.encodeFieldUpdateCommand = function (query) {\n var _a, _b, _c, _d;\n var $op = operatorToString(query.operator);\n switch (query.operator) {\n case UPDATE_COMMANDS_LITERAL.REMOVE: {\n return _a = {},\n _a[$op] = (_b = {},\n _b[query.fieldName] = '',\n _b),\n _a;\n }\n default: {\n return _c = {},\n _c[$op] = (_d = {},\n _d[query.fieldName] = query.operands[0],\n _d),\n _c;\n }\n }\n };\n UpdateSerializer.prototype.encodeArrayUpdateCommand = function (query) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n var $op = operatorToString(query.operator);\n switch (query.operator) {\n case UPDATE_COMMANDS_LITERAL.PUSH: {\n var modifiers = void 0;\n if (isArray(query.operands)) {\n modifiers = {\n $each: query.operands.map(encodeInternalDataType)\n };\n }\n else {\n modifiers = query.operands;\n }\n return _a = {},\n _a[$op] = (_b = {},\n _b[query.fieldName] = modifiers,\n _b),\n _a;\n }\n case UPDATE_COMMANDS_LITERAL.UNSHIFT: {\n var modifiers = {\n $each: query.operands.map(encodeInternalDataType),\n $position: 0\n };\n return _c = {},\n _c[$op] = (_d = {},\n _d[query.fieldName] = modifiers,\n _d),\n _c;\n }\n case UPDATE_COMMANDS_LITERAL.POP: {\n return _e = {},\n _e[$op] = (_f = {},\n _f[query.fieldName] = 1,\n _f),\n _e;\n }\n case UPDATE_COMMANDS_LITERAL.SHIFT: {\n return _g = {},\n _g[$op] = (_h = {},\n _h[query.fieldName] = -1,\n _h),\n _g;\n }\n default: {\n return _j = {},\n _j[$op] = (_k = {},\n _k[query.fieldName] = encodeInternalDataType(query.operands),\n _k),\n _j;\n }\n }\n };\n UpdateSerializer.prototype.encodeUpdateObject = function (query) {\n var flattened = flattenQueryObject(query);\n for (var key in flattened) {\n if (/^\\$/.test(key))\n continue;\n var val = flattened[key];\n if (isUpdateCommand(val)) {\n flattened[key] = val._setFieldName(key);\n var condition = this.encodeUpdateCommand(flattened[key]);\n mergeConditionAfterEncode(flattened, condition, key);\n }\n else {\n flattened[key] = val = encodeInternalDataType(val);\n var $setCommand = new UpdateCommand(UPDATE_COMMANDS_LITERAL.SET, [val], key);\n var condition = this.encodeUpdateCommand($setCommand);\n mergeConditionAfterEncode(flattened, condition, key);\n }\n }\n return flattened;\n };\n return UpdateSerializer;\n}());\nexport { UpdateSerializer };\n","import { Db } from '../';\nexport var sleep = function (ms) {\n if (ms === void 0) { ms = 0; }\n return new Promise(function (r) { return setTimeout(r, ms); });\n};\nvar counters = {};\nexport var autoCount = function (domain) {\n if (domain === void 0) { domain = 'any'; }\n if (!counters[domain]) {\n counters[domain] = 0;\n }\n return counters[domain]++;\n};\nvar wsList = {};\nexport function getWsInstance(db) {\n if (!Db.wsClientClass) {\n throw new Error('to use realtime you must import realtime module first');\n }\n var env = db.config.env;\n if (!wsList[env]) {\n wsList[env] = new Db.wsClientClass({\n context: {\n appConfig: {\n docSizeLimit: 1000,\n realtimePingInterval: 10000,\n realtimePongWaitTimeout: 5000,\n request: Db.createRequest(db.config)\n }\n }\n });\n }\n return wsList[env];\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { createPromiseCallback } from './lib/util';\nimport { Db } from './index';\nimport { Util } from './util';\nimport { UpdateSerializer } from './serializer/update';\nimport { serialize } from './serializer/datatype';\nimport { UpdateCommand } from './commands/update';\nimport { QueryType } from './constant';\nimport { getWsInstance } from './utils/utils';\nvar DocumentReference = (function () {\n function DocumentReference(db, coll, docID, projection) {\n if (projection === void 0) { projection = {}; }\n var _this = this;\n this.watch = function (options) {\n var ws = getWsInstance(_this._db);\n return ws.watch(__assign(__assign({}, options), { envId: _this._db.config.env, collectionName: _this._coll, query: JSON.stringify({\n _id: _this.id\n }) }));\n };\n this._db = db;\n this._coll = coll;\n this.id = docID;\n this.request = Db.createRequest(this._db.config);\n this.projection = projection;\n }\n DocumentReference.prototype.create = function (data, callback) {\n callback = callback || createPromiseCallback();\n var isBatch = Array.isArray(data);\n var params = {\n collectionName: this._coll,\n data: isBatch ? data.map(function (item) { return serialize(item); }) : serialize(data)\n };\n if (!isBatch && this.id) {\n params['_id'] = this.id;\n }\n this.request\n .send('database.addDocument', params)\n .then(function (res) {\n var _a;\n if (res.code) {\n callback(0, res);\n }\n else {\n if (isBatch) {\n callback(0, {\n ids: ((_a = res.data) === null || _a === void 0 ? void 0 : _a.insertedIds) || [],\n requestId: res.requestId\n });\n }\n else {\n callback(0, {\n id: res.data._id,\n requestId: res.requestId\n });\n }\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.set = function (data, callback) {\n callback = callback || createPromiseCallback();\n if (!this.id) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: 'docId不能为空'\n });\n }\n if (!data || typeof data !== 'object') {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '参数必需是非空对象'\n });\n }\n if (data.hasOwnProperty('_id')) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '不能更新_id的值'\n });\n }\n var hasOperator = false;\n var checkMixed = function (objs) {\n if (typeof objs === 'object') {\n for (var key in objs) {\n if (objs[key] instanceof UpdateCommand) {\n hasOperator = true;\n }\n else if (typeof objs[key] === 'object') {\n checkMixed(objs[key]);\n }\n }\n }\n };\n checkMixed(data);\n if (hasOperator) {\n return Promise.resolve({\n code: 'DATABASE_REQUEST_FAILED',\n message: 'update operator complicit'\n });\n }\n var merge = false;\n var param = {\n collectionName: this._coll,\n queryType: QueryType.DOC,\n data: serialize(data),\n multi: false,\n merge: merge,\n upsert: true\n };\n if (this.id) {\n param['query'] = { _id: this.id };\n }\n this.request\n .send('database.updateDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n updated: res.data.updated,\n upsertedId: res.data.upserted_id,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.update = function (data, callback) {\n callback = callback || createPromiseCallback();\n if (!data || typeof data !== 'object') {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '参数必需是非空对象'\n });\n }\n if (data.hasOwnProperty('_id')) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '不能更新_id的值'\n });\n }\n var query = { _id: this.id };\n var merge = true;\n var param = {\n collectionName: this._coll,\n data: UpdateSerializer.encode(data),\n query: query,\n queryType: QueryType.DOC,\n multi: false,\n merge: merge,\n upsert: false\n };\n this.request\n .send('database.updateDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n updated: res.data.updated,\n upsertedId: res.data.upserted_id,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.remove = function (callback) {\n callback = callback || createPromiseCallback();\n var query = { _id: this.id };\n var param = {\n collectionName: this._coll,\n query: query,\n queryType: QueryType.DOC,\n multi: false\n };\n this.request\n .send('database.deleteDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n deleted: res.data.deleted,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.get = function (callback) {\n callback = callback || createPromiseCallback();\n var query = { _id: this.id };\n var param = {\n collectionName: this._coll,\n query: query,\n queryType: QueryType.DOC,\n multi: false,\n projection: this.projection\n };\n this.request\n .send('database.queryDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n var documents = Util.formatResDocumentData(res.data.list);\n callback(0, {\n data: documents,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.field = function (projection) {\n for (var k in projection) {\n if (projection[k]) {\n projection[k] = 1;\n }\n else {\n projection[k] = 0;\n }\n }\n return new DocumentReference(this._db, this._coll, this.id, projection);\n };\n return DocumentReference;\n}());\nexport { DocumentReference };\n","import { isQueryCommand, isComparisonCommand, QUERY_COMMANDS_LITERAL } from '../commands/query';\nimport { isLogicCommand, LOGIC_COMMANDS_LITERAL } from '../commands/logic';\nimport { SYMBOL_UNSET_FIELD_NAME } from '../helper/symbol';\nimport { getType, isObject, isArray, isRegExp } from '../utils/type';\nimport { operatorToString } from '../operator-map';\nimport { flattenQueryObject, isConversionRequired, encodeInternalDataType } from './common';\nvar QuerySerializer = (function () {\n function QuerySerializer() {\n }\n QuerySerializer.encode = function (query) {\n var encoder = new QueryEncoder();\n return encoder.encodeQuery(query);\n };\n return QuerySerializer;\n}());\nexport { QuerySerializer };\nvar QueryEncoder = (function () {\n function QueryEncoder() {\n }\n QueryEncoder.prototype.encodeQuery = function (query, key) {\n var _a;\n if (isConversionRequired(query)) {\n if (isLogicCommand(query)) {\n return this.encodeLogicCommand(query);\n }\n else if (isQueryCommand(query)) {\n return this.encodeQueryCommand(query);\n }\n else {\n return _a = {}, _a[key] = this.encodeQueryObject(query), _a;\n }\n }\n else {\n if (isObject(query)) {\n return this.encodeQueryObject(query);\n }\n else {\n return query;\n }\n }\n };\n QueryEncoder.prototype.encodeRegExp = function (query) {\n return {\n $regex: query.source,\n $options: query.flags\n };\n };\n QueryEncoder.prototype.encodeLogicCommand = function (query) {\n var _a, _b, _c, _d, _e, _f, _g;\n var _this = this;\n switch (query.operator) {\n case LOGIC_COMMANDS_LITERAL.NOR:\n case LOGIC_COMMANDS_LITERAL.AND:\n case LOGIC_COMMANDS_LITERAL.OR: {\n var $op = operatorToString(query.operator);\n var subqueries = query.operands.map(function (oprand) {\n return _this.encodeQuery(oprand, query.fieldName);\n });\n return _a = {},\n _a[$op] = subqueries,\n _a;\n }\n case LOGIC_COMMANDS_LITERAL.NOT: {\n var $op = operatorToString(query.operator);\n var operatorExpression = query.operands[0];\n if (isRegExp(operatorExpression)) {\n return _b = {},\n _b[query.fieldName] = (_c = {},\n _c[$op] = this.encodeRegExp(operatorExpression),\n _c),\n _b;\n }\n else {\n var subqueries = this.encodeQuery(operatorExpression)[query.fieldName];\n return _d = {},\n _d[query.fieldName] = (_e = {},\n _e[$op] = subqueries,\n _e),\n _d;\n }\n }\n default: {\n var $op = operatorToString(query.operator);\n if (query.operands.length === 1) {\n var subquery = this.encodeQuery(query.operands[0]);\n return _f = {},\n _f[$op] = subquery,\n _f;\n }\n else {\n var subqueries = query.operands.map(this.encodeQuery.bind(this));\n return _g = {},\n _g[$op] = subqueries,\n _g;\n }\n }\n }\n };\n QueryEncoder.prototype.encodeQueryCommand = function (query) {\n if (isComparisonCommand(query)) {\n return this.encodeComparisonCommand(query);\n }\n else {\n return this.encodeComparisonCommand(query);\n }\n };\n QueryEncoder.prototype.encodeComparisonCommand = function (query) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (query.fieldName === SYMBOL_UNSET_FIELD_NAME) {\n throw new Error('Cannot encode a comparison command with unset field name');\n }\n var $op = operatorToString(query.operator);\n switch (query.operator) {\n case QUERY_COMMANDS_LITERAL.EQ:\n case QUERY_COMMANDS_LITERAL.NEQ:\n case QUERY_COMMANDS_LITERAL.LT:\n case QUERY_COMMANDS_LITERAL.LTE:\n case QUERY_COMMANDS_LITERAL.GT:\n case QUERY_COMMANDS_LITERAL.GTE:\n case QUERY_COMMANDS_LITERAL.ELEM_MATCH:\n case QUERY_COMMANDS_LITERAL.EXISTS:\n case QUERY_COMMANDS_LITERAL.SIZE:\n case QUERY_COMMANDS_LITERAL.MOD: {\n return _a = {},\n _a[query.fieldName] = (_b = {},\n _b[$op] = encodeInternalDataType(query.operands[0]),\n _b),\n _a;\n }\n case QUERY_COMMANDS_LITERAL.IN:\n case QUERY_COMMANDS_LITERAL.NIN:\n case QUERY_COMMANDS_LITERAL.ALL: {\n return _c = {},\n _c[query.fieldName] = (_d = {},\n _d[$op] = encodeInternalDataType(query.operands),\n _d),\n _c;\n }\n case QUERY_COMMANDS_LITERAL.GEO_NEAR: {\n var options = query.operands[0];\n return _e = {},\n _e[query.fieldName] = {\n $nearSphere: {\n $geometry: options.geometry.toJSON(),\n $maxDistance: options.maxDistance,\n $minDistance: options.minDistance\n }\n },\n _e;\n }\n case QUERY_COMMANDS_LITERAL.GEO_WITHIN: {\n var options = query.operands[0];\n return _f = {},\n _f[query.fieldName] = {\n $geoWithin: {\n $geometry: options.geometry.toJSON()\n }\n },\n _f;\n }\n case QUERY_COMMANDS_LITERAL.GEO_INTERSECTS: {\n var options = query.operands[0];\n return _g = {},\n _g[query.fieldName] = {\n $geoIntersects: {\n $geometry: options.geometry.toJSON()\n }\n },\n _g;\n }\n default: {\n return _h = {},\n _h[query.fieldName] = (_j = {},\n _j[$op] = encodeInternalDataType(query.operands[0]),\n _j),\n _h;\n }\n }\n };\n QueryEncoder.prototype.encodeQueryObject = function (query) {\n var flattened = flattenQueryObject(query);\n for (var key in flattened) {\n var val = flattened[key];\n if (isLogicCommand(val)) {\n flattened[key] = val._setFieldName(key);\n var condition = this.encodeLogicCommand(flattened[key]);\n this.mergeConditionAfterEncode(flattened, condition, key);\n }\n else if (isComparisonCommand(val)) {\n flattened[key] = val._setFieldName(key);\n var condition = this.encodeComparisonCommand(flattened[key]);\n this.mergeConditionAfterEncode(flattened, condition, key);\n }\n else if (isConversionRequired(val)) {\n flattened[key] = encodeInternalDataType(val);\n }\n }\n return flattened;\n };\n QueryEncoder.prototype.mergeConditionAfterEncode = function (query, condition, key) {\n if (!condition[key]) {\n delete query[key];\n }\n for (var conditionKey in condition) {\n if (query[conditionKey]) {\n if (isArray(query[conditionKey])) {\n query[conditionKey] = query[conditionKey].concat(condition[conditionKey]);\n }\n else if (isObject(query[conditionKey])) {\n if (isObject(condition[conditionKey])) {\n Object.assign(query, condition);\n }\n else {\n console.warn(\"unmergable condition, query is object but condition is \".concat(getType(condition), \", can only overwrite\"), condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n console.warn(\"to-merge query is of type \".concat(getType(query), \", can only overwrite\"), query, condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n query[conditionKey] = condition[conditionKey];\n }\n }\n };\n return QueryEncoder;\n}());\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { createPromiseCallback } from './lib/util';\nimport { QueryType } from './constant';\nimport { Db } from './index';\nimport { Validate } from './validate';\nimport { Util } from './util';\nimport { QuerySerializer } from './serializer/query';\nimport { UpdateSerializer } from './serializer/update';\nimport { ErrorCode } from './constant';\nimport { getWsInstance } from './utils/utils';\nvar Query = (function () {\n function Query(db, coll, fieldFilters, fieldOrders, queryOptions) {\n var _this = this;\n this.watch = function (options) {\n var ws = getWsInstance(_this._db);\n return ws.watch(__assign(__assign({}, options), { envId: _this._db.config.env, collectionName: _this._coll, query: JSON.stringify(_this._fieldFilters || {}), limit: _this._queryOptions.limit, orderBy: _this._fieldOrders\n ? _this._fieldOrders.reduce(function (acc, cur) {\n acc[cur.field] = cur.direction;\n return acc;\n }, {})\n : undefined }));\n };\n this._db = db;\n this._coll = coll;\n this._fieldFilters = fieldFilters;\n this._fieldOrders = fieldOrders || [];\n this._queryOptions = queryOptions || {};\n this._request = Db.createRequest(this._db.config);\n }\n Query.prototype.get = function (callback) {\n callback = callback || createPromiseCallback();\n var newOder = [];\n if (this._fieldOrders) {\n this._fieldOrders.forEach(function (order) {\n newOder.push(order);\n });\n }\n var param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n if (newOder.length > 0) {\n param.order = newOder;\n }\n if (this._queryOptions.offset) {\n param.offset = this._queryOptions.offset;\n }\n if (this._queryOptions.limit) {\n param.limit = this._queryOptions.limit < 1000 ? this._queryOptions.limit : 1000;\n }\n else {\n param.limit = 100;\n }\n if (this._queryOptions.projection) {\n param.projection = this._queryOptions.projection;\n }\n this._request\n .send('database.queryDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n var documents = Util.formatResDocumentData(res.data.list);\n var result = {\n data: documents,\n requestId: res.requestId\n };\n if (res.total !== undefined)\n result.total = res.total;\n if (res.limit !== undefined)\n result.limit = res.limit;\n if (res.offset !== undefined)\n result.offset = res.offset;\n callback(0, result);\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n Query.prototype.count = function (callback) {\n callback = callback || createPromiseCallback();\n var param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n this._request\n .send('database.countDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n requestId: res.requestId,\n total: res.data.total\n });\n }\n })\n .catch(function (e) {\n callback(e);\n });\n return callback.promise;\n };\n Query.prototype.where = function (query) {\n if (Object.prototype.toString.call(query).slice(8, -1) !== 'Object') {\n throw Error(ErrorCode.QueryParamTypeError);\n }\n var keys = Object.keys(query);\n var checkFlag = keys.some(function (item) {\n return query[item] !== undefined;\n });\n if (keys.length && !checkFlag) {\n throw Error(ErrorCode.QueryParamValueError);\n }\n return new Query(this._db, this._coll, QuerySerializer.encode(query), this._fieldOrders, this._queryOptions);\n };\n Query.prototype.orderBy = function (fieldPath, directionStr) {\n Validate.isFieldPath(fieldPath);\n Validate.isFieldOrder(directionStr);\n var newOrder = {\n field: fieldPath,\n direction: directionStr\n };\n var combinedOrders = this._fieldOrders.concat(newOrder);\n return new Query(this._db, this._coll, this._fieldFilters, combinedOrders, this._queryOptions);\n };\n Query.prototype.limit = function (limit) {\n Validate.isInteger('limit', limit);\n var option = __assign({}, this._queryOptions);\n option.limit = limit;\n return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.skip = function (offset) {\n Validate.isInteger('offset', offset);\n var option = __assign({}, this._queryOptions);\n option.offset = offset;\n return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.update = function (data, callback) {\n callback = callback || createPromiseCallback();\n if (!data || typeof data !== 'object') {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '参数必需是非空对象'\n });\n }\n if (data.hasOwnProperty('_id')) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '不能更新_id的值'\n });\n }\n var param = {\n collectionName: this._coll,\n query: this._fieldFilters,\n queryType: QueryType.WHERE,\n multi: true,\n merge: true,\n upsert: false,\n data: UpdateSerializer.encode(data)\n };\n this._request\n .send('database.updateDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n requestId: res.requestId,\n updated: res.data.updated,\n upsertId: res.data.upsert_id\n });\n }\n })\n .catch(function (e) {\n callback(e);\n });\n return callback.promise;\n };\n Query.prototype.field = function (projection) {\n for (var k in projection) {\n if (projection[k]) {\n if (typeof projection[k] !== 'object') {\n projection[k] = 1;\n }\n }\n else {\n projection[k] = 0;\n }\n }\n var option = __assign({}, this._queryOptions);\n option.projection = projection;\n return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.remove = function (callback) {\n callback = callback || createPromiseCallback();\n if (Object.keys(this._queryOptions).length > 0) {\n console.warn('`offset`, `limit` and `projection` are not supported in remove() operation');\n }\n if (this._fieldOrders.length > 0) {\n console.warn('`orderBy` is not supported in remove() operation');\n }\n var param = {\n collectionName: this._coll,\n query: QuerySerializer.encode(this._fieldFilters),\n queryType: QueryType.WHERE,\n multi: true\n };\n this._request\n .send('database.deleteDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n requestId: res.requestId,\n deleted: res.data.deleted\n });\n }\n })\n .catch(function (e) {\n callback(e);\n });\n return callback.promise;\n };\n return Query;\n}());\nexport { Query };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Db } from './index';\nimport { EJSON } from 'bson';\nimport { QuerySerializer } from './serializer/query';\nimport { Point } from './geo';\nvar Aggregation = (function () {\n function Aggregation(db, collectionName) {\n this._stages = [];\n if (db && collectionName) {\n this._db = db;\n this._request = Db.createRequest(this._db.config);\n this._collectionName = collectionName;\n }\n }\n Aggregation.prototype.end = function () {\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._collectionName || !this._db) {\n throw new Error('Aggregation pipeline cannot send request');\n }\n return [4, this._request.send('database.aggregate', {\n collectionName: this._collectionName,\n stages: this._stages\n })];\n case 1:\n result = _a.sent();\n if (result && result.data && result.data.list) {\n return [2, {\n requestId: result.requestId,\n data: JSON.parse(result.data.list).map(EJSON.parse)\n }];\n }\n return [2, result];\n }\n });\n });\n };\n Aggregation.prototype.unwrap = function () {\n return this._stages;\n };\n Aggregation.prototype.done = function () {\n return this._stages.map(function (_a) {\n var _b;\n var stageKey = _a.stageKey, stageValue = _a.stageValue;\n return _b = {},\n _b[stageKey] = JSON.parse(stageValue),\n _b;\n });\n };\n Aggregation.prototype._pipe = function (stage, param) {\n this._stages.push({\n stageKey: \"$\".concat(stage),\n stageValue: JSON.stringify(param)\n });\n return this;\n };\n Aggregation.prototype.addFields = function (param) {\n return this._pipe('addFields', param);\n };\n Aggregation.prototype.bucket = function (param) {\n return this._pipe('bucket', param);\n };\n Aggregation.prototype.bucketAuto = function (param) {\n return this._pipe('bucketAuto', param);\n };\n Aggregation.prototype.count = function (param) {\n return this._pipe('count', param);\n };\n Aggregation.prototype.geoNear = function (param) {\n if (param.query) {\n param.query = QuerySerializer.encode(param.query);\n }\n if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {\n param.distanceMultiplier = param.distanceMultiplier;\n }\n if (param.near) {\n param.near = new Point(param.near.longitude, param.near.latitude).toJSON();\n }\n return this._pipe('geoNear', param);\n };\n Aggregation.prototype.group = function (param) {\n return this._pipe('group', param);\n };\n Aggregation.prototype.limit = function (param) {\n return this._pipe('limit', param);\n };\n Aggregation.prototype.match = function (param) {\n return this._pipe('match', QuerySerializer.encode(param));\n };\n Aggregation.prototype.project = function (param) {\n return this._pipe('project', param);\n };\n Aggregation.prototype.lookup = function (param) {\n return this._pipe('lookup', param);\n };\n Aggregation.prototype.replaceRoot = function (param) {\n return this._pipe('replaceRoot', param);\n };\n Aggregation.prototype.sample = function (param) {\n return this._pipe('sample', param);\n };\n Aggregation.prototype.skip = function (param) {\n return this._pipe('skip', param);\n };\n Aggregation.prototype.sort = function (param) {\n return this._pipe('sort', param);\n };\n Aggregation.prototype.sortByCount = function (param) {\n return this._pipe('sortByCount', param);\n };\n Aggregation.prototype.unwind = function (param) {\n return this._pipe('unwind', param);\n };\n return Aggregation;\n}());\nexport default Aggregation;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DocumentReference } from './document';\nimport { Query } from './query';\nimport Aggregation from './aggregate';\nvar CollectionReference = (function (_super) {\n __extends(CollectionReference, _super);\n function CollectionReference(db, coll) {\n return _super.call(this, db, coll) || this;\n }\n Object.defineProperty(CollectionReference.prototype, \"name\", {\n get: function () {\n return this._coll;\n },\n enumerable: false,\n configurable: true\n });\n CollectionReference.prototype.doc = function (docID) {\n if (typeof docID !== 'string' && typeof docID !== 'number') {\n throw new Error('docId必须为字符串或数字');\n }\n return new DocumentReference(this._db, this._coll, docID);\n };\n CollectionReference.prototype.add = function (data, callback) {\n var docRef = new DocumentReference(this._db, this._coll, undefined);\n return docRef.create(data, callback);\n };\n CollectionReference.prototype.aggregate = function () {\n return new Aggregation(this._db, this._coll);\n };\n return CollectionReference;\n}(Query));\nexport { CollectionReference };\n","import { QueryCommand, QUERY_COMMANDS_LITERAL } from './commands/query';\nimport { LogicCommand, LOGIC_COMMANDS_LITERAL } from './commands/logic';\nimport { UpdateCommand, UPDATE_COMMANDS_LITERAL } from './commands/update';\nimport { isArray, isObject, isString } from './utils/type';\nimport Aggregation from './aggregate';\nexport var Command = {\n eq: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.EQ, [val]);\n },\n neq: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.NEQ, [val]);\n },\n lt: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.LT, [val]);\n },\n lte: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.LTE, [val]);\n },\n gt: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GT, [val]);\n },\n gte: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GTE, [val]);\n },\n in: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.IN, val);\n },\n nin: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.NIN, val);\n },\n all: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.ALL, val);\n },\n elemMatch: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.ELEM_MATCH, [val]);\n },\n exists: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.EXISTS, [val]);\n },\n size: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.SIZE, [val]);\n },\n mod: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.MOD, [val]);\n },\n geoNear: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_NEAR, [val]);\n },\n geoWithin: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_WITHIN, [val]);\n },\n geoIntersects: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_INTERSECTS, [val]);\n },\n and: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.AND, expressions);\n },\n nor: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.NOR, expressions);\n },\n or: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.OR, expressions);\n },\n not: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.NOT, expressions);\n },\n set: function (val) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.SET, [val]);\n },\n remove: function () {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.REMOVE, []);\n },\n inc: function (val) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.INC, [val]);\n },\n mul: function (val) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.MUL, [val]);\n },\n push: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var values;\n if (isObject(args[0]) && args[0].hasOwnProperty('each')) {\n var options = args[0];\n values = {\n $each: options.each,\n $position: options.position,\n $sort: options.sort,\n $slice: options.slice\n };\n }\n else if (isArray(args[0])) {\n values = args[0];\n }\n else {\n values = Array.from(args);\n }\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.PUSH, values);\n },\n pull: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.PULL, values);\n },\n pullAll: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.PULL_ALL, values);\n },\n pop: function () {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.POP, []);\n },\n shift: function () {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.SHIFT, []);\n },\n unshift: function () {\n var __values__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __values__[_i] = arguments[_i];\n }\n var values = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.UNSHIFT, values);\n },\n addToSet: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.ADD_TO_SET, values);\n },\n rename: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.RENAME, [values]);\n },\n bit: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.BIT, [values]);\n },\n max: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.MAX, [values]);\n },\n min: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.MIN, [values]);\n },\n expr: function (values) {\n return {\n $expr: values\n };\n },\n jsonSchema: function (schema) {\n return {\n $jsonSchema: schema\n };\n },\n text: function (values) {\n if (isString(values)) {\n return {\n $search: values.search\n };\n }\n else {\n return {\n $search: values.search,\n $language: values.language,\n $caseSensitive: values.caseSensitive,\n $diacriticSensitive: values.diacriticSensitive\n };\n }\n },\n aggregate: {\n pipeline: function () {\n return new Aggregation();\n },\n abs: function (param) { return new AggregationOperator('abs', param); },\n add: function (param) { return new AggregationOperator('add', param); },\n ceil: function (param) { return new AggregationOperator('ceil', param); },\n divide: function (param) { return new AggregationOperator('divide', param); },\n exp: function (param) { return new AggregationOperator('exp', param); },\n floor: function (param) { return new AggregationOperator('floor', param); },\n ln: function (param) { return new AggregationOperator('ln', param); },\n log: function (param) { return new AggregationOperator('log', param); },\n log10: function (param) { return new AggregationOperator('log10', param); },\n mod: function (param) { return new AggregationOperator('mod', param); },\n multiply: function (param) { return new AggregationOperator('multiply', param); },\n pow: function (param) { return new AggregationOperator('pow', param); },\n sqrt: function (param) { return new AggregationOperator('sqrt', param); },\n subtract: function (param) { return new AggregationOperator('subtract', param); },\n trunc: function (param) { return new AggregationOperator('trunc', param); },\n arrayElemAt: function (param) { return new AggregationOperator('arrayElemAt', param); },\n arrayToObject: function (param) { return new AggregationOperator('arrayToObject', param); },\n concatArrays: function (param) { return new AggregationOperator('concatArrays', param); },\n filter: function (param) { return new AggregationOperator('filter', param); },\n in: function (param) { return new AggregationOperator('in', param); },\n indexOfArray: function (param) { return new AggregationOperator('indexOfArray', param); },\n isArray: function (param) { return new AggregationOperator('isArray', param); },\n map: function (param) { return new AggregationOperator('map', param); },\n range: function (param) { return new AggregationOperator('range', param); },\n reduce: function (param) { return new AggregationOperator('reduce', param); },\n reverseArray: function (param) { return new AggregationOperator('reverseArray', param); },\n size: function (param) { return new AggregationOperator('size', param); },\n slice: function (param) { return new AggregationOperator('slice', param); },\n zip: function (param) { return new AggregationOperator('zip', param); },\n and: function (param) { return new AggregationOperator('and', param); },\n not: function (param) { return new AggregationOperator('not', param); },\n or: function (param) { return new AggregationOperator('or', param); },\n cmp: function (param) { return new AggregationOperator('cmp', param); },\n eq: function (param) { return new AggregationOperator('eq', param); },\n gt: function (param) { return new AggregationOperator('gt', param); },\n gte: function (param) { return new AggregationOperator('gte', param); },\n lt: function (param) { return new AggregationOperator('lt', param); },\n lte: function (param) { return new AggregationOperator('lte', param); },\n neq: function (param) { return new AggregationOperator('ne', param); },\n cond: function (param) { return new AggregationOperator('cond', param); },\n ifNull: function (param) { return new AggregationOperator('ifNull', param); },\n switch: function (param) { return new AggregationOperator('switch', param); },\n dateFromParts: function (param) { return new AggregationOperator('dateFromParts', param); },\n dateFromString: function (param) { return new AggregationOperator('dateFromString', param); },\n dayOfMonth: function (param) { return new AggregationOperator('dayOfMonth', param); },\n dayOfWeek: function (param) { return new AggregationOperator('dayOfWeek', param); },\n dayOfYear: function (param) { return new AggregationOperator('dayOfYear', param); },\n isoDayOfWeek: function (param) { return new AggregationOperator('isoDayOfWeek', param); },\n isoWeek: function (param) { return new AggregationOperator('isoWeek', param); },\n isoWeekYear: function (param) { return new AggregationOperator('isoWeekYear', param); },\n millisecond: function (param) { return new AggregationOperator('millisecond', param); },\n minute: function (param) { return new AggregationOperator('minute', param); },\n month: function (param) { return new AggregationOperator('month', param); },\n second: function (param) { return new AggregationOperator('second', param); },\n hour: function (param) { return new AggregationOperator('hour', param); },\n week: function (param) { return new AggregationOperator('week', param); },\n year: function (param) { return new AggregationOperator('year', param); },\n literal: function (param) { return new AggregationOperator('literal', param); },\n mergeObjects: function (param) { return new AggregationOperator('mergeObjects', param); },\n objectToArray: function (param) { return new AggregationOperator('objectToArray', param); },\n allElementsTrue: function (param) { return new AggregationOperator('allElementsTrue', param); },\n anyElementTrue: function (param) { return new AggregationOperator('anyElementTrue', param); },\n setDifference: function (param) { return new AggregationOperator('setDifference', param); },\n setEquals: function (param) { return new AggregationOperator('setEquals', param); },\n setIntersection: function (param) { return new AggregationOperator('setIntersection', param); },\n setIsSubset: function (param) { return new AggregationOperator('setIsSubset', param); },\n setUnion: function (param) { return new AggregationOperator('setUnion', param); },\n concat: function (param) { return new AggregationOperator('concat', param); },\n dateToString: function (param) { return new AggregationOperator('dateToString', param); },\n indexOfBytes: function (param) { return new AggregationOperator('indexOfBytes', param); },\n indexOfCP: function (param) { return new AggregationOperator('indexOfCP', param); },\n split: function (param) { return new AggregationOperator('split', param); },\n strLenBytes: function (param) { return new AggregationOperator('strLenBytes', param); },\n strLenCP: function (param) { return new AggregationOperator('strLenCP', param); },\n strcasecmp: function (param) { return new AggregationOperator('strcasecmp', param); },\n substr: function (param) { return new AggregationOperator('substr', param); },\n substrBytes: function (param) { return new AggregationOperator('substrBytes', param); },\n substrCP: function (param) { return new AggregationOperator('substrCP', param); },\n toLower: function (param) { return new AggregationOperator('toLower', param); },\n toUpper: function (param) { return new AggregationOperator('toUpper', param); },\n meta: function (param) { return new AggregationOperator('meta', param); },\n addToSet: function (param) { return new AggregationOperator('addToSet', param); },\n avg: function (param) { return new AggregationOperator('avg', param); },\n first: function (param) { return new AggregationOperator('first', param); },\n last: function (param) { return new AggregationOperator('last', param); },\n max: function (param) { return new AggregationOperator('max', param); },\n min: function (param) { return new AggregationOperator('min', param); },\n push: function (param) { return new AggregationOperator('push', param); },\n stdDevPop: function (param) { return new AggregationOperator('stdDevPop', param); },\n stdDevSamp: function (param) { return new AggregationOperator('stdDevSamp', param); },\n sum: function (param) { return new AggregationOperator('sum', param); },\n let: function (param) { return new AggregationOperator('let', param); }\n },\n project: {\n slice: function (param) { return new ProjectionOperator('slice', param); },\n elemMatch: function (param) { return new ProjectionOperator('elemMatch', param); }\n }\n};\nvar AggregationOperator = (function () {\n function AggregationOperator(name, param) {\n this['$' + name] = param;\n }\n return AggregationOperator;\n}());\nvar ProjectionOperator = (function () {\n function ProjectionOperator(name, param) {\n this['$' + name] = param;\n }\n return ProjectionOperator;\n}());\nexport default Command;\n","import { SYMBOL_REGEXP } from '../helper/symbol';\nvar RegExp = (function () {\n function RegExp(_a) {\n var regexp = _a.regexp, options = _a.options;\n if (!regexp) {\n throw new TypeError('regexp must be a string');\n }\n this.$regex = regexp;\n this.$options = options;\n }\n RegExp.prototype.parse = function () {\n return {\n $regex: this.$regex,\n $options: this.$options\n };\n };\n Object.defineProperty(RegExp.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_REGEXP;\n },\n enumerable: false,\n configurable: true\n });\n return RegExp;\n}());\nexport { RegExp };\nexport function RegExpConstructor(param) {\n return new RegExp(param);\n}\n","export var ERRORS = {\n CREATE_WATCH_NET_ERROR: {\n code: 'CREATE_WATCH_NET_ERROR',\n message: 'create watch network error'\n },\n CREATE_WACTH_EXCEED_ERROR: {\n code: 'CREATE_WACTH_EXCEED_ERROR',\n message: 'maximum connections exceed'\n },\n CREATE_WATCH_SERVER_ERROR: {\n code: 'CREATE_WATCH_SERVER_ERROR',\n message: 'create watch server error'\n },\n CONN_ERROR: {\n code: 'CONN_ERROR',\n message: 'connection error'\n },\n INVALID_PARAM: {\n code: 'INVALID_PARAM',\n message: 'Invalid request param'\n },\n INSERT_DOC_FAIL: {\n code: 'INSERT_DOC_FAIL',\n message: 'insert document failed'\n },\n DATABASE_TRANSACTION_CONFLICT: {\n code: 'DATABASE_TRANSACTION_CONFLICT',\n message: 'database transaction conflict'\n }\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { EJSON } from 'bson';\nimport { ERRORS } from '../const/code';\nimport { UpdateSerializer } from '../serializer/update';\nimport { serialize } from '../serializer/datatype';\nimport { Util } from '../util';\nvar GET_DOC = 'database.getInTransaction';\nvar UPDATE_DOC = 'database.updateDocInTransaction';\nvar DELETE_DOC = 'database.deleteDocInTransaction';\nvar INSERT_DOC = 'database.insertDocInTransaction';\nvar DocumentReference = (function () {\n function DocumentReference(transaction, coll, docID) {\n this._coll = coll;\n this.id = docID;\n this._transaction = transaction;\n this._request = this._transaction.getRequestMethod();\n this._transactionId = this._transaction.getTransactionId();\n }\n DocumentReference.prototype.create = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var params, res, inserted, ok;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n params = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n data: EJSON.stringify(serialize(data), { relaxed: false })\n };\n if (this.id) {\n params['_id'] = this.id;\n }\n return [4, this._request.send(INSERT_DOC, params)];\n case 1:\n res = _a.sent();\n if (res.code) {\n throw res;\n }\n inserted = EJSON.parse(res.inserted);\n ok = EJSON.parse(res.ok);\n if (ok == 1 && inserted == 1) {\n return [2, __assign(__assign({}, res), { ok: ok, inserted: inserted })];\n }\n else {\n throw new Error(ERRORS.INSERT_DOC_FAIL.message);\n }\n return [2];\n }\n });\n });\n };\n DocumentReference.prototype.get = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n }\n };\n return [4, this._request.send(GET_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, {\n data: res.data !== 'null' ? Util.formatField(EJSON.parse(res.data)) : EJSON.parse(res.data),\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.set = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n },\n data: EJSON.stringify(serialize(data), { relaxed: false }),\n upsert: true\n };\n return [4, this._request.send(UPDATE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { updated: EJSON.parse(res.updated), upserted: res.upserted\n ? JSON.parse(res.upserted)\n : null })];\n }\n });\n });\n };\n DocumentReference.prototype.update = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n },\n data: EJSON.stringify(UpdateSerializer.encode(data), {\n relaxed: false\n })\n };\n return [4, this._request.send(UPDATE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { updated: EJSON.parse(res.updated) })];\n }\n });\n });\n };\n DocumentReference.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n }\n };\n return [4, this._request.send(DELETE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { deleted: EJSON.parse(res.deleted) })];\n }\n });\n });\n };\n return DocumentReference;\n}());\nexport { DocumentReference };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { EJSON } from 'bson';\nimport { ErrorCode } from '../constant';\nimport { Validate } from '../validate';\nimport { QuerySerializer } from '../serializer/query';\nimport { UpdateSerializer } from '../serializer/update';\nimport { Util } from '../util';\nvar GET_DOC = 'database.getInTransaction';\nvar UPDATE_DOC = 'database.updateDocInTransaction';\nvar DELETE_DOC = 'database.deleteDocInTransaction';\nvar Query = (function () {\n function Query(transaction, coll, fieldFilters, fieldOrders, queryOptions) {\n this._coll = coll;\n this._transaction = transaction;\n this._fieldFilters = fieldFilters;\n this._fieldOrders = fieldOrders || [];\n this._queryOptions = queryOptions || {};\n this._request = this._transaction.getRequestMethod();\n this._transactionId = this._transaction.getTransactionId();\n }\n Query.prototype.where = function (query) {\n if (Object.prototype.toString.call(query).slice(8, -1) !== 'Object') {\n throw Error(ErrorCode.QueryParamTypeError);\n }\n var keys = Object.keys(query);\n var checkFlag = keys.some(function (item) {\n return query[item] !== undefined;\n });\n if (keys.length && !checkFlag) {\n throw Error(ErrorCode.QueryParamValueError);\n }\n return new Query(this._transaction, this._coll, QuerySerializer.encode(query), this._fieldOrders, this._queryOptions);\n };\n Query.prototype.orderBy = function (fieldPath, directionStr) {\n Validate.isFieldPath(fieldPath);\n Validate.isFieldOrder(directionStr);\n var newOrder = {\n field: fieldPath,\n direction: directionStr\n };\n var combinedOrders = this._fieldOrders.concat(newOrder);\n return new Query(this._transaction, this._coll, this._fieldFilters, combinedOrders, this._queryOptions);\n };\n Query.prototype.limit = function (limit) {\n Validate.isInteger('limit', limit);\n var option = __assign({}, this._queryOptions);\n option.limit = limit;\n return new Query(this._transaction, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.skip = function (offset) {\n Validate.isInteger('offset', offset);\n var option = __assign({}, this._queryOptions);\n option.offset = offset;\n return new Query(this._transaction, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.field = function (projection) {\n for (var k in projection) {\n if (projection[k]) {\n if (typeof projection[k] !== 'object') {\n projection[k] = 1;\n }\n }\n else {\n projection[k] = 0;\n }\n }\n var option = __assign({}, this._queryOptions);\n option.projection = projection;\n return new Query(this._transaction, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.get = function () {\n return __awaiter(this, void 0, void 0, function () {\n var newOrder, param, res, data, documents, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n newOrder = [];\n if (this._fieldOrders) {\n this._fieldOrders.forEach(function (order) {\n newOrder.push(order);\n });\n }\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n if (newOrder.length > 0) {\n param.order = newOrder;\n }\n if (this._queryOptions.offset) {\n param.offset = this._queryOptions.offset;\n }\n if (this._queryOptions.limit) {\n param.limit = this._queryOptions.limit < 1000 ? this._queryOptions.limit : 1000;\n }\n else {\n param.limit = 100;\n }\n if (this._queryOptions.projection) {\n param.projection = this._queryOptions.projection;\n }\n return [4, this._request.send(GET_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n data = res.data !== 'null' ? EJSON.parse(res.data) : null;\n documents = data ? (Array.isArray(data) ? Util.formatResDocumentData(data) : [Util.formatField(data)]) : [];\n result = {\n data: documents,\n requestId: res.requestId\n };\n if (res.total !== undefined)\n result.total = res.total;\n if (res.limit !== undefined)\n result.limit = res.limit;\n if (res.offset !== undefined)\n result.offset = res.offset;\n return [2, result];\n }\n });\n });\n };\n Query.prototype.count = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res, data, total;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n return [4, this._request.send(GET_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n data = res.data !== 'null' ? EJSON.parse(res.data) : null;\n total = Array.isArray(data) ? data.length : (data ? 1 : 0);\n return [2, {\n requestId: res.requestId,\n total: res.total !== undefined ? res.total : total\n }];\n }\n });\n });\n };\n Query.prototype.update = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!data || typeof data !== 'object') {\n throw new Error('参数必需是非空对象');\n }\n if (data.hasOwnProperty('_id')) {\n throw new Error('不能更新_id的值');\n }\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: this._fieldFilters,\n data: EJSON.stringify(UpdateSerializer.encode(data), { relaxed: false })\n };\n return [4, this._request.send(UPDATE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { updated: EJSON.parse(res.updated) })];\n }\n });\n });\n };\n Query.prototype.remove = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (Object.keys(this._queryOptions).length > 0) {\n console.warn('`offset`, `limit` and `projection` are not supported in remove() operation');\n }\n if (this._fieldOrders.length > 0) {\n console.warn('`orderBy` is not supported in remove() operation');\n }\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: this._fieldFilters\n };\n return [4, this._request.send(DELETE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { deleted: EJSON.parse(res.deleted) })];\n }\n });\n });\n };\n return Query;\n}());\nexport { Query };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DocumentReference } from './document';\nimport { Query } from './query';\nvar CollectionReference = (function (_super) {\n __extends(CollectionReference, _super);\n function CollectionReference(transaction, coll) {\n return _super.call(this, transaction, coll) || this;\n }\n Object.defineProperty(CollectionReference.prototype, \"name\", {\n get: function () {\n return this._coll;\n },\n enumerable: false,\n configurable: true\n });\n CollectionReference.prototype.doc = function (docID) {\n if (typeof docID !== 'string' && typeof docID !== 'number') {\n throw new Error('docId必须为字符串或数字');\n }\n return new DocumentReference(this._transaction, this._coll, docID);\n };\n CollectionReference.prototype.add = function (data) {\n var docID;\n if (data._id !== undefined) {\n docID = data._id;\n }\n var docRef = new DocumentReference(this._transaction, this._coll, docID);\n return docRef.create(data);\n };\n return CollectionReference;\n}(Query));\nexport { CollectionReference };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Db } from '../index';\nimport { CollectionReference } from './collection';\nimport { ERRORS } from '../const/code';\nvar START = 'database.startTransaction';\nvar COMMIT = 'database.commitTransaction';\nvar ABORT = 'database.abortTransaction';\nvar Transaction = (function () {\n function Transaction(db) {\n this._db = db;\n this._request = Db.createRequest(this._db.config);\n this.aborted = false;\n this.commited = false;\n this.inited = false;\n }\n Transaction.prototype.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, this._request.send(START)];\n case 1:\n res = _a.sent();\n if (res.code) {\n throw res;\n }\n this.inited = true;\n this._id = res.transactionId;\n return [2];\n }\n });\n });\n };\n Transaction.prototype.collection = function (collName) {\n if (!collName) {\n throw new Error('Collection name is required');\n }\n return new CollectionReference(this, collName);\n };\n Transaction.prototype.getTransactionId = function () {\n return this._id;\n };\n Transaction.prototype.getRequestMethod = function () {\n return this._request;\n };\n Transaction.prototype.commit = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n transactionId: this._id\n };\n return [4, this._request.send(COMMIT, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n this.commited = true;\n return [2, res];\n }\n });\n });\n };\n Transaction.prototype.rollback = function (customRollbackRes) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n transactionId: this._id\n };\n return [4, this._request.send(ABORT, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n this.aborted = true;\n this.abortReason = customRollbackRes;\n return [2, res];\n }\n });\n });\n };\n return Transaction;\n}());\nexport { Transaction };\nexport function startTransaction() {\n return __awaiter(this, void 0, void 0, function () {\n var transaction;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n transaction = new Transaction(this);\n return [4, transaction.init()];\n case 1:\n _a.sent();\n return [2, transaction];\n }\n });\n });\n}\nexport function runTransaction(callback, times) {\n if (times === void 0) { times = 3; }\n return __awaiter(this, void 0, void 0, function () {\n var transaction, callbackRes, error_1, throwWithRollback;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 4, , 10]);\n transaction = new Transaction(this);\n return [4, transaction.init()];\n case 1:\n _a.sent();\n return [4, callback(transaction)];\n case 2:\n callbackRes = _a.sent();\n if (transaction.aborted === true) {\n throw transaction.abortReason;\n }\n return [4, transaction.commit()];\n case 3:\n _a.sent();\n return [2, callbackRes];\n case 4:\n error_1 = _a.sent();\n if (transaction.inited === false) {\n throw error_1;\n }\n throwWithRollback = function (error) { return __awaiter(_this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(!transaction.aborted && !transaction.commited)) return [3, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4, transaction.rollback()];\n case 2:\n _a.sent();\n return [3, 4];\n case 3:\n err_1 = _a.sent();\n return [3, 4];\n case 4: throw error;\n case 5:\n if (transaction.aborted === true) {\n throw transaction.abortReason;\n }\n throw error;\n }\n });\n }); };\n if (!(times <= 0)) return [3, 6];\n return [4, throwWithRollback(error_1)];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6:\n if (!(error_1 && error_1.code === ERRORS.DATABASE_TRANSACTION_CONFLICT.code)) return [3, 8];\n return [4, runTransaction.bind(this)(callback, --times)];\n case 7: return [2, _a.sent()];\n case 8: return [4, throwWithRollback(error_1)];\n case 9:\n _a.sent();\n return [3, 10];\n case 10: return [2];\n }\n });\n });\n}\n","import * as Geo from './geo/index';\nimport { CollectionReference } from './collection';\nimport { Command } from './command';\nimport { ServerDateConstructor } from './serverDate/index';\nimport { RegExpConstructor } from './regexp/index';\nimport { startTransaction, runTransaction } from './transaction/index';\nimport { LogicCommand } from './commands/logic';\nimport { QueryCommand } from './commands/query';\nimport { UpdateCommand } from './commands/update';\nexport { Query } from './query';\nexport { CollectionReference } from './collection';\nexport { DocumentReference } from './document';\nvar Db = (function () {\n function Db(config) {\n this.config = config;\n this.Geo = Geo;\n this.serverDate = ServerDateConstructor;\n this.command = Command;\n this.RegExp = RegExpConstructor;\n this.startTransaction = startTransaction;\n this.runTransaction = runTransaction;\n this.logicCommand = LogicCommand;\n this.updateCommand = UpdateCommand;\n this.queryCommand = QueryCommand;\n }\n Db.createRequest = function (config) {\n var request = new Db.reqClass(config);\n var originalSend = request.send;\n request.send = function (action, data) {\n if (config.instance) {\n data.instance = config.instance;\n }\n if (config.database) {\n data.database = config.database;\n }\n return originalSend.call(this, action, data);\n };\n return request;\n };\n Db.prototype.collection = function (collName) {\n if (!collName) {\n throw new Error('Collection name is required');\n }\n return new CollectionReference(this, collName);\n };\n Db.prototype.createCollection = function (collName) {\n var request = Db.createRequest(this.config);\n var params = {\n collectionName: collName\n };\n return request.send('database.addCollection', params);\n };\n return Db;\n}());\nexport { Db };\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar $TypeError = require('es-errors/type');\n\nvar toStringTag = hasToStringTag ? Symbol.toStringTag : null;\n\n/** @type {import('.')} */\nmodule.exports = function setToStringTag(object, value) {\n\tvar overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;\n\tvar nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;\n\tif (\n\t\t(typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean')\n\t\t|| (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean')\n\t) {\n\t\tthrow new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans');\n\t}\n\tif (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) {\n\t\tif ($defineProperty) {\n\t\t\t$defineProperty(object, toStringTag, {\n\t\t\t\tconfigurable: !nonConfigurable,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t} else {\n\t\t\tobject[toStringTag] = value; // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n","'use strict';\n\nvar CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar crypto = require('crypto');\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar setToStringTag = require('es-set-tostringtag');\nvar hasOwn = require('hasown');\nvar populate = require('./populate.js');\n\n/**\n * Escape CR, LF, and `\"` in a multipart `name`/`filename` parameter, so a field\n * name or filename can not break out of its header line to inject headers or\n * smuggle additional parts. Matches the WHATWG HTML multipart/form-data encoding.\n *\n * @param {string} str - the parameter value to escape\n * @returns {string} the escaped value\n */\nfunction escapeHeaderParam(str) {\n return String(str).replace(/\\r/g, '%0D').replace(/\\n/g, '%0A').replace(/\"/g, '%22');\n}\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {}; // eslint-disable-line no-param-reassign\n for (var option in options) { // eslint-disable-line no-restricted-syntax\n this[option] = options[option];\n }\n}\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function (field, value, options) {\n options = options || {}; // eslint-disable-line no-param-reassign\n\n // allow filename as single option\n if (typeof options === 'string') {\n options = { filename: options }; // eslint-disable-line no-param-reassign\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value === 'number' || value == null) {\n value = String(value); // eslint-disable-line no-param-reassign\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n /*\n * Please convert your array into string\n * the way web server expects it\n */\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function (header, value, options) {\n var valueLength = 0;\n\n /*\n * used w/ getLengthSync(), when length is known.\n * e.g. for streaming directly from a remote server,\n * w/ a known file a size, and not wanting to wait for\n * incoming file to finish to get its size.\n */\n if (options.knownLength != null) {\n valueLength += Number(options.knownLength);\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || (!value.path && !(value.readable && hasOwn(value, 'httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function (value, callback) {\n if (hasOwn(value, 'fd')) {\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0)); // eslint-disable-line callback-return\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function (err, stat) {\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n var fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (hasOwn(value, 'httpVersion')) {\n callback(null, Number(value.headers['content-length'])); // eslint-disable-line callback-return\n\n // or request stream http://github.com/mikeal/request\n } else if (hasOwn(value, 'httpModule')) {\n // wait till response come back\n value.on('response', function (response) {\n value.pause();\n callback(null, Number(response.headers['content-length']));\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream'); // eslint-disable-line callback-return\n }\n};\n\nFormData.prototype._multiPartHeader = function (field, value, options) {\n /*\n * custom header specified (as string)?\n * it becomes responsible for boundary\n * (e.g. to handle extra CRLFs on .NET servers)\n */\n if (typeof options.header === 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + escapeHeaderParam(field) + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header === 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(headers, prop)) {\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function (value, options) { // eslint-disable-line consistent-return\n var filename;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || (value && (value.name || value.path))) {\n /*\n * custom filename take precedence\n * formidable and the browser add a name property\n * fs- and request- streams have path property\n */\n filename = path.basename(options.filename || (value && (value.name || value.path)));\n } else if (value && value.readable && hasOwn(value, 'httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n return 'filename=\"' + escapeHeaderParam(filename) + '\"';\n }\n};\n\nFormData.prototype._getContentType = function (value, options) {\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value && value.readable && hasOwn(value, 'httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && value && typeof value === 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function () {\n return function (next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = this._streams.length === 0;\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function () {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function (userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(userHeaders, header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function (boundary) {\n if (typeof boundary !== 'string') {\n throw new TypeError('FormData boundary must be a string');\n }\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function () {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function () {\n var dataBuffer = new Buffer.alloc(0); // eslint-disable-line new-cap\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n // Add content to the buffer.\n if (Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]);\n } else {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring(2, boundary.length + 2) !== boundary) {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData.LINE_BREAK)]);\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);\n};\n\nFormData.prototype._generateBoundary = function () {\n // This generates a 50 character boundary similar to those used by Firefox.\n\n // They are optimized for boyer-moore parsing.\n this._boundary = '--------------------------' + crypto.randomBytes(12).toString('hex');\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually and add it as knownLength option\nFormData.prototype.getLengthSync = function () {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n /*\n * Some async length retrievers are present\n * therefore synchronous length calculation is false.\n * Please use getLength(callback) to get proper length\n */\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function () {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function (cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function (err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function (length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function (params, cb) {\n var request;\n var options;\n var defaults = { method: 'post' };\n\n // parse provided url if it's string or treat it as options object\n if (typeof params === 'string') {\n params = parseUrl(params); // eslint-disable-line no-param-reassign\n /* eslint sort-keys: 0 */\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n } else { // use custom params\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol === 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol === 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function (err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function (err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\nsetToStringTag(FormData.prototype, 'FormData');\n\n// Public API\nmodule.exports = FormData;\n","'use strict';\n\n// populates missing values\nmodule.exports = function (dst, src) {\n Object.keys(src).forEach(function (prop) {\n dst[prop] = dst[prop] || src[prop]; // eslint-disable-line no-param-reassign\n });\n\n return dst;\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","module.exports = require(\"@cloudbase/adapter-interface\");","module.exports = require(\"@cloudbase/ai\");","module.exports = require(\"@cloudbase/apis\");","module.exports = require(\"@cloudbase/app\");","module.exports = require(\"@cloudbase/auth\");","module.exports = require(\"@cloudbase/cloudrun\");","module.exports = require(\"@cloudbase/functions\");","module.exports = require(\"@cloudbase/model\");","module.exports = require(\"@cloudbase/mysql\");","module.exports = require(\"@cloudbase/realtime\");","module.exports = require(\"@cloudbase/signature-nodejs\");","module.exports = require(\"@cloudbase/storage\");","module.exports = require(\"@cloudbase/utilities\");","module.exports = require(\"bson\");","module.exports = require(\"jsonwebtoken\");","module.exports = require(\"web-streams-polyfill\");","module.exports = require(\"ws\");","module.exports = require(\"crypto\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"url\");","module.exports = require(\"util\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(4144);\n"],"names":["leafPrototypes","getProto","module","exports","parallel","__webpack_require__","serial","serialOrdered","clean","key","this","jobs","state","Object","keys","forEach","bind","defer","callback","isAsync","err","result","fn","nextTick","setImmediate","process","setTimeout","async","abort","list","iterator","index","item","length","runJob","error","output","results","sortMethod","isNamedList","Array","isArray","initState","keyedList","size","sort","a","b","iterate","terminator","ascending","iteratorHandler","descending","utilities_1","require","setUtilitiesSdkName","constants","setSdkName","setUtilitiesProtocol","setProtocol","sdkVersion","sdkName","version","name","LOGINTYPE","END_POINT_INFO_ARR","END_POINT_INFO_SEARCH_KEYS","findMatchedInfo","info","find","targetInfo","filter","searchKey","every","setEndPointInfo","newInfo","protocol","test","concat","endPointInfo","baseUrl","push","__assign","_a","DEFAULT_PROTOCOL","endPointKey","_b","getEndPointInfo","env","region","intl","PROTOCOL","BASE_URL","match","SECRET_TYPE","INVALID_PARAM","code","message","SYS_ERR","STORAGE_REQUEST_FAIL","STORAGE_FILE_NONEXIST","TCB_CLS_UNOPEN","INVALID_CONTEXT","constants_1","utils_1","parseContext","context","ERROR","parseResult","memory_limit_in_mb","time_limit_in_ms","request_id","function_version","namespace","function_name","environ","environment","memoryLimitInMb","timeLimitIns","requestId","functionVersion","functionName","JSON","parse","parseEnviron","split","parseEnvironObj","i","includes","equalIndex","indexOf","slice","value","_err","getTcbContextConfig","TCB_CONTEXT_CNFG","getCloudbaseContext","_e","console","checkIsInScf","getEnv","envObj","envFromProcessEnv","TRIGGER_SRC","_SCF_TCB_LOG","SCF_NAMESPACE","TENCENTCLOUD_RUNENV","TENCENTCLOUD_SECRETID","TENCENTCLOUD_SECRETKEY","TENCENTCLOUD_SESSIONTOKEN","WX_CONTEXT_KEYS","WX_TRIGGER_API_TOKEN_V0","WX_CLIENTIP","WX_CLIENTIPV6","TCB_CONTEXT_KEYS","CLOUDBASE_APIKEY","envFromContext","_i","contextKeys","_c","_d","allContext","fromEntries","entries","undefined","URL","config","stringify","INIT_CONFIG","_g","TCB_ENV","topLevel","defaultInfo","secretId","secretKey","sessionToken","accessKey","secretType","credentials","SESSION_SECRET","SECRET","auth","contextConfig","extendedContext","envId","tmpSecret","_f","token","adapter_interface_1","request_1","tool_1","context_1","_WS","getWS","e","request_2","enumerable","get","NodeRequest","utils_2","parseQueryString","createWebStreamFromNodeReadableStream","E","TcbError","SYMBOL_CURRENT_ENV","SYMBOL_DEFAULT_ENV","isValidEnvFormat","isPageModuleName","filterValue","filterUndefined","processReturn","setThrowOnCode","context_2","getSecretInfo","getServerInjectUrl","wx_1","getWxCloudToken","buildAdminUrl","sendWxRequest","sendWxFormDataRequest","callWxOpenApi","callCompatibleWxOpenApi","callWxPayApi","wxCallContainerApi","getWxOptions","db","storage","Map","mode","setItem","set","getItem","removeItem","delete","clear","adapter","genAdapter","options","nodeTool","root","globalThis","reqClass","wsClass","sessionStorage","localStorage","primaryStorage","StorageType","session","captchaOptions","openURIWithCallback","_url","EventBus","queryObj","url","matched","search","restQueryObj","__rest","Promise","reject","error_description","resolve","$emit","$once","res","isMatch","versions","node","runtime","kMetadataVersions","isAppId","appIdStr","lookup","path","kMetadataBaseUrl","latest","controller","AbortController","timeout","timer","fetch","signal","resp","sent","status","text","Error","clearTimeout","metadataCache","appId","kAppIdPath","ruleName","kSecurityCredentialsPath","fs","__importStar","common_1","signFn","getSign","then","t","mod","sign","_this","getReqOptions","__awaiter","urlObj","TCB_SOURCE","source","getCurrRunEnvTag","SOURCE","apply","_o","headers","getSdkVersion","Date","valueOf","Host","host","withCredentials","_j","_h","Authorization","replace","trim","pathname","startsWith","CLIENT_AUTH_PATH","isAdminPath","ADMIN_PATH","some","v","getClientCredential","origin","_k","_l","method","body","isNpmFormDataBody","isNpmFormData","params","__plainObj","safeParseJson","envName","_m","access_token","toLowerCase","secretInfo","signedParams","withSignedParams","timestamp","Math","floor","getTime","isCloudApi","authorization","formDataInstance","existingKeys","Set","has","append","formBuffer","getBuffer","formHeaders","getHeaders","String","request","restrictedMethods","post","put","upload","data","rawFile","file","fileContent","formFields","obj2StrRecord","loweredMethod","reqMethod","m","formData","FormData","Blob","download","AbortSignal","ok","arrayBuffer","buffer","Buffer","from","tempFilePath","dir","dirname","existsSync","mkdirSync","recursive","writeFileSync","statusCode","enableAbort","stream","customReqOpts","getRealUrl","createAbortController","abortController","cleanup","headersInit2Indexable","fetchOptions","applyDuplexIfNeeded","header","response","rawHeaders","responseType","rawMethod","externalSignal","payload","isFormData","toQueryString","realUrl","formatUrl","requestOptions","_p","result_1","blob","log","e_2","val","prototype","opts","grant_type","toString","_enableAbort","aborted","addEventListener","once","timeoutMsg","warn","pipe","duplex","obj","jwtSign","getJwtSign","default","getDefaultUserInfo","openId","WX_OPENID","WX_APPID","uid","TCB_UUID","customUserId","TCB_CUSTOM_USER_ID","isAnonymous","TCB_ISANONYMOUS_USER","sendUserInfoRequest","app","send","call","endPointMode","_scfContext","nodeConfig","authMethods_1","getUserInfo","getEndUserInfo","defaultUserInfo","userInfo","validateUid","uuid","createTicket","env_id","refresh","expire","alg","iat","exp","private_key","allowInsecureKeySizes","algorithm","private_key_id","queryUserInfo","query","platform","platformId","getClientIP","TCB_SOURCE_IP","getAuthContext","fullContext","QQ_OPENID","QQ_APPID","loginType","getBaseEndPoint","originalAuth_1","Proxy","target","thisArg","argArray","authInstance","Reflect","_getWxOptions","serviceUrl","sendTemplateNotification","callFunction","methodName","action","NotifyId","notifyId","Data","NotifyUsers","Url","wxOpenApiOptions","getFileAuthority","fileList","type","callApis","callApiOptions","apis","apiPath","apiMethod","web_streams_polyfill_1","metadata_1","checkIsInCBR","utils","kSumeruEnvSet","checkIsInSumeru","checkIsInTencentCloud","lookupAppId","checkCustomUserIdRegex","reduce","acc","cur","h","Headers","_","isHeaders","ret_1","cleanSearch","decodeURIComponent","asyncIterator","Symbol","ReadableStream","pull","next","done","close","enqueue","_super","__extends","errObj","o","throwOnCode","kEnvRuleReg","for","CLOUDBASE_ACCESS_TOKEN_PATH","cloudbaseAccessTokenInfo","WX_API_TOKEN","WX_CLOUDBASE_ACCESSTOKEN","wxCloudToken","wxCloudApiToken","wxCloudbaseAccesstoken","now","readFileSync","loadWxCloudbaseAccesstoken","seqNum","scfContext","TENCENTCLOUD_REGION","seqId","eventId","TCB_SEQID","genSeqId","endpoint","envEndpoint","isValidEnvDomain","defaultUrl","qs","appendWxTokenParams","tcb_sessionToken","TCB_SESSIONTOKEN","reqOpts","requestInstance","plainObj","validateCrossAccount","getCrossAccountInfo","callWxFormDataApi","wxOptions","apiName","apiOptions","cgiName","requestData","transformRequestData","responseData","apiOpts","database_1","bson_1","gateWayFunc","filterRes","flattenResData","safeParseEJSON","EJSON","buildQueryParams","map","stringValue","encodeURIComponent","join","getUrlPrefix","instance","database","isQueryDoc","_id","$eq","queryParams","projection","transactionId","offset","limit","order","relaxed","collectionName","gateWay","ids","insertedIds","multi","upsert","replaceMode","count","pipeline","stages","stage","stageValue","stageKey","serialize","hasId","inserted","commands","deserialize","component","entity","dbConfig","Req","constructor","Db","getAccessToken","wsClientClass","ws","NewDb","runCommands","createRequest","_fromApp","cloudbase","registerComponent","registerDatabase","window","app_1","auth_1","functions_1","storage_1","realtime_1","model_1","ai_1","cloudrun_1","mysql_1","apis_1","index_1","registerVersion","__SDK_VERSION__","nodeAdapter","useAdapters","cb","registerAuth","registerFunctions","registerStorage","registerRealtime","registerModel","registerAi","registerCloudrun","registerMySQL","registerApis","ErrorCode","Opeartor","QueryType","FieldType","OrderDirectionList","WhereFilterOpList","eq","lt","lte","gt","gte","extendStatics","d","setPrototypeOf","__proto__","p","hasOwnProperty","TypeError","__","create","_symbols","__internalMark__","InternalSymbol","__mark__","len","symbol","defineProperties","writable","configurable","SYMBOL_UNSET_FIELD_NAME","SYMBOL_UPDATE_COMMAND","SYMBOL_QUERY_COMMAND","SYMBOL_LOGIC_COMMAND","SYMBOL_GEO_POINT","SYMBOL_GEO_LINE_STRING","SYMBOL_GEO_POLYGON","SYMBOL_GEO_MULTI_POINT","SYMBOL_GEO_MULTI_LINE_STRING","SYMBOL_GEO_MULTI_POLYGON","SYMBOL_SERVER_DATE","SYMBOL_REGEXP","getType","x","isObject","isNumber","isDate","isRegExp","isInternalObject","_internalType","LineString","points","point","Point","coordinates","toJSON","validate","lineString","e_1","s","__values","e_1_1","return","isClosed","firstPoint","lastPoint","latitude","longitude","defineProperty","Polygon","lines","line","toReadableString","polygon","isCloseLineString","line_1","line_1_1","e_2_1","MultiPoint","multiPoint","MultiLineString","multiLineString","MultiPolygon","polygons","polygons_1","polygons_1_1","multiPolygon","e_3","e_4","polygon_1","polygon_1_1","e_4_1","e_3_1","ServerDate","$date","ServerDateConstructor","opt","UPDATE_COMMANDS_LITERAL","__read","n","r","ar","Util","formatResDocumentData","documents","document","formatField","protoField","realValue","whichType","lng","lat","$timestamp","generateDocId","autoId","charAt","chars","random","Validate","isGeopoint","degree","degreeAbs","abs","isInteger","param","num","Number","isFieldOrder","direction","isFieldPath","isOperator","op","isCollName","isDocID","docId","createPromiseCallback","promise","throwPromiseNotDefined","LOGIC_COMMANDS_LITERAL","UpdateCommand","operator","operands","fieldName","_setFieldName","isUpdateCommand","object","LogicCommand","isLogicCommand","isQueryCommand","operand","and","__expressions__","arguments","expressions","unshift","AND","or","OR","QUERY_COMMANDS_LITERAL","QueryCommand","IN","NIN","command","EQ","neq","NEQ","GT","GTE","LT","LTE","in","nin","geoNear","geometry","maxDistance","minDistance","GEO_NEAR","geoWithin","GEO_WITHIN","geoIntersects","GEO_INTERSECTS","isComparisonCommand","OperatorMap","operatorToString","assign","__spreadArray","to","pack","l","serializeHelper","visited","$regex","$options","flags","ret","flatten","shouldPreserverObject","parents","cloned","flattenedChild","hasKeyNotCombined","childKey","flattenQueryObject","isConversionRequired","mergeConditionAfterEncode","condition","conditionKey","encodeInternalDataType","serializeInternalDataType","UpdateSerializer","encode","encodeUpdate","encodeUpdateCommand","encodeUpdateObject","encodeArrayUpdateCommand","encodeFieldUpdateCommand","$op","modifiers","$each","$position","flattened","$setCommand","wsList","getWsInstance","appConfig","docSizeLimit","realtimePingInterval","realtimePongWaitTimeout","DocumentReference","coll","docID","watch","_db","_coll","id","isBatch","catch","hasOperator","checkMixed","objs","queryType","merge","updated","upsertedId","upserted_id","update","remove","deleted","field","k","QuerySerializer","QueryEncoder","encodeQuery","encodeLogicCommand","encodeQueryCommand","encodeQueryObject","encodeRegExp","subqueries","oprand","operatorExpression","subquery","encodeComparisonCommand","$nearSphere","$geometry","$maxDistance","$minDistance","$geoWithin","$geoIntersects","Query","fieldFilters","fieldOrders","queryOptions","_fieldFilters","_queryOptions","orderBy","_fieldOrders","_request","newOder","total","where","checkFlag","fieldPath","directionStr","newOrder","combinedOrders","option","skip","upsertId","upsert_id","Aggregation","_stages","_collectionName","end","_arguments","generator","f","y","g","label","trys","ops","verb","throw","pop","step","__generator","P","fulfilled","rejected","unwrap","_pipe","addFields","bucket","bucketAuto","distanceMultiplier","near","group","project","replaceRoot","sample","sortByCount","unwind","aggregate","CollectionReference","doc","add","Command","all","elemMatch","exists","nor","not","inc","mul","values","args","each","position","$sort","$slice","pullAll","shift","__values__","addToSet","rename","bit","max","min","expr","$expr","jsonSchema","schema","$jsonSchema","$search","$language","language","$caseSensitive","caseSensitive","$diacriticSensitive","diacriticSensitive","AggregationOperator","ceil","divide","ln","log10","multiply","pow","sqrt","subtract","trunc","arrayElemAt","arrayToObject","concatArrays","indexOfArray","range","reverseArray","zip","cmp","cond","ifNull","switch","dateFromParts","dateFromString","dayOfMonth","dayOfWeek","dayOfYear","isoDayOfWeek","isoWeek","isoWeekYear","millisecond","minute","month","second","hour","week","year","literal","mergeObjects","objectToArray","allElementsTrue","anyElementTrue","setDifference","setEquals","setIntersection","setIsSubset","setUnion","dateToString","indexOfBytes","indexOfCP","strLenBytes","strLenCP","strcasecmp","substr","substrBytes","substrCP","toLower","toUpper","meta","avg","first","last","stdDevPop","stdDevSamp","sum","let","ProjectionOperator","RegExp","regexp","RegExpConstructor","ERRORS","UPDATE_DOC","transaction","_transaction","getRequestMethod","_transactionId","getTransactionId","upserted","GET_DOC","Transaction","commited","inited","init","collection","collName","commit","rollback","customRollbackRes","abortReason","startTransaction","runTransaction","times","callbackRes","error_1","throwWithRollback","Geo","serverDate","logicCommand","updateCommand","queryCommand","originalSend","createCollection","$apply","$call","$reflectApply","Function","$TypeError","$actualApply","util","Stream","DelayedStream","CombinedStream","readable","dataSize","maxDataSize","pauseStreams","_released","_streams","_currentStream","_insideLoop","_pendingNext","inherits","combinedStream","isStreamLike","isBuffer","newStream","Infinity","pauseStream","on","_checkDataSize","_handleErrors","pause","dest","resume","_getNext","_realGetNext","_pipeNext","write","self","_emitError","emit","_reset","destroy","_updateDataSize","_maxDataSizeExceeded","_bufferedEvents","delayedStream","realEmit","_handleEmit","setEncoding","release","_checkIfMaxDataSizeExceeded","hasProtoAccessor","callBind","gOPD","desc","$Object","$getPrototypeOf","getPrototypeOf","$defineProperty","EvalError","RangeError","ReferenceError","SyntaxError","URIError","GetIntrinsic","hasToStringTag","hasOwn","toStringTag","overrideIfSet","force","nonConfigurable","http","https","parseUrl","crypto","mime","asynckit","setToStringTag","populate","escapeHeaderParam","str","_overheadLength","_valueLength","_valuesToMeasure","LINE_BREAK","DEFAULT_CONTENT_TYPE","filename","_error","_multiPartHeader","footer","_multiPartFooter","_trackLength","valueLength","knownLength","byteLength","_lengthRetriever","start","stat","fileSize","contentDisposition","_getContentDisposition","contentType","_getContentType","contents","prop","getBoundary","filepath","normalize","basename","client","_httpMessage","_lastBoundary","userHeaders","setBoundary","boundary","_boundary","_generateBoundary","dataBuffer","alloc","substring","randomBytes","getLengthSync","hasKnownLength","getLength","submit","defaults","port","hostname","setHeader","onResponse","responce","removeListener","dst","src","toStr","concatty","arr","j","that","bound","arrLike","slicy","boundLength","boundArgs","joiny","Empty","implementation","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$URIError","round","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","$ObjectGPO","$ReflectGPO","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","decodeURI","encodeURI","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","parseFloat","parseInt","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","splice","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","allowMissing","alias","intrinsicName","parts","string","number","quote","subString","stringToPath","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","reflectGetProto","originalGetProto","getDunderProto","O","getOwnPropertyDescriptor","origSymbol","hasSymbolSham","getOwnPropertySymbols","sym","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","$hasOwn","$isNaN","extensions","types","preference","extname","EXTRACT_TYPE_REGEXP","TEXT_TYPE_REGEXP","charset","charsets","extension","exts","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","__esModule","ns","def","current","definition","__webpack_exports__"],"sourceRoot":""}
|