@cloudbase/database 0.9.19 → 0.9.21

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 (207) hide show
  1. package/.trunk/configs/.markdownlint.yaml +10 -0
  2. package/.trunk/trunk.yaml +26 -0
  3. package/dist/commonjs/aggregate.d.ts +29 -29
  4. package/dist/commonjs/aggregate.js +156 -156
  5. package/dist/commonjs/collection.d.ts +9 -9
  6. package/dist/commonjs/collection.js +46 -46
  7. package/dist/commonjs/command.d.ts +175 -175
  8. package/dist/commonjs/command.js +298 -298
  9. package/dist/commonjs/commands/logic.d.ts +24 -24
  10. package/dist/commonjs/commands/logic.js +88 -88
  11. package/dist/commonjs/commands/query.d.ts +68 -68
  12. package/dist/commonjs/commands/query.js +157 -157
  13. package/dist/commonjs/commands/update.d.ts +29 -29
  14. package/dist/commonjs/commands/update.js +50 -50
  15. package/dist/commonjs/config/app.config.d.ts +6 -6
  16. package/dist/commonjs/config/app.config.js +7 -7
  17. package/dist/commonjs/config/error.config.d.ts +3 -3
  18. package/dist/commonjs/config/error.config.js +15 -15
  19. package/dist/commonjs/const/code.d.ts +30 -30
  20. package/dist/commonjs/const/code.js +32 -32
  21. package/dist/commonjs/constant.d.ts +51 -51
  22. package/dist/commonjs/constant.js +74 -74
  23. package/dist/commonjs/document.d.ts +11 -11
  24. package/dist/commonjs/document.js +249 -252
  25. package/dist/commonjs/geo/index.d.ts +6 -6
  26. package/dist/commonjs/geo/index.js +11 -11
  27. package/dist/commonjs/geo/interface.d.ts +24 -24
  28. package/dist/commonjs/geo/interface.js +2 -2
  29. package/dist/commonjs/geo/lineString.d.ts +19 -19
  30. package/dist/commonjs/geo/lineString.js +85 -85
  31. package/dist/commonjs/geo/multiLineString.d.ts +18 -18
  32. package/dist/commonjs/geo/multiLineString.js +94 -94
  33. package/dist/commonjs/geo/multiPoint.d.ts +18 -18
  34. package/dist/commonjs/geo/multiPoint.js +78 -78
  35. package/dist/commonjs/geo/multiPolygon.d.ts +18 -18
  36. package/dist/commonjs/geo/multiPolygon.js +121 -121
  37. package/dist/commonjs/geo/point.d.ts +19 -19
  38. package/dist/commonjs/geo/point.js +49 -49
  39. package/dist/commonjs/geo/polygon.d.ts +19 -19
  40. package/dist/commonjs/geo/polygon.js +108 -108
  41. package/dist/commonjs/helper/symbol.d.ts +14 -14
  42. package/dist/commonjs/helper/symbol.js +19 -19
  43. package/dist/commonjs/index.d.ts +33 -33
  44. package/dist/commonjs/index.js +46 -46
  45. package/dist/commonjs/lib/util.d.ts +1 -1
  46. package/dist/commonjs/lib/util.js +25 -25
  47. package/dist/commonjs/operator-map.d.ts +4 -4
  48. package/dist/commonjs/operator-map.js +23 -23
  49. package/dist/commonjs/query.d.ts +22 -22
  50. package/dist/commonjs/query.js +251 -251
  51. package/dist/commonjs/regexp/index.d.ts +14 -14
  52. package/dist/commonjs/regexp/index.js +32 -32
  53. package/dist/commonjs/serializer/common.d.ts +11 -11
  54. package/dist/commonjs/serializer/common.js +121 -121
  55. package/dist/commonjs/serializer/datatype.d.ts +7 -7
  56. package/dist/commonjs/serializer/datatype.js +126 -126
  57. package/dist/commonjs/serializer/query.d.ts +7 -7
  58. package/dist/commonjs/serializer/query.js +231 -231
  59. package/dist/commonjs/serializer/update.d.ts +15 -15
  60. package/dist/commonjs/serializer/update.js +141 -141
  61. package/dist/commonjs/serverDate/index.d.ts +13 -13
  62. package/dist/commonjs/serverDate/index.js +29 -29
  63. package/dist/commonjs/transaction/collection.d.ts +7 -7
  64. package/dist/commonjs/transaction/collection.js +46 -46
  65. package/dist/commonjs/transaction/document.d.ts +27 -27
  66. package/dist/commonjs/transaction/document.js +205 -205
  67. package/dist/commonjs/transaction/index.d.ts +30 -30
  68. package/dist/commonjs/transaction/index.js +214 -214
  69. package/dist/commonjs/transaction/query.d.ts +5 -5
  70. package/dist/commonjs/transaction/query.js +10 -10
  71. package/dist/commonjs/typings/index.d.ts +40 -40
  72. package/dist/commonjs/typings/index.js +2 -2
  73. package/dist/commonjs/typings/realtime.d.ts +219 -219
  74. package/dist/commonjs/typings/realtime.js +2 -2
  75. package/dist/commonjs/util.d.ts +9 -9
  76. package/dist/commonjs/util.js +144 -144
  77. package/dist/commonjs/utils/error.d.ts +37 -37
  78. package/dist/commonjs/utils/error.js +85 -85
  79. package/dist/commonjs/utils/symbol.d.ts +8 -8
  80. package/dist/commonjs/utils/symbol.js +57 -57
  81. package/dist/commonjs/utils/type.d.ts +13 -13
  82. package/dist/commonjs/utils/type.js +22 -22
  83. package/dist/commonjs/utils/utils.d.ts +4 -4
  84. package/dist/commonjs/utils/utils.js +36 -36
  85. package/dist/commonjs/validate.d.ts +1 -1
  86. package/dist/commonjs/validate.js +59 -59
  87. package/dist/esm/aggregate.d.ts +29 -29
  88. package/dist/esm/aggregate.js +154 -154
  89. package/dist/esm/collection.d.ts +9 -9
  90. package/dist/esm/collection.js +44 -44
  91. package/dist/esm/command.d.ts +175 -175
  92. package/dist/esm/command.js +296 -296
  93. package/dist/esm/commands/logic.d.ts +24 -24
  94. package/dist/esm/commands/logic.js +84 -84
  95. package/dist/esm/commands/query.d.ts +68 -68
  96. package/dist/esm/commands/query.js +152 -152
  97. package/dist/esm/commands/update.d.ts +29 -29
  98. package/dist/esm/commands/update.js +46 -46
  99. package/dist/esm/config/app.config.d.ts +6 -6
  100. package/dist/esm/config/app.config.js +5 -5
  101. package/dist/esm/config/error.config.d.ts +3 -3
  102. package/dist/esm/config/error.config.js +13 -13
  103. package/dist/esm/const/code.d.ts +30 -30
  104. package/dist/esm/const/code.js +30 -30
  105. package/dist/esm/constant.d.ts +51 -51
  106. package/dist/esm/constant.js +65 -65
  107. package/dist/esm/document.d.ts +11 -11
  108. package/dist/esm/document.js +247 -250
  109. package/dist/esm/geo/index.d.ts +6 -6
  110. package/dist/esm/geo/index.js +6 -6
  111. package/dist/esm/geo/interface.d.ts +24 -24
  112. package/dist/esm/geo/lineString.d.ts +19 -19
  113. package/dist/esm/geo/lineString.js +83 -83
  114. package/dist/esm/geo/multiLineString.d.ts +18 -18
  115. package/dist/esm/geo/multiLineString.js +92 -92
  116. package/dist/esm/geo/multiPoint.d.ts +18 -18
  117. package/dist/esm/geo/multiPoint.js +76 -76
  118. package/dist/esm/geo/multiPolygon.d.ts +18 -18
  119. package/dist/esm/geo/multiPolygon.js +119 -119
  120. package/dist/esm/geo/point.d.ts +19 -19
  121. package/dist/esm/geo/point.js +47 -47
  122. package/dist/esm/geo/polygon.d.ts +19 -19
  123. package/dist/esm/geo/polygon.js +106 -106
  124. package/dist/esm/helper/symbol.d.ts +14 -14
  125. package/dist/esm/helper/symbol.js +14 -14
  126. package/dist/esm/index.d.ts +33 -33
  127. package/dist/esm/index.js +41 -41
  128. package/dist/esm/lib/util.d.ts +1 -1
  129. package/dist/esm/lib/util.js +23 -23
  130. package/dist/esm/operator-map.d.ts +4 -4
  131. package/dist/esm/operator-map.js +20 -20
  132. package/dist/esm/query.d.ts +22 -22
  133. package/dist/esm/query.js +249 -249
  134. package/dist/esm/regexp/index.d.ts +14 -14
  135. package/dist/esm/regexp/index.js +29 -29
  136. package/dist/esm/serializer/common.d.ts +11 -11
  137. package/dist/esm/serializer/common.js +113 -113
  138. package/dist/esm/serializer/datatype.d.ts +7 -7
  139. package/dist/esm/serializer/datatype.js +122 -122
  140. package/dist/esm/serializer/query.d.ts +7 -7
  141. package/dist/esm/serializer/query.js +229 -229
  142. package/dist/esm/serializer/update.d.ts +15 -15
  143. package/dist/esm/serializer/update.js +139 -139
  144. package/dist/esm/serverDate/index.d.ts +13 -13
  145. package/dist/esm/serverDate/index.js +26 -26
  146. package/dist/esm/transaction/collection.d.ts +7 -7
  147. package/dist/esm/transaction/collection.js +44 -44
  148. package/dist/esm/transaction/document.d.ts +27 -27
  149. package/dist/esm/transaction/document.js +203 -203
  150. package/dist/esm/transaction/index.d.ts +30 -30
  151. package/dist/esm/transaction/index.js +210 -210
  152. package/dist/esm/transaction/query.d.ts +5 -5
  153. package/dist/esm/transaction/query.js +8 -8
  154. package/dist/esm/typings/index.d.ts +40 -40
  155. package/dist/esm/typings/realtime.d.ts +219 -219
  156. package/dist/esm/util.d.ts +9 -9
  157. package/dist/esm/util.js +142 -142
  158. package/dist/esm/utils/error.d.ts +37 -37
  159. package/dist/esm/utils/error.js +82 -82
  160. package/dist/esm/utils/symbol.d.ts +8 -8
  161. package/dist/esm/utils/symbol.js +55 -55
  162. package/dist/esm/utils/type.d.ts +13 -13
  163. package/dist/esm/utils/type.js +20 -20
  164. package/dist/esm/utils/utils.d.ts +4 -4
  165. package/dist/esm/utils/utils.js +33 -33
  166. package/dist/esm/validate.d.ts +1 -1
  167. package/dist/esm/validate.js +57 -57
  168. package/package.json +1 -1
  169. package/src/document.ts +1 -4
  170. package/src/query.ts +3 -3
  171. package/src/transaction/document.ts +2 -2
  172. package/dist/commonjs/ObjectId/index.d.ts +0 -11
  173. package/dist/commonjs/ObjectId/index.js +0 -21
  174. package/dist/commonjs/realtime/error.d.ts +0 -7
  175. package/dist/commonjs/realtime/error.js +0 -11
  176. package/dist/commonjs/realtime/listener.d.ts +0 -14
  177. package/dist/commonjs/realtime/listener.js +0 -17
  178. package/dist/commonjs/realtime/message.d.ts +0 -3
  179. package/dist/commonjs/realtime/message.js +0 -10
  180. package/dist/commonjs/realtime/snapshot.d.ts +0 -16
  181. package/dist/commonjs/realtime/snapshot.js +0 -42
  182. package/dist/commonjs/realtime/virtual-websocket-client.d.ts +0 -63
  183. package/dist/commonjs/realtime/virtual-websocket-client.js +0 -736
  184. package/dist/commonjs/realtime/websocket-client.d.ts +0 -78
  185. package/dist/commonjs/realtime/websocket-client.js +0 -567
  186. package/dist/commonjs/realtime/ws-event.d.ts +0 -126
  187. package/dist/commonjs/realtime/ws-event.js +0 -139
  188. package/dist/commonjs/transaction.d.ts +0 -42
  189. package/dist/commonjs/transaction.js +0 -126
  190. package/dist/esm/ObjectId/index.d.ts +0 -11
  191. package/dist/esm/ObjectId/index.js +0 -17
  192. package/dist/esm/realtime/error.d.ts +0 -7
  193. package/dist/esm/realtime/error.js +0 -8
  194. package/dist/esm/realtime/listener.d.ts +0 -14
  195. package/dist/esm/realtime/listener.js +0 -14
  196. package/dist/esm/realtime/message.d.ts +0 -3
  197. package/dist/esm/realtime/message.js +0 -6
  198. package/dist/esm/realtime/snapshot.d.ts +0 -16
  199. package/dist/esm/realtime/snapshot.js +0 -39
  200. package/dist/esm/realtime/virtual-websocket-client.d.ts +0 -63
  201. package/dist/esm/realtime/virtual-websocket-client.js +0 -733
  202. package/dist/esm/realtime/websocket-client.d.ts +0 -78
  203. package/dist/esm/realtime/websocket-client.js +0 -564
  204. package/dist/esm/realtime/ws-event.d.ts +0 -126
  205. package/dist/esm/realtime/ws-event.js +0 -137
  206. package/dist/esm/transaction.d.ts +0 -42
  207. package/dist/esm/transaction.js +0 -121
@@ -0,0 +1,10 @@
1
+ # Autoformatter friendly markdownlint config (all formatting rules disabled)
2
+ default: true
3
+ blank_lines: false
4
+ bullet: false
5
+ html: false
6
+ indentation: false
7
+ line_length: false
8
+ spaces: false
9
+ url: false
10
+ whitespace: false
@@ -0,0 +1,26 @@
1
+ version: 0.1
2
+ cli:
3
+ version: 1.4.1
4
+ plugins:
5
+ sources:
6
+ - id: trunk
7
+ ref: v0.0.10
8
+ uri: https://github.com/trunk-io/plugins
9
+ lint:
10
+ enabled:
11
+ - eslint@8.33.0
12
+ - markdownlint@0.33.0
13
+ - git-diff-check
14
+ - gitleaks@8.15.3
15
+ - prettier@2.8.4
16
+ runtimes:
17
+ enabled:
18
+ - go@1.18.3
19
+ - node@18.12.1
20
+ actions:
21
+ disabled:
22
+ - trunk-announce
23
+ - trunk-check-pre-push
24
+ - trunk-fmt-pre-commit
25
+ enabled:
26
+ - trunk-upgrade-available
@@ -1,29 +1,29 @@
1
- export default class Aggregation {
2
- _db: any;
3
- _request: any;
4
- _stages: any[];
5
- _collectionName: string;
6
- constructor(db?: any, collectionName?: any);
7
- end(): Promise<any>;
8
- unwrap(): any[];
9
- done(): {
10
- [x: number]: any;
11
- }[];
12
- _pipe(stage: any, param: any): this;
13
- addFields(param: any): this;
14
- bucket(param: any): this;
15
- bucketAuto(param: any): this;
16
- count(param: any): this;
17
- geoNear(param: any): this;
18
- group(param: any): this;
19
- limit(param: any): this;
20
- match(param: any): this;
21
- project(param: any): this;
22
- lookup(param: any): this;
23
- replaceRoot(param: any): this;
24
- sample(param: any): this;
25
- skip(param: any): this;
26
- sort(param: any): this;
27
- sortByCount(param: any): this;
28
- unwind(param: any): this;
29
- }
1
+ export default class Aggregation {
2
+ _db: any;
3
+ _request: any;
4
+ _stages: any[];
5
+ _collectionName: string;
6
+ constructor(db?: any, collectionName?: any);
7
+ end(): Promise<any>;
8
+ unwrap(): any[];
9
+ done(): {
10
+ [x: number]: any;
11
+ }[];
12
+ _pipe(stage: any, param: any): this;
13
+ addFields(param: any): this;
14
+ bucket(param: any): this;
15
+ bucketAuto(param: any): this;
16
+ count(param: any): this;
17
+ geoNear(param: any): this;
18
+ group(param: any): this;
19
+ limit(param: any): this;
20
+ match(param: any): this;
21
+ project(param: any): this;
22
+ lookup(param: any): this;
23
+ replaceRoot(param: any): this;
24
+ sample(param: any): this;
25
+ skip(param: any): this;
26
+ sort(param: any): this;
27
+ sortByCount(param: any): this;
28
+ unwind(param: any): this;
29
+ }
@@ -1,156 +1,156 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var index_1 = require("./index");
40
- var bson_1 = require("bson");
41
- var query_1 = require("./serializer/query");
42
- var geo_1 = require("./geo");
43
- var Aggregation = (function () {
44
- function Aggregation(db, collectionName) {
45
- this._stages = [];
46
- if (db && collectionName) {
47
- this._db = db;
48
- this._request = new index_1.Db.reqClass(this._db.config);
49
- this._collectionName = collectionName;
50
- }
51
- }
52
- Aggregation.prototype.end = function () {
53
- return __awaiter(this, void 0, void 0, function () {
54
- var result;
55
- return __generator(this, function (_a) {
56
- switch (_a.label) {
57
- case 0:
58
- if (!this._collectionName || !this._db) {
59
- throw new Error('Aggregation pipeline cannot send request');
60
- }
61
- return [4, this._request.send('database.aggregate', {
62
- collectionName: this._collectionName,
63
- stages: this._stages
64
- })];
65
- case 1:
66
- result = _a.sent();
67
- if (result && result.data && result.data.list) {
68
- return [2, {
69
- requestId: result.requestId,
70
- data: JSON.parse(result.data.list).map(bson_1.EJSON.parse)
71
- }];
72
- }
73
- return [2, result];
74
- }
75
- });
76
- });
77
- };
78
- Aggregation.prototype.unwrap = function () {
79
- return this._stages;
80
- };
81
- Aggregation.prototype.done = function () {
82
- return this._stages.map(function (_a) {
83
- var _b;
84
- var stageKey = _a.stageKey, stageValue = _a.stageValue;
85
- return _b = {},
86
- _b[stageKey] = JSON.parse(stageValue),
87
- _b;
88
- });
89
- };
90
- Aggregation.prototype._pipe = function (stage, param) {
91
- this._stages.push({
92
- stageKey: "$" + stage,
93
- stageValue: JSON.stringify(param)
94
- });
95
- return this;
96
- };
97
- Aggregation.prototype.addFields = function (param) {
98
- return this._pipe('addFields', param);
99
- };
100
- Aggregation.prototype.bucket = function (param) {
101
- return this._pipe('bucket', param);
102
- };
103
- Aggregation.prototype.bucketAuto = function (param) {
104
- return this._pipe('bucketAuto', param);
105
- };
106
- Aggregation.prototype.count = function (param) {
107
- return this._pipe('count', param);
108
- };
109
- Aggregation.prototype.geoNear = function (param) {
110
- if (param.query) {
111
- param.query = query_1.QuerySerializer.encode(param.query);
112
- }
113
- if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {
114
- param.distanceMultiplier = param.distanceMultiplier;
115
- }
116
- if (param.near) {
117
- param.near = new geo_1.Point(param.near.longitude, param.near.latitude).toJSON();
118
- }
119
- return this._pipe('geoNear', param);
120
- };
121
- Aggregation.prototype.group = function (param) {
122
- return this._pipe('group', param);
123
- };
124
- Aggregation.prototype.limit = function (param) {
125
- return this._pipe('limit', param);
126
- };
127
- Aggregation.prototype.match = function (param) {
128
- return this._pipe('match', query_1.QuerySerializer.encode(param));
129
- };
130
- Aggregation.prototype.project = function (param) {
131
- return this._pipe('project', param);
132
- };
133
- Aggregation.prototype.lookup = function (param) {
134
- return this._pipe('lookup', param);
135
- };
136
- Aggregation.prototype.replaceRoot = function (param) {
137
- return this._pipe('replaceRoot', param);
138
- };
139
- Aggregation.prototype.sample = function (param) {
140
- return this._pipe('sample', param);
141
- };
142
- Aggregation.prototype.skip = function (param) {
143
- return this._pipe('skip', param);
144
- };
145
- Aggregation.prototype.sort = function (param) {
146
- return this._pipe('sort', param);
147
- };
148
- Aggregation.prototype.sortByCount = function (param) {
149
- return this._pipe('sortByCount', param);
150
- };
151
- Aggregation.prototype.unwind = function (param) {
152
- return this._pipe('unwind', param);
153
- };
154
- return Aggregation;
155
- }());
156
- exports.default = Aggregation;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var index_1 = require("./index");
40
+ var bson_1 = require("bson");
41
+ var query_1 = require("./serializer/query");
42
+ var geo_1 = require("./geo");
43
+ var Aggregation = (function () {
44
+ function Aggregation(db, collectionName) {
45
+ this._stages = [];
46
+ if (db && collectionName) {
47
+ this._db = db;
48
+ this._request = new index_1.Db.reqClass(this._db.config);
49
+ this._collectionName = collectionName;
50
+ }
51
+ }
52
+ Aggregation.prototype.end = function () {
53
+ return __awaiter(this, void 0, void 0, function () {
54
+ var result;
55
+ return __generator(this, function (_a) {
56
+ switch (_a.label) {
57
+ case 0:
58
+ if (!this._collectionName || !this._db) {
59
+ throw new Error('Aggregation pipeline cannot send request');
60
+ }
61
+ return [4, this._request.send('database.aggregate', {
62
+ collectionName: this._collectionName,
63
+ stages: this._stages
64
+ })];
65
+ case 1:
66
+ result = _a.sent();
67
+ if (result && result.data && result.data.list) {
68
+ return [2, {
69
+ requestId: result.requestId,
70
+ data: JSON.parse(result.data.list).map(bson_1.EJSON.parse)
71
+ }];
72
+ }
73
+ return [2, result];
74
+ }
75
+ });
76
+ });
77
+ };
78
+ Aggregation.prototype.unwrap = function () {
79
+ return this._stages;
80
+ };
81
+ Aggregation.prototype.done = function () {
82
+ return this._stages.map(function (_a) {
83
+ var _b;
84
+ var stageKey = _a.stageKey, stageValue = _a.stageValue;
85
+ return _b = {},
86
+ _b[stageKey] = JSON.parse(stageValue),
87
+ _b;
88
+ });
89
+ };
90
+ Aggregation.prototype._pipe = function (stage, param) {
91
+ this._stages.push({
92
+ stageKey: "$" + stage,
93
+ stageValue: JSON.stringify(param)
94
+ });
95
+ return this;
96
+ };
97
+ Aggregation.prototype.addFields = function (param) {
98
+ return this._pipe('addFields', param);
99
+ };
100
+ Aggregation.prototype.bucket = function (param) {
101
+ return this._pipe('bucket', param);
102
+ };
103
+ Aggregation.prototype.bucketAuto = function (param) {
104
+ return this._pipe('bucketAuto', param);
105
+ };
106
+ Aggregation.prototype.count = function (param) {
107
+ return this._pipe('count', param);
108
+ };
109
+ Aggregation.prototype.geoNear = function (param) {
110
+ if (param.query) {
111
+ param.query = query_1.QuerySerializer.encode(param.query);
112
+ }
113
+ if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {
114
+ param.distanceMultiplier = param.distanceMultiplier;
115
+ }
116
+ if (param.near) {
117
+ param.near = new geo_1.Point(param.near.longitude, param.near.latitude).toJSON();
118
+ }
119
+ return this._pipe('geoNear', param);
120
+ };
121
+ Aggregation.prototype.group = function (param) {
122
+ return this._pipe('group', param);
123
+ };
124
+ Aggregation.prototype.limit = function (param) {
125
+ return this._pipe('limit', param);
126
+ };
127
+ Aggregation.prototype.match = function (param) {
128
+ return this._pipe('match', query_1.QuerySerializer.encode(param));
129
+ };
130
+ Aggregation.prototype.project = function (param) {
131
+ return this._pipe('project', param);
132
+ };
133
+ Aggregation.prototype.lookup = function (param) {
134
+ return this._pipe('lookup', param);
135
+ };
136
+ Aggregation.prototype.replaceRoot = function (param) {
137
+ return this._pipe('replaceRoot', param);
138
+ };
139
+ Aggregation.prototype.sample = function (param) {
140
+ return this._pipe('sample', param);
141
+ };
142
+ Aggregation.prototype.skip = function (param) {
143
+ return this._pipe('skip', param);
144
+ };
145
+ Aggregation.prototype.sort = function (param) {
146
+ return this._pipe('sort', param);
147
+ };
148
+ Aggregation.prototype.sortByCount = function (param) {
149
+ return this._pipe('sortByCount', param);
150
+ };
151
+ Aggregation.prototype.unwind = function (param) {
152
+ return this._pipe('unwind', param);
153
+ };
154
+ return Aggregation;
155
+ }());
156
+ exports.default = Aggregation;
@@ -1,9 +1,9 @@
1
- import { DocumentReference } from './document';
2
- import { Query } from './query';
3
- import Aggregation from './aggregate';
4
- export declare class CollectionReference extends Query {
5
- readonly name: string;
6
- doc(docID?: string | number): DocumentReference;
7
- add(data: Object, callback?: any): Promise<any>;
8
- aggregate(): Aggregation;
9
- }
1
+ import { DocumentReference } from './document';
2
+ import { Query } from './query';
3
+ import Aggregation from './aggregate';
4
+ export declare class CollectionReference extends Query {
5
+ readonly name: string;
6
+ doc(docID?: string | number): DocumentReference;
7
+ add(data: Object, callback?: any): Promise<any>;
8
+ aggregate(): Aggregation;
9
+ }
@@ -1,46 +1,46 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- extendStatics(d, b);
11
- function __() { this.constructor = d; }
12
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
- };
14
- })();
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- var document_1 = require("./document");
17
- var query_1 = require("./query");
18
- var aggregate_1 = require("./aggregate");
19
- var CollectionReference = (function (_super) {
20
- __extends(CollectionReference, _super);
21
- function CollectionReference(db, coll) {
22
- return _super.call(this, db, coll) || this;
23
- }
24
- Object.defineProperty(CollectionReference.prototype, "name", {
25
- get: function () {
26
- return this._coll;
27
- },
28
- enumerable: true,
29
- configurable: true
30
- });
31
- CollectionReference.prototype.doc = function (docID) {
32
- if (typeof docID !== 'string' && typeof docID !== 'number') {
33
- throw new Error('docId必须为字符串或数字');
34
- }
35
- return new document_1.DocumentReference(this._db, this._coll, docID);
36
- };
37
- CollectionReference.prototype.add = function (data, callback) {
38
- var docRef = new document_1.DocumentReference(this._db, this._coll, undefined);
39
- return docRef.create(data, callback);
40
- };
41
- CollectionReference.prototype.aggregate = function () {
42
- return new aggregate_1.default(this._db, this._coll);
43
- };
44
- return CollectionReference;
45
- }(query_1.Query));
46
- exports.CollectionReference = CollectionReference;
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ var document_1 = require("./document");
17
+ var query_1 = require("./query");
18
+ var aggregate_1 = require("./aggregate");
19
+ var CollectionReference = (function (_super) {
20
+ __extends(CollectionReference, _super);
21
+ function CollectionReference(db, coll) {
22
+ return _super.call(this, db, coll) || this;
23
+ }
24
+ Object.defineProperty(CollectionReference.prototype, "name", {
25
+ get: function () {
26
+ return this._coll;
27
+ },
28
+ enumerable: true,
29
+ configurable: true
30
+ });
31
+ CollectionReference.prototype.doc = function (docID) {
32
+ if (typeof docID !== 'string' && typeof docID !== 'number') {
33
+ throw new Error('docId必须为字符串或数字');
34
+ }
35
+ return new document_1.DocumentReference(this._db, this._coll, docID);
36
+ };
37
+ CollectionReference.prototype.add = function (data, callback) {
38
+ var docRef = new document_1.DocumentReference(this._db, this._coll, undefined);
39
+ return docRef.create(data, callback);
40
+ };
41
+ CollectionReference.prototype.aggregate = function () {
42
+ return new aggregate_1.default(this._db, this._coll);
43
+ };
44
+ return CollectionReference;
45
+ }(query_1.Query));
46
+ exports.CollectionReference = CollectionReference;