@cloudbase/js-sdk 3.6.7 → 3.6.8-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/dist/index.esm.js +1 -1
- package/app/dist/index.esm.js.map +1 -1
- package/app/dist/index.js +1 -1
- package/app/dist/index.js.map +1 -1
- package/app/dist/index.node.esm.js +1 -1
- package/app/dist/index.node.esm.js.map +1 -1
- package/app/dist/index.node.js +1 -1
- package/app/dist/index.node.js.map +1 -1
- package/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/database/dist/index.d.ts +3 -0
- package/database/dist/index.esm.js +2 -0
- package/database/dist/index.esm.js.map +1 -0
- package/database/dist/index.js +2 -0
- package/database/dist/index.js.map +1 -0
- 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.js +1 -1
- package/miniprogram_dist/index.js +1 -1
- package/miniprogram_dist/oauth/index.js +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
- package/types/package.json +1 -1
- package/utilities/package.json +2 -2
- package/database/dist/commonjs/aggregate.d.ts +0 -29
- package/database/dist/commonjs/aggregate.js +0 -156
- package/database/dist/commonjs/collection.d.ts +0 -9
- package/database/dist/commonjs/collection.js +0 -49
- package/database/dist/commonjs/command.d.ts +0 -175
- package/database/dist/commonjs/command.js +0 -299
- package/database/dist/commonjs/commands/logic.d.ts +0 -24
- package/database/dist/commonjs/commands/logic.js +0 -89
- package/database/dist/commonjs/commands/query.d.ts +0 -68
- package/database/dist/commonjs/commands/query.js +0 -160
- package/database/dist/commonjs/commands/update.d.ts +0 -29
- package/database/dist/commonjs/commands/update.js +0 -51
- package/database/dist/commonjs/config/app.config.d.ts +0 -6
- package/database/dist/commonjs/config/app.config.js +0 -7
- package/database/dist/commonjs/config/error.config.d.ts +0 -3
- package/database/dist/commonjs/config/error.config.js +0 -16
- package/database/dist/commonjs/const/code.d.ts +0 -30
- package/database/dist/commonjs/const/code.js +0 -33
- package/database/dist/commonjs/constant.d.ts +0 -51
- package/database/dist/commonjs/constant.js +0 -75
- package/database/dist/commonjs/document.d.ts +0 -11
- package/database/dist/commonjs/document.js +0 -260
- package/database/dist/commonjs/geo/index.d.ts +0 -6
- package/database/dist/commonjs/geo/index.js +0 -22
- package/database/dist/commonjs/geo/interface.d.ts +0 -24
- package/database/dist/commonjs/geo/interface.js +0 -2
- package/database/dist/commonjs/geo/lineString.d.ts +0 -19
- package/database/dist/commonjs/geo/lineString.js +0 -86
- package/database/dist/commonjs/geo/multiLineString.d.ts +0 -18
- package/database/dist/commonjs/geo/multiLineString.js +0 -95
- package/database/dist/commonjs/geo/multiPoint.d.ts +0 -18
- package/database/dist/commonjs/geo/multiPoint.js +0 -79
- package/database/dist/commonjs/geo/multiPolygon.d.ts +0 -18
- package/database/dist/commonjs/geo/multiPolygon.js +0 -122
- package/database/dist/commonjs/geo/point.d.ts +0 -19
- package/database/dist/commonjs/geo/point.js +0 -50
- package/database/dist/commonjs/geo/polygon.d.ts +0 -19
- package/database/dist/commonjs/geo/polygon.js +0 -109
- package/database/dist/commonjs/helper/symbol.d.ts +0 -14
- package/database/dist/commonjs/helper/symbol.js +0 -31
- package/database/dist/commonjs/index.d.ts +0 -40
- package/database/dist/commonjs/index.js +0 -61
- package/database/dist/commonjs/lib/util.d.ts +0 -1
- package/database/dist/commonjs/lib/util.js +0 -26
- package/database/dist/commonjs/operator-map.d.ts +0 -4
- package/database/dist/commonjs/operator-map.js +0 -24
- package/database/dist/commonjs/query.d.ts +0 -22
- package/database/dist/commonjs/query.js +0 -252
- package/database/dist/commonjs/regexp/index.d.ts +0 -14
- package/database/dist/commonjs/regexp/index.js +0 -33
- package/database/dist/commonjs/serializer/common.d.ts +0 -11
- package/database/dist/commonjs/serializer/common.js +0 -127
- package/database/dist/commonjs/serializer/datatype.d.ts +0 -7
- package/database/dist/commonjs/serializer/datatype.js +0 -132
- package/database/dist/commonjs/serializer/query.d.ts +0 -7
- package/database/dist/commonjs/serializer/query.js +0 -232
- package/database/dist/commonjs/serializer/update.d.ts +0 -15
- package/database/dist/commonjs/serializer/update.js +0 -142
- package/database/dist/commonjs/serverDate/index.d.ts +0 -13
- package/database/dist/commonjs/serverDate/index.js +0 -30
- package/database/dist/commonjs/transaction/collection.d.ts +0 -7
- package/database/dist/commonjs/transaction/collection.js +0 -49
- package/database/dist/commonjs/transaction/document.d.ts +0 -27
- package/database/dist/commonjs/transaction/document.js +0 -205
- package/database/dist/commonjs/transaction/index.d.ts +0 -30
- package/database/dist/commonjs/transaction/index.js +0 -215
- package/database/dist/commonjs/transaction/query.d.ts +0 -43
- package/database/dist/commonjs/transaction/query.js +0 -261
- package/database/dist/commonjs/typings/index.d.ts +0 -40
- package/database/dist/commonjs/typings/index.js +0 -2
- package/database/dist/commonjs/typings/realtime.d.ts +0 -219
- package/database/dist/commonjs/typings/realtime.js +0 -2
- package/database/dist/commonjs/util.d.ts +0 -9
- package/database/dist/commonjs/util.js +0 -145
- package/database/dist/commonjs/utils/error.d.ts +0 -38
- package/database/dist/commonjs/utils/error.js +0 -91
- package/database/dist/commonjs/utils/msg.d.ts +0 -0
- package/database/dist/commonjs/utils/msg.js +0 -0
- package/database/dist/commonjs/utils/symbol.d.ts +0 -8
- package/database/dist/commonjs/utils/symbol.js +0 -58
- package/database/dist/commonjs/utils/type.d.ts +0 -13
- package/database/dist/commonjs/utils/type.js +0 -34
- package/database/dist/commonjs/utils/utils.d.ts +0 -4
- package/database/dist/commonjs/utils/utils.js +0 -39
- package/database/dist/commonjs/validate.d.ts +0 -1
- package/database/dist/commonjs/validate.js +0 -60
- package/database/dist/esm/aggregate.d.ts +0 -29
- package/database/dist/esm/aggregate.js +0 -154
- package/database/dist/esm/collection.d.ts +0 -9
- package/database/dist/esm/collection.js +0 -46
- package/database/dist/esm/command.d.ts +0 -175
- package/database/dist/esm/command.js +0 -296
- package/database/dist/esm/commands/logic.d.ts +0 -24
- package/database/dist/esm/commands/logic.js +0 -84
- package/database/dist/esm/commands/query.d.ts +0 -68
- package/database/dist/esm/commands/query.js +0 -154
- package/database/dist/esm/commands/update.d.ts +0 -29
- package/database/dist/esm/commands/update.js +0 -46
- package/database/dist/esm/config/app.config.d.ts +0 -6
- package/database/dist/esm/config/app.config.js +0 -5
- package/database/dist/esm/config/error.config.d.ts +0 -3
- package/database/dist/esm/config/error.config.js +0 -13
- package/database/dist/esm/const/code.d.ts +0 -30
- package/database/dist/esm/const/code.js +0 -30
- package/database/dist/esm/constant.d.ts +0 -51
- package/database/dist/esm/constant.js +0 -65
- package/database/dist/esm/document.d.ts +0 -11
- package/database/dist/esm/document.js +0 -257
- package/database/dist/esm/geo/index.d.ts +0 -6
- package/database/dist/esm/geo/index.js +0 -6
- package/database/dist/esm/geo/interface.d.ts +0 -24
- package/database/dist/esm/geo/interface.js +0 -1
- package/database/dist/esm/geo/lineString.d.ts +0 -19
- package/database/dist/esm/geo/lineString.js +0 -83
- package/database/dist/esm/geo/multiLineString.d.ts +0 -18
- package/database/dist/esm/geo/multiLineString.js +0 -92
- package/database/dist/esm/geo/multiPoint.d.ts +0 -18
- package/database/dist/esm/geo/multiPoint.js +0 -76
- package/database/dist/esm/geo/multiPolygon.d.ts +0 -18
- package/database/dist/esm/geo/multiPolygon.js +0 -119
- package/database/dist/esm/geo/point.d.ts +0 -19
- package/database/dist/esm/geo/point.js +0 -47
- package/database/dist/esm/geo/polygon.d.ts +0 -19
- package/database/dist/esm/geo/polygon.js +0 -106
- package/database/dist/esm/helper/symbol.d.ts +0 -14
- package/database/dist/esm/helper/symbol.js +0 -14
- package/database/dist/esm/index.d.ts +0 -40
- package/database/dist/esm/index.js +0 -55
- package/database/dist/esm/lib/util.d.ts +0 -1
- package/database/dist/esm/lib/util.js +0 -22
- package/database/dist/esm/operator-map.d.ts +0 -4
- package/database/dist/esm/operator-map.js +0 -20
- package/database/dist/esm/query.d.ts +0 -22
- package/database/dist/esm/query.js +0 -249
- package/database/dist/esm/regexp/index.d.ts +0 -14
- package/database/dist/esm/regexp/index.js +0 -29
- package/database/dist/esm/serializer/common.d.ts +0 -11
- package/database/dist/esm/serializer/common.js +0 -118
- package/database/dist/esm/serializer/datatype.d.ts +0 -7
- package/database/dist/esm/serializer/datatype.js +0 -127
- package/database/dist/esm/serializer/query.d.ts +0 -7
- package/database/dist/esm/serializer/query.js +0 -229
- package/database/dist/esm/serializer/update.d.ts +0 -15
- package/database/dist/esm/serializer/update.js +0 -139
- package/database/dist/esm/serverDate/index.d.ts +0 -13
- package/database/dist/esm/serverDate/index.js +0 -26
- package/database/dist/esm/transaction/collection.d.ts +0 -7
- package/database/dist/esm/transaction/collection.js +0 -46
- package/database/dist/esm/transaction/document.d.ts +0 -27
- package/database/dist/esm/transaction/document.js +0 -202
- package/database/dist/esm/transaction/index.d.ts +0 -30
- package/database/dist/esm/transaction/index.js +0 -210
- package/database/dist/esm/transaction/query.d.ts +0 -43
- package/database/dist/esm/transaction/query.js +0 -258
- package/database/dist/esm/typings/index.d.ts +0 -40
- package/database/dist/esm/typings/index.js +0 -1
- package/database/dist/esm/typings/realtime.d.ts +0 -219
- package/database/dist/esm/typings/realtime.js +0 -1
- package/database/dist/esm/util.d.ts +0 -9
- package/database/dist/esm/util.js +0 -142
- package/database/dist/esm/utils/error.d.ts +0 -38
- package/database/dist/esm/utils/error.js +0 -84
- package/database/dist/esm/utils/msg.d.ts +0 -0
- package/database/dist/esm/utils/msg.js +0 -0
- package/database/dist/esm/utils/symbol.d.ts +0 -8
- package/database/dist/esm/utils/symbol.js +0 -55
- package/database/dist/esm/utils/type.d.ts +0 -13
- package/database/dist/esm/utils/type.js +0 -20
- package/database/dist/esm/utils/utils.d.ts +0 -4
- package/database/dist/esm/utils/utils.js +0 -33
- package/database/dist/esm/validate.d.ts +0 -1
- package/database/dist/esm/validate.js +0 -57
|
@@ -0,0 +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/serverDate/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/util.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/update.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/validate.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/geo/point.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/lib/util.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/logic.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/commands/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/operator-map.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/datatype.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/common.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/update.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/utils/utils.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/document.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/serializer/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/query.js","webpack://@cloudbase/js-sdk/external module \"bson\"","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/aggregate.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/collection.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/command.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/regexp/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/const/code.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/document.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/query.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/collection.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/transaction/index.js","webpack://@cloudbase/js-sdk/../node_modules/@cloudbase/database/dist/esm/index.js","webpack://@cloudbase/js-sdk/index.ts/"],"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[\"QueryParamTypeError\"] = \"\\u67E5\\u8BE2\\u53C2\\u6570\\u5FC5\\u987B\\u4E3A\\u5BF9\\u8C61\";\n ErrorCode[\"QueryParamValueError\"] = \"\\u67E5\\u8BE2\\u53C2\\u6570\\u5BF9\\u8C61\\u503C\\u4E0D\\u80FD\\u5747\\u4E3Aundefined\";\n})(ErrorCode || (ErrorCode = {}));\nvar FieldType = {\n String: 'String',\n Number: 'Number',\n Object: 'Object',\n Array: 'Array',\n Boolean: 'Boolean',\n Null: 'Null',\n GeoPoint: 'GeoPoint',\n GeoLineString: 'GeoLineString',\n GeoPolygon: 'GeoPolygon',\n GeoMultiPoint: 'GeoMultiPoint',\n GeoMultiLineString: 'GeoMultiLineString',\n GeoMultiPolygon: 'GeoMultiPolygon',\n Timestamp: 'Date',\n Command: 'Command',\n ServerDate: 'ServerDate',\n BsonDate: 'BsonDate'\n};\nvar OrderDirectionList = ['desc', 'asc'];\nvar WhereFilterOpList = ['<', '<=', '==', '>=', '>'];\nvar Opeartor;\n(function (Opeartor) {\n Opeartor[\"lt\"] = \"<\";\n Opeartor[\"gt\"] = \">\";\n Opeartor[\"lte\"] = \"<=\";\n Opeartor[\"gte\"] = \">=\";\n Opeartor[\"eq\"] = \"==\";\n})(Opeartor || (Opeartor = {}));\nvar OperatorMap = (_a = {},\n _a[Opeartor.eq] = '$eq',\n _a[Opeartor.lt] = '$lt',\n _a[Opeartor.lte] = '$lte',\n _a[Opeartor.gt] = '$gt',\n _a[Opeartor.gte] = '$gte',\n _a);\nvar UpdateOperatorList = [\n '$set',\n '$inc',\n '$mul',\n '$unset',\n '$push',\n '$pop',\n '$unshift',\n '$shift',\n '$currentDate',\n '$each',\n '$position'\n];\nvar QueryType;\n(function (QueryType) {\n QueryType[\"WHERE\"] = \"WHERE\";\n QueryType[\"DOC\"] = \"DOC\";\n})(QueryType || (QueryType = {}));\nexport { ErrorCode, FieldType, WhereFilterOpList, Opeartor, OperatorMap, OrderDirectionList, UpdateOperatorList, QueryType };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _symbols = [];\nvar __internalMark__ = {};\nvar HiddenSymbol = (function () {\n function HiddenSymbol(target) {\n Object.defineProperties(this, {\n target: {\n enumerable: false,\n writable: false,\n configurable: false,\n value: target,\n },\n });\n }\n return HiddenSymbol;\n}());\nvar InternalSymbol = (function (_super) {\n __extends(InternalSymbol, _super);\n function InternalSymbol(target, __mark__) {\n if (__mark__ !== __internalMark__) {\n throw new TypeError('InternalSymbol cannot be constructed with new operator');\n }\n return _super.call(this, target) || this;\n }\n InternalSymbol.for = function (target) {\n for (var i = 0, len = _symbols.length; i < len; i++) {\n if (_symbols[i].target === target) {\n return _symbols[i].instance;\n }\n }\n var symbol = new InternalSymbol(target, __internalMark__);\n _symbols.push({\n target: target,\n instance: symbol,\n });\n return symbol;\n };\n return InternalSymbol;\n}(HiddenSymbol));\nexport { InternalSymbol };\nexport default InternalSymbol;\n","import InternalSymbol from '../utils/symbol';\nexport * from '../utils/symbol';\nexport var SYMBOL_UNSET_FIELD_NAME = InternalSymbol.for('UNSET_FIELD_NAME');\nexport var SYMBOL_UPDATE_COMMAND = InternalSymbol.for('UPDATE_COMMAND');\nexport var SYMBOL_QUERY_COMMAND = InternalSymbol.for('QUERY_COMMAND');\nexport var SYMBOL_LOGIC_COMMAND = InternalSymbol.for('LOGIC_COMMAND');\nexport var SYMBOL_GEO_POINT = InternalSymbol.for('GEO_POINT');\nexport var SYMBOL_GEO_LINE_STRING = InternalSymbol.for('SYMBOL_GEO_LINE_STRING');\nexport var SYMBOL_GEO_POLYGON = InternalSymbol.for('SYMBOL_GEO_POLYGON');\nexport var SYMBOL_GEO_MULTI_POINT = InternalSymbol.for('SYMBOL_GEO_MULTI_POINT');\nexport var SYMBOL_GEO_MULTI_LINE_STRING = InternalSymbol.for('SYMBOL_GEO_MULTI_LINE_STRING');\nexport var SYMBOL_GEO_MULTI_POLYGON = InternalSymbol.for('SYMBOL_GEO_MULTI_POLYGON');\nexport var SYMBOL_SERVER_DATE = InternalSymbol.for('SERVER_DATE');\nexport var SYMBOL_REGEXP = InternalSymbol.for('REGEXP');\n","import { InternalSymbol } from './symbol';\nexport var getType = function (x) { return Object.prototype.toString.call(x).slice(8, -1).toLowerCase(); };\nexport var isObject = function (x) { return getType(x) === 'object'; };\nexport var isString = function (x) { return getType(x) === 'string'; };\nexport var isNumber = function (x) { return getType(x) === 'number'; };\nexport var isPromise = function (x) { return getType(x) === 'promise'; };\nexport var isFunction = function (x) { return typeof x === 'function'; };\nexport var isArray = function (x) { return Array.isArray(x); };\nexport var isDate = function (x) { return getType(x) === 'date'; };\nexport var isRegExp = function (x) { return getType(x) === 'regexp'; };\nexport var isInternalObject = function (x) { return x && (x._internalType instanceof InternalSymbol); };\nexport var isPlainObject = function (obj) {\n if (typeof obj !== 'object' || obj === null)\n return false;\n var proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto;\n};\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_LINE_STRING } from '../helper/symbol';\nimport { Point } from './point';\nimport { isArray, isNumber } from '../utils/type';\nvar LineString = (function () {\n function LineString(points) {\n if (!isArray(points)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof points));\n }\n if (points.length < 2) {\n throw new Error('\"points\" must contain 2 points at least');\n }\n points.forEach(function (point) {\n if (!(point instanceof Point)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof point, \"[]\"));\n }\n });\n this.points = points;\n }\n LineString.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'LineString',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n },\n _a;\n };\n LineString.prototype.toJSON = function () {\n return {\n type: 'LineString',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n };\n };\n LineString.validate = function (lineString) {\n var e_1, _a;\n if (lineString.type !== 'LineString' || !isArray(lineString.coordinates)) {\n return false;\n }\n try {\n for (var _b = __values(lineString.coordinates), _c = _b.next(); !_c.done; _c = _b.next()) {\n var point = _c.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n LineString.isClosed = function (lineString) {\n var firstPoint = lineString.points[0];\n var lastPoint = lineString.points[lineString.points.length - 1];\n if (firstPoint.latitude === lastPoint.latitude && firstPoint.longitude === lastPoint.longitude) {\n return true;\n }\n };\n Object.defineProperty(LineString.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_LINE_STRING;\n },\n enumerable: false,\n configurable: true\n });\n return LineString;\n}());\nexport { LineString };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_MULTI_POLYGON } from '../helper/symbol';\nimport { isArray, isNumber } from '../utils/type';\nimport { LineString } from './lineString';\nvar Polygon = (function () {\n function Polygon(lines) {\n if (!isArray(lines)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof lines));\n }\n if (lines.length === 0) {\n throw new Error('Polygon must contain 1 linestring at least');\n }\n lines.forEach(function (line) {\n if (!(line instanceof LineString)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof line, \"[]\"));\n }\n if (!LineString.isClosed(line)) {\n throw new Error(\"LineString \".concat(line.points.map(function (p) { return p.toReadableString(); }), \" is not a closed cycle\"));\n }\n });\n this.lines = lines;\n }\n Polygon.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'Polygon',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n },\n _a;\n };\n Polygon.prototype.toJSON = function () {\n return {\n type: 'Polygon',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n };\n };\n Polygon.validate = function (polygon) {\n var e_1, _a, e_2, _b;\n if (polygon.type !== 'Polygon' || !isArray(polygon.coordinates)) {\n return false;\n }\n try {\n for (var _c = __values(polygon.coordinates), _d = _c.next(); !_d.done; _d = _c.next()) {\n var line = _d.value;\n if (!this.isCloseLineString(line)) {\n return false;\n }\n try {\n for (var line_1 = (e_2 = void 0, __values(line)), line_1_1 = line_1.next(); !line_1_1.done; line_1_1 = line_1.next()) {\n var point = line_1_1.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (line_1_1 && !line_1_1.done && (_b = line_1.return)) _b.call(line_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n Polygon.isCloseLineString = function (lineString) {\n var firstPoint = lineString[0];\n var lastPoint = lineString[lineString.length - 1];\n if (firstPoint[0] !== lastPoint[0] || firstPoint[1] !== lastPoint[1]) {\n return false;\n }\n return true;\n };\n Object.defineProperty(Polygon.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_MULTI_POLYGON;\n },\n enumerable: false,\n configurable: true\n });\n return Polygon;\n}());\nexport { Polygon };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_MULTI_POINT } from '../helper/symbol';\nimport { Point } from './point';\nimport { isArray, isNumber } from '../utils/type';\nvar MultiPoint = (function () {\n function MultiPoint(points) {\n if (!isArray(points)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof points));\n }\n if (points.length === 0) {\n throw new Error('\"points\" must contain 1 point at least');\n }\n points.forEach(function (point) {\n if (!(point instanceof Point)) {\n throw new TypeError(\"\\\"points\\\" must be of type Point[]. Received type \".concat(typeof point, \"[]\"));\n }\n });\n this.points = points;\n }\n MultiPoint.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'MultiPoint',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n },\n _a;\n };\n MultiPoint.prototype.toJSON = function () {\n return {\n type: 'MultiPoint',\n coordinates: this.points.map(function (point) { return point.toJSON().coordinates; })\n };\n };\n MultiPoint.validate = function (multiPoint) {\n var e_1, _a;\n if (multiPoint.type !== 'MultiPoint' || !isArray(multiPoint.coordinates)) {\n return false;\n }\n try {\n for (var _b = __values(multiPoint.coordinates), _c = _b.next(); !_c.done; _c = _b.next()) {\n var point = _c.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n Object.defineProperty(MultiPoint.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_MULTI_POINT;\n },\n enumerable: false,\n configurable: true\n });\n return MultiPoint;\n}());\nexport { MultiPoint };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_MULTI_LINE_STRING } from '../helper/symbol';\nimport { isArray, isNumber } from '../utils/type';\nimport { LineString } from './lineString';\nvar MultiLineString = (function () {\n function MultiLineString(lines) {\n if (!isArray(lines)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof lines));\n }\n if (lines.length === 0) {\n throw new Error('Polygon must contain 1 linestring at least');\n }\n lines.forEach(function (line) {\n if (!(line instanceof LineString)) {\n throw new TypeError(\"\\\"lines\\\" must be of type LineString[]. Received type \".concat(typeof line, \"[]\"));\n }\n });\n this.lines = lines;\n }\n MultiLineString.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'MultiLineString',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n },\n _a;\n };\n MultiLineString.prototype.toJSON = function () {\n return {\n type: 'MultiLineString',\n coordinates: this.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n })\n };\n };\n MultiLineString.validate = function (multiLineString) {\n var e_1, _a, e_2, _b;\n if (multiLineString.type !== 'MultiLineString' || !isArray(multiLineString.coordinates)) {\n return false;\n }\n try {\n for (var _c = __values(multiLineString.coordinates), _d = _c.next(); !_d.done; _d = _c.next()) {\n var line = _d.value;\n try {\n for (var line_1 = (e_2 = void 0, __values(line)), line_1_1 = line_1.next(); !line_1_1.done; line_1_1 = line_1.next()) {\n var point = line_1_1.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (line_1_1 && !line_1_1.done && (_b = line_1.return)) _b.call(line_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n Object.defineProperty(MultiLineString.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_MULTI_LINE_STRING;\n },\n enumerable: false,\n configurable: true\n });\n return MultiLineString;\n}());\nexport { MultiLineString };\n","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { SYMBOL_GEO_POLYGON } from '../helper/symbol';\nimport { isArray, isNumber } from '../utils/type';\nimport { Polygon } from './polygon';\nvar MultiPolygon = (function () {\n function MultiPolygon(polygons) {\n var e_1, _a;\n if (!isArray(polygons)) {\n throw new TypeError(\"\\\"polygons\\\" must be of type Polygon[]. Received type \".concat(typeof polygons));\n }\n if (polygons.length === 0) {\n throw new Error('MultiPolygon must contain 1 polygon at least');\n }\n try {\n for (var polygons_1 = __values(polygons), polygons_1_1 = polygons_1.next(); !polygons_1_1.done; polygons_1_1 = polygons_1.next()) {\n var polygon = polygons_1_1.value;\n if (!(polygon instanceof Polygon)) {\n throw new TypeError(\"\\\"polygon\\\" must be of type Polygon[]. Received type \".concat(typeof polygon, \"[]\"));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (polygons_1_1 && !polygons_1_1.done && (_a = polygons_1.return)) _a.call(polygons_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.polygons = polygons;\n }\n MultiPolygon.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'MultiPolygon',\n coordinates: this.polygons.map(function (polygon) {\n return polygon.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n });\n })\n },\n _a;\n };\n MultiPolygon.prototype.toJSON = function () {\n return {\n type: 'MultiPolygon',\n coordinates: this.polygons.map(function (polygon) {\n return polygon.lines.map(function (line) {\n return line.points.map(function (point) { return [point.longitude, point.latitude]; });\n });\n })\n };\n };\n MultiPolygon.validate = function (multiPolygon) {\n var e_2, _a, e_3, _b, e_4, _c;\n if (multiPolygon.type !== 'MultiPolygon' || !isArray(multiPolygon.coordinates)) {\n return false;\n }\n try {\n for (var _d = __values(multiPolygon.coordinates), _e = _d.next(); !_e.done; _e = _d.next()) {\n var polygon = _e.value;\n try {\n for (var polygon_1 = (e_3 = void 0, __values(polygon)), polygon_1_1 = polygon_1.next(); !polygon_1_1.done; polygon_1_1 = polygon_1.next()) {\n var line = polygon_1_1.value;\n try {\n for (var line_1 = (e_4 = void 0, __values(line)), line_1_1 = line_1.next(); !line_1_1.done; line_1_1 = line_1.next()) {\n var point = line_1_1.value;\n if (!isNumber(point[0]) || !isNumber(point[1])) {\n return false;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (line_1_1 && !line_1_1.done && (_c = line_1.return)) _c.call(line_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (polygon_1_1 && !polygon_1_1.done && (_b = polygon_1.return)) _b.call(polygon_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return true;\n };\n Object.defineProperty(MultiPolygon.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_POLYGON;\n },\n enumerable: false,\n configurable: true\n });\n return MultiPolygon;\n}());\nexport { MultiPolygon };\n","import { SYMBOL_SERVER_DATE } from '../helper/symbol';\nvar ServerDate = (function () {\n function ServerDate(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.offset, offset = _c === void 0 ? 0 : _c;\n this.offset = offset;\n }\n Object.defineProperty(ServerDate.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_SERVER_DATE;\n },\n enumerable: false,\n configurable: true\n });\n ServerDate.prototype.parse = function () {\n return {\n $date: {\n offset: this.offset\n }\n };\n };\n return ServerDate;\n}());\nexport { ServerDate };\nexport function ServerDateConstructor(opt) {\n return new ServerDate(opt);\n}\n","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { FieldType } from './constant';\nimport { Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon } from './geo/index';\nimport { ServerDate } from './serverDate/index';\nvar Util = (function () {\n function Util() {\n }\n Util.formatResDocumentData = function (documents) {\n return documents.map(function (document) {\n return Util.formatField(document);\n });\n };\n Util.formatField = function (document) {\n var keys = Object.keys(document);\n var protoField = {};\n if (Array.isArray(document)) {\n protoField = [];\n }\n keys.forEach(function (key) {\n var item = document[key];\n var type = Util.whichType(item);\n var realValue;\n switch (type) {\n case FieldType.GeoPoint:\n realValue = new Point(item.coordinates[0], item.coordinates[1]);\n break;\n case FieldType.GeoLineString:\n realValue = new LineString(item.coordinates.map(function (point) { return new Point(point[0], point[1]); }));\n break;\n case FieldType.GeoPolygon:\n realValue = new Polygon(item.coordinates.map(function (line) { return new LineString(line.map(function (_a) {\n var _b = __read(_a, 2), lng = _b[0], lat = _b[1];\n return new Point(lng, lat);\n })); }));\n break;\n case FieldType.GeoMultiPoint:\n realValue = new MultiPoint(item.coordinates.map(function (point) { return new Point(point[0], point[1]); }));\n break;\n case FieldType.GeoMultiLineString:\n realValue = new MultiLineString(item.coordinates.map(function (line) { return new LineString(line.map(function (_a) {\n var _b = __read(_a, 2), lng = _b[0], lat = _b[1];\n return new Point(lng, lat);\n })); }));\n break;\n case FieldType.GeoMultiPolygon:\n realValue = new MultiPolygon(item.coordinates.map(function (polygon) {\n return new Polygon(polygon.map(function (line) { return new LineString(line.map(function (_a) {\n var _b = __read(_a, 2), lng = _b[0], lat = _b[1];\n return new Point(lng, lat);\n })); }));\n }));\n break;\n case FieldType.Timestamp:\n realValue = new Date(item.$timestamp * 1000);\n break;\n case FieldType.Object:\n case FieldType.Array:\n realValue = Util.formatField(item);\n break;\n case FieldType.ServerDate:\n realValue = new Date(item.$date);\n break;\n default:\n realValue = item;\n }\n if (Array.isArray(protoField)) {\n protoField.push(realValue);\n }\n else {\n protoField[key] = realValue;\n }\n });\n return protoField;\n };\n Util.whichType = function (obj) {\n var type = Object.prototype.toString.call(obj).slice(8, -1);\n if (type === FieldType.Timestamp) {\n return FieldType.BsonDate;\n }\n if (type === FieldType.Object) {\n if (obj instanceof Point) {\n return FieldType.GeoPoint;\n }\n else if (obj instanceof Date) {\n return FieldType.Timestamp;\n }\n else if (obj instanceof ServerDate) {\n return FieldType.ServerDate;\n }\n if (obj.$timestamp) {\n type = FieldType.Timestamp;\n }\n else if (obj.$date) {\n type = FieldType.ServerDate;\n }\n else if (Point.validate(obj)) {\n type = FieldType.GeoPoint;\n }\n else if (LineString.validate(obj)) {\n type = FieldType.GeoLineString;\n }\n else if (Polygon.validate(obj)) {\n type = FieldType.GeoPolygon;\n }\n else if (MultiPoint.validate(obj)) {\n type = FieldType.GeoMultiPoint;\n }\n else if (MultiLineString.validate(obj)) {\n type = FieldType.GeoMultiLineString;\n }\n else if (MultiPolygon.validate(obj)) {\n type = FieldType.GeoMultiPolygon;\n }\n }\n return type;\n };\n Util.generateDocId = function () {\n var chars = 'ABCDEFabcdef0123456789';\n var autoId = '';\n for (var i = 0; i < 24; i++) {\n autoId += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return autoId;\n };\n return Util;\n}());\nexport { Util };\n","import { SYMBOL_UNSET_FIELD_NAME, SYMBOL_UPDATE_COMMAND } from '../helper/symbol';\nexport var UPDATE_COMMANDS_LITERAL;\n(function (UPDATE_COMMANDS_LITERAL) {\n UPDATE_COMMANDS_LITERAL[\"SET\"] = \"set\";\n UPDATE_COMMANDS_LITERAL[\"REMOVE\"] = \"remove\";\n UPDATE_COMMANDS_LITERAL[\"INC\"] = \"inc\";\n UPDATE_COMMANDS_LITERAL[\"MUL\"] = \"mul\";\n UPDATE_COMMANDS_LITERAL[\"PUSH\"] = \"push\";\n UPDATE_COMMANDS_LITERAL[\"PULL\"] = \"pull\";\n UPDATE_COMMANDS_LITERAL[\"PULL_ALL\"] = \"pullAll\";\n UPDATE_COMMANDS_LITERAL[\"POP\"] = \"pop\";\n UPDATE_COMMANDS_LITERAL[\"SHIFT\"] = \"shift\";\n UPDATE_COMMANDS_LITERAL[\"UNSHIFT\"] = \"unshift\";\n UPDATE_COMMANDS_LITERAL[\"ADD_TO_SET\"] = \"addToSet\";\n UPDATE_COMMANDS_LITERAL[\"BIT\"] = \"bit\";\n UPDATE_COMMANDS_LITERAL[\"RENAME\"] = \"rename\";\n UPDATE_COMMANDS_LITERAL[\"MAX\"] = \"max\";\n UPDATE_COMMANDS_LITERAL[\"MIN\"] = \"min\";\n})(UPDATE_COMMANDS_LITERAL || (UPDATE_COMMANDS_LITERAL = {}));\nvar UpdateCommand = (function () {\n function UpdateCommand(operator, operands, fieldName) {\n this._internalType = SYMBOL_UPDATE_COMMAND;\n Object.defineProperties(this, {\n _internalType: {\n enumerable: false,\n configurable: false,\n },\n });\n this.operator = operator;\n this.operands = operands;\n this.fieldName = fieldName || SYMBOL_UNSET_FIELD_NAME;\n }\n UpdateCommand.prototype._setFieldName = function (fieldName) {\n var command = new UpdateCommand(this.operator, this.operands, fieldName);\n return command;\n };\n return UpdateCommand;\n}());\nexport { UpdateCommand };\nexport function isUpdateCommand(object) {\n return object && (object instanceof UpdateCommand) && (object._internalType === SYMBOL_UPDATE_COMMAND);\n}\nexport function isKnownUpdateCommand(object) {\n return isUpdateCommand(object) && (object.operator.toUpperCase() in UPDATE_COMMANDS_LITERAL);\n}\nexport default UpdateCommand;\n","import { ErrorCode, WhereFilterOpList, OrderDirectionList, FieldType } from './constant';\nimport { Util } from './util';\nvar Validate = (function () {\n function Validate() {\n }\n Validate.isGeopoint = function (point, degree) {\n if (Util.whichType(degree) !== FieldType.Number) {\n throw new Error('Geo Point must be number type');\n }\n var degreeAbs = Math.abs(degree);\n if (point === 'latitude' && degreeAbs > 90) {\n throw new Error('latitude should be a number ranges from -90 to 90');\n }\n else if (point === 'longitude' && degreeAbs > 180) {\n throw new Error('longitude should be a number ranges from -180 to 180');\n }\n return true;\n };\n Validate.isInteger = function (param, num) {\n if (!Number.isInteger(num)) {\n throw new Error(param + ErrorCode.IntergerError);\n }\n return true;\n };\n Validate.isFieldOrder = function (direction) {\n if (OrderDirectionList.indexOf(direction) === -1) {\n throw new Error(ErrorCode.DirectionError);\n }\n return true;\n };\n Validate.isFieldPath = function (path) {\n if (!/^[a-zA-Z0-9-_\\.]/.test(path)) {\n throw new Error();\n }\n return true;\n };\n Validate.isOperator = function (op) {\n if (WhereFilterOpList.indexOf(op) === -1) {\n throw new Error(ErrorCode.OpStrError);\n }\n return true;\n };\n Validate.isCollName = function (name) {\n if (!/^[a-zA-Z0-9]([a-zA-Z0-9-_]){1,32}$/.test(name)) {\n throw new Error(ErrorCode.CollNameError);\n }\n return true;\n };\n Validate.isDocID = function (docId) {\n if (!/^([a-fA-F0-9]){24}$/.test(docId)) {\n throw new Error(ErrorCode.DocIDError);\n }\n return true;\n };\n return Validate;\n}());\nexport { Validate };\n","import { Validate } from '../validate';\nimport { SYMBOL_GEO_POINT } from '../helper/symbol';\nimport { isArray } from '../utils/type';\nvar Point = (function () {\n function Point(longitude, latitude) {\n Validate.isGeopoint('longitude', longitude);\n Validate.isGeopoint('latitude', latitude);\n this.longitude = longitude;\n this.latitude = latitude;\n }\n Point.prototype.parse = function (key) {\n var _a;\n return _a = {},\n _a[key] = {\n type: 'Point',\n coordinates: [this.longitude, this.latitude]\n },\n _a;\n };\n Point.prototype.toJSON = function () {\n return {\n type: 'Point',\n coordinates: [\n this.longitude,\n this.latitude,\n ],\n };\n };\n Point.prototype.toReadableString = function () {\n return \"[\".concat(this.longitude, \",\").concat(this.latitude, \"]\");\n };\n Point.validate = function (point) {\n return point.type === 'Point' &&\n isArray(point.coordinates) &&\n Validate.isGeopoint('longitude', point.coordinates[0]) &&\n Validate.isGeopoint('latitude', point.coordinates[1]);\n };\n Object.defineProperty(Point.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_GEO_POINT;\n },\n enumerable: false,\n configurable: true\n });\n return Point;\n}());\nexport { Point };\n","export var createPromiseCallback = function () {\n var cb = function () { };\n if (!Promise) {\n cb.promise = {};\n var throwPromiseNotDefined = function () {\n throw new Error('Your Node runtime does support ES6 Promises. ' +\n 'Set \"global.Promise\" to your preferred implementation of promises.');\n };\n Object.defineProperty(cb.promise, 'then', { get: throwPromiseNotDefined });\n Object.defineProperty(cb.promise, 'catch', { get: throwPromiseNotDefined });\n return cb;\n }\n var promise = new Promise(function (resolve, reject) {\n cb = function (err, data) {\n if (err)\n return reject(err);\n return resolve(data);\n };\n });\n cb.promise = promise;\n return cb;\n};\n","import { SYMBOL_UNSET_FIELD_NAME, SYMBOL_LOGIC_COMMAND } from '../helper/symbol';\nimport { isQueryCommand } from './query';\nexport var AND = 'and';\nexport var OR = 'or';\nexport var NOT = 'not';\nexport var NOR = 'nor';\nexport var LOGIC_COMMANDS_LITERAL;\n(function (LOGIC_COMMANDS_LITERAL) {\n LOGIC_COMMANDS_LITERAL[\"AND\"] = \"and\";\n LOGIC_COMMANDS_LITERAL[\"OR\"] = \"or\";\n LOGIC_COMMANDS_LITERAL[\"NOT\"] = \"not\";\n LOGIC_COMMANDS_LITERAL[\"NOR\"] = \"nor\";\n})(LOGIC_COMMANDS_LITERAL || (LOGIC_COMMANDS_LITERAL = {}));\nvar LogicCommand = (function () {\n function LogicCommand(operator, operands, fieldName) {\n this._internalType = SYMBOL_LOGIC_COMMAND;\n Object.defineProperties(this, {\n _internalType: {\n enumerable: false,\n configurable: false,\n },\n });\n this.operator = operator;\n this.operands = operands;\n this.fieldName = fieldName || SYMBOL_UNSET_FIELD_NAME;\n if (this.fieldName !== SYMBOL_UNSET_FIELD_NAME) {\n if (Array.isArray(operands)) {\n operands = operands.slice();\n this.operands = operands;\n for (var i = 0, len = operands.length; i < len; i++) {\n var query = operands[i];\n if (isLogicCommand(query) || isQueryCommand(query)) {\n operands[i] = query._setFieldName(this.fieldName);\n }\n }\n }\n else {\n var query = operands;\n if (isLogicCommand(query) || isQueryCommand(query)) {\n operands = query._setFieldName(this.fieldName);\n }\n }\n }\n }\n LogicCommand.prototype._setFieldName = function (fieldName) {\n var operands = this.operands.map(function (operand) {\n if (operand instanceof LogicCommand) {\n return operand._setFieldName(fieldName);\n }\n else {\n return operand;\n }\n });\n var command = new LogicCommand(this.operator, operands, fieldName);\n return command;\n };\n LogicCommand.prototype.and = function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = Array.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n expressions.unshift(this);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.AND, expressions, this.fieldName);\n };\n LogicCommand.prototype.or = function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = Array.isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n expressions.unshift(this);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.OR, expressions, this.fieldName);\n };\n return LogicCommand;\n}());\nexport { LogicCommand };\nexport function isLogicCommand(object) {\n return object && (object instanceof LogicCommand) && (object._internalType === SYMBOL_LOGIC_COMMAND);\n}\nexport function isKnownLogicCommand(object) {\n return isLogicCommand && (object.operator.toUpperCase() in LOGIC_COMMANDS_LITERAL);\n}\nexport default LogicCommand;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { LogicCommand } from './logic';\nimport { SYMBOL_QUERY_COMMAND } from '../helper/symbol';\nimport { Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon } from '../geo/index';\nimport { isNumber } from '../utils/type';\nexport var EQ = 'eq';\nexport var NEQ = 'neq';\nexport var GT = 'gt';\nexport var GTE = 'gte';\nexport var LT = 'lt';\nexport var LTE = 'lte';\nexport var IN = 'in';\nexport var NIN = 'nin';\nexport var ALL = 'all';\nexport var ELEM_MATCH = 'elemMatch';\nexport var EXISTS = 'exists';\nexport var SIZE = 'size';\nexport var MOD = 'mod';\nexport var QUERY_COMMANDS_LITERAL;\n(function (QUERY_COMMANDS_LITERAL) {\n QUERY_COMMANDS_LITERAL[\"EQ\"] = \"eq\";\n QUERY_COMMANDS_LITERAL[\"NEQ\"] = \"neq\";\n QUERY_COMMANDS_LITERAL[\"GT\"] = \"gt\";\n QUERY_COMMANDS_LITERAL[\"GTE\"] = \"gte\";\n QUERY_COMMANDS_LITERAL[\"LT\"] = \"lt\";\n QUERY_COMMANDS_LITERAL[\"LTE\"] = \"lte\";\n QUERY_COMMANDS_LITERAL[\"IN\"] = \"in\";\n QUERY_COMMANDS_LITERAL[\"NIN\"] = \"nin\";\n QUERY_COMMANDS_LITERAL[\"ALL\"] = \"all\";\n QUERY_COMMANDS_LITERAL[\"ELEM_MATCH\"] = \"elemMatch\";\n QUERY_COMMANDS_LITERAL[\"EXISTS\"] = \"exists\";\n QUERY_COMMANDS_LITERAL[\"SIZE\"] = \"size\";\n QUERY_COMMANDS_LITERAL[\"MOD\"] = \"mod\";\n QUERY_COMMANDS_LITERAL[\"GEO_NEAR\"] = \"geoNear\";\n QUERY_COMMANDS_LITERAL[\"GEO_WITHIN\"] = \"geoWithin\";\n QUERY_COMMANDS_LITERAL[\"GEO_INTERSECTS\"] = \"geoIntersects\";\n})(QUERY_COMMANDS_LITERAL || (QUERY_COMMANDS_LITERAL = {}));\nvar QueryCommand = (function (_super) {\n __extends(QueryCommand, _super);\n function QueryCommand(operator, operands, fieldName) {\n var _this = _super.call(this, operator, operands, fieldName) || this;\n _this.operator = operator;\n _this._internalType = SYMBOL_QUERY_COMMAND;\n return _this;\n }\n QueryCommand.prototype.toJSON = function () {\n var _a, _b;\n switch (this.operator) {\n case QUERY_COMMANDS_LITERAL.IN:\n case QUERY_COMMANDS_LITERAL.NIN:\n return _a = {},\n _a['$' + this.operator] = this.operands,\n _a;\n default:\n return _b = {},\n _b['$' + this.operator] = this.operands[0],\n _b;\n }\n };\n QueryCommand.prototype._setFieldName = function (fieldName) {\n var command = new QueryCommand(this.operator, this.operands, fieldName);\n return command;\n };\n QueryCommand.prototype.eq = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.EQ, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.neq = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.NEQ, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.gt = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GT, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.gte = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GTE, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.lt = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.LT, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.lte = function (val) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.LTE, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.in = function (list) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.IN, list, this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.nin = function (list) {\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.NIN, list, this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.geoNear = function (val) {\n if (!(val.geometry instanceof Point)) {\n throw new TypeError(\"\\\"geometry\\\" must be of type Point. Received type \".concat(typeof val.geometry));\n }\n if (val.maxDistance !== undefined && !isNumber(val.maxDistance)) {\n throw new TypeError(\"\\\"maxDistance\\\" must be of type Number. Received type \".concat(typeof val.maxDistance));\n }\n if (val.minDistance !== undefined && !isNumber(val.minDistance)) {\n throw new TypeError(\"\\\"minDistance\\\" must be of type Number. Received type \".concat(typeof val.minDistance));\n }\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_NEAR, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.geoWithin = function (val) {\n if (!(val.geometry instanceof MultiPolygon) && !(val.geometry instanceof Polygon)) {\n throw new TypeError(\"\\\"geometry\\\" must be of type Polygon or MultiPolygon. Received type \".concat(typeof val.geometry));\n }\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_WITHIN, [val], this.fieldName);\n return this.and(command);\n };\n QueryCommand.prototype.geoIntersects = function (val) {\n if (!(val.geometry instanceof Point) &&\n !(val.geometry instanceof LineString) &&\n !(val.geometry instanceof Polygon) &&\n !(val.geometry instanceof MultiPoint) &&\n !(val.geometry instanceof MultiLineString) &&\n !(val.geometry instanceof MultiPolygon)) {\n throw new TypeError(\"\\\"geometry\\\" must be of type Point, LineString, Polygon, MultiPoint, MultiLineString or MultiPolygon. Received type \".concat(typeof val.geometry));\n }\n var command = new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_INTERSECTS, [val], this.fieldName);\n return this.and(command);\n };\n return QueryCommand;\n}(LogicCommand));\nexport { QueryCommand };\nexport function isQueryCommand(object) {\n return object && object instanceof QueryCommand && object._internalType === SYMBOL_QUERY_COMMAND;\n}\nexport function isKnownQueryCommand(object) {\n return isQueryCommand(object) && object.operator.toUpperCase() in QUERY_COMMANDS_LITERAL;\n}\nexport function isComparisonCommand(object) {\n return isQueryCommand(object);\n}\nexport default QueryCommand;\n","import { QUERY_COMMANDS_LITERAL } from './commands/query';\nimport { LOGIC_COMMANDS_LITERAL } from './commands/logic';\nimport { UPDATE_COMMANDS_LITERAL } from './commands/update';\nexport var OperatorMap = {};\nfor (var key in QUERY_COMMANDS_LITERAL) {\n OperatorMap[key] = '$' + key;\n}\nfor (var key in LOGIC_COMMANDS_LITERAL) {\n OperatorMap[key] = '$' + key;\n}\nfor (var key in UPDATE_COMMANDS_LITERAL) {\n OperatorMap[key] = '$' + key;\n}\nOperatorMap[QUERY_COMMANDS_LITERAL.NEQ] = '$ne';\nOperatorMap[UPDATE_COMMANDS_LITERAL.REMOVE] = '$unset';\nOperatorMap[UPDATE_COMMANDS_LITERAL.SHIFT] = '$pop';\nOperatorMap[UPDATE_COMMANDS_LITERAL.UNSHIFT] = '$push';\nexport function operatorToString(operator) {\n return OperatorMap[operator] || '$' + operator;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { SYMBOL_GEO_POINT, SYMBOL_SERVER_DATE, SYMBOL_REGEXP } from '../helper/symbol';\nimport { getType, isObject, isArray, isDate, isNumber, isInternalObject, isRegExp } from '../utils/type';\nimport { Point } from '../geo/index';\nimport { ServerDate } from '../serverDate/index';\nexport function serialize(val) {\n return serializeHelper(val, [val]);\n}\nfunction serializeHelper(val, visited) {\n if (isInternalObject(val)) {\n switch (val._internalType) {\n case SYMBOL_GEO_POINT: {\n return val.toJSON();\n }\n case SYMBOL_SERVER_DATE: {\n return val.parse();\n }\n case SYMBOL_REGEXP: {\n return val.parse();\n }\n default: {\n return val.toJSON ? val.toJSON() : val;\n }\n }\n }\n else if (isDate(val)) {\n return {\n $date: +val,\n };\n }\n else if (isRegExp(val)) {\n return {\n $regex: val.source,\n $options: val.flags,\n };\n }\n else if (isArray(val)) {\n return val.map(function (item) {\n if (visited.indexOf(item) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n return serializeHelper(item, __spreadArray(__spreadArray([], __read(visited), false), [\n item,\n ], false));\n });\n }\n else if (isObject(val)) {\n var ret = __assign({}, val);\n for (var key in ret) {\n if (visited.indexOf(ret[key]) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n ret[key] = serializeHelper(ret[key], __spreadArray(__spreadArray([], __read(visited), false), [\n ret[key],\n ], false));\n }\n return ret;\n }\n else {\n return val;\n }\n}\nexport function deserialize(object) {\n var ret = __assign({}, object);\n for (var key in ret) {\n switch (key) {\n case '$date': {\n switch (getType(ret[key])) {\n case 'number': {\n return new Date(ret[key]);\n }\n case 'object': {\n return new ServerDate(ret[key]);\n }\n }\n break;\n }\n case 'type': {\n switch (ret.type) {\n case 'Point': {\n if (isArray(ret.coordinates) && isNumber(ret.coordinates[0]) && isNumber(ret.coordinates[1])) {\n return new Point(ret.coordinates[0], ret.coordinates[1]);\n }\n break;\n }\n }\n break;\n }\n }\n }\n return object;\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { getType, isObject, isArray, isDate, isRegExp, isInternalObject } from '../utils/type';\nimport { serialize as serializeInternalDataType, deserialize as deserializeInternalDataType } from './datatype';\nfunction flatten(query, shouldPreserverObject, parents, visited) {\n var cloned = __assign({}, query);\n for (var key in query) {\n if (/^\\$/.test(key))\n continue;\n var value = query[key];\n if (!value)\n continue;\n if (isObject(value) && !shouldPreserverObject(value)) {\n if (visited.indexOf(value) > -1) {\n throw new Error('Cannot convert circular structure to JSON');\n }\n var newParents = __spreadArray(__spreadArray([], __read(parents), false), [\n key,\n ], false);\n var newVisited = __spreadArray(__spreadArray([], __read(visited), false), [\n value,\n ], false);\n var flattenedChild = flatten(value, shouldPreserverObject, newParents, newVisited);\n cloned[key] = flattenedChild;\n var hasKeyNotCombined = false;\n for (var childKey in flattenedChild) {\n if (!/^\\$/.test(childKey)) {\n cloned[\"\".concat(key, \".\").concat(childKey)] = flattenedChild[childKey];\n delete cloned[key][childKey];\n }\n else {\n hasKeyNotCombined = true;\n }\n }\n if (!hasKeyNotCombined) {\n delete cloned[key];\n }\n }\n }\n return cloned;\n}\nexport function flattenQueryObject(query) {\n return flatten(query, isConversionRequired, [], [query]);\n}\nexport function flattenObject(object) {\n return flatten(object, function (_) { return false; }, [], [object]);\n}\nexport function mergeConditionAfterEncode(query, condition, key) {\n if (!condition[key]) {\n delete query[key];\n }\n for (var conditionKey in condition) {\n if (query[conditionKey]) {\n if (isArray(query[conditionKey])) {\n query[conditionKey].push(condition[conditionKey]);\n }\n else if (isObject(query[conditionKey])) {\n if (isObject(condition[conditionKey])) {\n Object.assign(query[conditionKey], condition[conditionKey]);\n }\n else {\n console.warn(\"unmergable condition, query is object but condition is \".concat(getType(condition), \", can only overwrite\"), condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n console.warn(\"to-merge query is of type \".concat(getType(query), \", can only overwrite\"), query, condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n query[conditionKey] = condition[conditionKey];\n }\n }\n}\nexport function isConversionRequired(val) {\n return isInternalObject(val) || isDate(val) || isRegExp(val);\n}\nexport function encodeInternalDataType(val) {\n return serializeInternalDataType(val);\n}\nexport function decodeInternalDataType(object) {\n return deserializeInternalDataType(object);\n}\n","import { UpdateCommand, isUpdateCommand, UPDATE_COMMANDS_LITERAL } from '../commands/update';\nimport { SYMBOL_UNSET_FIELD_NAME } from '../helper/symbol';\nimport { getType, isArray } from '../utils/type';\nimport { operatorToString } from '../operator-map';\nimport { flattenQueryObject, encodeInternalDataType, mergeConditionAfterEncode } from './common';\nvar UpdateSerializer = (function () {\n function UpdateSerializer() {\n }\n UpdateSerializer.encode = function (query) {\n var stringifier = new UpdateSerializer();\n return stringifier.encodeUpdate(query);\n };\n UpdateSerializer.prototype.encodeUpdate = function (query) {\n if (isUpdateCommand(query)) {\n return this.encodeUpdateCommand(query);\n }\n else if (getType(query) === 'object') {\n return this.encodeUpdateObject(query);\n }\n else {\n return query;\n }\n };\n UpdateSerializer.prototype.encodeUpdateCommand = function (query) {\n if (query.fieldName === SYMBOL_UNSET_FIELD_NAME) {\n throw new Error('Cannot encode a comparison command with unset field name');\n }\n switch (query.operator) {\n case UPDATE_COMMANDS_LITERAL.PUSH:\n case UPDATE_COMMANDS_LITERAL.PULL:\n case UPDATE_COMMANDS_LITERAL.PULL_ALL:\n case UPDATE_COMMANDS_LITERAL.POP:\n case UPDATE_COMMANDS_LITERAL.SHIFT:\n case UPDATE_COMMANDS_LITERAL.UNSHIFT:\n case UPDATE_COMMANDS_LITERAL.ADD_TO_SET: {\n return this.encodeArrayUpdateCommand(query);\n }\n default: {\n return this.encodeFieldUpdateCommand(query);\n }\n }\n };\n UpdateSerializer.prototype.encodeFieldUpdateCommand = function (query) {\n var _a, _b, _c, _d;\n var $op = operatorToString(query.operator);\n switch (query.operator) {\n case UPDATE_COMMANDS_LITERAL.REMOVE: {\n return _a = {},\n _a[$op] = (_b = {},\n _b[query.fieldName] = '',\n _b),\n _a;\n }\n default: {\n return _c = {},\n _c[$op] = (_d = {},\n _d[query.fieldName] = query.operands[0],\n _d),\n _c;\n }\n }\n };\n UpdateSerializer.prototype.encodeArrayUpdateCommand = function (query) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n var $op = operatorToString(query.operator);\n switch (query.operator) {\n case UPDATE_COMMANDS_LITERAL.PUSH: {\n var modifiers = void 0;\n if (isArray(query.operands)) {\n modifiers = {\n $each: query.operands.map(encodeInternalDataType)\n };\n }\n else {\n modifiers = query.operands;\n }\n return _a = {},\n _a[$op] = (_b = {},\n _b[query.fieldName] = modifiers,\n _b),\n _a;\n }\n case UPDATE_COMMANDS_LITERAL.UNSHIFT: {\n var modifiers = {\n $each: query.operands.map(encodeInternalDataType),\n $position: 0\n };\n return _c = {},\n _c[$op] = (_d = {},\n _d[query.fieldName] = modifiers,\n _d),\n _c;\n }\n case UPDATE_COMMANDS_LITERAL.POP: {\n return _e = {},\n _e[$op] = (_f = {},\n _f[query.fieldName] = 1,\n _f),\n _e;\n }\n case UPDATE_COMMANDS_LITERAL.SHIFT: {\n return _g = {},\n _g[$op] = (_h = {},\n _h[query.fieldName] = -1,\n _h),\n _g;\n }\n default: {\n return _j = {},\n _j[$op] = (_k = {},\n _k[query.fieldName] = encodeInternalDataType(query.operands),\n _k),\n _j;\n }\n }\n };\n UpdateSerializer.prototype.encodeUpdateObject = function (query) {\n var flattened = flattenQueryObject(query);\n for (var key in flattened) {\n if (/^\\$/.test(key))\n continue;\n var val = flattened[key];\n if (isUpdateCommand(val)) {\n flattened[key] = val._setFieldName(key);\n var condition = this.encodeUpdateCommand(flattened[key]);\n mergeConditionAfterEncode(flattened, condition, key);\n }\n else {\n flattened[key] = val = encodeInternalDataType(val);\n var $setCommand = new UpdateCommand(UPDATE_COMMANDS_LITERAL.SET, [val], key);\n var condition = this.encodeUpdateCommand($setCommand);\n mergeConditionAfterEncode(flattened, condition, key);\n }\n }\n return flattened;\n };\n return UpdateSerializer;\n}());\nexport { UpdateSerializer };\n","import { Db } from '../';\nexport var sleep = function (ms) {\n if (ms === void 0) { ms = 0; }\n return new Promise(function (r) { return setTimeout(r, ms); });\n};\nvar counters = {};\nexport var autoCount = function (domain) {\n if (domain === void 0) { domain = 'any'; }\n if (!counters[domain]) {\n counters[domain] = 0;\n }\n return counters[domain]++;\n};\nvar wsList = {};\nexport function getWsInstance(db) {\n if (!Db.wsClientClass) {\n throw new Error('to use realtime you must import realtime module first');\n }\n var env = db.config.env;\n if (!wsList[env]) {\n wsList[env] = new Db.wsClientClass({\n context: {\n appConfig: {\n docSizeLimit: 1000,\n realtimePingInterval: 10000,\n realtimePongWaitTimeout: 5000,\n request: Db.createRequest(db.config)\n }\n }\n });\n }\n return wsList[env];\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { createPromiseCallback } from './lib/util';\nimport { Db } from './index';\nimport { Util } from './util';\nimport { UpdateSerializer } from './serializer/update';\nimport { serialize } from './serializer/datatype';\nimport { UpdateCommand } from './commands/update';\nimport { QueryType } from './constant';\nimport { getWsInstance } from './utils/utils';\nvar DocumentReference = (function () {\n function DocumentReference(db, coll, docID, projection) {\n if (projection === void 0) { projection = {}; }\n var _this = this;\n this.watch = function (options) {\n var ws = getWsInstance(_this._db);\n return ws.watch(__assign(__assign({}, options), { envId: _this._db.config.env, collectionName: _this._coll, query: JSON.stringify({\n _id: _this.id\n }) }));\n };\n this._db = db;\n this._coll = coll;\n this.id = docID;\n this.request = Db.createRequest(this._db.config);\n this.projection = projection;\n }\n DocumentReference.prototype.create = function (data, callback) {\n callback = callback || createPromiseCallback();\n var isBatch = Array.isArray(data);\n var params = {\n collectionName: this._coll,\n data: isBatch ? data.map(function (item) { return serialize(item); }) : serialize(data)\n };\n if (!isBatch && this.id) {\n params['_id'] = this.id;\n }\n this.request\n .send('database.addDocument', params)\n .then(function (res) {\n var _a;\n if (res.code) {\n callback(0, res);\n }\n else {\n if (isBatch) {\n callback(0, {\n ids: ((_a = res.data) === null || _a === void 0 ? void 0 : _a.insertedIds) || [],\n requestId: res.requestId\n });\n }\n else {\n callback(0, {\n id: res.data._id,\n requestId: res.requestId\n });\n }\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.set = function (data, callback) {\n callback = callback || createPromiseCallback();\n if (!this.id) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: 'docId不能为空'\n });\n }\n if (!data || typeof data !== 'object') {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '参数必需是非空对象'\n });\n }\n if (data.hasOwnProperty('_id')) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '不能更新_id的值'\n });\n }\n var hasOperator = false;\n var checkMixed = function (objs) {\n if (typeof objs === 'object') {\n for (var key in objs) {\n if (objs[key] instanceof UpdateCommand) {\n hasOperator = true;\n }\n else if (typeof objs[key] === 'object') {\n checkMixed(objs[key]);\n }\n }\n }\n };\n checkMixed(data);\n if (hasOperator) {\n return Promise.resolve({\n code: 'DATABASE_REQUEST_FAILED',\n message: 'update operator complicit'\n });\n }\n var merge = false;\n var param = {\n collectionName: this._coll,\n queryType: QueryType.DOC,\n data: serialize(data),\n multi: false,\n merge: merge,\n upsert: true\n };\n if (this.id) {\n param['query'] = { _id: this.id };\n }\n this.request\n .send('database.updateDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n updated: res.data.updated,\n upsertedId: res.data.upserted_id,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.update = function (data, callback) {\n callback = callback || createPromiseCallback();\n if (!data || typeof data !== 'object') {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '参数必需是非空对象'\n });\n }\n if (data.hasOwnProperty('_id')) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '不能更新_id的值'\n });\n }\n var query = { _id: this.id };\n var merge = true;\n var param = {\n collectionName: this._coll,\n data: UpdateSerializer.encode(data),\n query: query,\n queryType: QueryType.DOC,\n multi: false,\n merge: merge,\n upsert: false\n };\n this.request\n .send('database.updateDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n updated: res.data.updated,\n upsertedId: res.data.upserted_id,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.remove = function (callback) {\n callback = callback || createPromiseCallback();\n var query = { _id: this.id };\n var param = {\n collectionName: this._coll,\n query: query,\n queryType: QueryType.DOC,\n multi: false\n };\n this.request\n .send('database.deleteDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n deleted: res.data.deleted,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.get = function (callback) {\n callback = callback || createPromiseCallback();\n var query = { _id: this.id };\n var param = {\n collectionName: this._coll,\n query: query,\n queryType: QueryType.DOC,\n multi: false,\n projection: this.projection\n };\n this.request\n .send('database.queryDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n var documents = Util.formatResDocumentData(res.data.list);\n callback(0, {\n data: documents,\n requestId: res.requestId\n });\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n DocumentReference.prototype.field = function (projection) {\n for (var k in projection) {\n if (projection[k]) {\n projection[k] = 1;\n }\n else {\n projection[k] = 0;\n }\n }\n return new DocumentReference(this._db, this._coll, this.id, projection);\n };\n return DocumentReference;\n}());\nexport { DocumentReference };\n","import { isQueryCommand, isComparisonCommand, QUERY_COMMANDS_LITERAL } from '../commands/query';\nimport { isLogicCommand, LOGIC_COMMANDS_LITERAL } from '../commands/logic';\nimport { SYMBOL_UNSET_FIELD_NAME } from '../helper/symbol';\nimport { getType, isObject, isArray, isRegExp } from '../utils/type';\nimport { operatorToString } from '../operator-map';\nimport { flattenQueryObject, isConversionRequired, encodeInternalDataType } from './common';\nvar QuerySerializer = (function () {\n function QuerySerializer() {\n }\n QuerySerializer.encode = function (query) {\n var encoder = new QueryEncoder();\n return encoder.encodeQuery(query);\n };\n return QuerySerializer;\n}());\nexport { QuerySerializer };\nvar QueryEncoder = (function () {\n function QueryEncoder() {\n }\n QueryEncoder.prototype.encodeQuery = function (query, key) {\n var _a;\n if (isConversionRequired(query)) {\n if (isLogicCommand(query)) {\n return this.encodeLogicCommand(query);\n }\n else if (isQueryCommand(query)) {\n return this.encodeQueryCommand(query);\n }\n else {\n return _a = {}, _a[key] = this.encodeQueryObject(query), _a;\n }\n }\n else {\n if (isObject(query)) {\n return this.encodeQueryObject(query);\n }\n else {\n return query;\n }\n }\n };\n QueryEncoder.prototype.encodeRegExp = function (query) {\n return {\n $regex: query.source,\n $options: query.flags\n };\n };\n QueryEncoder.prototype.encodeLogicCommand = function (query) {\n var _a, _b, _c, _d, _e, _f, _g;\n var _this = this;\n switch (query.operator) {\n case LOGIC_COMMANDS_LITERAL.NOR:\n case LOGIC_COMMANDS_LITERAL.AND:\n case LOGIC_COMMANDS_LITERAL.OR: {\n var $op = operatorToString(query.operator);\n var subqueries = query.operands.map(function (oprand) {\n return _this.encodeQuery(oprand, query.fieldName);\n });\n return _a = {},\n _a[$op] = subqueries,\n _a;\n }\n case LOGIC_COMMANDS_LITERAL.NOT: {\n var $op = operatorToString(query.operator);\n var operatorExpression = query.operands[0];\n if (isRegExp(operatorExpression)) {\n return _b = {},\n _b[query.fieldName] = (_c = {},\n _c[$op] = this.encodeRegExp(operatorExpression),\n _c),\n _b;\n }\n else {\n var subqueries = this.encodeQuery(operatorExpression)[query.fieldName];\n return _d = {},\n _d[query.fieldName] = (_e = {},\n _e[$op] = subqueries,\n _e),\n _d;\n }\n }\n default: {\n var $op = operatorToString(query.operator);\n if (query.operands.length === 1) {\n var subquery = this.encodeQuery(query.operands[0]);\n return _f = {},\n _f[$op] = subquery,\n _f;\n }\n else {\n var subqueries = query.operands.map(this.encodeQuery.bind(this));\n return _g = {},\n _g[$op] = subqueries,\n _g;\n }\n }\n }\n };\n QueryEncoder.prototype.encodeQueryCommand = function (query) {\n if (isComparisonCommand(query)) {\n return this.encodeComparisonCommand(query);\n }\n else {\n return this.encodeComparisonCommand(query);\n }\n };\n QueryEncoder.prototype.encodeComparisonCommand = function (query) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n if (query.fieldName === SYMBOL_UNSET_FIELD_NAME) {\n throw new Error('Cannot encode a comparison command with unset field name');\n }\n var $op = operatorToString(query.operator);\n switch (query.operator) {\n case QUERY_COMMANDS_LITERAL.EQ:\n case QUERY_COMMANDS_LITERAL.NEQ:\n case QUERY_COMMANDS_LITERAL.LT:\n case QUERY_COMMANDS_LITERAL.LTE:\n case QUERY_COMMANDS_LITERAL.GT:\n case QUERY_COMMANDS_LITERAL.GTE:\n case QUERY_COMMANDS_LITERAL.ELEM_MATCH:\n case QUERY_COMMANDS_LITERAL.EXISTS:\n case QUERY_COMMANDS_LITERAL.SIZE:\n case QUERY_COMMANDS_LITERAL.MOD: {\n return _a = {},\n _a[query.fieldName] = (_b = {},\n _b[$op] = encodeInternalDataType(query.operands[0]),\n _b),\n _a;\n }\n case QUERY_COMMANDS_LITERAL.IN:\n case QUERY_COMMANDS_LITERAL.NIN:\n case QUERY_COMMANDS_LITERAL.ALL: {\n return _c = {},\n _c[query.fieldName] = (_d = {},\n _d[$op] = encodeInternalDataType(query.operands),\n _d),\n _c;\n }\n case QUERY_COMMANDS_LITERAL.GEO_NEAR: {\n var options = query.operands[0];\n return _e = {},\n _e[query.fieldName] = {\n $nearSphere: {\n $geometry: options.geometry.toJSON(),\n $maxDistance: options.maxDistance,\n $minDistance: options.minDistance\n }\n },\n _e;\n }\n case QUERY_COMMANDS_LITERAL.GEO_WITHIN: {\n var options = query.operands[0];\n return _f = {},\n _f[query.fieldName] = {\n $geoWithin: {\n $geometry: options.geometry.toJSON()\n }\n },\n _f;\n }\n case QUERY_COMMANDS_LITERAL.GEO_INTERSECTS: {\n var options = query.operands[0];\n return _g = {},\n _g[query.fieldName] = {\n $geoIntersects: {\n $geometry: options.geometry.toJSON()\n }\n },\n _g;\n }\n default: {\n return _h = {},\n _h[query.fieldName] = (_j = {},\n _j[$op] = encodeInternalDataType(query.operands[0]),\n _j),\n _h;\n }\n }\n };\n QueryEncoder.prototype.encodeQueryObject = function (query) {\n var flattened = flattenQueryObject(query);\n for (var key in flattened) {\n var val = flattened[key];\n if (isLogicCommand(val)) {\n flattened[key] = val._setFieldName(key);\n var condition = this.encodeLogicCommand(flattened[key]);\n this.mergeConditionAfterEncode(flattened, condition, key);\n }\n else if (isComparisonCommand(val)) {\n flattened[key] = val._setFieldName(key);\n var condition = this.encodeComparisonCommand(flattened[key]);\n this.mergeConditionAfterEncode(flattened, condition, key);\n }\n else if (isConversionRequired(val)) {\n flattened[key] = encodeInternalDataType(val);\n }\n }\n return flattened;\n };\n QueryEncoder.prototype.mergeConditionAfterEncode = function (query, condition, key) {\n if (!condition[key]) {\n delete query[key];\n }\n for (var conditionKey in condition) {\n if (query[conditionKey]) {\n if (isArray(query[conditionKey])) {\n query[conditionKey] = query[conditionKey].concat(condition[conditionKey]);\n }\n else if (isObject(query[conditionKey])) {\n if (isObject(condition[conditionKey])) {\n Object.assign(query, condition);\n }\n else {\n console.warn(\"unmergable condition, query is object but condition is \".concat(getType(condition), \", can only overwrite\"), condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n console.warn(\"to-merge query is of type \".concat(getType(query), \", can only overwrite\"), query, condition, key);\n query[conditionKey] = condition[conditionKey];\n }\n }\n else {\n query[conditionKey] = condition[conditionKey];\n }\n }\n };\n return QueryEncoder;\n}());\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { createPromiseCallback } from './lib/util';\nimport { QueryType } from './constant';\nimport { Db } from './index';\nimport { Validate } from './validate';\nimport { Util } from './util';\nimport { QuerySerializer } from './serializer/query';\nimport { UpdateSerializer } from './serializer/update';\nimport { ErrorCode } from './constant';\nimport { getWsInstance } from './utils/utils';\nvar Query = (function () {\n function Query(db, coll, fieldFilters, fieldOrders, queryOptions) {\n var _this = this;\n this.watch = function (options) {\n var ws = getWsInstance(_this._db);\n return ws.watch(__assign(__assign({}, options), { envId: _this._db.config.env, collectionName: _this._coll, query: JSON.stringify(_this._fieldFilters || {}), limit: _this._queryOptions.limit, orderBy: _this._fieldOrders\n ? _this._fieldOrders.reduce(function (acc, cur) {\n acc[cur.field] = cur.direction;\n return acc;\n }, {})\n : undefined }));\n };\n this._db = db;\n this._coll = coll;\n this._fieldFilters = fieldFilters;\n this._fieldOrders = fieldOrders || [];\n this._queryOptions = queryOptions || {};\n this._request = Db.createRequest(this._db.config);\n }\n Query.prototype.get = function (callback) {\n callback = callback || createPromiseCallback();\n var newOder = [];\n if (this._fieldOrders) {\n this._fieldOrders.forEach(function (order) {\n newOder.push(order);\n });\n }\n var param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n if (newOder.length > 0) {\n param.order = newOder;\n }\n if (this._queryOptions.offset) {\n param.offset = this._queryOptions.offset;\n }\n if (this._queryOptions.limit) {\n param.limit = this._queryOptions.limit < 1000 ? this._queryOptions.limit : 1000;\n }\n else {\n param.limit = 100;\n }\n if (this._queryOptions.projection) {\n param.projection = this._queryOptions.projection;\n }\n this._request\n .send('database.queryDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n var documents = Util.formatResDocumentData(res.data.list);\n var result = {\n data: documents,\n requestId: res.requestId\n };\n if (res.total !== undefined)\n result.total = res.total;\n if (res.limit !== undefined)\n result.limit = res.limit;\n if (res.offset !== undefined)\n result.offset = res.offset;\n callback(0, result);\n }\n })\n .catch(function (err) {\n callback(err);\n });\n return callback.promise;\n };\n Query.prototype.count = function (callback) {\n callback = callback || createPromiseCallback();\n var param = {\n collectionName: this._coll,\n queryType: QueryType.WHERE\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n this._request\n .send('database.countDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n requestId: res.requestId,\n total: res.data.total\n });\n }\n })\n .catch(function (e) {\n callback(e);\n });\n return callback.promise;\n };\n Query.prototype.where = function (query) {\n if (Object.prototype.toString.call(query).slice(8, -1) !== 'Object') {\n throw Error(ErrorCode.QueryParamTypeError);\n }\n var keys = Object.keys(query);\n var checkFlag = keys.some(function (item) {\n return query[item] !== undefined;\n });\n if (keys.length && !checkFlag) {\n throw Error(ErrorCode.QueryParamValueError);\n }\n return new Query(this._db, this._coll, QuerySerializer.encode(query), this._fieldOrders, this._queryOptions);\n };\n Query.prototype.orderBy = function (fieldPath, directionStr) {\n Validate.isFieldPath(fieldPath);\n Validate.isFieldOrder(directionStr);\n var newOrder = {\n field: fieldPath,\n direction: directionStr\n };\n var combinedOrders = this._fieldOrders.concat(newOrder);\n return new Query(this._db, this._coll, this._fieldFilters, combinedOrders, this._queryOptions);\n };\n Query.prototype.limit = function (limit) {\n Validate.isInteger('limit', limit);\n var option = __assign({}, this._queryOptions);\n option.limit = limit;\n return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.skip = function (offset) {\n Validate.isInteger('offset', offset);\n var option = __assign({}, this._queryOptions);\n option.offset = offset;\n return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.update = function (data, callback) {\n callback = callback || createPromiseCallback();\n if (!data || typeof data !== 'object') {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '参数必需是非空对象'\n });\n }\n if (data.hasOwnProperty('_id')) {\n return Promise.resolve({\n code: 'INVALID_PARAM',\n message: '不能更新_id的值'\n });\n }\n var param = {\n collectionName: this._coll,\n query: this._fieldFilters,\n queryType: QueryType.WHERE,\n multi: true,\n merge: true,\n upsert: false,\n data: UpdateSerializer.encode(data)\n };\n this._request\n .send('database.updateDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n requestId: res.requestId,\n updated: res.data.updated,\n upsertId: res.data.upsert_id\n });\n }\n })\n .catch(function (e) {\n callback(e);\n });\n return callback.promise;\n };\n Query.prototype.field = function (projection) {\n for (var k in projection) {\n if (projection[k]) {\n if (typeof projection[k] !== 'object') {\n projection[k] = 1;\n }\n }\n else {\n projection[k] = 0;\n }\n }\n var option = __assign({}, this._queryOptions);\n option.projection = projection;\n return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.remove = function (callback) {\n callback = callback || createPromiseCallback();\n if (Object.keys(this._queryOptions).length > 0) {\n console.warn('`offset`, `limit` and `projection` are not supported in remove() operation');\n }\n if (this._fieldOrders.length > 0) {\n console.warn('`orderBy` is not supported in remove() operation');\n }\n var param = {\n collectionName: this._coll,\n query: QuerySerializer.encode(this._fieldFilters),\n queryType: QueryType.WHERE,\n multi: true\n };\n this._request\n .send('database.deleteDocument', param)\n .then(function (res) {\n if (res.code) {\n callback(0, res);\n }\n else {\n callback(0, {\n requestId: res.requestId,\n deleted: res.data.deleted\n });\n }\n })\n .catch(function (e) {\n callback(e);\n });\n return callback.promise;\n };\n return Query;\n}());\nexport { Query };\n","var 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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Db } from './index';\nimport { EJSON } from 'bson';\nimport { QuerySerializer } from './serializer/query';\nimport { Point } from './geo';\nvar Aggregation = (function () {\n function Aggregation(db, collectionName) {\n this._stages = [];\n if (db && collectionName) {\n this._db = db;\n this._request = Db.createRequest(this._db.config);\n this._collectionName = collectionName;\n }\n }\n Aggregation.prototype.end = function () {\n return __awaiter(this, void 0, void 0, function () {\n var result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._collectionName || !this._db) {\n throw new Error('Aggregation pipeline cannot send request');\n }\n return [4, this._request.send('database.aggregate', {\n collectionName: this._collectionName,\n stages: this._stages\n })];\n case 1:\n result = _a.sent();\n if (result && result.data && result.data.list) {\n return [2, {\n requestId: result.requestId,\n data: JSON.parse(result.data.list).map(EJSON.parse)\n }];\n }\n return [2, result];\n }\n });\n });\n };\n Aggregation.prototype.unwrap = function () {\n return this._stages;\n };\n Aggregation.prototype.done = function () {\n return this._stages.map(function (_a) {\n var _b;\n var stageKey = _a.stageKey, stageValue = _a.stageValue;\n return _b = {},\n _b[stageKey] = JSON.parse(stageValue),\n _b;\n });\n };\n Aggregation.prototype._pipe = function (stage, param) {\n this._stages.push({\n stageKey: \"$\".concat(stage),\n stageValue: JSON.stringify(param)\n });\n return this;\n };\n Aggregation.prototype.addFields = function (param) {\n return this._pipe('addFields', param);\n };\n Aggregation.prototype.bucket = function (param) {\n return this._pipe('bucket', param);\n };\n Aggregation.prototype.bucketAuto = function (param) {\n return this._pipe('bucketAuto', param);\n };\n Aggregation.prototype.count = function (param) {\n return this._pipe('count', param);\n };\n Aggregation.prototype.geoNear = function (param) {\n if (param.query) {\n param.query = QuerySerializer.encode(param.query);\n }\n if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {\n param.distanceMultiplier = param.distanceMultiplier;\n }\n if (param.near) {\n param.near = new Point(param.near.longitude, param.near.latitude).toJSON();\n }\n return this._pipe('geoNear', param);\n };\n Aggregation.prototype.group = function (param) {\n return this._pipe('group', param);\n };\n Aggregation.prototype.limit = function (param) {\n return this._pipe('limit', param);\n };\n Aggregation.prototype.match = function (param) {\n return this._pipe('match', QuerySerializer.encode(param));\n };\n Aggregation.prototype.project = function (param) {\n return this._pipe('project', param);\n };\n Aggregation.prototype.lookup = function (param) {\n return this._pipe('lookup', param);\n };\n Aggregation.prototype.replaceRoot = function (param) {\n return this._pipe('replaceRoot', param);\n };\n Aggregation.prototype.sample = function (param) {\n return this._pipe('sample', param);\n };\n Aggregation.prototype.skip = function (param) {\n return this._pipe('skip', param);\n };\n Aggregation.prototype.sort = function (param) {\n return this._pipe('sort', param);\n };\n Aggregation.prototype.sortByCount = function (param) {\n return this._pipe('sortByCount', param);\n };\n Aggregation.prototype.unwind = function (param) {\n return this._pipe('unwind', param);\n };\n return Aggregation;\n}());\nexport default Aggregation;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DocumentReference } from './document';\nimport { Query } from './query';\nimport Aggregation from './aggregate';\nvar CollectionReference = (function (_super) {\n __extends(CollectionReference, _super);\n function CollectionReference(db, coll) {\n return _super.call(this, db, coll) || this;\n }\n Object.defineProperty(CollectionReference.prototype, \"name\", {\n get: function () {\n return this._coll;\n },\n enumerable: false,\n configurable: true\n });\n CollectionReference.prototype.doc = function (docID) {\n if (typeof docID !== 'string' && typeof docID !== 'number') {\n throw new Error('docId必须为字符串或数字');\n }\n return new DocumentReference(this._db, this._coll, docID);\n };\n CollectionReference.prototype.add = function (data, callback) {\n var docRef = new DocumentReference(this._db, this._coll, undefined);\n return docRef.create(data, callback);\n };\n CollectionReference.prototype.aggregate = function () {\n return new Aggregation(this._db, this._coll);\n };\n return CollectionReference;\n}(Query));\nexport { CollectionReference };\n","import { QueryCommand, QUERY_COMMANDS_LITERAL } from './commands/query';\nimport { LogicCommand, LOGIC_COMMANDS_LITERAL } from './commands/logic';\nimport { UpdateCommand, UPDATE_COMMANDS_LITERAL } from './commands/update';\nimport { isArray, isObject, isString } from './utils/type';\nimport Aggregation from './aggregate';\nexport var Command = {\n eq: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.EQ, [val]);\n },\n neq: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.NEQ, [val]);\n },\n lt: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.LT, [val]);\n },\n lte: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.LTE, [val]);\n },\n gt: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GT, [val]);\n },\n gte: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GTE, [val]);\n },\n in: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.IN, val);\n },\n nin: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.NIN, val);\n },\n all: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.ALL, val);\n },\n elemMatch: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.ELEM_MATCH, [val]);\n },\n exists: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.EXISTS, [val]);\n },\n size: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.SIZE, [val]);\n },\n mod: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.MOD, [val]);\n },\n geoNear: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_NEAR, [val]);\n },\n geoWithin: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_WITHIN, [val]);\n },\n geoIntersects: function (val) {\n return new QueryCommand(QUERY_COMMANDS_LITERAL.GEO_INTERSECTS, [val]);\n },\n and: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.AND, expressions);\n },\n nor: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.NOR, expressions);\n },\n or: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.OR, expressions);\n },\n not: function () {\n var __expressions__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __expressions__[_i] = arguments[_i];\n }\n var expressions = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new LogicCommand(LOGIC_COMMANDS_LITERAL.NOT, expressions);\n },\n set: function (val) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.SET, [val]);\n },\n remove: function () {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.REMOVE, []);\n },\n inc: function (val) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.INC, [val]);\n },\n mul: function (val) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.MUL, [val]);\n },\n push: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var values;\n if (isObject(args[0]) && args[0].hasOwnProperty('each')) {\n var options = args[0];\n values = {\n $each: options.each,\n $position: options.position,\n $sort: options.sort,\n $slice: options.slice\n };\n }\n else if (isArray(args[0])) {\n values = args[0];\n }\n else {\n values = Array.from(args);\n }\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.PUSH, values);\n },\n pull: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.PULL, values);\n },\n pullAll: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.PULL_ALL, values);\n },\n pop: function () {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.POP, []);\n },\n shift: function () {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.SHIFT, []);\n },\n unshift: function () {\n var __values__ = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n __values__[_i] = arguments[_i];\n }\n var values = isArray(arguments[0]) ? arguments[0] : Array.from(arguments);\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.UNSHIFT, values);\n },\n addToSet: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.ADD_TO_SET, values);\n },\n rename: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.RENAME, [values]);\n },\n bit: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.BIT, [values]);\n },\n max: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.MAX, [values]);\n },\n min: function (values) {\n return new UpdateCommand(UPDATE_COMMANDS_LITERAL.MIN, [values]);\n },\n expr: function (values) {\n return {\n $expr: values\n };\n },\n jsonSchema: function (schema) {\n return {\n $jsonSchema: schema\n };\n },\n text: function (values) {\n if (isString(values)) {\n return {\n $search: values.search\n };\n }\n else {\n return {\n $search: values.search,\n $language: values.language,\n $caseSensitive: values.caseSensitive,\n $diacriticSensitive: values.diacriticSensitive\n };\n }\n },\n aggregate: {\n pipeline: function () {\n return new Aggregation();\n },\n abs: function (param) { return new AggregationOperator('abs', param); },\n add: function (param) { return new AggregationOperator('add', param); },\n ceil: function (param) { return new AggregationOperator('ceil', param); },\n divide: function (param) { return new AggregationOperator('divide', param); },\n exp: function (param) { return new AggregationOperator('exp', param); },\n floor: function (param) { return new AggregationOperator('floor', param); },\n ln: function (param) { return new AggregationOperator('ln', param); },\n log: function (param) { return new AggregationOperator('log', param); },\n log10: function (param) { return new AggregationOperator('log10', param); },\n mod: function (param) { return new AggregationOperator('mod', param); },\n multiply: function (param) { return new AggregationOperator('multiply', param); },\n pow: function (param) { return new AggregationOperator('pow', param); },\n sqrt: function (param) { return new AggregationOperator('sqrt', param); },\n subtract: function (param) { return new AggregationOperator('subtract', param); },\n trunc: function (param) { return new AggregationOperator('trunc', param); },\n arrayElemAt: function (param) { return new AggregationOperator('arrayElemAt', param); },\n arrayToObject: function (param) { return new AggregationOperator('arrayToObject', param); },\n concatArrays: function (param) { return new AggregationOperator('concatArrays', param); },\n filter: function (param) { return new AggregationOperator('filter', param); },\n in: function (param) { return new AggregationOperator('in', param); },\n indexOfArray: function (param) { return new AggregationOperator('indexOfArray', param); },\n isArray: function (param) { return new AggregationOperator('isArray', param); },\n map: function (param) { return new AggregationOperator('map', param); },\n range: function (param) { return new AggregationOperator('range', param); },\n reduce: function (param) { return new AggregationOperator('reduce', param); },\n reverseArray: function (param) { return new AggregationOperator('reverseArray', param); },\n size: function (param) { return new AggregationOperator('size', param); },\n slice: function (param) { return new AggregationOperator('slice', param); },\n zip: function (param) { return new AggregationOperator('zip', param); },\n and: function (param) { return new AggregationOperator('and', param); },\n not: function (param) { return new AggregationOperator('not', param); },\n or: function (param) { return new AggregationOperator('or', param); },\n cmp: function (param) { return new AggregationOperator('cmp', param); },\n eq: function (param) { return new AggregationOperator('eq', param); },\n gt: function (param) { return new AggregationOperator('gt', param); },\n gte: function (param) { return new AggregationOperator('gte', param); },\n lt: function (param) { return new AggregationOperator('lt', param); },\n lte: function (param) { return new AggregationOperator('lte', param); },\n neq: function (param) { return new AggregationOperator('ne', param); },\n cond: function (param) { return new AggregationOperator('cond', param); },\n ifNull: function (param) { return new AggregationOperator('ifNull', param); },\n switch: function (param) { return new AggregationOperator('switch', param); },\n dateFromParts: function (param) { return new AggregationOperator('dateFromParts', param); },\n dateFromString: function (param) { return new AggregationOperator('dateFromString', param); },\n dayOfMonth: function (param) { return new AggregationOperator('dayOfMonth', param); },\n dayOfWeek: function (param) { return new AggregationOperator('dayOfWeek', param); },\n dayOfYear: function (param) { return new AggregationOperator('dayOfYear', param); },\n isoDayOfWeek: function (param) { return new AggregationOperator('isoDayOfWeek', param); },\n isoWeek: function (param) { return new AggregationOperator('isoWeek', param); },\n isoWeekYear: function (param) { return new AggregationOperator('isoWeekYear', param); },\n millisecond: function (param) { return new AggregationOperator('millisecond', param); },\n minute: function (param) { return new AggregationOperator('minute', param); },\n month: function (param) { return new AggregationOperator('month', param); },\n second: function (param) { return new AggregationOperator('second', param); },\n hour: function (param) { return new AggregationOperator('hour', param); },\n week: function (param) { return new AggregationOperator('week', param); },\n year: function (param) { return new AggregationOperator('year', param); },\n literal: function (param) { return new AggregationOperator('literal', param); },\n mergeObjects: function (param) { return new AggregationOperator('mergeObjects', param); },\n objectToArray: function (param) { return new AggregationOperator('objectToArray', param); },\n allElementsTrue: function (param) { return new AggregationOperator('allElementsTrue', param); },\n anyElementTrue: function (param) { return new AggregationOperator('anyElementTrue', param); },\n setDifference: function (param) { return new AggregationOperator('setDifference', param); },\n setEquals: function (param) { return new AggregationOperator('setEquals', param); },\n setIntersection: function (param) { return new AggregationOperator('setIntersection', param); },\n setIsSubset: function (param) { return new AggregationOperator('setIsSubset', param); },\n setUnion: function (param) { return new AggregationOperator('setUnion', param); },\n concat: function (param) { return new AggregationOperator('concat', param); },\n dateToString: function (param) { return new AggregationOperator('dateToString', param); },\n indexOfBytes: function (param) { return new AggregationOperator('indexOfBytes', param); },\n indexOfCP: function (param) { return new AggregationOperator('indexOfCP', param); },\n split: function (param) { return new AggregationOperator('split', param); },\n strLenBytes: function (param) { return new AggregationOperator('strLenBytes', param); },\n strLenCP: function (param) { return new AggregationOperator('strLenCP', param); },\n strcasecmp: function (param) { return new AggregationOperator('strcasecmp', param); },\n substr: function (param) { return new AggregationOperator('substr', param); },\n substrBytes: function (param) { return new AggregationOperator('substrBytes', param); },\n substrCP: function (param) { return new AggregationOperator('substrCP', param); },\n toLower: function (param) { return new AggregationOperator('toLower', param); },\n toUpper: function (param) { return new AggregationOperator('toUpper', param); },\n meta: function (param) { return new AggregationOperator('meta', param); },\n addToSet: function (param) { return new AggregationOperator('addToSet', param); },\n avg: function (param) { return new AggregationOperator('avg', param); },\n first: function (param) { return new AggregationOperator('first', param); },\n last: function (param) { return new AggregationOperator('last', param); },\n max: function (param) { return new AggregationOperator('max', param); },\n min: function (param) { return new AggregationOperator('min', param); },\n push: function (param) { return new AggregationOperator('push', param); },\n stdDevPop: function (param) { return new AggregationOperator('stdDevPop', param); },\n stdDevSamp: function (param) { return new AggregationOperator('stdDevSamp', param); },\n sum: function (param) { return new AggregationOperator('sum', param); },\n let: function (param) { return new AggregationOperator('let', param); }\n },\n project: {\n slice: function (param) { return new ProjectionOperator('slice', param); },\n elemMatch: function (param) { return new ProjectionOperator('elemMatch', param); }\n }\n};\nvar AggregationOperator = (function () {\n function AggregationOperator(name, param) {\n this['$' + name] = param;\n }\n return AggregationOperator;\n}());\nvar ProjectionOperator = (function () {\n function ProjectionOperator(name, param) {\n this['$' + name] = param;\n }\n return ProjectionOperator;\n}());\nexport default Command;\n","import { SYMBOL_REGEXP } from '../helper/symbol';\nvar RegExp = (function () {\n function RegExp(_a) {\n var regexp = _a.regexp, options = _a.options;\n if (!regexp) {\n throw new TypeError('regexp must be a string');\n }\n this.$regex = regexp;\n this.$options = options;\n }\n RegExp.prototype.parse = function () {\n return {\n $regex: this.$regex,\n $options: this.$options\n };\n };\n Object.defineProperty(RegExp.prototype, \"_internalType\", {\n get: function () {\n return SYMBOL_REGEXP;\n },\n enumerable: false,\n configurable: true\n });\n return RegExp;\n}());\nexport { RegExp };\nexport function RegExpConstructor(param) {\n return new RegExp(param);\n}\n","export var ERRORS = {\n CREATE_WATCH_NET_ERROR: {\n code: 'CREATE_WATCH_NET_ERROR',\n message: 'create watch network error'\n },\n CREATE_WACTH_EXCEED_ERROR: {\n code: 'CREATE_WACTH_EXCEED_ERROR',\n message: 'maximum connections exceed'\n },\n CREATE_WATCH_SERVER_ERROR: {\n code: 'CREATE_WATCH_SERVER_ERROR',\n message: 'create watch server error'\n },\n CONN_ERROR: {\n code: 'CONN_ERROR',\n message: 'connection error'\n },\n INVALID_PARAM: {\n code: 'INVALID_PARAM',\n message: 'Invalid request param'\n },\n INSERT_DOC_FAIL: {\n code: 'INSERT_DOC_FAIL',\n message: 'insert document failed'\n },\n DATABASE_TRANSACTION_CONFLICT: {\n code: 'DATABASE_TRANSACTION_CONFLICT',\n message: 'database transaction conflict'\n }\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { EJSON } from 'bson';\nimport { ERRORS } from '../const/code';\nimport { UpdateSerializer } from '../serializer/update';\nimport { serialize } from '../serializer/datatype';\nimport { Util } from '../util';\nvar GET_DOC = 'database.getInTransaction';\nvar UPDATE_DOC = 'database.updateDocInTransaction';\nvar DELETE_DOC = 'database.deleteDocInTransaction';\nvar INSERT_DOC = 'database.insertDocInTransaction';\nvar DocumentReference = (function () {\n function DocumentReference(transaction, coll, docID) {\n this._coll = coll;\n this.id = docID;\n this._transaction = transaction;\n this._request = this._transaction.getRequestMethod();\n this._transactionId = this._transaction.getTransactionId();\n }\n DocumentReference.prototype.create = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var params, res, inserted, ok;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n params = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n data: EJSON.stringify(serialize(data), { relaxed: false })\n };\n if (this.id) {\n params['_id'] = this.id;\n }\n return [4, this._request.send(INSERT_DOC, params)];\n case 1:\n res = _a.sent();\n if (res.code) {\n throw res;\n }\n inserted = EJSON.parse(res.inserted);\n ok = EJSON.parse(res.ok);\n if (ok == 1 && inserted == 1) {\n return [2, __assign(__assign({}, res), { ok: ok, inserted: inserted })];\n }\n else {\n throw new Error(ERRORS.INSERT_DOC_FAIL.message);\n }\n return [2];\n }\n });\n });\n };\n DocumentReference.prototype.get = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n }\n };\n return [4, this._request.send(GET_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, {\n data: res.data !== 'null' ? Util.formatField(EJSON.parse(res.data)) : EJSON.parse(res.data),\n requestId: res.requestId\n }];\n }\n });\n });\n };\n DocumentReference.prototype.set = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n },\n data: EJSON.stringify(serialize(data), { relaxed: false }),\n upsert: true\n };\n return [4, this._request.send(UPDATE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { updated: EJSON.parse(res.updated), upserted: res.upserted\n ? JSON.parse(res.upserted)\n : null })];\n }\n });\n });\n };\n DocumentReference.prototype.update = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n },\n data: EJSON.stringify(UpdateSerializer.encode(data), {\n relaxed: false\n })\n };\n return [4, this._request.send(UPDATE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { updated: EJSON.parse(res.updated) })];\n }\n });\n });\n };\n DocumentReference.prototype.delete = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: {\n _id: { $eq: this.id }\n }\n };\n return [4, this._request.send(DELETE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { deleted: EJSON.parse(res.deleted) })];\n }\n });\n });\n };\n return DocumentReference;\n}());\nexport { DocumentReference };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { EJSON } from 'bson';\nimport { ErrorCode } from '../constant';\nimport { Validate } from '../validate';\nimport { QuerySerializer } from '../serializer/query';\nimport { UpdateSerializer } from '../serializer/update';\nimport { Util } from '../util';\nvar GET_DOC = 'database.getInTransaction';\nvar UPDATE_DOC = 'database.updateDocInTransaction';\nvar DELETE_DOC = 'database.deleteDocInTransaction';\nvar Query = (function () {\n function Query(transaction, coll, fieldFilters, fieldOrders, queryOptions) {\n this._coll = coll;\n this._transaction = transaction;\n this._fieldFilters = fieldFilters;\n this._fieldOrders = fieldOrders || [];\n this._queryOptions = queryOptions || {};\n this._request = this._transaction.getRequestMethod();\n this._transactionId = this._transaction.getTransactionId();\n }\n Query.prototype.where = function (query) {\n if (Object.prototype.toString.call(query).slice(8, -1) !== 'Object') {\n throw Error(ErrorCode.QueryParamTypeError);\n }\n var keys = Object.keys(query);\n var checkFlag = keys.some(function (item) {\n return query[item] !== undefined;\n });\n if (keys.length && !checkFlag) {\n throw Error(ErrorCode.QueryParamValueError);\n }\n return new Query(this._transaction, this._coll, QuerySerializer.encode(query), this._fieldOrders, this._queryOptions);\n };\n Query.prototype.orderBy = function (fieldPath, directionStr) {\n Validate.isFieldPath(fieldPath);\n Validate.isFieldOrder(directionStr);\n var newOrder = {\n field: fieldPath,\n direction: directionStr\n };\n var combinedOrders = this._fieldOrders.concat(newOrder);\n return new Query(this._transaction, this._coll, this._fieldFilters, combinedOrders, this._queryOptions);\n };\n Query.prototype.limit = function (limit) {\n Validate.isInteger('limit', limit);\n var option = __assign({}, this._queryOptions);\n option.limit = limit;\n return new Query(this._transaction, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.skip = function (offset) {\n Validate.isInteger('offset', offset);\n var option = __assign({}, this._queryOptions);\n option.offset = offset;\n return new Query(this._transaction, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.field = function (projection) {\n for (var k in projection) {\n if (projection[k]) {\n if (typeof projection[k] !== 'object') {\n projection[k] = 1;\n }\n }\n else {\n projection[k] = 0;\n }\n }\n var option = __assign({}, this._queryOptions);\n option.projection = projection;\n return new Query(this._transaction, this._coll, this._fieldFilters, this._fieldOrders, option);\n };\n Query.prototype.get = function () {\n return __awaiter(this, void 0, void 0, function () {\n var newOrder, param, res, data, documents, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n newOrder = [];\n if (this._fieldOrders) {\n this._fieldOrders.forEach(function (order) {\n newOrder.push(order);\n });\n }\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n if (newOrder.length > 0) {\n param.order = newOrder;\n }\n if (this._queryOptions.offset) {\n param.offset = this._queryOptions.offset;\n }\n if (this._queryOptions.limit) {\n param.limit = this._queryOptions.limit < 1000 ? this._queryOptions.limit : 1000;\n }\n else {\n param.limit = 100;\n }\n if (this._queryOptions.projection) {\n param.projection = this._queryOptions.projection;\n }\n return [4, this._request.send(GET_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n data = res.data !== 'null' ? EJSON.parse(res.data) : null;\n documents = data ? (Array.isArray(data) ? Util.formatResDocumentData(data) : [Util.formatField(data)]) : [];\n result = {\n data: documents,\n requestId: res.requestId\n };\n if (res.total !== undefined)\n result.total = res.total;\n if (res.limit !== undefined)\n result.limit = res.limit;\n if (res.offset !== undefined)\n result.offset = res.offset;\n return [2, result];\n }\n });\n });\n };\n Query.prototype.count = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res, data, total;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId\n };\n if (this._fieldFilters) {\n param.query = this._fieldFilters;\n }\n return [4, this._request.send(GET_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n data = res.data !== 'null' ? EJSON.parse(res.data) : null;\n total = Array.isArray(data) ? data.length : (data ? 1 : 0);\n return [2, {\n requestId: res.requestId,\n total: res.total !== undefined ? res.total : total\n }];\n }\n });\n });\n };\n Query.prototype.update = function (data) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!data || typeof data !== 'object') {\n throw new Error('参数必需是非空对象');\n }\n if (data.hasOwnProperty('_id')) {\n throw new Error('不能更新_id的值');\n }\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: this._fieldFilters,\n data: EJSON.stringify(UpdateSerializer.encode(data), { relaxed: false })\n };\n return [4, this._request.send(UPDATE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { updated: EJSON.parse(res.updated) })];\n }\n });\n });\n };\n Query.prototype.remove = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (Object.keys(this._queryOptions).length > 0) {\n console.warn('`offset`, `limit` and `projection` are not supported in remove() operation');\n }\n if (this._fieldOrders.length > 0) {\n console.warn('`orderBy` is not supported in remove() operation');\n }\n param = {\n collectionName: this._coll,\n transactionId: this._transactionId,\n query: this._fieldFilters\n };\n return [4, this._request.send(DELETE_DOC, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n return [2, __assign(__assign({}, res), { deleted: EJSON.parse(res.deleted) })];\n }\n });\n });\n };\n return Query;\n}());\nexport { Query };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DocumentReference } from './document';\nimport { Query } from './query';\nvar CollectionReference = (function (_super) {\n __extends(CollectionReference, _super);\n function CollectionReference(transaction, coll) {\n return _super.call(this, transaction, coll) || this;\n }\n Object.defineProperty(CollectionReference.prototype, \"name\", {\n get: function () {\n return this._coll;\n },\n enumerable: false,\n configurable: true\n });\n CollectionReference.prototype.doc = function (docID) {\n if (typeof docID !== 'string' && typeof docID !== 'number') {\n throw new Error('docId必须为字符串或数字');\n }\n return new DocumentReference(this._transaction, this._coll, docID);\n };\n CollectionReference.prototype.add = function (data) {\n var docID;\n if (data._id !== undefined) {\n docID = data._id;\n }\n var docRef = new DocumentReference(this._transaction, this._coll, docID);\n return docRef.create(data);\n };\n return CollectionReference;\n}(Query));\nexport { CollectionReference };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Db } from '../index';\nimport { CollectionReference } from './collection';\nimport { ERRORS } from '../const/code';\nvar START = 'database.startTransaction';\nvar COMMIT = 'database.commitTransaction';\nvar ABORT = 'database.abortTransaction';\nvar Transaction = (function () {\n function Transaction(db) {\n this._db = db;\n this._request = Db.createRequest(this._db.config);\n this.aborted = false;\n this.commited = false;\n this.inited = false;\n }\n Transaction.prototype.init = function () {\n return __awaiter(this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, this._request.send(START)];\n case 1:\n res = _a.sent();\n if (res.code) {\n throw res;\n }\n this.inited = true;\n this._id = res.transactionId;\n return [2];\n }\n });\n });\n };\n Transaction.prototype.collection = function (collName) {\n if (!collName) {\n throw new Error('Collection name is required');\n }\n return new CollectionReference(this, collName);\n };\n Transaction.prototype.getTransactionId = function () {\n return this._id;\n };\n Transaction.prototype.getRequestMethod = function () {\n return this._request;\n };\n Transaction.prototype.commit = function () {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n transactionId: this._id\n };\n return [4, this._request.send(COMMIT, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n this.commited = true;\n return [2, res];\n }\n });\n });\n };\n Transaction.prototype.rollback = function (customRollbackRes) {\n return __awaiter(this, void 0, void 0, function () {\n var param, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n param = {\n transactionId: this._id\n };\n return [4, this._request.send(ABORT, param)];\n case 1:\n res = _a.sent();\n if (res.code)\n throw res;\n this.aborted = true;\n this.abortReason = customRollbackRes;\n return [2, res];\n }\n });\n });\n };\n return Transaction;\n}());\nexport { Transaction };\nexport function startTransaction() {\n return __awaiter(this, void 0, void 0, function () {\n var transaction;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n transaction = new Transaction(this);\n return [4, transaction.init()];\n case 1:\n _a.sent();\n return [2, transaction];\n }\n });\n });\n}\nexport function runTransaction(callback, times) {\n if (times === void 0) { times = 3; }\n return __awaiter(this, void 0, void 0, function () {\n var transaction, callbackRes, error_1, throwWithRollback;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 4, , 10]);\n transaction = new Transaction(this);\n return [4, transaction.init()];\n case 1:\n _a.sent();\n return [4, callback(transaction)];\n case 2:\n callbackRes = _a.sent();\n if (transaction.aborted === true) {\n throw transaction.abortReason;\n }\n return [4, transaction.commit()];\n case 3:\n _a.sent();\n return [2, callbackRes];\n case 4:\n error_1 = _a.sent();\n if (transaction.inited === false) {\n throw error_1;\n }\n throwWithRollback = function (error) { return __awaiter(_this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(!transaction.aborted && !transaction.commited)) return [3, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4, transaction.rollback()];\n case 2:\n _a.sent();\n return [3, 4];\n case 3:\n err_1 = _a.sent();\n return [3, 4];\n case 4: throw error;\n case 5:\n if (transaction.aborted === true) {\n throw transaction.abortReason;\n }\n throw error;\n }\n });\n }); };\n if (!(times <= 0)) return [3, 6];\n return [4, throwWithRollback(error_1)];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6:\n if (!(error_1 && error_1.code === ERRORS.DATABASE_TRANSACTION_CONFLICT.code)) return [3, 8];\n return [4, runTransaction.bind(this)(callback, --times)];\n case 7: return [2, _a.sent()];\n case 8: return [4, throwWithRollback(error_1)];\n case 9:\n _a.sent();\n return [3, 10];\n case 10: return [2];\n }\n });\n });\n}\n","import * as Geo from './geo/index';\nimport { CollectionReference } from './collection';\nimport { Command } from './command';\nimport { ServerDateConstructor } from './serverDate/index';\nimport { RegExpConstructor } from './regexp/index';\nimport { startTransaction, runTransaction } from './transaction/index';\nimport { LogicCommand } from './commands/logic';\nimport { QueryCommand } from './commands/query';\nimport { UpdateCommand } from './commands/update';\nexport { Query } from './query';\nexport { CollectionReference } from './collection';\nexport { DocumentReference } from './document';\nvar Db = (function () {\n function Db(config) {\n this.config = config;\n this.Geo = Geo;\n this.serverDate = ServerDateConstructor;\n this.command = Command;\n this.RegExp = RegExpConstructor;\n this.startTransaction = startTransaction;\n this.runTransaction = runTransaction;\n this.logicCommand = LogicCommand;\n this.updateCommand = UpdateCommand;\n this.queryCommand = QueryCommand;\n }\n Db.createRequest = function (config) {\n var request = new Db.reqClass(config);\n var originalSend = request.send;\n request.send = function (action, data) {\n if (config.instance) {\n data.instance = config.instance;\n }\n if (config.database) {\n data.database = config.database;\n }\n return originalSend.call(this, action, data);\n };\n return request;\n };\n Db.prototype.collection = function (collName) {\n if (!collName) {\n throw new Error('Collection name is required');\n }\n return new CollectionReference(this, collName);\n };\n Db.prototype.createCollection = function (collName) {\n var request = Db.createRequest(this.config);\n var params = {\n collectionName: collName\n };\n return request.send('database.addCollection', params);\n };\n return Db;\n}());\nexport { Db };\n","import { Db } from '@cloudbase/database'\nimport { ICloudbase } from '@cloudbase/types'\nimport { ICloudbaseComponent } from '@cloudbase/types/component'\nimport cloudbaseNS from '../../index'\nimport { EJSON } from 'bson'\n\ndeclare const cloudbase: ICloudbase\ndeclare type QueryType = 'WHERE' | 'DOC'\n\n/**\n * 数据库配置接口\n */\ninterface IDbConfig {\n /** 实例 ID(可选,默认 '(default)') */\n instance?: string\n /** 数据库名称(可选,默认 '(default)') */\n database?: string\n}\n\ninterface IBaseReq extends IDbConfig {\n collectionName: string\n transactionId?: string\n}\n\ninterface IDocumentsQueryReq extends IBaseReq {\n query?: any\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n order?: string[]\n offset?: number\n limit?: number\n projection?: Object\n}\n\ninterface IDocumentsAddReq extends IBaseReq {\n data: Object | Object[]\n}\n\ninterface IDocumentsUpdateReq extends IBaseReq {\n query: Object\n data: Object\n /** 是否批量更新(默认 false) */\n multi?: boolean\n /** 把所有更新数据转为带操作符的 */\n merge?: boolean\n /** 不存在时是否创建(默认 false) */\n upsert?: boolean\n /** 是否替换整个文档(默认 false,为 true 时替换整个文档而非合并更新) */\n replaceMode?: boolean\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n}\n\ninterface IDocumentsRemoveReq extends IBaseReq {\n query: Object\n /** 是否批量删除(默认 false) */\n multi?: boolean\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n}\n\ninterface IDocumentsCountReq extends IBaseReq {\n query: Object\n /** @deprecated 使用 query 替代 */\n queryType?: QueryType\n}\n\ninterface ICommonRes<T> {\n data?: T & { code?: string }\n requestId: string\n code?: string\n message?: string\n}\n\ninterface IAddRes {\n /** 单条插入时返回的文档 ID(批量插入时不返回) */\n _id?: string\n /** 批量插入时返回的文档 ID 列表 */\n ids?: string[]\n insertedIds: string[]\n}\n\ninterface IRunCommandsReq {\n transactionId?: string\n /** 命令数组,方法会将其转为 MongoDB 原生命令(EJSON 对象格式) */\n commands: Object[]\n}\n\nconst COMPONENT_NAME = 'database'\n\nconst gateWayFunc = {\n /**\n * 过滤响应,移除不必要的字段\n */\n filterRes <T>(res: ICommonRes<T> & { header?: any; statusCode?: number }): ICommonRes<T> {\n delete res.header\n delete res.statusCode\n return res\n },\n\n /**\n * 展开响应数据到顶层(用于事务等场景)\n */\n flattenResData <T>(res: ICommonRes<T>): any {\n if (typeof res.data === 'object' && res.data !== null) {\n const result = { ...res, ...res.data }\n delete result.data\n return result\n }\n return res\n },\n\n /**\n * 安全解析 EJSON\n */\n safeParseEJSON(data: any): any {\n if (typeof data !== 'string') return data\n try {\n return EJSON.parse(data)\n } catch {\n return data\n }\n },\n\n /**\n * 构建 URL 查询参数\n */\n buildQueryParams(params: Record<string, any>): string {\n return Object.entries(params)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .filter(([_, value]) => value !== undefined && value !== null && value !== '')\n .map(([key, value]) => {\n const stringValue = typeof value === 'object' ? JSON.stringify(value) : String(value)\n return `${encodeURIComponent(key)}=${encodeURIComponent(stringValue)}`\n })\n .join('&')\n },\n\n /**\n * 获取 URL 前缀\n */\n getUrlPrefix(data: IDbConfig): string {\n const instance = data?.instance || '(default)'\n const database = data?.database || '(default)'\n return `/database/instances/${instance}/databases/${database}`\n },\n\n async 'database.queryDocument'(data: IDocumentsQueryReq,): Promise<ICommonRes<{ offset?: number; limit?: number; list: any[] }>> {\n const isQueryDoc = !!data.query?._id?.$eq\n const queryParams = gateWayFunc.buildQueryParams({\n projection: data.projection,\n transactionId: data.transactionId,\n ...(isQueryDoc\n ? {}\n : {\n offset: data.offset ?? 0,\n limit: data.limit ?? 100,\n order: data.order,\n query: data.query ? EJSON.stringify(data.query, { relaxed: false }) : undefined,\n }),\n })\n\n let url = `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents?${queryParams}`\n\n // 查询单个文档\n if (isQueryDoc) {\n url = `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents/${\n data.query._id?.$eq || data.query._id\n }?${queryParams}`\n }\n\n let res = await this.gateWay({\n url,\n method: 'GET',\n })\n\n // 尝试解析 EJSON 格式的数据\n res.data = gateWayFunc.safeParseEJSON(JSON.stringify(res.data))\n\n if (isQueryDoc && !res.code && !res.data?.code) {\n return {\n ...res,\n data: { list: [res.data] }\n }\n }\n\n // 确保 res.data.list 为数组,兼容后端返回数据或直接返回文档数组的情况\n if (!res.code && !res.data?.code) {\n if (Array.isArray(res.data)) {\n // 后端直接返回文档数组\n res = { ...res, data: { list: res.data } }\n } else if (res.data && !Array.isArray(res.data.list)) {\n // 后端返回对象但缺少 list 字段\n res = { ...res, data: { ...res.data, list: [] } }\n }\n } else {\n res = { ...res, code: res.code || res.data?.code, data: { ...res.data, list: [] } }\n }\n\n return gateWayFunc.filterRes(res)\n },\n\n async 'database.addDocument'(data: IDocumentsAddReq): Promise<ICommonRes<IAddRes>> {\n let res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents`,\n method: 'POST',\n data: {\n data: Array.isArray(data.data) ? data.data : [data.data],\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n if (Array.isArray(data.data)) {\n // 数组模式(批量插入),返回 ids 列表\n res = {\n ...res,\n data: {\n ids: res.data?.insertedIds || [],\n ...res.data,\n },\n }\n } else if (res.data?.insertedIds?.[0]) {\n // 非数组模式(单条插入),将 _id 提升到顶层\n res = {\n ...res,\n data: {\n _id: res.data.insertedIds[0],\n ...res.data,\n },\n }\n }\n\n return gateWayFunc.filterRes(res)\n },\n\n async 'database.updateDocument'(data: IDocumentsUpdateReq,): Promise<ICommonRes<{ matched: number; updated: number; upsert_id: string }>> {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents`,\n method: 'PATCH',\n data: {\n query: data.query,\n data: data.data,\n multi: !!data.multi,\n upsert: !!data.upsert,\n replaceMode: !!data.replaceMode,\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n async 'database.deleteDocument'(data: IDocumentsRemoveReq): Promise<ICommonRes<{ deleted: number }>> {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents/remove`,\n method: 'POST',\n data: {\n query: data.query,\n multi: !!data.multi,\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n async 'database.countDocument'(data: IDocumentsCountReq): Promise<ICommonRes<{ total: number }>> {\n const queryParams = gateWayFunc.buildQueryParams({\n count: true,\n query: data.query ? EJSON.stringify(data.query, { relaxed: false }) : undefined,\n })\n\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents?${queryParams}`,\n method: 'GET',\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n async 'database.addCollection'(data: { collectionName: string } & IDbConfig): Promise<ICommonRes<''>> {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections`,\n method: 'POST',\n data: { collectionName: data.collectionName },\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n async 'database.aggregate'(data: { collectionName: string; stages: { stageKey: string; stageValue: any }[] } & IDbConfig,): Promise<ICommonRes<{ list: string }>> {\n const pipeline = data.stages.map((stage) => {\n try {\n // stageValue 可能是字符串或对象,统一处理\n const value = typeof stage.stageValue === 'string' ? JSON.parse(stage.stageValue) : stage.stageValue\n return {\n [stage.stageKey]: EJSON.serialize(value),\n }\n } catch {\n return { [stage.stageKey]: stage.stageValue }\n }\n })\n\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/collections/${data.collectionName}/documents/aggregations`,\n method: 'POST',\n data: { pipeline },\n })\n\n // 将结果列表转为字符串格式(兼容原有逻辑)\n if (Array.isArray(res.data?.list)) {\n res.data.list = JSON.stringify(res.data.list.map((item: any) => JSON.stringify(item)))\n }\n\n return gateWayFunc.filterRes(res)\n },\n\n async 'database.startTransaction'(data: IDbConfig) {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/transactions`,\n method: 'POST',\n })\n\n return gateWayFunc.filterRes(gateWayFunc.flattenResData(res))\n },\n\n async 'database.commitTransaction'(data: { transactionId: string } & IDbConfig) {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/transactions/${data.transactionId}/commit`,\n method: 'POST',\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n async 'database.abortTransaction'(data: { transactionId: string } & IDbConfig) {\n const res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/transactions/${data.transactionId}/rollback`,\n method: 'POST',\n })\n\n return gateWayFunc.filterRes(res)\n },\n\n async 'database.getInTransaction'(data: IDocumentsQueryReq) {\n const res = await gateWayFunc['database.queryDocument'].call(this, data)\n\n if (typeof res.data === 'object' && res.data !== null) {\n if (res.data?.code) {\n return gateWayFunc.flattenResData(res)\n }\n return { ...res, data: JSON.stringify(res.data) as any }\n }\n\n return res\n },\n\n async 'database.updateDocInTransaction'(data: IDocumentsUpdateReq) {\n // 尝试解析 EJSON 格式的数据\n data.data = gateWayFunc.safeParseEJSON(data.data)\n\n const res = await gateWayFunc['database.updateDocument'].call(this, data)\n return gateWayFunc.flattenResData(res)\n },\n\n async 'database.deleteDocInTransaction'(data: IDocumentsRemoveReq) {\n const res = await gateWayFunc['database.deleteDocument'].call(this, data)\n return gateWayFunc.flattenResData(res)\n },\n\n async 'database.insertDocInTransaction'(data: IDocumentsAddReq,): Promise<ICommonRes<IAddRes & { inserted?: number }>> {\n // 尝试解析 EJSON 格式的数据\n data.data = gateWayFunc.safeParseEJSON(data.data)\n\n let res = await gateWayFunc['database.addDocument'].call(this, data)\n\n if (typeof res.data === 'object' && res.data !== null) {\n const hasId = !!res.data?._id\n res = {\n ...res,\n inserted: hasId ? 1 : 0,\n ok: hasId ? 1 : 0,\n ...res.data,\n } as any\n } else {\n res = { inserted: 0, ok: 0, ...res } as any\n }\n\n delete res.data\n\n return res\n },\n\n async 'database.runCommands'(data: IRunCommandsReq & IDbConfig,): Promise<ICommonRes<{ list: Object[][] }>> {\n let res = await this.gateWay({\n url: `${gateWayFunc.getUrlPrefix(data)}/commands`,\n method: 'POST',\n data: {\n commands: EJSON.serialize(data.commands),\n ...(data.transactionId && { transactionId: data.transactionId }),\n },\n })\n\n if (typeof res.data === 'object' && res.data !== null) {\n res = { ...res, ...res.data }\n delete res.data\n delete res.request_id\n }\n\n // 尝试将结果转换为普通对象\n try {\n res = EJSON.deserialize(res)\n } catch {\n // 忽略转换失败\n }\n\n return gateWayFunc.filterRes(res)\n },\n}\n\nfunction database(dbConfig?: IDbConfig) {\n const { adapter, runtime } = this.platform\n\n class Req extends this.request.constructor {\n constructor(config) {\n super(config)\n }\n\n async send(action: string, data: any) {\n let res = null\n\n if (this.config.endPointMode === 'GATEWAY' && gateWayFunc[action]) {\n res = await gateWayFunc[action].call(this, data)\n } else {\n res = await super.send(action, data)\n }\n\n return res\n }\n }\n\n Db.reqClass = Req\n // 未登录情况下传入空函数\n Db.getAccessToken = this.authInstance ? this.authInstance.getAccessToken.bind(this.authInstance) : () => ''\n Db.runtime = runtime\n if (this.wsClientClass) {\n Db.wsClass = adapter.wsClass\n Db.wsClientClass = this.wsClientClass\n }\n\n if (!Db.ws) {\n Db.ws = null\n }\n\n class NewDb extends Db {\n constructor(config?: IDbConfig) {\n super(config)\n }\n\n async runCommands(params: IRunCommandsReq): Promise<ICommonRes<{ list: Object[][] }>> {\n const request = Db.createRequest(this.config)\n\n return request.send('database.runCommands', params)\n }\n }\n\n return new NewDb({ ...this.config, _fromApp: this, ...dbConfig })\n}\n\nconst component: ICloudbaseComponent = {\n name: COMPONENT_NAME,\n entity: {\n database,\n },\n}\ntry {\n cloudbase.registerComponent(component)\n} catch (e) {}\n\nexport function registerDatabase(app: ICloudbase | typeof cloudbaseNS) {\n try {\n app.registerComponent(component)\n } catch (e) {\n console.warn(e)\n }\n}\n\ntry {\n (window as any).registerDatabase = registerDatabase\n} catch (e) {}\n"],"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","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","ServerDate","offset","$date","ServerDateConstructor","opt","UPDATE_COMMANDS_LITERAL","__read","n","r","e","ar","Util","formatResDocumentData","documents","document","formatField","keys","protoField","realValue","item","whichType","lng","lat","Date","$timestamp","generateDocId","autoId","charAt","Math","floor","chars","random","Validate","isGeopoint","degree","degreeAbs","abs","isInteger","param","num","Number","isFieldOrder","direction","isFieldPath","path","test","isOperator","op","isCollName","name","isDocID","docId","createPromiseCallback","cb","Promise","promise","throwPromiseNotDefined","resolve","reject","err","data","LOGIC_COMMANDS_LITERAL","UpdateCommand","operator","operands","fieldName","_setFieldName","isUpdateCommand","object","LogicCommand","isLogicCommand","query","isQueryCommand","operand","and","__expressions__","_i","arguments","expressions","from","unshift","AND","or","OR","QUERY_COMMANDS_LITERAL","QueryCommand","_this","IN","NIN","val","command","EQ","neq","NEQ","GT","GTE","LT","LTE","in","list","nin","geoNear","geometry","undefined","maxDistance","minDistance","GEO_NEAR","geoWithin","GEO_WITHIN","geoIntersects","GEO_INTERSECTS","isComparisonCommand","OperatorMap","operatorToString","__assign","assign","t","apply","__spreadArray","to","pack","l","serialize","serializeHelper","visited","$regex","source","$options","flags","indexOf","ret","flatten","shouldPreserverObject","parents","cloned","flattenedChild","hasKeyNotCombined","childKey","flattenQueryObject","isConversionRequired","mergeConditionAfterEncode","condition","conditionKey","console","warn","encodeInternalDataType","serializeInternalDataType","UpdateSerializer","encode","encodeUpdate","encodeUpdateCommand","encodeUpdateObject","encodeArrayUpdateCommand","encodeFieldUpdateCommand","$op","_f","_g","_h","_j","_k","modifiers","$each","$position","flattened","$setCommand","wsList","getWsInstance","db","Db","env","config","context","appConfig","docSizeLimit","realtimePingInterval","realtimePongWaitTimeout","request","DocumentReference","coll","docID","projection","watch","options","_db","envId","collectionName","_coll","JSON","stringify","_id","id","callback","isBatch","params","send","then","res","code","ids","insertedIds","requestId","catch","set","message","hasOperator","checkMixed","objs","queryType","multi","merge","upsert","updated","upsertedId","upserted_id","update","remove","deleted","field","k","QuerySerializer","QueryEncoder","encodeQuery","encodeLogicCommand","encodeQueryCommand","encodeQueryObject","encodeRegExp","subqueries","oprand","operatorExpression","subquery","bind","encodeComparisonCommand","$nearSphere","$geometry","$maxDistance","$minDistance","$geoWithin","$geoIntersects","Query","fieldFilters","fieldOrders","queryOptions","_fieldFilters","limit","_queryOptions","orderBy","_fieldOrders","reduce","acc","cur","_request","newOder","order","result","total","count","where","checkFlag","some","fieldPath","directionStr","newOrder","combinedOrders","option","skip","upsertId","upsert_id","external_bson_namespaceObject","y","EJSON","__WEBPACK_EXTERNAL_MODULE_bson__","Aggregation","_stages","_collectionName","end","thisArg","_arguments","generator","body","f","g","_","label","sent","trys","ops","verb","throw","v","pop","step","__generator","stages","P","fulfilled","rejected","unwrap","stageKey","stageValue","_pipe","stage","addFields","bucket","bucketAuto","distanceMultiplier","near","group","match","project","lookup","replaceRoot","sample","sort","sortByCount","unwind","aggregate","CollectionReference","doc","add","Command","all","elemMatch","exists","size","mod","nor","not","inc","mul","values","args","each","position","$sort","$slice","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","RegExp","regexp","RegExpConstructor","ERRORS","__awaiter","UPDATE_DOC","transaction","_transaction","getRequestMethod","_transactionId","getTransactionId","inserted","ok","transactionId","relaxed","$eq","upserted","delete","GET_DOC","Transaction","aborted","commited","inited","init","collection","collName","commit","rollback","customRollbackRes","abortReason","startTransaction","runTransaction","times","callbackRes","error_1","throwWithRollback","Geo","serverDate","logicCommand","updateCommand","queryCommand","createRequest","reqClass","originalSend","action","database","createCollection","gateWayFunc","filterRes","header","statusCode","flattenResData","safeParseEJSON","buildQueryParams","entries","stringValue","encodeURIComponent","join","getUrlPrefix","isQueryDoc","queryParams","url","gateWay","method","replaceMode","hasId","commands","request_id","component","entity","dbConfig","platform","adapter","runtime","Req","endPointMode","authInstance","getAccessToken","wsClientClass","wsClass","NewDb","runCommands","_fromApp","cloudbase","registerComponent","registerDatabase","app","window"],"sourceRoot":""}
|