@cloudbase/js-sdk 3.9.0 → 3.9.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.js +1 -1
- package/app/dist/index.js.map +1 -1
- package/app/dist/index.node.js +1 -1
- package/app/dist/index.node.js.map +1 -1
- package/auth/dist/index.d.ts +1 -0
- package/auth/dist/index.esm.js +1 -1
- package/auth/dist/index.esm.js.map +1 -1
- package/auth/dist/index.js +1 -1
- package/auth/dist/index.js.map +1 -1
- package/auth/dist/type.d.ts +2 -2
- package/core.d.ts +13 -3
- package/database/dist/index.d.ts +147 -0
- package/database/dist/index.esm.js +1 -1
- package/database/dist/index.esm.js.map +1 -1
- package/database/dist/index.js +1 -1
- package/database/dist/index.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/auth/index.d.ts +1 -0
- package/miniprogram_dist/auth/index.js +1 -1
- package/miniprogram_dist/database/index.d.ts +147 -0
- package/miniprogram_dist/database/index.js +1 -1
- package/miniprogram_dist/index.js +1 -1
- package/miniprogram_dist/oauth/index.d.ts +1 -1
- package/miniprogram_dist/oauth/index.js +1 -1
- package/oauth/dist/auth/consts.d.ts +3 -1
- package/oauth/dist/index.d.ts +1 -1
- package/oauth/dist/index.esm.js +1 -1
- package/oauth/dist/index.esm.js.map +1 -1
- package/oauth/dist/index.js +1 -1
- package/oauth/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","mappings":"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","sources":["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/../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/util.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/const/code.js","webpack://@cloudbase/js-sdk/external module \"bson\"","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/utils/utils.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/validate.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/update.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/point.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/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/serverDate/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/regexp/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/ObjectId/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/index.js","webpack://@cloudbase/js-sdk/common.ts/","webpack://@cloudbase/js-sdk/errors.ts/","webpack://@cloudbase/js-sdk/external module \"@cloudbase/adapter-interface\"","webpack://@cloudbase/js-sdk/util.ts/","webpack://@cloudbase/js-sdk/index.ts/","webpack://@cloudbase/js-sdk/web.ts/","webpack://@cloudbase/js-sdk/cache.ts/","webpack://@cloudbase/js-sdk/events.ts/","webpack://@cloudbase/js-sdk/langEvent.ts/","webpack://@cloudbase/js-sdk/decorators.ts/","webpack://@cloudbase/js-sdk/external module \"jwt-decode\""],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\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};","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[\"BooleanError\"] = \"must be boolean\";\n ErrorCode[\"ArrayError\"] = \"must be array\";\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[\"CentersPhereError\"] = \"centersPhere\\u7ED3\\u6784\\u4E0D\\u5408\\u6CD5\";\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 Date: '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');\nexport var SYMBOL_OBJECTID = InternalSymbol.for('OBJECTID');\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_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_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_MULTI_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_MULTI_POLYGON;\n },\n enumerable: false,\n configurable: true\n });\n return MultiPolygon;\n}());\nexport { MultiPolygon };\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';\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.Date:\n realValue = item;\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.Date) {\n return FieldType.Date;\n }\n if (type === FieldType.Object) {\n 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","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 DATABASE_REQUEST_FAILED: {\n code: 'DATABASE_REQUEST_FAILED',\n message: 'database request failed'\n }\n};\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"EJSON\"]: () => __WEBPACK_EXTERNAL_MODULE_bson__.EJSON });","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 __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 { Db } from '../';\nimport { EJSON } from 'bson';\nimport { isObject } from './type';\nexport var sleep = function (ms) {\n if (ms === void 0) { ms = 0; }\n return new Promise(function (r) { return setTimeout(r, ms); });\n};\nexport function withCallback(promise, callback) {\n if (typeof callback === 'function') {\n promise.then(function (res) { return callback(0, res); }, function (err) { return callback(err); });\n return undefined;\n }\n return promise;\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}\nexport var getReqOpts = function (apiOptions) {\n if (apiOptions.timeout !== undefined) {\n return {\n timeout: apiOptions.timeout\n };\n }\n return {};\n};\nexport var filterUndefined = function (o) {\n if (!isObject(o)) {\n return o;\n }\n for (var key in o) {\n if (o[key] === undefined) {\n delete o[key];\n }\n else if (isObject(o[key])) {\n o[key] = filterUndefined(o[key]);\n }\n }\n return o;\n};\nexport var stringifyByEJSON = function (params) {\n params = filterUndefined(params);\n return EJSON.stringify(params, { relaxed: false });\n};\nexport var parseByEJSON = function (params) {\n return EJSON.parse(params);\n};\nvar TcbError = (function (_super) {\n __extends(TcbError, _super);\n function TcbError(error) {\n var _this = _super.call(this, error.message) || this;\n _this.code = error.code;\n _this.message = error.message;\n return _this;\n }\n return TcbError;\n}(Error));\nexport { TcbError };\nexport var E = function (errObj) {\n return new TcbError(errObj);\n};\nexport function processReturn(throwOnCode, res) {\n if (throwOnCode === false) {\n return res;\n }\n throw E(__assign({}, res));\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 { ErrorCode, WhereFilterOpList, OrderDirectionList, FieldType } from './constant';\nimport { Util } from './util';\nimport { ERRORS } from './const/code';\nimport { E } from './utils/utils';\nimport { getType } from './utils/type';\nimport { SYMBOL_GEO_POINT } from './helper/symbol';\nvar validOptionsKeys = ['limit', 'offset', 'projection', 'order', 'multiple', 'timeout', 'raw'];\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.mustBeBoolean = function (param, bool) {\n if (typeof bool !== 'boolean') {\n throw new Error(param + ErrorCode.BooleanError);\n }\n return true;\n };\n Validate.isProjection = function (param, value) {\n if (getType(value) !== 'object') {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"\".concat(param, \" projection must be an object\") }));\n }\n for (var key in value) {\n var subValue = value[key];\n if (getType(subValue) === 'number') {\n if (subValue !== 0 && subValue !== 1) {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"if the value in projection is of number, it must be 0 or 1\" }));\n }\n }\n else if (getType(subValue) === 'object') {\n }\n else {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: 'invalid projection' }));\n }\n }\n return true;\n };\n Validate.isOrder = function (param, value) {\n if (getType(value) !== 'object') {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"\".concat(param, \" order must be an object\") }));\n }\n for (var key in value) {\n var subValue = value[key];\n if (subValue !== 1 && subValue !== -1) {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"order value must be 1 or -1\" }));\n }\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 Validate.isValidOptions = function (options) {\n if (options === void 0) { options = {}; }\n if (getType(options) !== 'object') {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"options must be an object\" }));\n }\n var keys = Object.keys(options);\n for (var index in keys) {\n if (validOptionsKeys.indexOf(keys[index]) < 0) {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"\".concat(keys[index], \" is invalid options key\") }));\n }\n }\n var _a = options, limit = _a.limit, offset = _a.offset, projection = _a.projection, order = _a.order;\n var multiple = options.multiple;\n if (limit !== undefined) {\n Validate.isInteger('limit', limit);\n }\n if (offset !== undefined) {\n Validate.isInteger('offset', offset);\n }\n if (projection !== undefined) {\n Validate.isProjection('projection', projection);\n }\n if (order !== undefined) {\n Validate.isOrder('order', order);\n }\n if (multiple !== undefined) {\n Validate.mustBeBoolean('multiple', multiple);\n }\n if (options.timeout !== undefined) {\n Validate.isInteger('timeout', options.timeout);\n }\n return true;\n };\n Validate.isValidAggregation = function (stage) {\n if (Object.keys(stage).length !== 1) {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"aggregation stage must have one key\" }));\n }\n return true;\n };\n Validate.isCentersPhere = function (param) {\n if (Array.isArray(param) && param.length === 2) {\n if (getType(param[0]) === 'object' &&\n param[0]._internalType === SYMBOL_GEO_POINT &&\n typeof param[1] === 'number') {\n return true;\n }\n if (Array.isArray(param[0]) && param[0].length === 2) {\n var longitude = param[0][0];\n var latitude = param[0][1];\n Validate.isGeopoint('longitude', longitude);\n Validate.isGeopoint('latitude', latitude);\n if (typeof param[1] === 'number') {\n return true;\n }\n }\n }\n throw new Error(\"\".concat(ErrorCode.CentersPhereError));\n };\n return Validate;\n}());\nexport { Validate };\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 { 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","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';\nimport { Validate } from '../validate';\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, _c;\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 case QUERY_COMMANDS_LITERAL.NEQ:\n return _b = {},\n _b['$ne'] = this.operands[0],\n _b;\n default:\n return _c = {},\n _c['$' + this.operator] = this.operands[0],\n _c;\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) &&\n !(val.geometry instanceof Polygon) &&\n !Validate.isCentersPhere(val.centerSphere)) {\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_OBJECTID, 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 case SYMBOL_OBJECTID: {\n return val.parse();\n }\n default: {\n return val.toJSON ? val.toJSON() : val;\n }\n }\n }\n else if (isDate(val)) {\n return val;\n }\n else if (isRegExp(val)) {\n return {\n $regularExpression: {\n pattern: val.source,\n options: val.flags\n }\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), [item], false));\n });\n }\n else if (isObject(val)) {\n var rawRet = __assign({}, val);\n var finalRet = {};\n for (var key in rawRet) {\n if (visited.indexOf(rawRet[key]) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n if (rawRet[key] !== undefined) {\n finalRet[key] = serializeHelper(rawRet[key], __spreadArray(__spreadArray([], __read(visited), false), [rawRet[key]], false));\n }\n }\n return finalRet;\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) &&\n isNumber(ret.coordinates[0]) &&\n 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 === undefined) {\n delete cloned[key];\n continue;\n }\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), [key], false);\n var newVisited = __spreadArray(__spreadArray([], __read(visited), false), [value], 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';\nimport { stringifyByEJSON } from '../utils/utils';\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.encodeEJSON = function (query, raw) {\n var stringifier = new UpdateSerializer();\n return stringifyByEJSON(raw ? query : 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","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 { 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, getReqOpts, stringifyByEJSON, processReturn, withCallback } from './utils/utils';\nimport { ERRORS } from './const/code';\nimport { EJSON } from 'bson';\nvar DocumentReference = (function () {\n function DocumentReference(db, coll, apiOptions, docID, transactionId) {\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._transactionId = transactionId;\n this.request = Db.createRequest(this._db.config);\n this._apiOptions = apiOptions;\n }\n DocumentReference.prototype.create = function (data, callback) {\n return withCallback(this._create(data), callback);\n };\n DocumentReference.prototype._create = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var isBatch, params, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n isBatch = Array.isArray(data);\n if (!isBatch && this.id) {\n data['_id'] = this.id;\n }\n params = {\n collectionName: this._coll,\n data: isBatch\n ? data.map(function (item) { return stringifyByEJSON(serialize(item)); })\n : [stringifyByEJSON(serialize(data))],\n transactionId: this._transactionId\n };\n return [4, this.request.send('database.insertDocument', params, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n if (this._transactionId) {\n return [2, {\n inserted: 1,\n ok: 1,\n id: res.data.insertedIds[0],\n requestId: res.requestId\n }];\n }\n if (isBatch) {\n return [2, {\n ids: (res.data && res.data.insertedIds) || [],\n requestId: res.requestId\n }];\n }\n return [2, {\n id: res.data.insertedIds[0],\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.set = function (data, callback) {\n return withCallback(this._set(data), callback);\n };\n DocumentReference.prototype._set = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var hasOperator, checkMixed, param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.id) {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: 'docId不能为空' }))];\n }\n if (!data || typeof data !== 'object') {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '参数必需是非空对象' }))];\n }\n if (data.hasOwnProperty('_id')) {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '不能更新_id的值' }))];\n }\n hasOperator = false;\n 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 [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.DATABASE_REQUEST_FAILED), { message: 'update operator complicit' }))];\n }\n param = {\n collectionName: this._coll,\n queryType: QueryType.DOC,\n data: stringifyByEJSON(serialize(data)),\n transactionId: this._transactionId,\n multi: false,\n merge: false,\n upsert: true\n };\n if (this.id) {\n param['query'] = stringifyByEJSON({ _id: this.id });\n }\n return [4, this.request.send('database.modifyDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n if (this._transactionId) {\n return [2, {\n updated: res.data.updated,\n upserted: [{ _id: res.data.upsert_id }],\n requestId: res.requestId\n }];\n }\n return [2, {\n updated: res.data.updated,\n upsertedId: res.data.upsert_id,\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.update = function (data, callback) {\n return withCallback(this._update(data), callback);\n };\n DocumentReference.prototype._update = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var query, param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!data || typeof data !== 'object') {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '参数必需是非空对象' }))];\n }\n if (data.hasOwnProperty('_id')) {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '不能更新_id的值' }))];\n }\n query = stringifyByEJSON({ _id: this.id });\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n data: UpdateSerializer.encodeEJSON(data, this._apiOptions.raw || false),\n query: query,\n queryType: QueryType.DOC,\n multi: false,\n merge: true,\n upsert: false\n };\n return [4, this.request.send('database.modifyDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n updated: res.data.updated,\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.delete = function (callback) {\n return this.remove(callback);\n };\n DocumentReference.prototype.remove = function (callback) {\n return withCallback(this._remove(), callback);\n };\n DocumentReference.prototype._remove = function () {\n return __awaiter(this, void 0, void 0, function () {\n var query, param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n query = stringifyByEJSON({ _id: this.id });\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: query,\n queryType: QueryType.DOC,\n multi: false\n };\n return [4, this.request.send('database.removeDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n deleted: res.data.deleted,\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.get = function (callback) {\n return withCallback(this._get(), callback);\n };\n DocumentReference.prototype._get = function () {\n return __awaiter(this, void 0, void 0, function () {\n var query, projection, param, res, list, documents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n query = stringifyByEJSON({ _id: this.id });\n projection = this._apiOptions.projection;\n param = {\n collectionName: this._coll,\n query: query,\n transactionId: this._transactionId,\n queryType: QueryType.DOC,\n multi: false\n };\n if (projection) {\n param.projection = stringifyByEJSON(projection);\n }\n return [4, this.request.send('database.getDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n list = res.data.list.map(function (item) { return EJSON.parse(item); });\n documents = Util.formatResDocumentData(list);\n if (this._transactionId) {\n return [2, {\n data: documents[0] || null,\n requestId: res.requestId\n }];\n }\n return [2, {\n data: documents,\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.field = function (projection) {\n var transformProjection = {};\n for (var k in projection) {\n if (typeof projection[k] === 'boolean') {\n transformProjection[k] = projection[k] === true ? 1 : 0;\n }\n if (typeof projection[k] === 'number') {\n transformProjection[k] = projection[k] > 0 ? 1 : 0;\n }\n if (typeof projection[k] === 'object') {\n transformProjection[k] = projection[k];\n }\n }\n var newApiOption = __assign({}, this._apiOptions);\n newApiOption.projection = transformProjection;\n return new DocumentReference(this._db, this._coll, newApiOption, this.id, this._transactionId);\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, SYMBOL_GEO_POINT } from '../helper/symbol';\nimport { getType, isObject, isArray, isRegExp, isDate } from '../utils/type';\nimport { operatorToString } from '../operator-map';\nimport { flattenQueryObject, isConversionRequired, encodeInternalDataType } from './common';\nimport { stringifyByEJSON } from '../utils/utils';\nimport { Validate } from '../validate';\nvar QuerySerializer = (function () {\n function QuerySerializer() {\n }\n QuerySerializer.encode = function (query) {\n var encoder = new QueryEncoder();\n return encoder.encodeQuery(query);\n };\n QuerySerializer.encodeEJSON = function (query, raw) {\n var encoder = new QueryEncoder();\n return stringifyByEJSON(raw ? query : 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, _b, _c;\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 if (isRegExp(query)) {\n return _a = {}, _a[key] = this.encodeRegExp(query), _a;\n }\n else if (isDate(query)) {\n return _b = {}, _b[key] = encodeInternalDataType(query), _b;\n }\n else {\n return _c = {}, _c[key] = this.encodeQueryObject(query), _c;\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 $regularExpression: {\n pattern: query.source,\n options: query.flags\n }\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) { return _this.encodeQuery(oprand, query.fieldName); });\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, _k, _l;\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 if (options.centerSphere) {\n Validate.isCentersPhere(options.centerSphere);\n var centerSphere = options.centerSphere;\n if (centerSphere[0]._internalType === SYMBOL_GEO_POINT) {\n return _f = {},\n _f[query.fieldName] = {\n $geoWithin: {\n $centerSphere: [centerSphere[0].toJSON().coordinates, centerSphere[1]]\n }\n },\n _f;\n }\n return _g = {},\n _g[query.fieldName] = {\n $geoWithin: {\n $centerSphere: options.centerSphere\n }\n },\n _g;\n }\n return _h = {},\n _h[query.fieldName] = {\n $geoWithin: {\n $geometry: options.geometry.toJSON()\n }\n },\n _h;\n }\n case QUERY_COMMANDS_LITERAL.GEO_INTERSECTS: {\n var options = query.operands[0];\n return _j = {},\n _j[query.fieldName] = {\n $geoIntersects: {\n $geometry: options.geometry.toJSON()\n }\n },\n _j;\n }\n default: {\n return _k = {},\n _k[query.fieldName] = (_l = {},\n _l[$op] = encodeInternalDataType(query.operands[0]),\n _l),\n _k;\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};\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 { 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, getReqOpts, stringifyByEJSON, processReturn, withCallback } from './utils/utils';\nimport { ERRORS } from './const/code';\nimport { EJSON } from 'bson';\nvar Query = (function () {\n function Query(db, coll, fieldFilters, apiOptions, transactionId) {\n var _this = this;\n this.watch = function (options) {\n var ws = getWsInstance(_this._db);\n var _a = _this._apiOptions, limit = _a.limit, order = _a.order;\n return ws.watch(__assign(__assign({}, options), { envId: _this._db.config.env, collectionName: _this._coll, query: JSON.stringify(_this._fieldFilters), limit: limit, orderBy: order\n ? order.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._apiOptions = apiOptions || {};\n this._request = Db.createRequest(this._db.config);\n this._transactionId = transactionId;\n }\n Query.prototype.get = function (callback) {\n return withCallback(this._get(), callback);\n };\n Query.prototype._get = function () {\n return __awaiter(this, void 0, void 0, function () {\n var order, param, offset, limit, projection, res, list, documents, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n order = this._apiOptions.order;\n param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE,\n transactionId: this._transactionId\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n if (order) {\n param.order = stringifyByEJSON(order);\n }\n offset = this._apiOptions.offset;\n if (offset) {\n param.offset = offset;\n }\n limit = this._apiOptions.limit;\n if (limit) {\n param.limit = limit < 1000 ? limit : 1000;\n }\n else {\n param.limit = 100;\n }\n projection = this._apiOptions.projection;\n if (projection) {\n param.projection = stringifyByEJSON(projection);\n }\n return [4, this._request.send('database.getDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n list = res.data.list.map(function (item) { return EJSON.parse(item); });\n documents = Util.formatResDocumentData(list);\n result = {\n data: documents,\n requestId: res.requestId\n };\n if (res.total)\n result.total = res.total;\n if (res.limit)\n result.limit = res.limit;\n if (res.offset)\n result.offset = res.offset;\n return [2, result];\n }\n });\n });\n };\n Query.prototype.count = function (callback) {\n return withCallback(this._count(), callback);\n };\n Query.prototype._count = 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 queryType: QueryType.WHERE\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n return [4, this._request.send('database.calculateDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n requestId: res.requestId,\n total: res.data.total\n }];\n }\n });\n });\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.encodeEJSON(query, this._apiOptions.raw || false), this._apiOptions, this._transactionId);\n };\n Query.prototype.options = function (apiOptions) {\n Validate.isValidOptions(apiOptions);\n return new Query(this._db, this._coll, this._fieldFilters, apiOptions, this._transactionId);\n };\n Query.prototype.orderBy = function (fieldPath, directionStr) {\n var _a;\n Validate.isFieldPath(fieldPath);\n Validate.isFieldOrder(directionStr);\n var newOrder = (_a = {},\n _a[fieldPath] = directionStr === 'desc' ? -1 : 1,\n _a);\n var order = this._apiOptions.order || {};\n var newApiOption = Object.assign({}, this._apiOptions, {\n order: Object.assign({}, order, newOrder)\n });\n return new Query(this._db, this._coll, this._fieldFilters, newApiOption, this._transactionId);\n };\n Query.prototype.limit = function (limit) {\n Validate.isInteger('limit', limit);\n var newApiOption = __assign({}, this._apiOptions);\n newApiOption.limit = limit;\n return new Query(this._db, this._coll, this._fieldFilters, newApiOption, this._transactionId);\n };\n Query.prototype.skip = function (offset) {\n Validate.isInteger('offset', offset);\n var newApiOption = __assign({}, this._apiOptions);\n newApiOption.offset = offset;\n return new Query(this._db, this._coll, this._fieldFilters, newApiOption, this._transactionId);\n };\n Query.prototype.update = function (data, callback) {\n return withCallback(this._update(data), callback);\n };\n Query.prototype._update = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var multiple, multi, param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!data || typeof data !== 'object') {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '参数必需是非空对象' }))];\n }\n if (data.hasOwnProperty('_id')) {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '不能更新_id的值' }))];\n }\n multiple = this._apiOptions.multiple;\n multi = multiple === undefined ? true : multiple;\n param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE,\n multi: multi,\n merge: true,\n upsert: false,\n data: UpdateSerializer.encodeEJSON(data, this._apiOptions.raw || false)\n };\n if (this._transactionId) {\n param.transactionId = this._transactionId;\n }\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n return [4, this._request.send('database.modifyDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n requestId: res.requestId,\n updated: res.data.updated,\n upsertId: res.data.upsert_id\n }];\n }\n });\n });\n };\n Query.prototype.field = function (projection) {\n var transformProjection = {};\n for (var k in projection) {\n if (typeof projection[k] === 'boolean') {\n transformProjection[k] = projection[k] === true ? 1 : 0;\n }\n if (typeof projection[k] === 'number') {\n transformProjection[k] = projection[k] > 0 ? 1 : 0;\n }\n if (typeof projection[k] === 'object') {\n transformProjection[k] = projection[k];\n }\n }\n var newApiOption = __assign({}, this._apiOptions);\n newApiOption.projection = transformProjection;\n return new Query(this._db, this._coll, this._fieldFilters, newApiOption, this._transactionId);\n };\n Query.prototype.remove = function (callback) {\n return withCallback(this._remove(), callback);\n };\n Query.prototype._remove = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, offset, limit, projection, order, multiple, multi, param, res;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this._apiOptions, offset = _a.offset, limit = _a.limit, projection = _a.projection, order = _a.order;\n if (offset !== undefined ||\n limit !== undefined ||\n projection !== undefined ||\n order !== undefined) {\n console.warn('`offset`, `limit`, `projection`, `orderBy` are not supported in remove() operation');\n }\n multiple = this._apiOptions.multiple;\n multi = multiple === undefined ? true : multiple;\n param = {\n collectionName: this._coll,\n query: this._fieldFilters,\n queryType: QueryType.WHERE,\n multi: multi\n };\n if (this._transactionId) {\n param.transactionId = this._transactionId;\n }\n return [4, this._request.send('database.removeDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _b.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n requestId: res.requestId,\n deleted: res.data.deleted\n }];\n }\n });\n });\n };\n Query.prototype.updateAndReturn = 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 return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '参数必需是非空对象' }))];\n }\n if (data.hasOwnProperty('_id')) {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '不能更新_id的值' }))];\n }\n param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE,\n data: UpdateSerializer.encodeEJSON(data, false)\n };\n if (this._transactionId) {\n param.transactionId = this._transactionId;\n }\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n return [4, this._request.send('database.modifyAndReturnDoc', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n requestId: res.requestId,\n updated: res.data.updated,\n doc: res.data.doc && EJSON.parse(res.data.doc)\n }];\n }\n });\n });\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 { stringifyByEJSON } from './utils/utils';\nimport { getType } from './utils/type';\nimport { Validate } from './validate';\nimport { Point } from './geo/point';\nvar Aggregation = (function () {\n function Aggregation(db, collectionName, rawPipeline) {\n var _this = this;\n this._stages = [];\n if (db && collectionName) {\n this._db = db;\n this._request = Db.createRequest(this._db.config);\n this._collectionName = collectionName;\n if (rawPipeline && rawPipeline.length > 0) {\n rawPipeline.forEach(function (stage) {\n Validate.isValidAggregation(stage);\n var stageName = Object.keys(stage)[0];\n _this._pipe(stageName, stage[stageName], true);\n });\n }\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.aggregateDocuments', {\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: 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, raw) {\n if (raw === void 0) { raw = false; }\n var transformParam = '';\n if (getType(param) === 'object') {\n transformParam = stringifyByEJSON(param);\n }\n else {\n transformParam = JSON.stringify(param);\n }\n this._stages.push({\n stageKey: raw ? stage : \"$\".concat(stage),\n stageValue: transformParam\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})();\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 { DocumentReference } from './document';\nimport { Query } from './query';\nimport Aggregation from './aggregate';\nimport { serialize } from './serializer/datatype';\nimport { getReqOpts, stringifyByEJSON, withCallback } from './utils/utils';\nimport { Validate } from './validate';\nimport { isArray } from './utils/type';\nvar CollectionReference = (function (_super) {\n __extends(CollectionReference, _super);\n function CollectionReference(db, coll, apiOptions, transactionId) {\n var _this = _super.call(this, db, coll, '', apiOptions, transactionId) || this;\n if (transactionId) {\n _this._transactionId = transactionId;\n }\n return _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, this._apiOptions, docID, this._transactionId);\n };\n CollectionReference.prototype.add = function (data, callback) {\n return withCallback(this._add(data), callback);\n };\n CollectionReference.prototype._add = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var transformData, params, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n transformData = data;\n if (!isArray(data)) {\n transformData = [data];\n }\n transformData = transformData.map(function (item) {\n return stringifyByEJSON(serialize(item));\n });\n params = {\n collectionName: this._coll,\n data: transformData\n };\n if (this._transactionId) {\n params.transactionId = this._transactionId;\n }\n return [4, this._request.send('database.insertDocument', params, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n if (!isArray(data)) {\n if (this._transactionId) {\n return [2, {\n inserted: 1,\n ok: 1,\n id: res.data.insertedIds[0],\n requestId: res.requestId\n }];\n }\n return [2, {\n id: res.data.insertedIds[0],\n requestId: res.requestId\n }];\n }\n return [2, {\n ids: res.data.insertedIds,\n requestId: res.requestId\n }];\n }\n });\n });\n };\n CollectionReference.prototype.aggregate = function (rawPipeline) {\n if (rawPipeline === void 0) { rawPipeline = []; }\n return new Aggregation(this._db, this._coll, (this._apiOptions.raw || false) ? rawPipeline : []);\n };\n CollectionReference.prototype.options = function (apiOptions) {\n Validate.isValidOptions(apiOptions);\n return new CollectionReference(this._db, this._coll, apiOptions, this._transactionId);\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 () {\n if (arguments.length == 1)\n return new QueryCommand(QUERY_COMMANDS_LITERAL.MOD, [arguments[0]]);\n if (arguments.length == 2)\n return new QueryCommand(QUERY_COMMANDS_LITERAL.MOD, [[arguments[0], arguments[1]]]);\n return new QueryCommand(QUERY_COMMANDS_LITERAL.MOD, arguments);\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 values = {};\n var options = args[0];\n if (options.each !== undefined) {\n values['$each'] = options.each;\n }\n if (options.position !== undefined) {\n values['$position'] = options.position;\n }\n if (options.sort !== undefined) {\n values['$sort'] = options.sort;\n }\n if (options.slice !== undefined) {\n values['$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}());\nexport { AggregationOperator };\nvar ProjectionOperator = (function () {\n function ProjectionOperator(name, param) {\n this['$' + name] = param;\n }\n return ProjectionOperator;\n}());\nexport { ProjectionOperator };\nexport default Command;\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 $tcb_server_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","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.$regularExpression = {\n pattern: regexp || '',\n options: options || ''\n };\n }\n RegExp.prototype.parse = function () {\n return {\n $regularExpression: {\n pattern: this.$regularExpression.pattern,\n options: this.$regularExpression.options\n }\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","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._db, collName, {}, this._id);\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 { SYMBOL_OBJECTID } from '../helper/symbol';\nvar ObjectId = (function () {\n function ObjectId(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.id, id = _c === void 0 ? '' : _c;\n this.id = id;\n }\n Object.defineProperty(ObjectId.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_OBJECTID;\n },\n enumerable: false,\n configurable: true\n });\n ObjectId.prototype.parse = function () {\n return {\n $oid: this.id\n };\n };\n return ObjectId;\n}());\nexport { ObjectId };\nexport function ObjectIdConstructor(opt) {\n return new ObjectId(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};\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 * 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';\nimport { ObjectIdConstructor } from './ObjectId/index';\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.ObjectId = ObjectIdConstructor;\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 var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n if (data) {\n if (config.instance) {\n data.instance = config.instance;\n }\n if (config.database) {\n data.database = config.database;\n }\n }\n return originalSend.call.apply(originalSend, __spreadArray([this, action, data], __read(args), false));\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","let sdkName = '@cloudbase/js-sdk'\nexport function setSdkName(name: string) {\n sdkName = name\n}\nexport function getSdkName() {\n return sdkName\n}\n\nlet PROTOCOL = 'https:'\n\nexport function setProtocol(protocol: 'http:' | 'https:') {\n PROTOCOL = protocol\n}\n\nexport function getProtocol() {\n return PROTOCOL\n}\n// 是否为开发模式\nexport const IS_DEBUG_MODE = typeof process === 'undefined' || typeof process.env === 'undefined' ? false : process.env.NODE_ENV === 'development'\n// 问答社区链接\nexport const COMMUNITY_SITE_URL = 'https://support.qq.com/products/148793'\n","export const ERRORS = {\n INVALID_PARAMS: 'INVALID_PARAMS',\n INVALID_SYNTAX: 'INVALID_SYNTAX',\n INVALID_OPERATION: 'INVALID_OPERATION',\n OPERATION_FAIL: 'OPERATION_FAIL',\n NETWORK_ERROR: 'NETWORK_ERROR',\n UNKOWN_ERROR: 'UNKOWN_ERROR',\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"AbstractSDKRequest\"]: () => __WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__.AbstractSDKRequest, [\"AbstractStorage\"]: () => __WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__.AbstractStorage });","import { KV } from '@cloudbase/types'\nimport { getSdkName } from '../constants'\n\nexport function isArray(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Array]'\n}\nexport function isString(val: any): boolean {\n return typeof val === 'string'\n}\nexport function isUndefined(val: any): boolean {\n return typeof val === 'undefined'\n}\nexport function isPalinObject(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Object]'\n}\nexport function isNull(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Null]'\n}\nexport function isInstanceOf(instance: any, construct: any): boolean {\n return instance instanceof construct\n}\nexport function isFormData(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object FormData]'\n}\nexport function genSeqId(): string {\n return Math.random().toString(16)\n .slice(2)\n}\nexport function generateRequestId() {\n let d = new Date().getTime()\n let d2 = (Date?.now && Date.now() * 1000) || 0\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n let r = Math.random() * 16\n if (d > 0) {\n r = (d + r) % 16 | 0\n d = Math.floor(d / 16)\n } else {\n r = (d2 + r) % 16 | 0\n d2 = Math.floor(d2 / 16)\n }\n return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16)\n })\n}\nexport function formatUrl(PROTOCOL: string, url: string, query: KV<any> = {}): string {\n const urlHasQuery = /\\?/.test(url)\n let queryString = ''\n Object.keys(query).forEach((key) => {\n if (queryString === '') {\n !urlHasQuery && (url += '?')\n } else {\n queryString += '&'\n }\n queryString += `${key}=${encodeURIComponent(query[key])}`\n })\n url += queryString\n if (/^http(s)?:\\/\\//.test(url)) {\n return url\n }\n return `${PROTOCOL}${url}`\n}\n\nexport function toQueryString(query: KV<any> = {}) {\n const queryString = []\n Object.keys(query).forEach((key) => {\n queryString.push(`${key}=${encodeURIComponent(query[key])}`)\n })\n return queryString.join('&')\n}\n\nexport function getQuery(name: string, url?: string) {\n if (typeof window === 'undefined') {\n return false\n }\n // 参数:变量名,url为空则表从当前页面的url中取\n const u = url || decodeURIComponent(window.location.search)\n const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`)\n const r = u.substr(u.indexOf('?') + 1).match(reg)\n return r !== null && r !== undefined ? r[2] : ''\n}\n\nexport const getHash = function (name: string) {\n if (typeof window === 'undefined') {\n return ''\n }\n const matches = window.location.hash.match(new RegExp(`[#?&/]${name}=([^&#]*)`))\n return matches ? matches[1] : ''\n}\n\nexport function removeParam(key: string, sourceURL: string) {\n let rtn = sourceURL.split('?')[0]\n let param\n let params = []\n const queryString = sourceURL.indexOf('?') !== -1 ? sourceURL.split('?')[1] : ''\n if (queryString !== '') {\n params = queryString.split('&')\n for (let i = params.length - 1; i >= 0; i -= 1) {\n /* eslint-disable-next-line */\n param = params[i].split('=')[0]\n if (param === key) {\n params.splice(i, 1)\n }\n }\n rtn = `${rtn}?${params.join('&')}`\n }\n return rtn\n}\n\nexport function createPromiseCallback() {\n let cb: any = {}\n if (!Promise) {\n cb = () => {}\n cb.promise = {}\n\n const throwPromiseNotDefined = () => {\n throw new Error('Your Node runtime does support ES6 Promises. '\n + 'Set \"global.Promise\" to your preferred implementation of promises.',)\n }\n\n Object.defineProperty(cb.promise, 'then', { get: throwPromiseNotDefined })\n Object.defineProperty(cb.promise, 'catch', { get: throwPromiseNotDefined })\n return cb\n }\n\n const promise = new Promise((resolve, reject) => {\n cb = (err, data) => {\n if (err) return reject(err)\n return resolve(data)\n }\n })\n cb.promise = promise\n return cb\n}\n\nexport function execCallback(fn: Function | null | undefined, err: any, data = null) {\n if (fn && typeof fn === 'function') {\n return fn(err, data)\n }\n if (err) {\n throw err\n }\n return data\n}\n\nexport function printWarn(error: string, msg: string) {\n console.warn(`[${getSdkName()}][${error}]:${msg}`)\n}\n\nexport function printError(error: string, msg: string) {\n console.error({\n code: error,\n msg: `[${getSdkName()}][${error}]:${msg}`,\n })\n}\nexport function printInfo(error: string, msg: string) {\n console.log(`[${getSdkName()}][${error}]:${msg}`)\n}\nexport function throwError(error: string, msg: string) {\n // legacy v1 兼容路径(auth v1-compat 本地校验):message 保持已发布版本的 JSON-string 形状\n // (v1 错误处理范式 JSON.parse(e.message) 不受影响),额外挂 code 属性供新范式直访\n const err: any = new Error(JSON.stringify({\n code: error,\n msg: `[${getSdkName()}][${error}]:${msg}`,\n }),)\n err.code = error\n throw err\n}\n\n// ========== Cloudbase Error Factory ==========\nexport interface ICloudbaseErrorOptions {\n code: string\n msg: string\n requestId?: string\n [key: string]: any\n}\n\nexport type CloudbaseErrorFactory = (opts: ICloudbaseErrorOptions) => Error\n\n/**\n * 浏览器形态默认错误类:对齐 v3 已发布行为(实测 @cloudbase/js-sdk@3.8.2 网关业务错误\n * 抛 {code, message, requestId},`e.code` 直接可访问),同时保留 Error 特性\n * (instanceof / stack,是 v3 裸对象的超集)。\n * JSON.stringify(err) 的结果与 v3.8.2 裸对象逐字段一致。\n */\nexport class CloudbaseError extends Error {\n public readonly code: string\n public readonly message: string\n public readonly requestId: string\n\n public constructor(opts: ICloudbaseErrorOptions) {\n super(opts.msg || opts.message || '')\n this.code = opts.code || ''\n this.requestId = opts.requestId || ''\n // Error 构造器创建的 message 自有属性是不可枚举的,直接赋值会保留该属性描述符,\n // 导致 JSON.stringify(err) 丢失 message(v3.8.2 裸对象里 message 是可枚举的)\n Object.defineProperty(this, 'message', {\n value: opts.msg || opts.message || '',\n enumerable: true,\n writable: true,\n configurable: true,\n })\n }\n}\n\nconst defaultErrorFactory: CloudbaseErrorFactory = opts => new CloudbaseError(opts)\n\n/**\n * 创建错误对象。无全局状态:factory 由调用方通过 config.errorFactory 传入(per-instance),\n * 未传入时使用默认工厂(浏览器形态)。\n */\nexport function createCloudbaseError(opts: ICloudbaseErrorOptions, factory?: CloudbaseErrorFactory): Error {\n return (factory || defaultErrorFactory)(opts)\n}\n\n// ========== 统一 throw 开关 ==========\n\n/**\n * 解析是否抛错:只读 `config.throw`,默认 true。\n * `throwOnCode` 仅在 init 时作为别名被 canonicalize 到 `throw`,内部不再保留。\n * 该开关统一控制「服务端业务错误 + 本地校验」的抛/返回行为;\n * Supabase-like API(auth 新方法、storage.from())不受此开关影响。\n */\nexport function resolveThrow(config?: { throw?: boolean } | any): boolean {\n if (config && typeof config.throw === 'boolean') {\n return config.throw\n }\n return true\n}\n\n/**\n * 按 `resolveThrow` 决定抛错或返回 `{ code, message }`。\n * - throw=true:抛 `createCloudbaseError`\n * - throw=false:返回 `{ code, message, ...(requestId) }`\n */\nexport function maybeThrow(\n config: { throw?: boolean } | any,\n opts: { code: string; msg: string; requestId?: string },\n): any {\n if (resolveThrow(config)) {\n throw createCloudbaseError(opts, config?.errorFactory)\n }\n return { code: opts.code, message: opts.msg, ...(opts.requestId ? { requestId: opts.requestId } : {}) }\n}\n\n// ========== 网关响应归一化 ==========\n\n/**\n * 将网关响应的业务错误码/信息从 `data` 提升到顶层(若顶层缺失)。\n * 网关(gateWay)返回 `{ requestId, data: {...}, statusCode, ... }`,业务错误码在 `data.code` / `data.message`;\n * 消费方(database / storage 经典)统一用顶层 `res.code` 判断。\n *\n * 无副作用:需要提升时返回新对象,无需提升时原样返回入参。\n */\nexport function promoteGatewayError(res: any): any {\n if (res && typeof res === 'object' && res.data && typeof res.data === 'object') {\n const { code, message } = res.data\n if ((!res.code && code) || (!res.message && message)) {\n return {\n ...res,\n ...(!res.code && code ? { code } : {}),\n ...(!res.message && message ? { message } : {}),\n }\n }\n }\n return res\n}\n\nexport function errorToResult(e: any): { code: string; message: string; requestId?: string; [key: string]: any } {\n if (e instanceof Error && typeof e.message === 'string') {\n try {\n const parsed = JSON.parse(e.message)\n if (parsed && typeof parsed.code === 'string') {\n return {\n code: parsed.code,\n message: parsed.msg || parsed.message || '',\n requestId: parsed.requestId,\n }\n }\n } catch (_) {}\n }\n if (e && typeof e.code === 'string') {\n return { code: e.code, message: e.message || '', requestId: e.requestId }\n }\n return { code: 'UNKNOWN_ERROR', message: String(e?.message || e || '') }\n}\n\ninterface IPrintGroupLogOptions {\n title: string\n subtitle: string | object\n content: {\n type: 'info' | 'warn' | 'error'\n body: string | Error\n }[]\n printTrace?: boolean\n collapsed?: boolean\n}\nexport function printGroupLog(options: IPrintGroupLogOptions) {\n const { title, subtitle = '', content = [], printTrace = false, collapsed = false } = options\n if (collapsed) {\n (console.groupCollapsed || console.error)(title, subtitle)\n } else {\n (console.group || console.error)(title, subtitle)\n }\n for (const tip of content) {\n const { type, body } = tip\n switch (type) {\n case 'info':\n console.log(body)\n break\n case 'warn':\n console.warn(body)\n break\n case 'error':\n console.error(body)\n break\n }\n }\n if (printTrace) {\n (console.trace || console.log)('stack trace:')\n }\n console.groupEnd?.()\n}\n\nexport const sleep = (ms = 0) => new Promise(r => setTimeout(r, ms))\n\nexport function transformPhone(phoneNumber: string) {\n return `+86${phoneNumber}`\n}\n\nexport const parseQueryString = (queryString) => {\n queryString = queryString.replace(/^\\?/, '')\n const params = {}\n const pairs = queryString.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 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\n return params\n}\n\n// 解析URL参数\nexport function parseCaptcha(url) {\n let queryObj: any = {}\n const matched = url.match(/^(data:.*?)(\\?[^#\\s]*)?$/)\n if (matched) {\n // eslint-disable-next-line prefer-destructuring\n url = matched[1]\n const search = matched[2]\n if (search) {\n queryObj = parseQueryString(search)\n }\n }\n const { token, ...restQueryObj } = queryObj\n if (/^data:/.test(url) && !token) {\n return {\n error: 'invalid_argument',\n error_description: `invalid captcha data: ${url}`,\n }\n }\n if (!token) {\n return {\n error: 'unimplemented',\n error_description: 'need to impl captcha data',\n }\n }\n // 解析url得到的参数\n return {\n state: restQueryObj.state,\n token, // 验证码token\n captchaData: url, // 验证码base64图片\n }\n}\n","export * from './common'\nexport * from './errors'\n\nexport const OATUH_LOGINTYPE = 'constants'\n","import {\n SDKAdapterInterface,\n AbstractSDKRequest,\n IRequestOptions,\n ResponseObject,\n IUploadRequestOptions,\n IRequestConfig,\n IRequestMethod,\n IFetchOptions,\n} from '@cloudbase/adapter-interface'\nimport { isFormData, formatUrl, toQueryString } from '../../libs/util'\nimport { getProtocol } from '../../constants/common'\n\n/**\n * @class WebRequest\n */\nclass WebRequest extends AbstractSDKRequest {\n // 默认不限超时\n private readonly timeout: number\n // 超时提示文案\n private readonly timeoutMsg: string\n // 超时受限请求类型,默认所有请求均受限\n private readonly restrictedMethods: Array<IRequestMethod>\n constructor(config: IRequestConfig) {\n super()\n const { timeout, timeoutMsg, restrictedMethods } = config\n this.timeout = timeout || 0\n this.timeoutMsg = timeoutMsg || '请求超时'\n this.restrictedMethods = restrictedMethods || ['get', 'post', 'upload', 'download']\n }\n public get(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'get',\n },\n this.restrictedMethods.includes('get'),\n )\n }\n public post(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'post',\n },\n this.restrictedMethods.includes('post'),\n )\n }\n public put(options: IRequestOptions): Promise<ResponseObject> {\n return this.request({\n ...options,\n method: 'put',\n })\n }\n public upload(options: IUploadRequestOptions): Promise<ResponseObject> {\n const { data, file, name, method, headers = {} } = options\n const reqMethod = { post: 'post', put: 'put' }[method?.toLowerCase()] || 'put'\n // 上传方式为post时,需转换为FormData\n const formData = new FormData()\n if (reqMethod === 'post') {\n Object.keys(data).forEach((key) => {\n formData.append(key, data[key])\n })\n formData.append('key', name)\n formData.append('file', file)\n return this.request(\n {\n ...options,\n data: formData,\n method: reqMethod,\n },\n this.restrictedMethods.includes('upload'),\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 public async download(options: IRequestOptions): Promise<any> {\n try {\n const { data } = await this.get({\n ...options,\n headers: {}, // 下载资源请求不经过service,header清空\n responseType: 'blob',\n })\n const url = window.URL.createObjectURL(new Blob([data]))\n const fileName = decodeURIComponent(new URL(options.url).pathname.split('/').pop() || '')\n const link = document.createElement('a')\n\n link.href = url\n link.setAttribute('download', fileName)\n link.style.display = 'none'\n\n document.body.appendChild(link)\n link.click()\n // 回收内存\n window.URL.revokeObjectURL(url)\n document.body.removeChild(link)\n } catch (e) {}\n return new Promise((resolve) => {\n resolve({\n statusCode: 200,\n tempFilePath: options.url,\n })\n })\n }\n async fetch(options: IFetchOptions & { shouldThrowOnError?: boolean }): Promise<ResponseObject> {\n const abortController = new AbortController()\n const { url, enableAbort = false, stream = false, signal, timeout: _timeout, shouldThrowOnError = true } = options\n\n const timeout = _timeout ?? this.timeout\n\n // FIXME(内存泄漏): { once: true } 只在 abort 事件【触发后】才解绑监听器。\n // 如果请求正常完成、从未 abort,该监听器会一直残留在外部 signal 上。\n // 当调用方复用同一长生命周期 signal 反复发请求时,监听器仍会持续累积。\n // 根治方式:在请求结束(finally)时 removeEventListener 主动解绑,\n // 而不能仅依赖 { once: true }。此处暂仅记录,不改动逻辑。\n if (signal) {\n if (signal.aborted) abortController.abort()\n signal.addEventListener('abort', () => abortController.abort())\n }\n\n let timer = null\n if (enableAbort && timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n abortController.abort(new Error(this.timeoutMsg))\n }, timeout)\n }\n\n const res = await fetch(url, {\n ...options,\n signal: abortController.signal,\n })\n .then(async (response) => {\n clearTimeout(timer)\n if (shouldThrowOnError) {\n // 404 等等也会进 resolve,所以要再通过 ok 判断\n return response.ok ? response : Promise.reject(await response.json())\n }\n return response\n })\n .catch((x) => {\n clearTimeout(timer)\n // 传输级失败(网络中断、CORS 预检被拒、请求被 abort 等)时 fetch 会 reject,\n // 此时没有可解析的 Response。无论 shouldThrowOnError 取值都必须把真实错误抛出,\n // 否则 res 会变成 undefined,下方读取 res.headers 会抛出令人误解的\n // \"Cannot read properties of undefined (reading 'headers')\",掩盖真正的错误原因。\n return Promise.reject(x)\n })\n\n return {\n // eslint-disable-next-line no-nested-ternary\n data: stream ? res.body : res.headers.get('content-type')?.includes('application/json') ? res.json() : res.text(),\n statusCode: res.status,\n header: res.headers,\n // 透出原始 Response,便于上层按需 .blob() / .arrayBuffer() / 读取 body 流,避免二次包装。\n response: res,\n }\n }\n /**\n * @param {IRequestOptions} options\n * @param {boolean} enableAbort 是否超时中断请求\n */\n protected request(options: IRequestOptions, enableAbort = false): Promise<ResponseObject> {\n const method = String(options.method).toLowerCase() || 'get'\n return new Promise((resolve) => {\n const { url, headers = {}, data, responseType, withCredentials, body, onUploadProgress } = options\n const realUrl = formatUrl(getProtocol(), url, method === 'get' ? data : {})\n const ajax = new XMLHttpRequest()\n ajax.open(method, realUrl)\n responseType && (ajax.responseType = responseType)\n // 支持通过 AbortSignal 取消请求:已 abort 立即取消;否则用 { once: true }\n // 监听,触发后自动解绑,避免复用同一 AbortController 多次请求时累积监听器。\n //\n // FIXME(内存泄漏): { once: true } 只在 abort 事件【触发后】才解绑监听器。\n // 如果请求正常完成、从未 abort,该监听器会一直残留在外部 signal 上。\n // 当调用方复用同一长生命周期 signal 反复发请求时,监听器仍会持续累积。\n // 根治方式:在请求结束(readyState===4 / onloadend)时 removeEventListener\n // 主动解绑,而不能仅依赖 { once: true }。此处暂仅记录,不改动逻辑。\n const signal = (options as any).signal as AbortSignal | undefined\n if (signal) {\n if (signal.aborted) {\n ajax.abort()\n } else {\n signal.addEventListener('abort', () => ajax.abort(), { once: true })\n }\n }\n Object.keys(headers).forEach((key) => {\n ajax.setRequestHeader(key, headers[key])\n })\n let timer\n if (onUploadProgress) {\n ajax.upload.addEventListener('progress', onUploadProgress)\n }\n ajax.onreadystatechange = () => {\n const result: ResponseObject = {}\n if (ajax.readyState === 4) {\n const headers = ajax.getAllResponseHeaders()\n const arr = headers.trim().split(/[\\r\\n]+/)\n // Create a map of header names to values\n const headerMap = {}\n arr.forEach((line) => {\n const parts = line.split(': ')\n const header = parts.shift().toLowerCase()\n const value = parts.join(': ')\n headerMap[header] = value\n })\n result.header = headerMap\n result.statusCode = ajax.status\n try {\n // 上传post请求返回数据格式为xml,此处容错\n result.data = responseType === 'blob' ? ajax.response : JSON.parse(ajax.responseText)\n } catch (e) {\n result.data = responseType === 'blob' ? ajax.response : ajax.responseText\n }\n clearTimeout(timer)\n resolve(result)\n }\n }\n if (enableAbort && this.timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n ajax.abort()\n }, this.timeout)\n }\n // 处理 payload\n let payload\n if (isFormData(data)) {\n // FormData,不处理\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 // 其它情况\n payload = data ? JSON.stringify(data) : undefined\n }\n\n if (withCredentials) {\n ajax.withCredentials = true\n }\n ajax.send(payload)\n })\n }\n}\n\nfunction genAdapter() {\n const adapter: SDKAdapterInterface & { type?: 'default' | '' } = {\n type: 'default',\n root: window,\n reqClass: WebRequest,\n wsClass: WebSocket,\n localStorage,\n }\n return adapter\n}\n\nexport { genAdapter, WebRequest }\n","import { StorageInterface, AbstractStorage, SDKAdapterInterface } from '@cloudbase/adapter-interface'\nimport { ICloudbaseCache, ICacheConfig } from '@cloudbase/types/cache'\nimport { KV, Persistence, ICloudbasePlatformInfo } from '@cloudbase/types'\nimport { printWarn } from './util'\nimport { ERRORS, getSdkName } from '../constants'\n\n/**\n * persitence=none时登录态保存在内存中\n */\nclass TcbCacheObject extends AbstractStorage {\n private readonly root: any\n constructor(root: any) {\n super()\n this.root = root\n if (!root.tcbCacheObject) {\n root.tcbCacheObject = {}\n }\n }\n public setItem(key: string, value: any) {\n this.root.tcbCacheObject[key] = value\n }\n public getItem(key: string) {\n return this.root.tcbCacheObject[key]\n }\n public removeItem(key: string) {\n delete this.root.tcbCacheObject[key]\n }\n public clear() {\n delete this.root.tcbCacheObject\n }\n}\n/**\n * 工厂函数\n */\nfunction createStorage(persistence: Persistence, adapter: SDKAdapterInterface): StorageInterface {\n switch (persistence) {\n case 'local':\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n case 'none':\n return new TcbCacheObject(adapter.root)\n default:\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n }\n}\n\nexport class CloudbaseCache implements ICloudbaseCache {\n public keys: KV<string> = {}\n\n private persistenceTag: Persistence\n private platformInfo: ICloudbasePlatformInfo\n private storage: StorageInterface\n\n constructor(config: ICacheConfig) {\n const { persistence, platformInfo = {}, keys = {} } = config\n this.platformInfo = platformInfo\n if (!this.storage) {\n this.persistenceTag = this.platformInfo.adapter.primaryStorage || persistence\n this.storage = createStorage(this.persistenceTag, this.platformInfo.adapter)\n this.keys = keys\n }\n }\n /**\n * @getter storage模式-同步/异步\n */\n get mode() {\n return this.storage.mode || 'sync'\n }\n get persistence(): Persistence {\n return this.persistenceTag\n }\n\n public setStore(key: string, value: any, version?: any) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use setStoreAsync insteed')\n return\n }\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n throw new Error(JSON.stringify({\n code: ERRORS.OPERATION_FAIL,\n msg: `[${getSdkName()}][${ERRORS.OPERATION_FAIL}]setStore failed`,\n info: e,\n }))\n }\n\n return\n }\n public async setStoreAsync(key: string, value: any, version?: any) {\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n await this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n return\n }\n\n return\n }\n public getStore(key: string, version?: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use getStoreAsync insteed')\n return\n }\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public async getStoreAsync(key: string, version?: string) {\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = await this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public removeStore(key: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use removeStoreAsync insteed')\n return\n }\n this.storage.removeItem(key)\n }\n public async removeStoreAsync(key: string) {\n await this.storage.removeItem(key)\n }\n}\n","import { isString, isInstanceOf } from './util'\nimport { Listeners, ICloudbaseEventEmitter } from '@cloudbase/types/events'\n\n\n/**\n * @private\n * @function _addEventListener - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customeAddEventListener(name: string, listener: Function, listeners: Listeners) {\n listeners[name] = listeners[name] || []\n listeners[name].push(listener)\n}\n/**\n * @private\n * @function _removeEventListener - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customRemoveEventListener(name: string, listener: Function, listeners: Listeners) {\n if (listeners?.[name]) {\n const index = listeners[name].indexOf(listener)\n if (index !== -1) {\n listeners[name].splice(index, 1)\n }\n }\n}\ninterface IEvent {\n name: string;\n target: any;\n data: any;\n}\n/**\n * 自定义事件\n * @class CloudbaseEvent\n * @param {string} name - 类型\n * @param {any} data - 数据\n */\nexport class CloudbaseEvent implements IEvent {\n public readonly name: string\n public target: any\n public data: any\n\n constructor(name: string, data: any) {\n this.data = data || null\n this.name = name\n }\n}\n/**\n * 自定义错误事件\n * @class IErrorEvent\n * @extends CloudbaseEvent\n * @param {Error} error - 错误信息对象\n * @param {any} data - 数据\n */\nexport class IErrorEvent extends CloudbaseEvent {\n public readonly error: Error\n constructor(error: Error, data?: any) {\n super('error', { error, data })\n this.error = error\n }\n}\n\n/**\n * @class CloudbaseEventEmitter\n */\nexport class CloudbaseEventEmitter implements ICloudbaseEventEmitter {\n /**\n * @private\n * @readonly\n * @property {Listeners} listeners - 响应函数集合\n * @default `{}`\n */\n private readonly listeners: Listeners = {}\n\n /**\n * @public\n * @method on - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public on(name: string, listener: Function): this {\n customeAddEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method off - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public off(name: string, listener: Function): this {\n customRemoveEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method fire - 触发事件\n * @param {string|CloudbaseEvent} event - event\n * @return `this`\n */\n public fire(event: string | CloudbaseEvent, data?: any): this {\n // 打印错误信息\n if (isInstanceOf(event, IErrorEvent)) {\n console.error((event as IErrorEvent).error)\n return this\n }\n\n const ev: CloudbaseEvent = isString(event) ? new CloudbaseEvent(event as string, data || {}) : event as CloudbaseEvent\n\n const { name } = ev\n\n if (this.listens(name)) {\n ev.target = this\n\n const handlers = this.listeners[name] ? [...this.listeners[name]] : []\n for (const fn of handlers) {\n fn.call(this, ev)\n }\n }\n\n return this\n }\n\n /**\n * @private\n * @method listens - 判断是否监听了name事件\n * @param {string} name - event名称\n * @return `boolean`\n */\n private listens(name: string): boolean {\n return this.listeners[name] && this.listeners[name].length > 0\n }\n}\n\n\nconst eventEmitter = new CloudbaseEventEmitter()\n\nexport function addEventListener(event: string, callback: Function) {\n eventEmitter.on(event, callback)\n}\n\nexport function activateEvent(event: string, data: any = {}) {\n eventEmitter.fire(event, data)\n}\n\nexport function removeEventListener(event: string, callback: Function) {\n eventEmitter.off(event, callback)\n}\n","import { CloudbaseEventEmitter } from './events'\n\nexport const bus = new CloudbaseEventEmitter()\n\nexport const LANG_CHANGE_EVENT = 'lang_change'\n","import { printGroupLog } from '../libs/util'\nimport { IS_DEBUG_MODE } from '../constants'\n\ninterface ICatchErrorsDecoratorOptions {\n mode?: 'sync' | 'async';\n customInfo?: {\n className?: string;\n methodName?: string;\n };\n title?: string;\n messages?: string[];\n}\n// firefox的stack格式与chrome不同\nlet isFirefox = false\nif (typeof navigator !== 'undefined' && navigator.userAgent) {\n isFirefox = navigator.userAgent.indexOf('Firefox') !== -1\n}\n/**\n * decorate在stack中一般都特定的规范\n */\nconst REG_STACK_DECORATE = isFirefox\n ? /(\\.js\\/)?__decorate(\\$\\d+)?<@.*\\d$/\n : /(\\/\\w+\\.js\\.)?__decorate(\\$\\d+)?\\s*\\(.*\\)$/\nconst REG_STACK_LINK = /https?:\\/\\/.+:\\d*\\/.*\\.js:\\d+:\\d+/\n/**\n * debug模式强化日志信息\n * @param options\n */\nexport function catchErrorsDecorator(options: ICatchErrorsDecoratorOptions) {\n const { mode = 'async', customInfo = {}, title, messages = [] } = options\n\n return function (\n target: any,\n methodName: string,\n descriptor: TypedPropertyDescriptor<Function>\n ) {\n // 生产环境禁用\n if (!IS_DEBUG_MODE) {\n return\n }\n const className = customInfo.className || target.constructor.name\n const fnName = customInfo.methodName || methodName\n const fn = descriptor.value\n\n // 被decorator装饰的源码link\n // 在descriptor.value外部此处创建的stack层次可触达源码\n // 而descriptor.value内部有可能由于stack太深无法触达\n const sourceLink = getSourceLink(new Error())\n\n if (mode === 'sync') {\n descriptor.value = function (...args: any[]) {\n // 此处的stack作用主要是为了获取被decorator装饰的源码class和method名称\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n try {\n return fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = errMsg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.msg = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n } else {\n descriptor.value = async function (...args: any[]) {\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n\n try {\n return await fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = msg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.message = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n }\n }\n}\n\n/**\n * 在原始堆栈中查找装饰器条目并返回源码链接link\n * @param err\n */\nfunction getSourceLink(err: Error) {\n let sourceLink = ''\n const outterErrStacks = err.stack.split('\\n')\n const indexOfDecorator = outterErrStacks.findIndex(str => REG_STACK_DECORATE.test(str))\n\n if (indexOfDecorator !== -1) {\n const match = REG_STACK_LINK.exec(outterErrStacks[indexOfDecorator + 1] || '')\n\n sourceLink = match ? match[0] : ''\n }\n return sourceLink\n}\n\n/**\n * 在原始堆栈中查找装饰器条目,剔除其后的无用堆栈,并将链接替换为源码link\n * @param options\n */\nfunction getRewritedError(options: {\n err: Error;\n className: string;\n methodName: string;\n sourceLink: string;\n}) {\n const { err, className, methodName, sourceLink } = options\n // 找不到源码link返回null,后续逻辑将打印原堆栈信息\n if (!sourceLink) {\n return null\n }\n\n const innerErrStack = err.stack.split('\\n')\n const REG_STACK_INNER_METHOD = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value@.*\\d$/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]\\\\s*\\\\(.*\\\\)$`)\n const REG_STACK_INNER_METHOD_WITHOUT_LINK = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]`)\n const indexOfSource = innerErrStack.findIndex(str => REG_STACK_INNER_METHOD.test(str))\n let innerErr: Error\n if (indexOfSource !== -1) {\n // @ts-ignore\n const realErrStack = innerErrStack.filter((v, i) => i > indexOfSource)\n realErrStack.unshift(innerErrStack[indexOfSource]\n .replace(REG_STACK_INNER_METHOD_WITHOUT_LINK, `${className}.${methodName}`)\n .replace(REG_STACK_LINK, sourceLink))\n innerErr = new Error()\n innerErr.stack = `${isFirefox ? '@debugger' : 'Error'}\\n${realErrStack.join('\\n')}`\n }\n return innerErr\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_jwt_decode_b659f100__[\"default\"] });"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","_a","ErrorCode","Opeartor","QueryType","FieldType","OrderDirectionList","WhereFilterOpList","eq","lt","lte","gt","gte","extendStatics","__extends","d","b","setPrototypeOf","__proto__","Array","p","TypeError","String","__","this","constructor","create","_symbols","__internalMark__","InternalSymbol","_super","target","__mark__","for","i","len","length","instance","symbol","push","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","SYMBOL_OBJECTID","getType","x","toString","slice","toLowerCase","isObject","isNumber","isArray","isDate","isRegExp","isInternalObject","_internalType","LineString","points","concat","Error","forEach","point","Point","parse","type","coordinates","map","toJSON","validate","lineString","e_1","_b","s","iterator","m","next","done","__values","_c","e_1_1","error","return","isClosed","firstPoint","lastPoint","latitude","longitude","Polygon","lines","line","toReadableString","polygon","e_2","_d","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","_e","polygon_1","polygon_1_1","e_4_1","e_3_1","__read","n","r","e","ar","Util","formatResDocumentData","documents","document","formatField","keys","protoField","realValue","item","whichType","lng","lat","Date","$date","generateDocId","autoId","charAt","Math","floor","chars","random","ERRORS","code","message","external_bson_namespaceObject","y","EJSON","__WEBPACK_EXTERNAL_MODULE_bson__","__assign","assign","t","arguments","apply","withCallback","promise","callback","then","res","err","wsList","getWsInstance","db","Db","env","config","context","appConfig","docSizeLimit","realtimePingInterval","realtimePongWaitTimeout","request","getReqOpts","apiOptions","undefined","timeout","filterUndefined","stringifyByEJSON","params","relaxed","TcbError","_this","E","errObj","processReturn","throwOnCode","UPDATE_COMMANDS_LITERAL","validOptionsKeys","Validate","isGeopoint","degree","degreeAbs","abs","isInteger","param","num","Number","mustBeBoolean","bool","isProjection","subValue","isOrder","isFieldOrder","direction","isFieldPath","path","test","isOperator","op","isCollName","name","isDocID","docId","isValidOptions","options","index","indexOf","limit","offset","projection","order","multiple","isValidAggregation","stage","isCentersPhere","LOGIC_COMMANDS_LITERAL","UpdateCommand","operator","operands","fieldName","_setFieldName","isUpdateCommand","object","LogicCommand","isLogicCommand","query","isQueryCommand","operand","and","__expressions__","_i","expressions","from","unshift","AND","or","OR","QUERY_COMMANDS_LITERAL","QueryCommand","IN","NIN","NEQ","val","command","EQ","neq","GT","GTE","LT","LTE","in","list","nin","geoNear","geometry","maxDistance","minDistance","GEO_NEAR","geoWithin","centerSphere","GEO_WITHIN","geoIntersects","GEO_INTERSECTS","isComparisonCommand","OperatorMap","operatorToString","__spreadArray","to","pack","l","serialize","serializeHelper","visited","$regularExpression","pattern","source","flags","rawRet","finalRet","flatten","shouldPreserverObject","parents","cloned","flattenedChild","hasKeyNotCombined","childKey","flattenQueryObject","isConversionRequired","mergeConditionAfterEncode","condition","conditionKey","console","warn","encodeInternalDataType","serializeInternalDataType","UpdateSerializer","encode","encodeUpdate","encodeEJSON","raw","stringifier","encodeUpdateCommand","encodeUpdateObject","encodeArrayUpdateCommand","encodeFieldUpdateCommand","$op","_f","_g","_h","_j","_k","modifiers","$each","$position","flattened","$setCommand","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","result","__generator","body","f","g","_","label","sent","trys","ops","verb","throw","v","pop","DocumentReference","coll","docID","transactionId","watch","_db","envId","collectionName","_coll","JSON","stringify","_id","id","_transactionId","_apiOptions","data","_create","isBatch","send","inserted","ok","insertedIds","requestId","ids","set","_set","hasOperator","checkMixed","objs","queryType","multi","merge","upsert","updated","upserted","upsert_id","upsertedId","update","_update","delete","remove","_remove","deleted","_get","field","transformProjection","k","newApiOption","QuerySerializer","QueryEncoder","encodeQuery","encoder","encodeLogicCommand","encodeQueryCommand","encodeRegExp","encodeQueryObject","subqueries","oprand","operatorExpression","subquery","bind","encodeComparisonCommand","_l","$nearSphere","$geometry","$maxDistance","$minDistance","$geoWithin","$centerSphere","$geoIntersects","Query","fieldFilters","ws","_fieldFilters","orderBy","reduce","acc","cur","_request","total","count","_count","where","checkFlag","some","fieldPath","directionStr","newOrder","skip","upsertId","updateAndReturn","doc","Aggregation","rawPipeline","_stages","_collectionName","stageName","_pipe","end","stages","unwrap","stageKey","stageValue","transformParam","addFields","bucket","bucketAuto","distanceMultiplier","near","group","match","project","lookup","replaceRoot","sample","sort","sortByCount","unwind","aggregate","CollectionReference","add","_add","transformData","Command","all","elemMatch","exists","size","mod","nor","not","inc","mul","values","args","each","position","pull","pullAll","shift","__values__","addToSet","rename","bit","max","min","expr","$expr","jsonSchema","schema","$jsonSchema","text","isString","$search","search","$language","language","$caseSensitive","caseSensitive","$diacriticSensitive","diacriticSensitive","pipeline","AggregationOperator","ceil","divide","exp","ln","log","log10","multiply","pow","sqrt","subtract","trunc","arrayElemAt","arrayToObject","concatArrays","filter","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","split","strLenBytes","strLenCP","strcasecmp","substr","substrBytes","substrCP","toLower","toUpper","meta","avg","first","last","stdDevPop","stdDevSamp","sum","let","ProjectionOperator","ServerDate","$tcb_server_date","ServerDateConstructor","opt","RegExp","regexp","RegExpConstructor","Transaction","aborted","commited","inited","init","collection","collName","getTransactionId","getRequestMethod","commit","rollback","customRollbackRes","abortReason","startTransaction","transaction","runTransaction","times","callbackRes","error_1","throwWithRollback","ObjectId","$oid","ObjectIdConstructor","Geo","serverDate","logicCommand","updateCommand","queryCommand","createRequest","reqClass","originalSend","action","database","createCollection","adapter_interface_namespaceObject","adapter_interface_x","AbstractSDKRequest","__WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__","AbstractStorage","printWarn","msg","CloudbaseError","opts","defaultErrorFactory","createCloudbaseError","factory","RUNTIME","WebRequest","timeoutMsg","restrictedMethods","method","includes","post","put","upload","file","headers","reqMethod","formData","FormData","append","download","responseType","url","window","URL","createObjectURL","Blob","fileName","decodeURIComponent","pathname","link","createElement","href","setAttribute","style","display","appendChild","click","revokeObjectURL","removeChild","statusCode","tempFilePath","fetch","abortController","AbortController","enableAbort","stream","signal","_timeout","shouldThrowOnError","abort","addEventListener","timer","setTimeout","response","clearTimeout","json","catch","status","header","withCredentials","onUploadProgress","realUrl","PROTOCOL","urlHasQuery","queryString","encodeURIComponent","formatUrl","ajax","XMLHttpRequest","open","payload","once","setRequestHeader","onreadystatechange","readyState","arr","getAllResponseHeaders","trim","headerMap_1","parts","join","responseText","toQueryString","TcbCacheObject","root","tcbCacheObject","setItem","getItem","removeItem","clear","CloudbaseCache","persistence","platformInfo","storage","persistenceTag","adapter","primaryStorage","localStorage","createStorage","mode","setStore","version","content","info","setStoreAsync","getStore","process","tcb_token","getStoreAsync","removeStore","removeStoreAsync","CloudbaseEvent","IErrorEvent","CloudbaseEventEmitter","listeners","on","listener","customeAddEventListener","off","splice","customRemoveEventListener","fire","event","ev","listens","handlers_1","navigator","userAgent","external_jwt_decode_namespaceObject","external_jwt_decode_x","default","__WEBPACK_EXTERNAL_MODULE_jwt_decode_b659f100__","jwtDecode","gateWayFunc","filterRes","utils","flattenResData","safeParseEJSON","parseEJSONParam","toLegacyRegExp","$regex","$options","ret","parseWriteParam","buildQueryParams","entries","stringValue","getUrlPrefix","customReqOpts","isQueryDoc","$eq","queryParams","gateWay","replaceMode","hasId","commands","request_id","normalized","component","entity","dbConfig","errorFactory","platform","runtime","Req","endPointMode","_fromApp","shouldThrow","authInstance","getAccessToken","wsClientClass","wsClass","NewDb","runCommands","cloudbase","registerComponent","registerDatabase","app"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.esm.js","mappings":"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","sources":["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/../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/util.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/const/code.js","webpack://@cloudbase/js-sdk/external module \"bson\"","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/utils/utils.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/validate.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/update.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/point.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/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/serverDate/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/regexp/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/ObjectId/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/index.js","webpack://@cloudbase/js-sdk/common.ts/","webpack://@cloudbase/js-sdk/errors.ts/","webpack://@cloudbase/js-sdk/external module \"@cloudbase/adapter-interface\"","webpack://@cloudbase/js-sdk/util.ts/","webpack://@cloudbase/js-sdk/index.ts/","webpack://@cloudbase/js-sdk/web.ts/","webpack://@cloudbase/js-sdk/cache.ts/","webpack://@cloudbase/js-sdk/events.ts/","webpack://@cloudbase/js-sdk/langEvent.ts/","webpack://@cloudbase/js-sdk/decorators.ts/","webpack://@cloudbase/js-sdk/external module \"jwt-decode\""],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\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};","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[\"BooleanError\"] = \"must be boolean\";\n ErrorCode[\"ArrayError\"] = \"must be array\";\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[\"CentersPhereError\"] = \"centersPhere\\u7ED3\\u6784\\u4E0D\\u5408\\u6CD5\";\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 Date: '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');\nexport var SYMBOL_OBJECTID = InternalSymbol.for('OBJECTID');\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_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_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_MULTI_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_MULTI_POLYGON;\n },\n enumerable: false,\n configurable: true\n });\n return MultiPolygon;\n}());\nexport { MultiPolygon };\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';\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.Date:\n realValue = item;\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.Date) {\n return FieldType.Date;\n }\n if (type === FieldType.Object) {\n 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","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 DATABASE_REQUEST_FAILED: {\n code: 'DATABASE_REQUEST_FAILED',\n message: 'database request failed'\n }\n};\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"EJSON\"]: () => __WEBPACK_EXTERNAL_MODULE_bson__.EJSON });","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 __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 { Db } from '../';\nimport { EJSON } from 'bson';\nimport { isObject } from './type';\nexport var sleep = function (ms) {\n if (ms === void 0) { ms = 0; }\n return new Promise(function (r) { return setTimeout(r, ms); });\n};\nexport function withCallback(promise, callback) {\n if (typeof callback === 'function') {\n promise.then(function (res) { return callback(0, res); }, function (err) { return callback(err); });\n return undefined;\n }\n return promise;\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}\nexport var getReqOpts = function (apiOptions) {\n if (apiOptions.timeout !== undefined) {\n return {\n timeout: apiOptions.timeout\n };\n }\n return {};\n};\nexport var filterUndefined = function (o) {\n if (!isObject(o)) {\n return o;\n }\n for (var key in o) {\n if (o[key] === undefined) {\n delete o[key];\n }\n else if (isObject(o[key])) {\n o[key] = filterUndefined(o[key]);\n }\n }\n return o;\n};\nexport var stringifyByEJSON = function (params) {\n params = filterUndefined(params);\n return EJSON.stringify(params, { relaxed: false });\n};\nexport var parseByEJSON = function (params) {\n return EJSON.parse(params);\n};\nvar TcbError = (function (_super) {\n __extends(TcbError, _super);\n function TcbError(error) {\n var _this = _super.call(this, error.message) || this;\n _this.code = error.code;\n _this.message = error.message;\n return _this;\n }\n return TcbError;\n}(Error));\nexport { TcbError };\nexport var E = function (errObj) {\n return new TcbError(errObj);\n};\nexport function processReturn(throwOnCode, res) {\n if (throwOnCode === false) {\n return res;\n }\n throw E(__assign({}, res));\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 { ErrorCode, WhereFilterOpList, OrderDirectionList, FieldType } from './constant';\nimport { Util } from './util';\nimport { ERRORS } from './const/code';\nimport { E } from './utils/utils';\nimport { getType } from './utils/type';\nimport { SYMBOL_GEO_POINT } from './helper/symbol';\nvar validOptionsKeys = ['limit', 'offset', 'projection', 'order', 'multiple', 'timeout', 'raw'];\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.mustBeBoolean = function (param, bool) {\n if (typeof bool !== 'boolean') {\n throw new Error(param + ErrorCode.BooleanError);\n }\n return true;\n };\n Validate.isProjection = function (param, value) {\n if (getType(value) !== 'object') {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"\".concat(param, \" projection must be an object\") }));\n }\n for (var key in value) {\n var subValue = value[key];\n if (getType(subValue) === 'number') {\n if (subValue !== 0 && subValue !== 1) {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"if the value in projection is of number, it must be 0 or 1\" }));\n }\n }\n else if (getType(subValue) === 'object') {\n }\n else {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: 'invalid projection' }));\n }\n }\n return true;\n };\n Validate.isOrder = function (param, value) {\n if (getType(value) !== 'object') {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"\".concat(param, \" order must be an object\") }));\n }\n for (var key in value) {\n var subValue = value[key];\n if (subValue !== 1 && subValue !== -1) {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"order value must be 1 or -1\" }));\n }\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 Validate.isValidOptions = function (options) {\n if (options === void 0) { options = {}; }\n if (getType(options) !== 'object') {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"options must be an object\" }));\n }\n var keys = Object.keys(options);\n for (var index in keys) {\n if (validOptionsKeys.indexOf(keys[index]) < 0) {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"\".concat(keys[index], \" is invalid options key\") }));\n }\n }\n var _a = options, limit = _a.limit, offset = _a.offset, projection = _a.projection, order = _a.order;\n var multiple = options.multiple;\n if (limit !== undefined) {\n Validate.isInteger('limit', limit);\n }\n if (offset !== undefined) {\n Validate.isInteger('offset', offset);\n }\n if (projection !== undefined) {\n Validate.isProjection('projection', projection);\n }\n if (order !== undefined) {\n Validate.isOrder('order', order);\n }\n if (multiple !== undefined) {\n Validate.mustBeBoolean('multiple', multiple);\n }\n if (options.timeout !== undefined) {\n Validate.isInteger('timeout', options.timeout);\n }\n return true;\n };\n Validate.isValidAggregation = function (stage) {\n if (Object.keys(stage).length !== 1) {\n throw E(__assign(__assign({}, ERRORS.INVALID_PARAM), { message: \"aggregation stage must have one key\" }));\n }\n return true;\n };\n Validate.isCentersPhere = function (param) {\n if (Array.isArray(param) && param.length === 2) {\n if (getType(param[0]) === 'object' &&\n param[0]._internalType === SYMBOL_GEO_POINT &&\n typeof param[1] === 'number') {\n return true;\n }\n if (Array.isArray(param[0]) && param[0].length === 2) {\n var longitude = param[0][0];\n var latitude = param[0][1];\n Validate.isGeopoint('longitude', longitude);\n Validate.isGeopoint('latitude', latitude);\n if (typeof param[1] === 'number') {\n return true;\n }\n }\n }\n throw new Error(\"\".concat(ErrorCode.CentersPhereError));\n };\n return Validate;\n}());\nexport { Validate };\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 { 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","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';\nimport { Validate } from '../validate';\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, _c;\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 case QUERY_COMMANDS_LITERAL.NEQ:\n return _b = {},\n _b['$ne'] = this.operands[0],\n _b;\n default:\n return _c = {},\n _c['$' + this.operator] = this.operands[0],\n _c;\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) &&\n !(val.geometry instanceof Polygon) &&\n !Validate.isCentersPhere(val.centerSphere)) {\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_OBJECTID, 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 case SYMBOL_OBJECTID: {\n return val.parse();\n }\n default: {\n return val.toJSON ? val.toJSON() : val;\n }\n }\n }\n else if (isDate(val)) {\n return val;\n }\n else if (isRegExp(val)) {\n return {\n $regularExpression: {\n pattern: val.source,\n options: val.flags\n }\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), [item], false));\n });\n }\n else if (isObject(val)) {\n var rawRet = __assign({}, val);\n var finalRet = {};\n for (var key in rawRet) {\n if (visited.indexOf(rawRet[key]) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n if (rawRet[key] !== undefined) {\n finalRet[key] = serializeHelper(rawRet[key], __spreadArray(__spreadArray([], __read(visited), false), [rawRet[key]], false));\n }\n }\n return finalRet;\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) &&\n isNumber(ret.coordinates[0]) &&\n 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 === undefined) {\n delete cloned[key];\n continue;\n }\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), [key], false);\n var newVisited = __spreadArray(__spreadArray([], __read(visited), false), [value], 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';\nimport { stringifyByEJSON } from '../utils/utils';\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.encodeEJSON = function (query, raw) {\n var stringifier = new UpdateSerializer();\n return stringifyByEJSON(raw ? query : 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","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 { 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, getReqOpts, stringifyByEJSON, processReturn, withCallback } from './utils/utils';\nimport { ERRORS } from './const/code';\nimport { EJSON } from 'bson';\nvar DocumentReference = (function () {\n function DocumentReference(db, coll, apiOptions, docID, transactionId) {\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._transactionId = transactionId;\n this.request = Db.createRequest(this._db.config);\n this._apiOptions = apiOptions;\n }\n DocumentReference.prototype.create = function (data, callback) {\n return withCallback(this._create(data), callback);\n };\n DocumentReference.prototype._create = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var isBatch, params, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n isBatch = Array.isArray(data);\n if (!isBatch && this.id) {\n data['_id'] = this.id;\n }\n params = {\n collectionName: this._coll,\n data: isBatch\n ? data.map(function (item) { return stringifyByEJSON(serialize(item)); })\n : [stringifyByEJSON(serialize(data))],\n transactionId: this._transactionId\n };\n return [4, this.request.send('database.insertDocument', params, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n if (this._transactionId) {\n return [2, {\n inserted: 1,\n ok: 1,\n id: res.data.insertedIds[0],\n requestId: res.requestId\n }];\n }\n if (isBatch) {\n return [2, {\n ids: (res.data && res.data.insertedIds) || [],\n requestId: res.requestId\n }];\n }\n return [2, {\n id: res.data.insertedIds[0],\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.set = function (data, callback) {\n return withCallback(this._set(data), callback);\n };\n DocumentReference.prototype._set = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var hasOperator, checkMixed, param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.id) {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: 'docId不能为空' }))];\n }\n if (!data || typeof data !== 'object') {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '参数必需是非空对象' }))];\n }\n if (data.hasOwnProperty('_id')) {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '不能更新_id的值' }))];\n }\n hasOperator = false;\n 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 [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.DATABASE_REQUEST_FAILED), { message: 'update operator complicit' }))];\n }\n param = {\n collectionName: this._coll,\n queryType: QueryType.DOC,\n data: stringifyByEJSON(serialize(data)),\n transactionId: this._transactionId,\n multi: false,\n merge: false,\n upsert: true\n };\n if (this.id) {\n param['query'] = stringifyByEJSON({ _id: this.id });\n }\n return [4, this.request.send('database.modifyDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n if (this._transactionId) {\n return [2, {\n updated: res.data.updated,\n upserted: [{ _id: res.data.upsert_id }],\n requestId: res.requestId\n }];\n }\n return [2, {\n updated: res.data.updated,\n upsertedId: res.data.upsert_id,\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.update = function (data, callback) {\n return withCallback(this._update(data), callback);\n };\n DocumentReference.prototype._update = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var query, param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!data || typeof data !== 'object') {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '参数必需是非空对象' }))];\n }\n if (data.hasOwnProperty('_id')) {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '不能更新_id的值' }))];\n }\n query = stringifyByEJSON({ _id: this.id });\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n data: UpdateSerializer.encodeEJSON(data, this._apiOptions.raw || false),\n query: query,\n queryType: QueryType.DOC,\n multi: false,\n merge: true,\n upsert: false\n };\n return [4, this.request.send('database.modifyDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n updated: res.data.updated,\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.delete = function (callback) {\n return this.remove(callback);\n };\n DocumentReference.prototype.remove = function (callback) {\n return withCallback(this._remove(), callback);\n };\n DocumentReference.prototype._remove = function () {\n return __awaiter(this, void 0, void 0, function () {\n var query, param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n query = stringifyByEJSON({ _id: this.id });\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: query,\n queryType: QueryType.DOC,\n multi: false\n };\n return [4, this.request.send('database.removeDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n deleted: res.data.deleted,\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.get = function (callback) {\n return withCallback(this._get(), callback);\n };\n DocumentReference.prototype._get = function () {\n return __awaiter(this, void 0, void 0, function () {\n var query, projection, param, res, list, documents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n query = stringifyByEJSON({ _id: this.id });\n projection = this._apiOptions.projection;\n param = {\n collectionName: this._coll,\n query: query,\n transactionId: this._transactionId,\n queryType: QueryType.DOC,\n multi: false\n };\n if (projection) {\n param.projection = stringifyByEJSON(projection);\n }\n return [4, this.request.send('database.getDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n list = res.data.list.map(function (item) { return EJSON.parse(item); });\n documents = Util.formatResDocumentData(list);\n if (this._transactionId) {\n return [2, {\n data: documents[0] || null,\n requestId: res.requestId\n }];\n }\n return [2, {\n data: documents,\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.field = function (projection) {\n var transformProjection = {};\n for (var k in projection) {\n if (typeof projection[k] === 'boolean') {\n transformProjection[k] = projection[k] === true ? 1 : 0;\n }\n if (typeof projection[k] === 'number') {\n transformProjection[k] = projection[k] > 0 ? 1 : 0;\n }\n if (typeof projection[k] === 'object') {\n transformProjection[k] = projection[k];\n }\n }\n var newApiOption = __assign({}, this._apiOptions);\n newApiOption.projection = transformProjection;\n return new DocumentReference(this._db, this._coll, newApiOption, this.id, this._transactionId);\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, SYMBOL_GEO_POINT } from '../helper/symbol';\nimport { getType, isObject, isArray, isRegExp, isDate } from '../utils/type';\nimport { operatorToString } from '../operator-map';\nimport { flattenQueryObject, isConversionRequired, encodeInternalDataType } from './common';\nimport { stringifyByEJSON } from '../utils/utils';\nimport { Validate } from '../validate';\nvar QuerySerializer = (function () {\n function QuerySerializer() {\n }\n QuerySerializer.encode = function (query) {\n var encoder = new QueryEncoder();\n return encoder.encodeQuery(query);\n };\n QuerySerializer.encodeEJSON = function (query, raw) {\n var encoder = new QueryEncoder();\n return stringifyByEJSON(raw ? query : 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, _b, _c;\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 if (isRegExp(query)) {\n return _a = {}, _a[key] = this.encodeRegExp(query), _a;\n }\n else if (isDate(query)) {\n return _b = {}, _b[key] = encodeInternalDataType(query), _b;\n }\n else {\n return _c = {}, _c[key] = this.encodeQueryObject(query), _c;\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 $regularExpression: {\n pattern: query.source,\n options: query.flags\n }\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) { return _this.encodeQuery(oprand, query.fieldName); });\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, _k, _l;\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 if (options.centerSphere) {\n Validate.isCentersPhere(options.centerSphere);\n var centerSphere = options.centerSphere;\n if (centerSphere[0]._internalType === SYMBOL_GEO_POINT) {\n return _f = {},\n _f[query.fieldName] = {\n $geoWithin: {\n $centerSphere: [centerSphere[0].toJSON().coordinates, centerSphere[1]]\n }\n },\n _f;\n }\n return _g = {},\n _g[query.fieldName] = {\n $geoWithin: {\n $centerSphere: options.centerSphere\n }\n },\n _g;\n }\n return _h = {},\n _h[query.fieldName] = {\n $geoWithin: {\n $geometry: options.geometry.toJSON()\n }\n },\n _h;\n }\n case QUERY_COMMANDS_LITERAL.GEO_INTERSECTS: {\n var options = query.operands[0];\n return _j = {},\n _j[query.fieldName] = {\n $geoIntersects: {\n $geometry: options.geometry.toJSON()\n }\n },\n _j;\n }\n default: {\n return _k = {},\n _k[query.fieldName] = (_l = {},\n _l[$op] = encodeInternalDataType(query.operands[0]),\n _l),\n _k;\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};\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 { 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, getReqOpts, stringifyByEJSON, processReturn, withCallback } from './utils/utils';\nimport { ERRORS } from './const/code';\nimport { EJSON } from 'bson';\nvar Query = (function () {\n function Query(db, coll, fieldFilters, apiOptions, transactionId) {\n var _this = this;\n this.watch = function (options) {\n var ws = getWsInstance(_this._db);\n var _a = _this._apiOptions, limit = _a.limit, order = _a.order;\n return ws.watch(__assign(__assign({}, options), { envId: _this._db.config.env, collectionName: _this._coll, query: JSON.stringify(_this._fieldFilters), limit: limit, orderBy: order\n ? order.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._apiOptions = apiOptions || {};\n this._request = Db.createRequest(this._db.config);\n this._transactionId = transactionId;\n }\n Query.prototype.get = function (callback) {\n return withCallback(this._get(), callback);\n };\n Query.prototype._get = function () {\n return __awaiter(this, void 0, void 0, function () {\n var order, param, offset, limit, projection, res, list, documents, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n order = this._apiOptions.order;\n param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE,\n transactionId: this._transactionId\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n if (order) {\n param.order = stringifyByEJSON(order);\n }\n offset = this._apiOptions.offset;\n if (offset) {\n param.offset = offset;\n }\n limit = this._apiOptions.limit;\n if (limit) {\n param.limit = limit < 1000 ? limit : 1000;\n }\n else {\n param.limit = 100;\n }\n projection = this._apiOptions.projection;\n if (projection) {\n param.projection = stringifyByEJSON(projection);\n }\n return [4, this._request.send('database.getDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n list = res.data.list.map(function (item) { return EJSON.parse(item); });\n documents = Util.formatResDocumentData(list);\n result = {\n data: documents,\n requestId: res.requestId\n };\n if (res.total)\n result.total = res.total;\n if (res.limit)\n result.limit = res.limit;\n if (res.offset)\n result.offset = res.offset;\n return [2, result];\n }\n });\n });\n };\n Query.prototype.count = function (callback) {\n return withCallback(this._count(), callback);\n };\n Query.prototype._count = 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 queryType: QueryType.WHERE\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n return [4, this._request.send('database.calculateDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n requestId: res.requestId,\n total: res.data.total\n }];\n }\n });\n });\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.encodeEJSON(query, this._apiOptions.raw || false), this._apiOptions, this._transactionId);\n };\n Query.prototype.options = function (apiOptions) {\n Validate.isValidOptions(apiOptions);\n return new Query(this._db, this._coll, this._fieldFilters, apiOptions, this._transactionId);\n };\n Query.prototype.orderBy = function (fieldPath, directionStr) {\n var _a;\n Validate.isFieldPath(fieldPath);\n Validate.isFieldOrder(directionStr);\n var newOrder = (_a = {},\n _a[fieldPath] = directionStr === 'desc' ? -1 : 1,\n _a);\n var order = this._apiOptions.order || {};\n var newApiOption = Object.assign({}, this._apiOptions, {\n order: Object.assign({}, order, newOrder)\n });\n return new Query(this._db, this._coll, this._fieldFilters, newApiOption, this._transactionId);\n };\n Query.prototype.limit = function (limit) {\n Validate.isInteger('limit', limit);\n var newApiOption = __assign({}, this._apiOptions);\n newApiOption.limit = limit;\n return new Query(this._db, this._coll, this._fieldFilters, newApiOption, this._transactionId);\n };\n Query.prototype.skip = function (offset) {\n Validate.isInteger('offset', offset);\n var newApiOption = __assign({}, this._apiOptions);\n newApiOption.offset = offset;\n return new Query(this._db, this._coll, this._fieldFilters, newApiOption, this._transactionId);\n };\n Query.prototype.update = function (data, callback) {\n return withCallback(this._update(data), callback);\n };\n Query.prototype._update = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var multiple, multi, param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!data || typeof data !== 'object') {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '参数必需是非空对象' }))];\n }\n if (data.hasOwnProperty('_id')) {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '不能更新_id的值' }))];\n }\n multiple = this._apiOptions.multiple;\n multi = multiple === undefined ? true : multiple;\n param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE,\n multi: multi,\n merge: true,\n upsert: false,\n data: UpdateSerializer.encodeEJSON(data, this._apiOptions.raw || false)\n };\n if (this._transactionId) {\n param.transactionId = this._transactionId;\n }\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n return [4, this._request.send('database.modifyDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n requestId: res.requestId,\n updated: res.data.updated,\n upsertId: res.data.upsert_id\n }];\n }\n });\n });\n };\n Query.prototype.field = function (projection) {\n var transformProjection = {};\n for (var k in projection) {\n if (typeof projection[k] === 'boolean') {\n transformProjection[k] = projection[k] === true ? 1 : 0;\n }\n if (typeof projection[k] === 'number') {\n transformProjection[k] = projection[k] > 0 ? 1 : 0;\n }\n if (typeof projection[k] === 'object') {\n transformProjection[k] = projection[k];\n }\n }\n var newApiOption = __assign({}, this._apiOptions);\n newApiOption.projection = transformProjection;\n return new Query(this._db, this._coll, this._fieldFilters, newApiOption, this._transactionId);\n };\n Query.prototype.remove = function (callback) {\n return withCallback(this._remove(), callback);\n };\n Query.prototype._remove = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, offset, limit, projection, order, multiple, multi, param, res;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this._apiOptions, offset = _a.offset, limit = _a.limit, projection = _a.projection, order = _a.order;\n if (offset !== undefined ||\n limit !== undefined ||\n projection !== undefined ||\n order !== undefined) {\n console.warn('`offset`, `limit`, `projection`, `orderBy` are not supported in remove() operation');\n }\n multiple = this._apiOptions.multiple;\n multi = multiple === undefined ? true : multiple;\n param = {\n collectionName: this._coll,\n query: this._fieldFilters,\n queryType: QueryType.WHERE,\n multi: multi\n };\n if (this._transactionId) {\n param.transactionId = this._transactionId;\n }\n return [4, this._request.send('database.removeDocument', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _b.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n requestId: res.requestId,\n deleted: res.data.deleted\n }];\n }\n });\n });\n };\n Query.prototype.updateAndReturn = 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 return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '参数必需是非空对象' }))];\n }\n if (data.hasOwnProperty('_id')) {\n return [2, processReturn(this._db.config.throwOnCode, __assign(__assign({}, ERRORS.INVALID_PARAM), { message: '不能更新_id的值' }))];\n }\n param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE,\n data: UpdateSerializer.encodeEJSON(data, false)\n };\n if (this._transactionId) {\n param.transactionId = this._transactionId;\n }\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n return [4, this._request.send('database.modifyAndReturnDoc', param, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n return [2, {\n requestId: res.requestId,\n updated: res.data.updated,\n doc: res.data.doc && EJSON.parse(res.data.doc)\n }];\n }\n });\n });\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 { stringifyByEJSON } from './utils/utils';\nimport { getType } from './utils/type';\nimport { Validate } from './validate';\nimport { Point } from './geo/point';\nvar Aggregation = (function () {\n function Aggregation(db, collectionName, rawPipeline) {\n var _this = this;\n this._stages = [];\n if (db && collectionName) {\n this._db = db;\n this._request = Db.createRequest(this._db.config);\n this._collectionName = collectionName;\n if (rawPipeline && rawPipeline.length > 0) {\n rawPipeline.forEach(function (stage) {\n Validate.isValidAggregation(stage);\n var stageName = Object.keys(stage)[0];\n _this._pipe(stageName, stage[stageName], true);\n });\n }\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.aggregateDocuments', {\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: 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, raw) {\n if (raw === void 0) { raw = false; }\n var transformParam = '';\n if (getType(param) === 'object') {\n transformParam = stringifyByEJSON(param);\n }\n else {\n transformParam = JSON.stringify(param);\n }\n this._stages.push({\n stageKey: raw ? stage : \"$\".concat(stage),\n stageValue: transformParam\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})();\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 { DocumentReference } from './document';\nimport { Query } from './query';\nimport Aggregation from './aggregate';\nimport { serialize } from './serializer/datatype';\nimport { getReqOpts, stringifyByEJSON, withCallback } from './utils/utils';\nimport { Validate } from './validate';\nimport { isArray } from './utils/type';\nvar CollectionReference = (function (_super) {\n __extends(CollectionReference, _super);\n function CollectionReference(db, coll, apiOptions, transactionId) {\n var _this = _super.call(this, db, coll, '', apiOptions, transactionId) || this;\n if (transactionId) {\n _this._transactionId = transactionId;\n }\n return _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, this._apiOptions, docID, this._transactionId);\n };\n CollectionReference.prototype.add = function (data, callback) {\n return withCallback(this._add(data), callback);\n };\n CollectionReference.prototype._add = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var transformData, params, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n transformData = data;\n if (!isArray(data)) {\n transformData = [data];\n }\n transformData = transformData.map(function (item) {\n return stringifyByEJSON(serialize(item));\n });\n params = {\n collectionName: this._coll,\n data: transformData\n };\n if (this._transactionId) {\n params.transactionId = this._transactionId;\n }\n return [4, this._request.send('database.insertDocument', params, getReqOpts(this._apiOptions))];\n case 1:\n res = _a.sent();\n if (res.code) {\n return [2, res];\n }\n if (!isArray(data)) {\n if (this._transactionId) {\n return [2, {\n inserted: 1,\n ok: 1,\n id: res.data.insertedIds[0],\n requestId: res.requestId\n }];\n }\n return [2, {\n id: res.data.insertedIds[0],\n requestId: res.requestId\n }];\n }\n return [2, {\n ids: res.data.insertedIds,\n requestId: res.requestId\n }];\n }\n });\n });\n };\n CollectionReference.prototype.aggregate = function (rawPipeline) {\n if (rawPipeline === void 0) { rawPipeline = []; }\n return new Aggregation(this._db, this._coll, (this._apiOptions.raw || false) ? rawPipeline : []);\n };\n CollectionReference.prototype.options = function (apiOptions) {\n Validate.isValidOptions(apiOptions);\n return new CollectionReference(this._db, this._coll, apiOptions, this._transactionId);\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 () {\n if (arguments.length == 1)\n return new QueryCommand(QUERY_COMMANDS_LITERAL.MOD, [arguments[0]]);\n if (arguments.length == 2)\n return new QueryCommand(QUERY_COMMANDS_LITERAL.MOD, [[arguments[0], arguments[1]]]);\n return new QueryCommand(QUERY_COMMANDS_LITERAL.MOD, arguments);\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 values = {};\n var options = args[0];\n if (options.each !== undefined) {\n values['$each'] = options.each;\n }\n if (options.position !== undefined) {\n values['$position'] = options.position;\n }\n if (options.sort !== undefined) {\n values['$sort'] = options.sort;\n }\n if (options.slice !== undefined) {\n values['$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}());\nexport { AggregationOperator };\nvar ProjectionOperator = (function () {\n function ProjectionOperator(name, param) {\n this['$' + name] = param;\n }\n return ProjectionOperator;\n}());\nexport { ProjectionOperator };\nexport default Command;\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 $tcb_server_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","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.$regularExpression = {\n pattern: regexp || '',\n options: options || ''\n };\n }\n RegExp.prototype.parse = function () {\n return {\n $regularExpression: {\n pattern: this.$regularExpression.pattern,\n options: this.$regularExpression.options\n }\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","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._db, collName, {}, this._id);\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 { SYMBOL_OBJECTID } from '../helper/symbol';\nvar ObjectId = (function () {\n function ObjectId(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.id, id = _c === void 0 ? '' : _c;\n this.id = id;\n }\n Object.defineProperty(ObjectId.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_OBJECTID;\n },\n enumerable: false,\n configurable: true\n });\n ObjectId.prototype.parse = function () {\n return {\n $oid: this.id\n };\n };\n return ObjectId;\n}());\nexport { ObjectId };\nexport function ObjectIdConstructor(opt) {\n return new ObjectId(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};\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 * 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';\nimport { ObjectIdConstructor } from './ObjectId/index';\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.ObjectId = ObjectIdConstructor;\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 var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n if (data) {\n if (config.instance) {\n data.instance = config.instance;\n }\n if (config.database) {\n data.database = config.database;\n }\n }\n return originalSend.call.apply(originalSend, __spreadArray([this, action, data], __read(args), false));\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","let sdkName = '@cloudbase/js-sdk'\nexport function setSdkName(name: string) {\n sdkName = name\n}\nexport function getSdkName() {\n return sdkName\n}\n\nlet PROTOCOL = 'https:'\n\nexport function setProtocol(protocol: 'http:' | 'https:') {\n PROTOCOL = protocol\n}\n\nexport function getProtocol() {\n return PROTOCOL\n}\n// 是否为开发模式\nexport const IS_DEBUG_MODE = typeof process === 'undefined' || typeof process.env === 'undefined' ? false : process.env.NODE_ENV === 'development'\n// 问答社区链接\nexport const COMMUNITY_SITE_URL = 'https://support.qq.com/products/148793'\n","export const ERRORS = {\n INVALID_PARAMS: 'INVALID_PARAMS',\n INVALID_SYNTAX: 'INVALID_SYNTAX',\n INVALID_OPERATION: 'INVALID_OPERATION',\n OPERATION_FAIL: 'OPERATION_FAIL',\n NETWORK_ERROR: 'NETWORK_ERROR',\n UNKOWN_ERROR: 'UNKOWN_ERROR',\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"AbstractSDKRequest\"]: () => __WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__.AbstractSDKRequest, [\"AbstractStorage\"]: () => __WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__.AbstractStorage });","import { KV } from '@cloudbase/types'\nimport { getSdkName } from '../constants'\n\nexport function isArray(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Array]'\n}\nexport function isString(val: any): boolean {\n return typeof val === 'string'\n}\nexport function isUndefined(val: any): boolean {\n return typeof val === 'undefined'\n}\nexport function isPalinObject(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Object]'\n}\nexport function isNull(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object Null]'\n}\nexport function isInstanceOf(instance: any, construct: any): boolean {\n return instance instanceof construct\n}\nexport function isFormData(val: any): boolean {\n return Object.prototype.toString.call(val) === '[object FormData]'\n}\nexport function genSeqId(): string {\n return Math.random().toString(16)\n .slice(2)\n}\nexport function generateRequestId() {\n let d = new Date().getTime()\n let d2 = (Date?.now && Date.now() * 1000) || 0\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n let r = Math.random() * 16\n if (d > 0) {\n r = (d + r) % 16 | 0\n d = Math.floor(d / 16)\n } else {\n r = (d2 + r) % 16 | 0\n d2 = Math.floor(d2 / 16)\n }\n return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16)\n })\n}\nexport function formatUrl(PROTOCOL: string, url: string, query: KV<any> = {}): string {\n const urlHasQuery = /\\?/.test(url)\n let queryString = ''\n Object.keys(query).forEach((key) => {\n if (queryString === '') {\n !urlHasQuery && (url += '?')\n } else {\n queryString += '&'\n }\n queryString += `${key}=${encodeURIComponent(query[key])}`\n })\n url += queryString\n if (/^http(s)?:\\/\\//.test(url)) {\n return url\n }\n return `${PROTOCOL}${url}`\n}\n\nexport function toQueryString(query: KV<any> = {}) {\n const queryString = []\n Object.keys(query).forEach((key) => {\n queryString.push(`${key}=${encodeURIComponent(query[key])}`)\n })\n return queryString.join('&')\n}\n\nexport function getQuery(name: string, url?: string) {\n if (typeof window === 'undefined') {\n return false\n }\n // 参数:变量名,url为空则表从当前页面的url中取\n const u = url || decodeURIComponent(window.location.search)\n const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`)\n const r = u.substr(u.indexOf('?') + 1).match(reg)\n return r !== null && r !== undefined ? r[2] : ''\n}\n\nexport const getHash = function (name: string) {\n if (typeof window === 'undefined') {\n return ''\n }\n const matches = window.location.hash.match(new RegExp(`[#?&/]${name}=([^&#]*)`))\n return matches ? matches[1] : ''\n}\n\nexport function removeParam(key: string, sourceURL: string) {\n let rtn = sourceURL.split('?')[0]\n let param\n let params = []\n const queryString = sourceURL.indexOf('?') !== -1 ? sourceURL.split('?')[1] : ''\n if (queryString !== '') {\n params = queryString.split('&')\n for (let i = params.length - 1; i >= 0; i -= 1) {\n /* eslint-disable-next-line */\n param = params[i].split('=')[0]\n if (param === key) {\n params.splice(i, 1)\n }\n }\n rtn = `${rtn}?${params.join('&')}`\n }\n return rtn\n}\n\nexport function createPromiseCallback() {\n let cb: any = {}\n if (!Promise) {\n cb = () => {}\n cb.promise = {}\n\n const throwPromiseNotDefined = () => {\n throw new Error('Your Node runtime does support ES6 Promises. '\n + 'Set \"global.Promise\" to your preferred implementation of promises.',)\n }\n\n Object.defineProperty(cb.promise, 'then', { get: throwPromiseNotDefined })\n Object.defineProperty(cb.promise, 'catch', { get: throwPromiseNotDefined })\n return cb\n }\n\n const promise = new Promise((resolve, reject) => {\n cb = (err, data) => {\n if (err) return reject(err)\n return resolve(data)\n }\n })\n cb.promise = promise\n return cb\n}\n\nexport function execCallback(fn: Function | null | undefined, err: any, data = null) {\n if (fn && typeof fn === 'function') {\n return fn(err, data)\n }\n if (err) {\n throw err\n }\n return data\n}\n\nexport function printWarn(error: string, msg: string) {\n console.warn(`[${getSdkName()}][${error}]:${msg}`)\n}\n\nexport function printError(error: string, msg: string) {\n console.error({\n code: error,\n msg: `[${getSdkName()}][${error}]:${msg}`,\n })\n}\nexport function printInfo(error: string, msg: string) {\n console.log(`[${getSdkName()}][${error}]:${msg}`)\n}\nexport function throwError(error: string, msg: string) {\n // legacy v1 兼容路径(auth v1-compat 本地校验):message 保持已发布版本的 JSON-string 形状\n // (v1 错误处理范式 JSON.parse(e.message) 不受影响),额外挂 code 属性供新范式直访\n const err: any = new Error(JSON.stringify({\n code: error,\n msg: `[${getSdkName()}][${error}]:${msg}`,\n }),)\n err.code = error\n throw err\n}\n\n// ========== Cloudbase Error Factory ==========\nexport interface ICloudbaseErrorOptions {\n code: string\n msg: string\n requestId?: string\n [key: string]: any\n}\n\nexport type CloudbaseErrorFactory = (opts: ICloudbaseErrorOptions) => Error\n\n/**\n * 浏览器形态默认错误类:对齐 v3 已发布行为(实测 @cloudbase/js-sdk@3.8.2 网关业务错误\n * 抛 {code, message, requestId},`e.code` 直接可访问),同时保留 Error 特性\n * (instanceof / stack,是 v3 裸对象的超集)。\n * JSON.stringify(err) 的结果与 v3.8.2 裸对象逐字段一致。\n */\nexport class CloudbaseError extends Error {\n public readonly code: string\n public readonly message: string\n public readonly requestId: string\n\n public constructor(opts: ICloudbaseErrorOptions) {\n super(opts.msg || opts.message || '')\n this.code = opts.code || ''\n this.requestId = opts.requestId || ''\n // Error 构造器创建的 message 自有属性是不可枚举的,直接赋值会保留该属性描述符,\n // 导致 JSON.stringify(err) 丢失 message(v3.8.2 裸对象里 message 是可枚举的)\n Object.defineProperty(this, 'message', {\n value: opts.msg || opts.message || '',\n enumerable: true,\n writable: true,\n configurable: true,\n })\n }\n}\n\nconst defaultErrorFactory: CloudbaseErrorFactory = opts => new CloudbaseError(opts)\n\n/**\n * 创建错误对象。无全局状态:factory 由调用方通过 config.errorFactory 传入(per-instance),\n * 未传入时使用默认工厂(浏览器形态)。\n */\nexport function createCloudbaseError(opts: ICloudbaseErrorOptions, factory?: CloudbaseErrorFactory): Error {\n return (factory || defaultErrorFactory)(opts)\n}\n\n// ========== 统一 throw 开关 ==========\n\n/**\n * 解析是否抛错:只读 `config.throw`,默认 true。\n * `throwOnCode` 仅在 init 时作为别名被 canonicalize 到 `throw`,内部不再保留。\n * 该开关统一控制「服务端业务错误 + 本地校验」的抛/返回行为;\n * Supabase-like API(auth 新方法、storage.from())不受此开关影响。\n */\nexport function resolveThrow(config?: { throw?: boolean } | any): boolean {\n if (config && typeof config.throw === 'boolean') {\n return config.throw\n }\n return true\n}\n\n/**\n * 按 `resolveThrow` 决定抛错或返回 `{ code, message }`。\n * - throw=true:抛 `createCloudbaseError`\n * - throw=false:返回 `{ code, message, ...(requestId) }`\n */\nexport function maybeThrow(\n config: { throw?: boolean } | any,\n opts: { code: string; msg: string; requestId?: string },\n): any {\n if (resolveThrow(config)) {\n throw createCloudbaseError(opts, config?.errorFactory)\n }\n return { code: opts.code, message: opts.msg, ...(opts.requestId ? { requestId: opts.requestId } : {}) }\n}\n\n// ========== 网关响应归一化 ==========\n\n/**\n * 将网关响应的业务错误码/信息从 `data` 提升到顶层(若顶层缺失)。\n * 网关(gateWay)返回 `{ requestId, data: {...}, statusCode, ... }`,业务错误码在 `data.code` / `data.message`;\n * 消费方(database / storage 经典)统一用顶层 `res.code` 判断。\n *\n * 无副作用:需要提升时返回新对象,无需提升时原样返回入参。\n */\nexport function promoteGatewayError(res: any): any {\n if (res && typeof res === 'object' && res.data && typeof res.data === 'object') {\n const { code, message } = res.data\n if ((!res.code && code) || (!res.message && message)) {\n return {\n ...res,\n ...(!res.code && code ? { code } : {}),\n ...(!res.message && message ? { message } : {}),\n }\n }\n }\n return res\n}\n\nexport function errorToResult(e: any): { code: string; message: string; requestId?: string; [key: string]: any } {\n if (e instanceof Error && typeof e.message === 'string') {\n try {\n const parsed = JSON.parse(e.message)\n if (parsed && typeof parsed.code === 'string') {\n return {\n code: parsed.code,\n message: parsed.msg || parsed.message || '',\n requestId: parsed.requestId,\n }\n }\n } catch (_) {}\n }\n if (e && typeof e.code === 'string') {\n return { code: e.code, message: e.message || '', requestId: e.requestId }\n }\n return { code: 'UNKNOWN_ERROR', message: String(e?.message || e || '') }\n}\n\ninterface IPrintGroupLogOptions {\n title: string\n subtitle: string | object\n content: {\n type: 'info' | 'warn' | 'error'\n body: string | Error\n }[]\n printTrace?: boolean\n collapsed?: boolean\n}\nexport function printGroupLog(options: IPrintGroupLogOptions) {\n const { title, subtitle = '', content = [], printTrace = false, collapsed = false } = options\n if (collapsed) {\n (console.groupCollapsed || console.error)(title, subtitle)\n } else {\n (console.group || console.error)(title, subtitle)\n }\n for (const tip of content) {\n const { type, body } = tip\n switch (type) {\n case 'info':\n console.log(body)\n break\n case 'warn':\n console.warn(body)\n break\n case 'error':\n console.error(body)\n break\n }\n }\n if (printTrace) {\n (console.trace || console.log)('stack trace:')\n }\n console.groupEnd?.()\n}\n\nexport const sleep = (ms = 0) => new Promise(r => setTimeout(r, ms))\n\nexport function transformPhone(phoneNumber: string) {\n return `+86${phoneNumber}`\n}\n\nexport const parseQueryString = (queryString) => {\n queryString = queryString.replace(/^\\?/, '')\n const params = {}\n const pairs = queryString.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 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\n return params\n}\n\n// 解析URL参数\nexport function parseCaptcha(url) {\n let queryObj: any = {}\n const matched = url.match(/^(data:.*?)(\\?[^#\\s]*)?$/)\n if (matched) {\n // eslint-disable-next-line prefer-destructuring\n url = matched[1]\n const search = matched[2]\n if (search) {\n queryObj = parseQueryString(search)\n }\n }\n const { token, ...restQueryObj } = queryObj\n if (/^data:/.test(url) && !token) {\n return {\n error: 'invalid_argument',\n error_description: `invalid captcha data: ${url}`,\n }\n }\n if (!token) {\n return {\n error: 'unimplemented',\n error_description: 'need to impl captcha data',\n }\n }\n // 解析url得到的参数\n return {\n state: restQueryObj.state,\n token, // 验证码token\n captchaData: url, // 验证码base64图片\n }\n}\n","export * from './common'\nexport * from './errors'\n\nexport const OATUH_LOGINTYPE = 'constants'\n","import {\n SDKAdapterInterface,\n AbstractSDKRequest,\n IRequestOptions,\n ResponseObject,\n IUploadRequestOptions,\n IRequestConfig,\n IRequestMethod,\n IFetchOptions,\n} from '@cloudbase/adapter-interface'\nimport { isFormData, formatUrl, toQueryString } from '../../libs/util'\nimport { getProtocol } from '../../constants/common'\n\n/**\n * @class WebRequest\n */\nclass WebRequest extends AbstractSDKRequest {\n // 默认不限超时\n private readonly timeout: number\n // 超时提示文案\n private readonly timeoutMsg: string\n // 超时受限请求类型,默认所有请求均受限\n private readonly restrictedMethods: Array<IRequestMethod>\n constructor(config: IRequestConfig) {\n super()\n const { timeout, timeoutMsg, restrictedMethods } = config\n this.timeout = timeout || 0\n this.timeoutMsg = timeoutMsg || '请求超时'\n this.restrictedMethods = restrictedMethods || ['get', 'post', 'upload', 'download']\n }\n public get(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'get',\n },\n this.restrictedMethods.includes('get'),\n )\n }\n public post(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'post',\n },\n this.restrictedMethods.includes('post'),\n )\n }\n public put(options: IRequestOptions): Promise<ResponseObject> {\n return this.request({\n ...options,\n method: 'put',\n })\n }\n public upload(options: IUploadRequestOptions): Promise<ResponseObject> {\n const { data, file, name, method, headers = {} } = options\n const reqMethod = { post: 'post', put: 'put' }[method?.toLowerCase()] || 'put'\n // 上传方式为post时,需转换为FormData\n const formData = new FormData()\n if (reqMethod === 'post') {\n Object.keys(data).forEach((key) => {\n formData.append(key, data[key])\n })\n formData.append('key', name)\n formData.append('file', file)\n return this.request(\n {\n ...options,\n data: formData,\n method: reqMethod,\n },\n this.restrictedMethods.includes('upload'),\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 public async download(options: IRequestOptions): Promise<any> {\n try {\n const { data } = await this.get({\n ...options,\n headers: {}, // 下载资源请求不经过service,header清空\n responseType: 'blob',\n })\n const url = window.URL.createObjectURL(new Blob([data]))\n const fileName = decodeURIComponent(new URL(options.url).pathname.split('/').pop() || '')\n const link = document.createElement('a')\n\n link.href = url\n link.setAttribute('download', fileName)\n link.style.display = 'none'\n\n document.body.appendChild(link)\n link.click()\n // 回收内存\n window.URL.revokeObjectURL(url)\n document.body.removeChild(link)\n } catch (e) {}\n return new Promise((resolve) => {\n resolve({\n statusCode: 200,\n tempFilePath: options.url,\n })\n })\n }\n async fetch(options: IFetchOptions & { shouldThrowOnError?: boolean }): Promise<ResponseObject> {\n const abortController = new AbortController()\n const { url, enableAbort = false, stream = false, signal, timeout: _timeout, shouldThrowOnError = true } = options\n\n const timeout = _timeout ?? this.timeout\n\n // FIXME(内存泄漏): { once: true } 只在 abort 事件【触发后】才解绑监听器。\n // 如果请求正常完成、从未 abort,该监听器会一直残留在外部 signal 上。\n // 当调用方复用同一长生命周期 signal 反复发请求时,监听器仍会持续累积。\n // 根治方式:在请求结束(finally)时 removeEventListener 主动解绑,\n // 而不能仅依赖 { once: true }。此处暂仅记录,不改动逻辑。\n if (signal) {\n if (signal.aborted) abortController.abort()\n signal.addEventListener('abort', () => abortController.abort())\n }\n\n let timer = null\n if (enableAbort && timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n abortController.abort(new Error(this.timeoutMsg))\n }, timeout)\n }\n\n const res = await fetch(url, {\n ...options,\n signal: abortController.signal,\n })\n .then(async (response) => {\n clearTimeout(timer)\n if (shouldThrowOnError) {\n // 404 等等也会进 resolve,所以要再通过 ok 判断\n return response.ok ? response : Promise.reject(await response.json())\n }\n return response\n })\n .catch((x) => {\n clearTimeout(timer)\n // 传输级失败(网络中断、CORS 预检被拒、请求被 abort 等)时 fetch 会 reject,\n // 此时没有可解析的 Response。无论 shouldThrowOnError 取值都必须把真实错误抛出,\n // 否则 res 会变成 undefined,下方读取 res.headers 会抛出令人误解的\n // \"Cannot read properties of undefined (reading 'headers')\",掩盖真正的错误原因。\n return Promise.reject(x)\n })\n\n return {\n // eslint-disable-next-line no-nested-ternary\n data: stream ? res.body : res.headers.get('content-type')?.includes('application/json') ? res.json() : res.text(),\n statusCode: res.status,\n header: res.headers,\n // 透出原始 Response,便于上层按需 .blob() / .arrayBuffer() / 读取 body 流,避免二次包装。\n response: res,\n }\n }\n /**\n * @param {IRequestOptions} options\n * @param {boolean} enableAbort 是否超时中断请求\n */\n protected request(options: IRequestOptions, enableAbort = false): Promise<ResponseObject> {\n const method = String(options.method).toLowerCase() || 'get'\n return new Promise((resolve) => {\n const { url, headers = {}, data, responseType, withCredentials, body, onUploadProgress } = options\n const realUrl = formatUrl(getProtocol(), url, method === 'get' ? data : {})\n const ajax = new XMLHttpRequest()\n ajax.open(method, realUrl)\n responseType && (ajax.responseType = responseType)\n // 支持通过 AbortSignal 取消请求:已 abort 立即取消;否则用 { once: true }\n // 监听,触发后自动解绑,避免复用同一 AbortController 多次请求时累积监听器。\n //\n // FIXME(内存泄漏): { once: true } 只在 abort 事件【触发后】才解绑监听器。\n // 如果请求正常完成、从未 abort,该监听器会一直残留在外部 signal 上。\n // 当调用方复用同一长生命周期 signal 反复发请求时,监听器仍会持续累积。\n // 根治方式:在请求结束(readyState===4 / onloadend)时 removeEventListener\n // 主动解绑,而不能仅依赖 { once: true }。此处暂仅记录,不改动逻辑。\n const signal = (options as any).signal as AbortSignal | undefined\n if (signal) {\n if (signal.aborted) {\n ajax.abort()\n } else {\n signal.addEventListener('abort', () => ajax.abort(), { once: true })\n }\n }\n Object.keys(headers).forEach((key) => {\n ajax.setRequestHeader(key, headers[key])\n })\n let timer\n if (onUploadProgress) {\n ajax.upload.addEventListener('progress', onUploadProgress)\n }\n ajax.onreadystatechange = () => {\n const result: ResponseObject = {}\n if (ajax.readyState === 4) {\n const headers = ajax.getAllResponseHeaders()\n const arr = headers.trim().split(/[\\r\\n]+/)\n // Create a map of header names to values\n const headerMap = {}\n arr.forEach((line) => {\n const parts = line.split(': ')\n const header = parts.shift().toLowerCase()\n const value = parts.join(': ')\n headerMap[header] = value\n })\n result.header = headerMap\n result.statusCode = ajax.status\n try {\n // 上传post请求返回数据格式为xml,此处容错\n result.data = responseType === 'blob' ? ajax.response : JSON.parse(ajax.responseText)\n } catch (e) {\n result.data = responseType === 'blob' ? ajax.response : ajax.responseText\n }\n clearTimeout(timer)\n resolve(result)\n }\n }\n if (enableAbort && this.timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n ajax.abort()\n }, this.timeout)\n }\n // 处理 payload\n let payload\n if (isFormData(data)) {\n // FormData,不处理\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 // 其它情况\n payload = data ? JSON.stringify(data) : undefined\n }\n\n if (withCredentials) {\n ajax.withCredentials = true\n }\n ajax.send(payload)\n })\n }\n}\n\nfunction genAdapter() {\n const adapter: SDKAdapterInterface & { type?: 'default' | '' } = {\n type: 'default',\n root: window,\n reqClass: WebRequest,\n wsClass: WebSocket,\n localStorage,\n }\n return adapter\n}\n\nexport { genAdapter, WebRequest }\n","import { StorageInterface, AbstractStorage, SDKAdapterInterface } from '@cloudbase/adapter-interface'\nimport { ICloudbaseCache, ICacheConfig } from '@cloudbase/types/cache'\nimport { KV, Persistence, ICloudbasePlatformInfo } from '@cloudbase/types'\nimport { printWarn } from './util'\nimport { ERRORS, getSdkName } from '../constants'\n\n/**\n * persitence=none时登录态保存在内存中\n */\nclass TcbCacheObject extends AbstractStorage {\n private readonly root: any\n constructor(root: any) {\n super()\n this.root = root\n if (!root.tcbCacheObject) {\n root.tcbCacheObject = {}\n }\n }\n public setItem(key: string, value: any) {\n this.root.tcbCacheObject[key] = value\n }\n public getItem(key: string) {\n return this.root.tcbCacheObject[key]\n }\n public removeItem(key: string) {\n delete this.root.tcbCacheObject[key]\n }\n public clear() {\n delete this.root.tcbCacheObject\n }\n}\n/**\n * 工厂函数\n */\nfunction createStorage(persistence: Persistence, adapter: SDKAdapterInterface): StorageInterface {\n switch (persistence) {\n case 'local':\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n case 'none':\n return new TcbCacheObject(adapter.root)\n default:\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n }\n}\n\nexport class CloudbaseCache implements ICloudbaseCache {\n public keys: KV<string> = {}\n\n private persistenceTag: Persistence\n private platformInfo: ICloudbasePlatformInfo\n private storage: StorageInterface\n\n constructor(config: ICacheConfig) {\n const { persistence, platformInfo = {}, keys = {} } = config\n this.platformInfo = platformInfo\n if (!this.storage) {\n this.persistenceTag = this.platformInfo.adapter.primaryStorage || persistence\n this.storage = createStorage(this.persistenceTag, this.platformInfo.adapter)\n this.keys = keys\n }\n }\n /**\n * @getter storage模式-同步/异步\n */\n get mode() {\n return this.storage.mode || 'sync'\n }\n get persistence(): Persistence {\n return this.persistenceTag\n }\n\n public setStore(key: string, value: any, version?: any) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use setStoreAsync insteed')\n return\n }\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n throw new Error(JSON.stringify({\n code: ERRORS.OPERATION_FAIL,\n msg: `[${getSdkName()}][${ERRORS.OPERATION_FAIL}]setStore failed`,\n info: e,\n }))\n }\n\n return\n }\n public async setStoreAsync(key: string, value: any, version?: any) {\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n await this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n return\n }\n\n return\n }\n public getStore(key: string, version?: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use getStoreAsync insteed')\n return\n }\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public async getStoreAsync(key: string, version?: string) {\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = await this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public removeStore(key: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use removeStoreAsync insteed')\n return\n }\n this.storage.removeItem(key)\n }\n public async removeStoreAsync(key: string) {\n await this.storage.removeItem(key)\n }\n}\n","import { isString, isInstanceOf } from './util'\nimport { Listeners, ICloudbaseEventEmitter } from '@cloudbase/types/events'\n\n\n/**\n * @private\n * @function _addEventListener - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customeAddEventListener(name: string, listener: Function, listeners: Listeners) {\n listeners[name] = listeners[name] || []\n listeners[name].push(listener)\n}\n/**\n * @private\n * @function _removeEventListener - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customRemoveEventListener(name: string, listener: Function, listeners: Listeners) {\n if (listeners?.[name]) {\n const index = listeners[name].indexOf(listener)\n if (index !== -1) {\n listeners[name].splice(index, 1)\n }\n }\n}\ninterface IEvent {\n name: string;\n target: any;\n data: any;\n}\n/**\n * 自定义事件\n * @class CloudbaseEvent\n * @param {string} name - 类型\n * @param {any} data - 数据\n */\nexport class CloudbaseEvent implements IEvent {\n public readonly name: string\n public target: any\n public data: any\n\n constructor(name: string, data: any) {\n this.data = data || null\n this.name = name\n }\n}\n/**\n * 自定义错误事件\n * @class IErrorEvent\n * @extends CloudbaseEvent\n * @param {Error} error - 错误信息对象\n * @param {any} data - 数据\n */\nexport class IErrorEvent extends CloudbaseEvent {\n public readonly error: Error\n constructor(error: Error, data?: any) {\n super('error', { error, data })\n this.error = error\n }\n}\n\n/**\n * @class CloudbaseEventEmitter\n */\nexport class CloudbaseEventEmitter implements ICloudbaseEventEmitter {\n /**\n * @private\n * @readonly\n * @property {Listeners} listeners - 响应函数集合\n * @default `{}`\n */\n private readonly listeners: Listeners = {}\n\n /**\n * @public\n * @method on - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public on(name: string, listener: Function): this {\n customeAddEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method off - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public off(name: string, listener: Function): this {\n customRemoveEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method fire - 触发事件\n * @param {string|CloudbaseEvent} event - event\n * @return `this`\n */\n public fire(event: string | CloudbaseEvent, data?: any): this {\n // 打印错误信息\n if (isInstanceOf(event, IErrorEvent)) {\n console.error((event as IErrorEvent).error)\n return this\n }\n\n const ev: CloudbaseEvent = isString(event) ? new CloudbaseEvent(event as string, data || {}) : event as CloudbaseEvent\n\n const { name } = ev\n\n if (this.listens(name)) {\n ev.target = this\n\n const handlers = this.listeners[name] ? [...this.listeners[name]] : []\n for (const fn of handlers) {\n fn.call(this, ev)\n }\n }\n\n return this\n }\n\n /**\n * @private\n * @method listens - 判断是否监听了name事件\n * @param {string} name - event名称\n * @return `boolean`\n */\n private listens(name: string): boolean {\n return this.listeners[name] && this.listeners[name].length > 0\n }\n}\n\n\nconst eventEmitter = new CloudbaseEventEmitter()\n\nexport function addEventListener(event: string, callback: Function) {\n eventEmitter.on(event, callback)\n}\n\nexport function activateEvent(event: string, data: any = {}) {\n eventEmitter.fire(event, data)\n}\n\nexport function removeEventListener(event: string, callback: Function) {\n eventEmitter.off(event, callback)\n}\n","import { CloudbaseEventEmitter } from './events'\n\nexport const bus = new CloudbaseEventEmitter()\n\nexport const LANG_CHANGE_EVENT = 'lang_change'\n","import { printGroupLog } from '../libs/util'\nimport { IS_DEBUG_MODE } from '../constants'\n\ninterface ICatchErrorsDecoratorOptions {\n mode?: 'sync' | 'async';\n customInfo?: {\n className?: string;\n methodName?: string;\n };\n title?: string;\n messages?: string[];\n}\n// firefox的stack格式与chrome不同\nlet isFirefox = false\nif (typeof navigator !== 'undefined' && navigator.userAgent) {\n isFirefox = navigator.userAgent.indexOf('Firefox') !== -1\n}\n/**\n * decorate在stack中一般都特定的规范\n */\nconst REG_STACK_DECORATE = isFirefox\n ? /(\\.js\\/)?__decorate(\\$\\d+)?<@.*\\d$/\n : /(\\/\\w+\\.js\\.)?__decorate(\\$\\d+)?\\s*\\(.*\\)$/\nconst REG_STACK_LINK = /https?:\\/\\/.+:\\d*\\/.*\\.js:\\d+:\\d+/\n/**\n * debug模式强化日志信息\n * @param options\n */\nexport function catchErrorsDecorator(options: ICatchErrorsDecoratorOptions) {\n const { mode = 'async', customInfo = {}, title, messages = [] } = options\n\n return function (\n target: any,\n methodName: string,\n descriptor: TypedPropertyDescriptor<Function>\n ) {\n // 生产环境禁用\n if (!IS_DEBUG_MODE) {\n return\n }\n const className = customInfo.className || target.constructor.name\n const fnName = customInfo.methodName || methodName\n const fn = descriptor.value\n\n // 被decorator装饰的源码link\n // 在descriptor.value外部此处创建的stack层次可触达源码\n // 而descriptor.value内部有可能由于stack太深无法触达\n const sourceLink = getSourceLink(new Error())\n\n if (mode === 'sync') {\n descriptor.value = function (...args: any[]) {\n // 此处的stack作用主要是为了获取被decorator装饰的源码class和method名称\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n try {\n return fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = errMsg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.msg = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n } else {\n descriptor.value = async function (...args: any[]) {\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n\n try {\n return await fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = msg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.message = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n }\n }\n}\n\n/**\n * 在原始堆栈中查找装饰器条目并返回源码链接link\n * @param err\n */\nfunction getSourceLink(err: Error) {\n let sourceLink = ''\n const outterErrStacks = err.stack.split('\\n')\n const indexOfDecorator = outterErrStacks.findIndex(str => REG_STACK_DECORATE.test(str))\n\n if (indexOfDecorator !== -1) {\n const match = REG_STACK_LINK.exec(outterErrStacks[indexOfDecorator + 1] || '')\n\n sourceLink = match ? match[0] : ''\n }\n return sourceLink\n}\n\n/**\n * 在原始堆栈中查找装饰器条目,剔除其后的无用堆栈,并将链接替换为源码link\n * @param options\n */\nfunction getRewritedError(options: {\n err: Error;\n className: string;\n methodName: string;\n sourceLink: string;\n}) {\n const { err, className, methodName, sourceLink } = options\n // 找不到源码link返回null,后续逻辑将打印原堆栈信息\n if (!sourceLink) {\n return null\n }\n\n const innerErrStack = err.stack.split('\\n')\n const REG_STACK_INNER_METHOD = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value@.*\\d$/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]\\\\s*\\\\(.*\\\\)$`)\n const REG_STACK_INNER_METHOD_WITHOUT_LINK = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]`)\n const indexOfSource = innerErrStack.findIndex(str => REG_STACK_INNER_METHOD.test(str))\n let innerErr: Error\n if (indexOfSource !== -1) {\n // @ts-ignore\n const realErrStack = innerErrStack.filter((v, i) => i > indexOfSource)\n realErrStack.unshift(innerErrStack[indexOfSource]\n .replace(REG_STACK_INNER_METHOD_WITHOUT_LINK, `${className}.${methodName}`)\n .replace(REG_STACK_LINK, sourceLink))\n innerErr = new Error()\n innerErr.stack = `${isFirefox ? '@debugger' : 'Error'}\\n${realErrStack.join('\\n')}`\n }\n return innerErr\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_jwt_decode_b659f100__[\"default\"] });"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","_a","ErrorCode","Opeartor","QueryType","FieldType","OrderDirectionList","WhereFilterOpList","eq","lt","lte","gt","gte","extendStatics","__extends","d","b","setPrototypeOf","__proto__","Array","p","TypeError","String","__","this","constructor","create","_symbols","__internalMark__","InternalSymbol","_super","target","__mark__","for","i","len","length","instance","symbol","push","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","SYMBOL_OBJECTID","getType","x","toString","slice","toLowerCase","isObject","isNumber","isArray","isDate","isRegExp","isInternalObject","_internalType","LineString","points","concat","Error","forEach","point","Point","parse","type","coordinates","map","toJSON","validate","lineString","e_1","_b","s","iterator","m","next","done","__values","_c","e_1_1","error","return","isClosed","firstPoint","lastPoint","latitude","longitude","Polygon","lines","line","toReadableString","polygon","e_2","_d","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","_e","polygon_1","polygon_1_1","e_4_1","e_3_1","__read","n","r","e","ar","Util","formatResDocumentData","documents","document","formatField","keys","protoField","realValue","item","whichType","lng","lat","Date","$date","generateDocId","autoId","charAt","Math","floor","chars","random","ERRORS","code","message","external_bson_namespaceObject","y","EJSON","__WEBPACK_EXTERNAL_MODULE_bson__","__assign","assign","t","arguments","apply","withCallback","promise","callback","then","res","err","wsList","getWsInstance","db","Db","env","config","context","appConfig","docSizeLimit","realtimePingInterval","realtimePongWaitTimeout","request","getReqOpts","apiOptions","undefined","timeout","filterUndefined","stringifyByEJSON","params","relaxed","TcbError","_this","E","errObj","processReturn","throwOnCode","UPDATE_COMMANDS_LITERAL","validOptionsKeys","Validate","isGeopoint","degree","degreeAbs","abs","isInteger","param","num","Number","mustBeBoolean","bool","isProjection","subValue","isOrder","isFieldOrder","direction","isFieldPath","path","test","isOperator","op","isCollName","name","isDocID","docId","isValidOptions","options","index","indexOf","limit","offset","projection","order","multiple","isValidAggregation","stage","isCentersPhere","LOGIC_COMMANDS_LITERAL","UpdateCommand","operator","operands","fieldName","_setFieldName","isUpdateCommand","object","LogicCommand","isLogicCommand","query","isQueryCommand","operand","and","__expressions__","_i","expressions","from","unshift","AND","or","OR","QUERY_COMMANDS_LITERAL","QueryCommand","IN","NIN","NEQ","val","command","EQ","neq","GT","GTE","LT","LTE","in","list","nin","geoNear","geometry","maxDistance","minDistance","GEO_NEAR","geoWithin","centerSphere","GEO_WITHIN","geoIntersects","GEO_INTERSECTS","isComparisonCommand","OperatorMap","operatorToString","__spreadArray","to","pack","l","serialize","serializeHelper","visited","$regularExpression","pattern","source","flags","rawRet","finalRet","flatten","shouldPreserverObject","parents","cloned","flattenedChild","hasKeyNotCombined","childKey","flattenQueryObject","isConversionRequired","mergeConditionAfterEncode","condition","conditionKey","console","warn","encodeInternalDataType","serializeInternalDataType","UpdateSerializer","encode","encodeUpdate","encodeEJSON","raw","stringifier","encodeUpdateCommand","encodeUpdateObject","encodeArrayUpdateCommand","encodeFieldUpdateCommand","$op","_f","_g","_h","_j","_k","modifiers","$each","$position","flattened","$setCommand","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","result","__generator","body","f","g","_","label","sent","trys","ops","verb","throw","v","pop","DocumentReference","coll","docID","transactionId","watch","_db","envId","collectionName","_coll","JSON","stringify","_id","id","_transactionId","_apiOptions","data","_create","isBatch","send","inserted","ok","insertedIds","requestId","ids","set","_set","hasOperator","checkMixed","objs","queryType","multi","merge","upsert","updated","upserted","upsert_id","upsertedId","update","_update","delete","remove","_remove","deleted","_get","field","transformProjection","k","newApiOption","QuerySerializer","QueryEncoder","encodeQuery","encoder","encodeLogicCommand","encodeQueryCommand","encodeRegExp","encodeQueryObject","subqueries","oprand","operatorExpression","subquery","bind","encodeComparisonCommand","_l","$nearSphere","$geometry","$maxDistance","$minDistance","$geoWithin","$centerSphere","$geoIntersects","Query","fieldFilters","ws","_fieldFilters","orderBy","reduce","acc","cur","_request","total","count","_count","where","checkFlag","some","fieldPath","directionStr","newOrder","skip","upsertId","updateAndReturn","doc","Aggregation","rawPipeline","_stages","_collectionName","stageName","_pipe","end","stages","unwrap","stageKey","stageValue","transformParam","addFields","bucket","bucketAuto","distanceMultiplier","near","group","match","project","lookup","replaceRoot","sample","sort","sortByCount","unwind","aggregate","CollectionReference","add","_add","transformData","Command","all","elemMatch","exists","size","mod","nor","not","inc","mul","values","args","each","position","pull","pullAll","shift","__values__","addToSet","rename","bit","max","min","expr","$expr","jsonSchema","schema","$jsonSchema","text","isString","$search","search","$language","language","$caseSensitive","caseSensitive","$diacriticSensitive","diacriticSensitive","pipeline","AggregationOperator","ceil","divide","exp","ln","log","log10","multiply","pow","sqrt","subtract","trunc","arrayElemAt","arrayToObject","concatArrays","filter","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","split","strLenBytes","strLenCP","strcasecmp","substr","substrBytes","substrCP","toLower","toUpper","meta","avg","first","last","stdDevPop","stdDevSamp","sum","let","ProjectionOperator","ServerDate","$tcb_server_date","ServerDateConstructor","opt","RegExp","regexp","RegExpConstructor","Transaction","aborted","commited","inited","init","collection","collName","getTransactionId","getRequestMethod","commit","rollback","customRollbackRes","abortReason","startTransaction","transaction","runTransaction","times","callbackRes","error_1","throwWithRollback","ObjectId","$oid","ObjectIdConstructor","Geo","serverDate","logicCommand","updateCommand","queryCommand","createRequest","reqClass","originalSend","action","database","createCollection","adapter_interface_namespaceObject","adapter_interface_x","AbstractSDKRequest","__WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__","AbstractStorage","printWarn","msg","CloudbaseError","opts","defaultErrorFactory","createCloudbaseError","factory","RUNTIME","WebRequest","timeoutMsg","restrictedMethods","method","includes","post","put","upload","file","headers","reqMethod","formData","FormData","append","download","responseType","url","window","URL","createObjectURL","Blob","fileName","decodeURIComponent","pathname","link","createElement","href","setAttribute","style","display","appendChild","click","revokeObjectURL","removeChild","statusCode","tempFilePath","fetch","abortController","AbortController","enableAbort","stream","signal","_timeout","shouldThrowOnError","abort","addEventListener","timer","setTimeout","response","clearTimeout","json","catch","status","header","withCredentials","onUploadProgress","realUrl","PROTOCOL","urlHasQuery","queryString","encodeURIComponent","formatUrl","ajax","XMLHttpRequest","open","payload","once","setRequestHeader","onreadystatechange","readyState","arr","getAllResponseHeaders","trim","headerMap_1","parts","join","responseText","toQueryString","TcbCacheObject","root","tcbCacheObject","setItem","getItem","removeItem","clear","CloudbaseCache","persistence","platformInfo","storage","persistenceTag","adapter","primaryStorage","localStorage","createStorage","mode","setStore","version","content","info","setStoreAsync","getStore","process","tcb_token","getStoreAsync","removeStore","removeStoreAsync","CloudbaseEvent","IErrorEvent","CloudbaseEventEmitter","listeners","on","listener","customeAddEventListener","off","splice","customRemoveEventListener","fire","event","ev","listens","handlers_1","navigator","userAgent","external_jwt_decode_namespaceObject","external_jwt_decode_x","default","__WEBPACK_EXTERNAL_MODULE_jwt_decode_b659f100__","jwtDecode","gateWayFunc","filterRes","utils","flattenResData","safeParseEJSON","parseEJSONParam","parseEJSONValue","normalizeOrderParam","toDirection","isNaN","ret","items_1","entries","extractDocId","$eq","toLegacyRegExp","$regex","$options","parseWriteParam","buildQueryParams","stringValue","getUrlPrefix","customReqOpts","isQueryDoc","queryParams","gateWay","items","replaceMode","hasId","commands","cmd","request_id","normalized","returnDoc","component","entity","dbConfig","errorFactory","platform","runtime","Req","endPointMode","_fromApp","shouldThrow","authInstance","getAccessToken","wsClientClass","wsClass","NewDb","runCommands","cloudbase","registerComponent","registerDatabase","app"],"sourceRoot":""}
|