@cloudbase/database 1.4.3 → 1.5.0

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.
Files changed (196) hide show
  1. package/dist/commonjs/ObjectId/index.d.ts +1 -1
  2. package/dist/commonjs/ObjectId/index.js +16 -9
  3. package/dist/commonjs/aggregate.js +126 -75
  4. package/dist/commonjs/collection.d.ts +3 -2
  5. package/dist/commonjs/collection.js +131 -58
  6. package/dist/commonjs/command.d.ts +5 -5
  7. package/dist/commonjs/command.js +181 -154
  8. package/dist/commonjs/commands/logic.js +30 -20
  9. package/dist/commonjs/commands/query.d.ts +1 -1
  10. package/dist/commonjs/commands/query.js +85 -65
  11. package/dist/commonjs/commands/update.js +9 -7
  12. package/dist/commonjs/config/error.config.js +1 -0
  13. package/dist/commonjs/const/code.js +1 -0
  14. package/dist/commonjs/constant.d.ts +7 -7
  15. package/dist/commonjs/constant.js +13 -11
  16. package/dist/commonjs/document.d.ts +10 -6
  17. package/dist/commonjs/document.js +305 -193
  18. package/dist/commonjs/geo/index.js +20 -9
  19. package/dist/commonjs/geo/lineString.d.ts +1 -1
  20. package/dist/commonjs/geo/lineString.js +62 -33
  21. package/dist/commonjs/geo/multiLineString.d.ts +1 -1
  22. package/dist/commonjs/geo/multiLineString.js +71 -32
  23. package/dist/commonjs/geo/multiPoint.d.ts +1 -1
  24. package/dist/commonjs/geo/multiPoint.js +58 -29
  25. package/dist/commonjs/geo/multiPolygon.d.ts +1 -1
  26. package/dist/commonjs/geo/multiPolygon.js +96 -36
  27. package/dist/commonjs/geo/point.d.ts +1 -1
  28. package/dist/commonjs/geo/point.js +30 -23
  29. package/dist/commonjs/geo/polygon.d.ts +1 -1
  30. package/dist/commonjs/geo/polygon.js +78 -39
  31. package/dist/commonjs/helper/symbol.js +17 -5
  32. package/dist/commonjs/index.d.ts +8 -2
  33. package/dist/commonjs/index.js +73 -20
  34. package/dist/commonjs/lib/util.d.ts +1 -0
  35. package/dist/commonjs/lib/util.js +26 -0
  36. package/dist/commonjs/operator-map.js +7 -6
  37. package/dist/commonjs/query.d.ts +8 -4
  38. package/dist/commonjs/query.js +308 -201
  39. package/dist/commonjs/regexp/index.d.ts +1 -1
  40. package/dist/commonjs/regexp/index.js +16 -9
  41. package/dist/commonjs/serializer/common.d.ts +2 -2
  42. package/dist/commonjs/serializer/common.js +59 -22
  43. package/dist/commonjs/serializer/datatype.d.ts +2 -2
  44. package/dist/commonjs/serializer/datatype.js +58 -21
  45. package/dist/commonjs/serializer/query.d.ts +1 -1
  46. package/dist/commonjs/serializer/query.js +137 -127
  47. package/dist/commonjs/serializer/update.d.ts +1 -1
  48. package/dist/commonjs/serializer/update.js +83 -78
  49. package/dist/commonjs/serverDate/index.d.ts +1 -1
  50. package/dist/commonjs/serverDate/index.js +16 -9
  51. package/dist/commonjs/transaction/collection.d.ts +7 -0
  52. package/dist/commonjs/transaction/collection.js +49 -0
  53. package/dist/commonjs/transaction/document.d.ts +27 -0
  54. package/dist/commonjs/transaction/document.js +205 -0
  55. package/dist/commonjs/transaction/index.js +196 -86
  56. package/dist/commonjs/transaction/query.d.ts +43 -0
  57. package/dist/commonjs/transaction/query.js +261 -0
  58. package/dist/commonjs/typings/index.d.ts +4 -4
  59. package/dist/commonjs/typings/realtime.d.ts +16 -16
  60. package/dist/commonjs/util.js +123 -92
  61. package/dist/commonjs/utils/error.d.ts +2 -1
  62. package/dist/commonjs/utils/error.js +74 -38
  63. package/dist/commonjs/utils/symbol.js +33 -14
  64. package/dist/commonjs/utils/type.d.ts +1 -1
  65. package/dist/commonjs/utils/type.js +25 -13
  66. package/dist/commonjs/utils/utils.d.ts +4 -1
  67. package/dist/commonjs/utils/utils.js +93 -22
  68. package/dist/commonjs/validate.js +79 -63
  69. package/dist/esm/ObjectId/index.d.ts +1 -1
  70. package/dist/esm/ObjectId/index.js +15 -8
  71. package/dist/esm/aggregate.js +118 -66
  72. package/dist/esm/collection.d.ts +3 -2
  73. package/dist/esm/collection.js +125 -52
  74. package/dist/esm/command.d.ts +5 -5
  75. package/dist/esm/command.js +175 -147
  76. package/dist/esm/commands/logic.js +30 -20
  77. package/dist/esm/commands/query.d.ts +1 -1
  78. package/dist/esm/commands/query.js +91 -71
  79. package/dist/esm/commands/update.js +8 -6
  80. package/dist/esm/config/error.config.js +1 -1
  81. package/dist/esm/const/code.js +1 -1
  82. package/dist/esm/constant.d.ts +7 -7
  83. package/dist/esm/constant.js +12 -11
  84. package/dist/esm/document.d.ts +10 -6
  85. package/dist/esm/document.js +297 -185
  86. package/dist/esm/geo/interface.js +1 -0
  87. package/dist/esm/geo/lineString.d.ts +1 -1
  88. package/dist/esm/geo/lineString.js +57 -28
  89. package/dist/esm/geo/multiLineString.d.ts +1 -1
  90. package/dist/esm/geo/multiLineString.js +66 -27
  91. package/dist/esm/geo/multiPoint.d.ts +1 -1
  92. package/dist/esm/geo/multiPoint.js +53 -24
  93. package/dist/esm/geo/multiPolygon.d.ts +1 -1
  94. package/dist/esm/geo/multiPolygon.js +91 -31
  95. package/dist/esm/geo/point.d.ts +1 -1
  96. package/dist/esm/geo/point.js +26 -19
  97. package/dist/esm/geo/polygon.d.ts +1 -1
  98. package/dist/esm/geo/polygon.js +73 -34
  99. package/dist/esm/helper/symbol.js +13 -13
  100. package/dist/esm/index.d.ts +8 -2
  101. package/dist/esm/index.js +62 -9
  102. package/dist/esm/lib/util.d.ts +1 -0
  103. package/dist/esm/lib/util.js +22 -0
  104. package/dist/esm/operator-map.js +4 -4
  105. package/dist/esm/query.d.ts +8 -4
  106. package/dist/esm/query.js +299 -192
  107. package/dist/esm/regexp/index.d.ts +1 -1
  108. package/dist/esm/regexp/index.js +15 -8
  109. package/dist/esm/serializer/common.d.ts +2 -2
  110. package/dist/esm/serializer/common.js +49 -13
  111. package/dist/esm/serializer/datatype.d.ts +2 -2
  112. package/dist/esm/serializer/datatype.js +44 -8
  113. package/dist/esm/serializer/query.d.ts +1 -1
  114. package/dist/esm/serializer/query.js +112 -102
  115. package/dist/esm/serializer/update.d.ts +1 -1
  116. package/dist/esm/serializer/update.js +69 -64
  117. package/dist/esm/serverDate/index.d.ts +1 -1
  118. package/dist/esm/serverDate/index.js +15 -8
  119. package/dist/esm/transaction/collection.d.ts +7 -0
  120. package/dist/esm/transaction/collection.js +46 -0
  121. package/dist/esm/transaction/document.d.ts +27 -0
  122. package/dist/esm/transaction/document.js +202 -0
  123. package/dist/esm/transaction/index.js +191 -81
  124. package/dist/esm/transaction/query.d.ts +43 -0
  125. package/dist/esm/transaction/query.js +258 -0
  126. package/dist/esm/typings/index.d.ts +4 -4
  127. package/dist/esm/typings/index.js +1 -0
  128. package/dist/esm/typings/realtime.d.ts +16 -16
  129. package/dist/esm/typings/realtime.js +1 -0
  130. package/dist/esm/util.js +121 -90
  131. package/dist/esm/utils/error.d.ts +2 -1
  132. package/dist/esm/utils/error.js +70 -35
  133. package/dist/esm/utils/symbol.js +33 -14
  134. package/dist/esm/utils/type.d.ts +1 -1
  135. package/dist/esm/utils/type.js +12 -12
  136. package/dist/esm/utils/utils.d.ts +4 -1
  137. package/dist/esm/utils/utils.js +78 -16
  138. package/dist/esm/validate.js +65 -49
  139. package/jest.config.js +14 -0
  140. package/package.json +14 -10
  141. package/src/aggregate.ts +1 -5
  142. package/src/collection.ts +15 -2
  143. package/src/document.ts +45 -34
  144. package/src/index.ts +51 -4
  145. package/src/query.ts +33 -29
  146. package/src/serializer/query.ts +18 -6
  147. package/src/transaction/index.ts +1 -1
  148. package/src/typings/index.ts +0 -4
  149. package/src/utils/utils.ts +46 -0
  150. package/src/validate.ts +3 -6
  151. package/tests/gateway-contract.test.ts +180 -0
  152. package/tests/index.test.ts +283 -0
  153. package/tests/transaction-query.test.ts +207 -0
  154. package/tsconfig.esm.json +4 -2
  155. package/tsconfig.json +16 -6
  156. package/tsconfig.test.json +15 -0
  157. package/dist/commonjs/realtime/error.d.ts +0 -7
  158. package/dist/commonjs/realtime/error.js +0 -11
  159. package/dist/commonjs/realtime/listener.d.ts +0 -14
  160. package/dist/commonjs/realtime/listener.js +0 -17
  161. package/dist/commonjs/realtime/message.d.ts +0 -3
  162. package/dist/commonjs/realtime/message.js +0 -10
  163. package/dist/commonjs/realtime/snapshot.d.ts +0 -16
  164. package/dist/commonjs/realtime/snapshot.js +0 -42
  165. package/dist/commonjs/realtime/virtual-websocket-client.d.ts +0 -63
  166. package/dist/commonjs/realtime/virtual-websocket-client.js +0 -736
  167. package/dist/commonjs/realtime/websocket-client.d.ts +0 -78
  168. package/dist/commonjs/realtime/websocket-client.js +0 -567
  169. package/dist/commonjs/realtime/ws-event.d.ts +0 -126
  170. package/dist/commonjs/realtime/ws-event.js +0 -139
  171. package/dist/commonjs/transaction.d.ts +0 -42
  172. package/dist/commonjs/transaction.js +0 -126
  173. package/dist/esm/realtime/error.d.ts +0 -7
  174. package/dist/esm/realtime/error.js +0 -8
  175. package/dist/esm/realtime/listener.d.ts +0 -14
  176. package/dist/esm/realtime/listener.js +0 -14
  177. package/dist/esm/realtime/message.d.ts +0 -3
  178. package/dist/esm/realtime/message.js +0 -6
  179. package/dist/esm/realtime/snapshot.d.ts +0 -16
  180. package/dist/esm/realtime/snapshot.js +0 -39
  181. package/dist/esm/realtime/virtual-websocket-client.d.ts +0 -63
  182. package/dist/esm/realtime/virtual-websocket-client.js +0 -733
  183. package/dist/esm/realtime/websocket-client.d.ts +0 -78
  184. package/dist/esm/realtime/websocket-client.js +0 -564
  185. package/dist/esm/realtime/ws-event.d.ts +0 -126
  186. package/dist/esm/realtime/ws-event.js +0 -137
  187. package/dist/esm/transaction.d.ts +0 -42
  188. package/dist/esm/transaction.js +0 -121
  189. package/src/realtime/error.ts +0 -19
  190. package/src/realtime/listener.ts +0 -35
  191. package/src/realtime/message.ts +0 -14
  192. package/src/realtime/snapshot.ts +0 -60
  193. package/src/realtime/virtual-websocket-client.ts +0 -1195
  194. package/src/realtime/websocket-client.ts +0 -995
  195. package/src/realtime/ws-event.ts +0 -163
  196. package/src/transaction.ts +0 -190
@@ -1,121 +1,130 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const query_1 = require("../commands/query");
4
- const logic_1 = require("../commands/logic");
5
- const symbol_1 = require("../helper/symbol");
6
- const type_1 = require("../utils/type");
7
- const operator_map_1 = require("../operator-map");
8
- const common_1 = require("./common");
9
- const utils_1 = require("../utils/utils");
10
- const validate_1 = require("../validate");
11
- class QuerySerializer {
12
- constructor() { }
13
- static encode(query) {
14
- const encoder = new QueryEncoder();
15
- return encoder.encodeQuery(query);
16
- }
17
- static encodeEJSON(query, raw) {
18
- const encoder = new QueryEncoder();
19
- return utils_1.stringifyByEJSON(raw ? query : encoder.encodeQuery(query));
3
+ exports.QuerySerializer = void 0;
4
+ var query_1 = require("../commands/query");
5
+ var logic_1 = require("../commands/logic");
6
+ var symbol_1 = require("../helper/symbol");
7
+ var type_1 = require("../utils/type");
8
+ var operator_map_1 = require("../operator-map");
9
+ var common_1 = require("./common");
10
+ var utils_1 = require("../utils/utils");
11
+ var validate_1 = require("../validate");
12
+ var QuerySerializer = (function () {
13
+ function QuerySerializer() {
20
14
  }
21
- }
15
+ QuerySerializer.encode = function (query) {
16
+ var encoder = new QueryEncoder();
17
+ return encoder.encodeQuery(query);
18
+ };
19
+ QuerySerializer.encodeEJSON = function (query, raw) {
20
+ var encoder = new QueryEncoder();
21
+ return (0, utils_1.stringifyByEJSON)(raw ? query : encoder.encodeQuery(query));
22
+ };
23
+ return QuerySerializer;
24
+ }());
22
25
  exports.QuerySerializer = QuerySerializer;
23
- class QueryEncoder {
24
- encodeQuery(query, key) {
25
- if (common_1.isConversionRequired(query)) {
26
- if (logic_1.isLogicCommand(query)) {
26
+ var QueryEncoder = (function () {
27
+ function QueryEncoder() {
28
+ }
29
+ QueryEncoder.prototype.encodeQuery = function (query, key) {
30
+ var _a, _b, _c;
31
+ if ((0, common_1.isConversionRequired)(query)) {
32
+ if ((0, logic_1.isLogicCommand)(query)) {
27
33
  return this.encodeLogicCommand(query);
28
34
  }
29
- else if (query_1.isQueryCommand(query)) {
35
+ else if ((0, query_1.isQueryCommand)(query)) {
30
36
  return this.encodeQueryCommand(query);
31
37
  }
32
- else if (type_1.isRegExp(query)) {
33
- return { [key]: this.encodeRegExp(query) };
38
+ else if ((0, type_1.isRegExp)(query)) {
39
+ return _a = {}, _a[key] = this.encodeRegExp(query), _a;
34
40
  }
35
- else if (type_1.isDate(query)) {
36
- return { [key]: query };
41
+ else if ((0, type_1.isDate)(query)) {
42
+ return _b = {}, _b[key] = (0, common_1.encodeInternalDataType)(query), _b;
37
43
  }
38
44
  else {
39
- return { [key]: this.encodeQueryObject(query) };
45
+ return _c = {}, _c[key] = this.encodeQueryObject(query), _c;
40
46
  }
41
47
  }
42
48
  else {
43
- if (type_1.isObject(query)) {
49
+ if ((0, type_1.isObject)(query)) {
44
50
  return this.encodeQueryObject(query);
45
51
  }
46
52
  else {
47
53
  return query;
48
54
  }
49
55
  }
50
- }
51
- encodeRegExp(query) {
56
+ };
57
+ QueryEncoder.prototype.encodeRegExp = function (query) {
52
58
  return {
53
59
  $regularExpression: {
54
60
  pattern: query.source,
55
61
  options: query.flags
56
62
  }
57
63
  };
58
- }
59
- encodeLogicCommand(query) {
64
+ };
65
+ QueryEncoder.prototype.encodeLogicCommand = function (query) {
66
+ var _a, _b, _c, _d, _e, _f, _g;
67
+ var _this = this;
60
68
  switch (query.operator) {
61
69
  case logic_1.LOGIC_COMMANDS_LITERAL.NOR:
62
70
  case logic_1.LOGIC_COMMANDS_LITERAL.AND:
63
71
  case logic_1.LOGIC_COMMANDS_LITERAL.OR: {
64
- const $op = operator_map_1.operatorToString(query.operator);
65
- const subqueries = query.operands.map((oprand) => this.encodeQuery(oprand, query.fieldName));
66
- return {
67
- [$op]: subqueries
68
- };
72
+ var $op = (0, operator_map_1.operatorToString)(query.operator);
73
+ var subqueries = query.operands.map(function (oprand) { return _this.encodeQuery(oprand, query.fieldName); });
74
+ return _a = {},
75
+ _a[$op] = subqueries,
76
+ _a;
69
77
  }
70
78
  case logic_1.LOGIC_COMMANDS_LITERAL.NOT: {
71
- const $op = operator_map_1.operatorToString(query.operator);
72
- const operatorExpression = query.operands[0];
73
- if (type_1.isRegExp(operatorExpression)) {
74
- return {
75
- [query.fieldName]: {
76
- [$op]: this.encodeRegExp(operatorExpression)
77
- }
78
- };
79
+ var $op = (0, operator_map_1.operatorToString)(query.operator);
80
+ var operatorExpression = query.operands[0];
81
+ if ((0, type_1.isRegExp)(operatorExpression)) {
82
+ return _b = {},
83
+ _b[query.fieldName] = (_c = {},
84
+ _c[$op] = this.encodeRegExp(operatorExpression),
85
+ _c),
86
+ _b;
79
87
  }
80
88
  else {
81
- const subqueries = this.encodeQuery(operatorExpression)[query.fieldName];
82
- return {
83
- [query.fieldName]: {
84
- [$op]: subqueries
85
- }
86
- };
89
+ var subqueries = this.encodeQuery(operatorExpression)[query.fieldName];
90
+ return _d = {},
91
+ _d[query.fieldName] = (_e = {},
92
+ _e[$op] = subqueries,
93
+ _e),
94
+ _d;
87
95
  }
88
96
  }
89
97
  default: {
90
- const $op = operator_map_1.operatorToString(query.operator);
98
+ var $op = (0, operator_map_1.operatorToString)(query.operator);
91
99
  if (query.operands.length === 1) {
92
- const subquery = this.encodeQuery(query.operands[0]);
93
- return {
94
- [$op]: subquery
95
- };
100
+ var subquery = this.encodeQuery(query.operands[0]);
101
+ return _f = {},
102
+ _f[$op] = subquery,
103
+ _f;
96
104
  }
97
105
  else {
98
- const subqueries = query.operands.map(this.encodeQuery.bind(this));
99
- return {
100
- [$op]: subqueries
101
- };
106
+ var subqueries = query.operands.map(this.encodeQuery.bind(this));
107
+ return _g = {},
108
+ _g[$op] = subqueries,
109
+ _g;
102
110
  }
103
111
  }
104
112
  }
105
- }
106
- encodeQueryCommand(query) {
107
- if (query_1.isComparisonCommand(query)) {
113
+ };
114
+ QueryEncoder.prototype.encodeQueryCommand = function (query) {
115
+ if ((0, query_1.isComparisonCommand)(query)) {
108
116
  return this.encodeComparisonCommand(query);
109
117
  }
110
118
  else {
111
119
  return this.encodeComparisonCommand(query);
112
120
  }
113
- }
114
- encodeComparisonCommand(query) {
121
+ };
122
+ QueryEncoder.prototype.encodeComparisonCommand = function (query) {
123
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
115
124
  if (query.fieldName === symbol_1.SYMBOL_UNSET_FIELD_NAME) {
116
125
  throw new Error('Cannot encode a comparison command with unset field name');
117
126
  }
118
- const $op = operator_map_1.operatorToString(query.operator);
127
+ var $op = (0, operator_map_1.operatorToString)(query.operator);
119
128
  switch (query.operator) {
120
129
  case query_1.QUERY_COMMANDS_LITERAL.EQ:
121
130
  case query_1.QUERY_COMMANDS_LITERAL.NEQ:
@@ -127,122 +136,122 @@ class QueryEncoder {
127
136
  case query_1.QUERY_COMMANDS_LITERAL.EXISTS:
128
137
  case query_1.QUERY_COMMANDS_LITERAL.SIZE:
129
138
  case query_1.QUERY_COMMANDS_LITERAL.MOD: {
130
- return {
131
- [query.fieldName]: {
132
- [$op]: common_1.encodeInternalDataType(query.operands[0])
133
- }
134
- };
139
+ return _a = {},
140
+ _a[query.fieldName] = (_b = {},
141
+ _b[$op] = (0, common_1.encodeInternalDataType)(query.operands[0]),
142
+ _b),
143
+ _a;
135
144
  }
136
145
  case query_1.QUERY_COMMANDS_LITERAL.IN:
137
146
  case query_1.QUERY_COMMANDS_LITERAL.NIN:
138
147
  case query_1.QUERY_COMMANDS_LITERAL.ALL: {
139
- return {
140
- [query.fieldName]: {
141
- [$op]: common_1.encodeInternalDataType(query.operands)
142
- }
143
- };
148
+ return _c = {},
149
+ _c[query.fieldName] = (_d = {},
150
+ _d[$op] = (0, common_1.encodeInternalDataType)(query.operands),
151
+ _d),
152
+ _c;
144
153
  }
145
154
  case query_1.QUERY_COMMANDS_LITERAL.GEO_NEAR: {
146
- const options = query.operands[0];
147
- return {
148
- [query.fieldName]: {
155
+ var options = query.operands[0];
156
+ return _e = {},
157
+ _e[query.fieldName] = {
149
158
  $nearSphere: {
150
159
  $geometry: options.geometry.toJSON(),
151
160
  $maxDistance: options.maxDistance,
152
161
  $minDistance: options.minDistance
153
162
  }
154
- }
155
- };
163
+ },
164
+ _e;
156
165
  }
157
166
  case query_1.QUERY_COMMANDS_LITERAL.GEO_WITHIN: {
158
- const options = query.operands[0];
167
+ var options = query.operands[0];
159
168
  if (options.centerSphere) {
160
169
  validate_1.Validate.isCentersPhere(options.centerSphere);
161
- const centerSphere = options.centerSphere;
170
+ var centerSphere = options.centerSphere;
162
171
  if (centerSphere[0]._internalType === symbol_1.SYMBOL_GEO_POINT) {
163
- return {
164
- [query.fieldName]: {
172
+ return _f = {},
173
+ _f[query.fieldName] = {
165
174
  $geoWithin: {
166
175
  $centerSphere: [centerSphere[0].toJSON().coordinates, centerSphere[1]]
167
176
  }
168
- }
169
- };
177
+ },
178
+ _f;
170
179
  }
171
- return {
172
- [query.fieldName]: {
180
+ return _g = {},
181
+ _g[query.fieldName] = {
173
182
  $geoWithin: {
174
183
  $centerSphere: options.centerSphere
175
184
  }
176
- }
177
- };
185
+ },
186
+ _g;
178
187
  }
179
- return {
180
- [query.fieldName]: {
188
+ return _h = {},
189
+ _h[query.fieldName] = {
181
190
  $geoWithin: {
182
191
  $geometry: options.geometry.toJSON()
183
192
  }
184
- }
185
- };
193
+ },
194
+ _h;
186
195
  }
187
196
  case query_1.QUERY_COMMANDS_LITERAL.GEO_INTERSECTS: {
188
- const options = query.operands[0];
189
- return {
190
- [query.fieldName]: {
197
+ var options = query.operands[0];
198
+ return _j = {},
199
+ _j[query.fieldName] = {
191
200
  $geoIntersects: {
192
201
  $geometry: options.geometry.toJSON()
193
202
  }
194
- }
195
- };
203
+ },
204
+ _j;
196
205
  }
197
206
  default: {
198
- return {
199
- [query.fieldName]: {
200
- [$op]: common_1.encodeInternalDataType(query.operands[0])
201
- }
202
- };
207
+ return _k = {},
208
+ _k[query.fieldName] = (_l = {},
209
+ _l[$op] = (0, common_1.encodeInternalDataType)(query.operands[0]),
210
+ _l),
211
+ _k;
203
212
  }
204
213
  }
205
- }
206
- encodeQueryObject(query) {
207
- const flattened = common_1.flattenQueryObject(query);
208
- for (const key in flattened) {
209
- const val = flattened[key];
210
- if (logic_1.isLogicCommand(val)) {
214
+ };
215
+ QueryEncoder.prototype.encodeQueryObject = function (query) {
216
+ var flattened = (0, common_1.flattenQueryObject)(query);
217
+ for (var key in flattened) {
218
+ var val = flattened[key];
219
+ if ((0, logic_1.isLogicCommand)(val)) {
211
220
  flattened[key] = val._setFieldName(key);
212
- const condition = this.encodeLogicCommand(flattened[key]);
221
+ var condition = this.encodeLogicCommand(flattened[key]);
213
222
  this.mergeConditionAfterEncode(flattened, condition, key);
214
223
  }
215
- else if (query_1.isComparisonCommand(val)) {
224
+ else if ((0, query_1.isComparisonCommand)(val)) {
216
225
  flattened[key] = val._setFieldName(key);
217
- const condition = this.encodeComparisonCommand(flattened[key]);
226
+ var condition = this.encodeComparisonCommand(flattened[key]);
218
227
  this.mergeConditionAfterEncode(flattened, condition, key);
219
228
  }
220
- else if (common_1.isConversionRequired(val)) {
221
- flattened[key] = common_1.encodeInternalDataType(val);
229
+ else if ((0, common_1.isConversionRequired)(val)) {
230
+ flattened[key] = (0, common_1.encodeInternalDataType)(val);
222
231
  }
223
232
  }
224
233
  return flattened;
225
- }
226
- mergeConditionAfterEncode(query, condition, key) {
234
+ };
235
+ QueryEncoder.prototype.mergeConditionAfterEncode = function (query, condition, key) {
227
236
  if (!condition[key]) {
228
237
  delete query[key];
229
238
  }
230
- for (const conditionKey in condition) {
239
+ for (var conditionKey in condition) {
231
240
  if (query[conditionKey]) {
232
- if (type_1.isArray(query[conditionKey])) {
241
+ if ((0, type_1.isArray)(query[conditionKey])) {
233
242
  query[conditionKey] = query[conditionKey].concat(condition[conditionKey]);
234
243
  }
235
- else if (type_1.isObject(query[conditionKey])) {
236
- if (type_1.isObject(condition[conditionKey])) {
244
+ else if ((0, type_1.isObject)(query[conditionKey])) {
245
+ if ((0, type_1.isObject)(condition[conditionKey])) {
237
246
  Object.assign(query, condition);
238
247
  }
239
248
  else {
240
- console.warn(`unmergable condition, query is object but condition is ${type_1.getType(condition)}, can only overwrite`, condition, key);
249
+ console.warn("unmergable condition, query is object but condition is ".concat((0, type_1.getType)(condition), ", can only overwrite"), condition, key);
241
250
  query[conditionKey] = condition[conditionKey];
242
251
  }
243
252
  }
244
253
  else {
245
- console.warn(`to-merge query is of type ${type_1.getType(query)}, can only overwrite`, query, condition, key);
254
+ console.warn("to-merge query is of type ".concat((0, type_1.getType)(query), ", can only overwrite"), query, condition, key);
246
255
  query[conditionKey] = condition[conditionKey];
247
256
  }
248
257
  }
@@ -250,5 +259,6 @@ class QueryEncoder {
250
259
  query[conditionKey] = condition[conditionKey];
251
260
  }
252
261
  }
253
- }
254
- }
262
+ };
263
+ return QueryEncoder;
264
+ }());
@@ -1,6 +1,6 @@
1
1
  import { UpdateCommand } from '../commands/update';
2
2
  import { LogicCommand } from '../commands/logic';
3
- export declare type IQueryCondition = Record<string, any> | LogicCommand;
3
+ export type IQueryCondition = Record<string, any> | LogicCommand;
4
4
  export interface IUpdateCondition {
5
5
  [key: string]: any;
6
6
  }
@@ -1,33 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const update_1 = require("../commands/update");
4
- const symbol_1 = require("../helper/symbol");
5
- const type_1 = require("../utils/type");
6
- const operator_map_1 = require("../operator-map");
7
- const common_1 = require("./common");
8
- const utils_1 = require("../utils/utils");
9
- class UpdateSerializer {
10
- constructor() { }
11
- static encode(query) {
12
- const stringifier = new UpdateSerializer();
13
- return stringifier.encodeUpdate(query);
14
- }
15
- static encodeEJSON(query, raw) {
16
- const stringifier = new UpdateSerializer();
17
- return utils_1.stringifyByEJSON(raw ? query : stringifier.encodeUpdate(query));
3
+ exports.UpdateSerializer = void 0;
4
+ var update_1 = require("../commands/update");
5
+ var symbol_1 = require("../helper/symbol");
6
+ var type_1 = require("../utils/type");
7
+ var operator_map_1 = require("../operator-map");
8
+ var common_1 = require("./common");
9
+ var utils_1 = require("../utils/utils");
10
+ var UpdateSerializer = (function () {
11
+ function UpdateSerializer() {
18
12
  }
19
- encodeUpdate(query) {
20
- if (update_1.isUpdateCommand(query)) {
13
+ UpdateSerializer.encode = function (query) {
14
+ var stringifier = new UpdateSerializer();
15
+ return stringifier.encodeUpdate(query);
16
+ };
17
+ UpdateSerializer.encodeEJSON = function (query, raw) {
18
+ var stringifier = new UpdateSerializer();
19
+ return (0, utils_1.stringifyByEJSON)(raw ? query : stringifier.encodeUpdate(query));
20
+ };
21
+ UpdateSerializer.prototype.encodeUpdate = function (query) {
22
+ if ((0, update_1.isUpdateCommand)(query)) {
21
23
  return this.encodeUpdateCommand(query);
22
24
  }
23
- else if (type_1.getType(query) === 'object') {
25
+ else if ((0, type_1.getType)(query) === 'object') {
24
26
  return this.encodeUpdateObject(query);
25
27
  }
26
28
  else {
27
29
  return query;
28
30
  }
29
- }
30
- encodeUpdateCommand(query) {
31
+ };
32
+ UpdateSerializer.prototype.encodeUpdateCommand = function (query) {
31
33
  if (query.fieldName === symbol_1.SYMBOL_UNSET_FIELD_NAME) {
32
34
  throw new Error('Cannot encode a comparison command with unset field name');
33
35
  }
@@ -45,32 +47,34 @@ class UpdateSerializer {
45
47
  return this.encodeFieldUpdateCommand(query);
46
48
  }
47
49
  }
48
- }
49
- encodeFieldUpdateCommand(query) {
50
- const $op = operator_map_1.operatorToString(query.operator);
50
+ };
51
+ UpdateSerializer.prototype.encodeFieldUpdateCommand = function (query) {
52
+ var _a, _b, _c, _d;
53
+ var $op = (0, operator_map_1.operatorToString)(query.operator);
51
54
  switch (query.operator) {
52
55
  case update_1.UPDATE_COMMANDS_LITERAL.REMOVE: {
53
- return {
54
- [$op]: {
55
- [query.fieldName]: ''
56
- }
57
- };
56
+ return _a = {},
57
+ _a[$op] = (_b = {},
58
+ _b[query.fieldName] = '',
59
+ _b),
60
+ _a;
58
61
  }
59
62
  default: {
60
- return {
61
- [$op]: {
62
- [query.fieldName]: query.operands[0]
63
- }
64
- };
63
+ return _c = {},
64
+ _c[$op] = (_d = {},
65
+ _d[query.fieldName] = query.operands[0],
66
+ _d),
67
+ _c;
65
68
  }
66
69
  }
67
- }
68
- encodeArrayUpdateCommand(query) {
69
- const $op = operator_map_1.operatorToString(query.operator);
70
+ };
71
+ UpdateSerializer.prototype.encodeArrayUpdateCommand = function (query) {
72
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
73
+ var $op = (0, operator_map_1.operatorToString)(query.operator);
70
74
  switch (query.operator) {
71
75
  case update_1.UPDATE_COMMANDS_LITERAL.PUSH: {
72
- let modifiers;
73
- if (type_1.isArray(query.operands)) {
76
+ var modifiers = void 0;
77
+ if ((0, type_1.isArray)(query.operands)) {
74
78
  modifiers = {
75
79
  $each: query.operands.map(common_1.encodeInternalDataType)
76
80
  };
@@ -78,65 +82,66 @@ class UpdateSerializer {
78
82
  else {
79
83
  modifiers = query.operands;
80
84
  }
81
- return {
82
- [$op]: {
83
- [query.fieldName]: modifiers
84
- }
85
- };
85
+ return _a = {},
86
+ _a[$op] = (_b = {},
87
+ _b[query.fieldName] = modifiers,
88
+ _b),
89
+ _a;
86
90
  }
87
91
  case update_1.UPDATE_COMMANDS_LITERAL.UNSHIFT: {
88
- const modifiers = {
92
+ var modifiers = {
89
93
  $each: query.operands.map(common_1.encodeInternalDataType),
90
94
  $position: 0
91
95
  };
92
- return {
93
- [$op]: {
94
- [query.fieldName]: modifiers
95
- }
96
- };
96
+ return _c = {},
97
+ _c[$op] = (_d = {},
98
+ _d[query.fieldName] = modifiers,
99
+ _d),
100
+ _c;
97
101
  }
98
102
  case update_1.UPDATE_COMMANDS_LITERAL.POP: {
99
- return {
100
- [$op]: {
101
- [query.fieldName]: 1
102
- }
103
- };
103
+ return _e = {},
104
+ _e[$op] = (_f = {},
105
+ _f[query.fieldName] = 1,
106
+ _f),
107
+ _e;
104
108
  }
105
109
  case update_1.UPDATE_COMMANDS_LITERAL.SHIFT: {
106
- return {
107
- [$op]: {
108
- [query.fieldName]: -1
109
- }
110
- };
110
+ return _g = {},
111
+ _g[$op] = (_h = {},
112
+ _h[query.fieldName] = -1,
113
+ _h),
114
+ _g;
111
115
  }
112
116
  default: {
113
- return {
114
- [$op]: {
115
- [query.fieldName]: common_1.encodeInternalDataType(query.operands)
116
- }
117
- };
117
+ return _j = {},
118
+ _j[$op] = (_k = {},
119
+ _k[query.fieldName] = (0, common_1.encodeInternalDataType)(query.operands),
120
+ _k),
121
+ _j;
118
122
  }
119
123
  }
120
- }
121
- encodeUpdateObject(query) {
122
- const flattened = common_1.flattenQueryObject(query);
123
- for (const key in flattened) {
124
+ };
125
+ UpdateSerializer.prototype.encodeUpdateObject = function (query) {
126
+ var flattened = (0, common_1.flattenQueryObject)(query);
127
+ for (var key in flattened) {
124
128
  if (/^\$/.test(key))
125
129
  continue;
126
- let val = flattened[key];
127
- if (update_1.isUpdateCommand(val)) {
130
+ var val = flattened[key];
131
+ if ((0, update_1.isUpdateCommand)(val)) {
128
132
  flattened[key] = val._setFieldName(key);
129
- const condition = this.encodeUpdateCommand(flattened[key]);
130
- common_1.mergeConditionAfterEncode(flattened, condition, key);
133
+ var condition = this.encodeUpdateCommand(flattened[key]);
134
+ (0, common_1.mergeConditionAfterEncode)(flattened, condition, key);
131
135
  }
132
136
  else {
133
- flattened[key] = val = common_1.encodeInternalDataType(val);
134
- const $setCommand = new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.SET, [val], key);
135
- const condition = this.encodeUpdateCommand($setCommand);
136
- common_1.mergeConditionAfterEncode(flattened, condition, key);
137
+ flattened[key] = val = (0, common_1.encodeInternalDataType)(val);
138
+ var $setCommand = new update_1.UpdateCommand(update_1.UPDATE_COMMANDS_LITERAL.SET, [val], key);
139
+ var condition = this.encodeUpdateCommand($setCommand);
140
+ (0, common_1.mergeConditionAfterEncode)(flattened, condition, key);
137
141
  }
138
142
  }
139
143
  return flattened;
140
- }
141
- }
144
+ };
145
+ return UpdateSerializer;
146
+ }());
142
147
  exports.UpdateSerializer = UpdateSerializer;
@@ -3,7 +3,7 @@ export declare class ServerDate {
3
3
  constructor({ offset }?: {
4
4
  offset?: number;
5
5
  });
6
- readonly _internalType: import("../utils/symbol").InternalSymbol;
6
+ get _internalType(): import("../utils/symbol").InternalSymbol;
7
7
  parse(): {
8
8
  $tcb_server_date: {
9
9
  offset: number;