@cloudbase/database 0.9.20 → 0.9.22

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 (88) hide show
  1. package/dist/esm/aggregate.d.ts +29 -0
  2. package/dist/esm/aggregate.js +154 -0
  3. package/dist/esm/collection.d.ts +9 -0
  4. package/dist/esm/collection.js +44 -0
  5. package/dist/esm/command.d.ts +175 -0
  6. package/dist/esm/command.js +296 -0
  7. package/dist/esm/commands/logic.d.ts +24 -0
  8. package/dist/esm/commands/logic.js +84 -0
  9. package/dist/esm/commands/query.d.ts +68 -0
  10. package/dist/esm/commands/query.js +152 -0
  11. package/dist/esm/commands/update.d.ts +29 -0
  12. package/dist/esm/commands/update.js +46 -0
  13. package/dist/esm/config/app.config.d.ts +6 -0
  14. package/dist/esm/config/app.config.js +5 -0
  15. package/dist/esm/config/error.config.d.ts +3 -0
  16. package/dist/esm/config/error.config.js +13 -0
  17. package/dist/esm/const/code.d.ts +30 -0
  18. package/dist/esm/const/code.js +30 -0
  19. package/dist/esm/constant.d.ts +51 -0
  20. package/dist/esm/constant.js +65 -0
  21. package/dist/esm/document.d.ts +11 -0
  22. package/dist/esm/document.js +247 -0
  23. package/dist/esm/geo/index.d.ts +6 -0
  24. package/dist/esm/geo/index.js +6 -0
  25. package/dist/esm/geo/interface.d.ts +24 -0
  26. package/dist/esm/geo/interface.js +0 -0
  27. package/dist/esm/geo/lineString.d.ts +19 -0
  28. package/dist/esm/geo/lineString.js +83 -0
  29. package/dist/esm/geo/multiLineString.d.ts +18 -0
  30. package/dist/esm/geo/multiLineString.js +92 -0
  31. package/dist/esm/geo/multiPoint.d.ts +18 -0
  32. package/dist/esm/geo/multiPoint.js +76 -0
  33. package/dist/esm/geo/multiPolygon.d.ts +18 -0
  34. package/dist/esm/geo/multiPolygon.js +119 -0
  35. package/dist/esm/geo/point.d.ts +19 -0
  36. package/dist/esm/geo/point.js +47 -0
  37. package/dist/esm/geo/polygon.d.ts +19 -0
  38. package/dist/esm/geo/polygon.js +106 -0
  39. package/dist/esm/helper/symbol.d.ts +14 -0
  40. package/dist/esm/helper/symbol.js +14 -0
  41. package/dist/esm/index.d.ts +33 -0
  42. package/dist/esm/index.js +41 -0
  43. package/dist/esm/lib/util.d.ts +1 -0
  44. package/dist/esm/lib/util.js +23 -0
  45. package/dist/esm/operator-map.d.ts +4 -0
  46. package/dist/esm/operator-map.js +20 -0
  47. package/dist/esm/query.d.ts +22 -0
  48. package/dist/esm/query.js +249 -0
  49. package/dist/esm/regexp/index.d.ts +14 -0
  50. package/dist/esm/regexp/index.js +29 -0
  51. package/dist/esm/serializer/common.d.ts +11 -0
  52. package/dist/esm/serializer/common.js +113 -0
  53. package/dist/esm/serializer/datatype.d.ts +7 -0
  54. package/dist/esm/serializer/datatype.js +122 -0
  55. package/dist/esm/serializer/query.d.ts +7 -0
  56. package/dist/esm/serializer/query.js +229 -0
  57. package/dist/esm/serializer/update.d.ts +15 -0
  58. package/dist/esm/serializer/update.js +139 -0
  59. package/dist/esm/serverDate/index.d.ts +13 -0
  60. package/dist/esm/serverDate/index.js +26 -0
  61. package/dist/esm/transaction/collection.d.ts +7 -0
  62. package/dist/esm/transaction/collection.js +44 -0
  63. package/dist/esm/transaction/document.d.ts +27 -0
  64. package/dist/esm/transaction/document.js +203 -0
  65. package/dist/esm/transaction/index.d.ts +30 -0
  66. package/dist/esm/transaction/index.js +210 -0
  67. package/dist/esm/transaction/query.d.ts +5 -0
  68. package/dist/esm/transaction/query.js +8 -0
  69. package/dist/esm/typings/index.d.ts +40 -0
  70. package/dist/esm/typings/index.js +0 -0
  71. package/dist/esm/typings/realtime.d.ts +219 -0
  72. package/dist/esm/typings/realtime.js +0 -0
  73. package/dist/esm/util.d.ts +9 -0
  74. package/dist/esm/util.js +142 -0
  75. package/dist/esm/utils/error.d.ts +37 -0
  76. package/dist/esm/utils/error.js +82 -0
  77. package/dist/esm/utils/msg.d.ts +0 -0
  78. package/dist/esm/utils/msg.js +0 -0
  79. package/dist/esm/utils/symbol.d.ts +8 -0
  80. package/dist/esm/utils/symbol.js +55 -0
  81. package/dist/esm/utils/type.d.ts +13 -0
  82. package/dist/esm/utils/type.js +20 -0
  83. package/dist/esm/utils/utils.d.ts +4 -0
  84. package/dist/esm/utils/utils.js +33 -0
  85. package/dist/esm/validate.d.ts +1 -0
  86. package/dist/esm/validate.js +57 -0
  87. package/package.json +4 -6
  88. package/src/transaction/document.ts +2 -2
@@ -0,0 +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
+ }
@@ -0,0 +1,154 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ 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;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { Db } from './index';
38
+ import { EJSON } from 'bson';
39
+ import { QuerySerializer } from './serializer/query';
40
+ import { Point } from './geo';
41
+ var Aggregation = (function () {
42
+ function Aggregation(db, collectionName) {
43
+ this._stages = [];
44
+ if (db && collectionName) {
45
+ this._db = db;
46
+ this._request = new Db.reqClass(this._db.config);
47
+ this._collectionName = collectionName;
48
+ }
49
+ }
50
+ Aggregation.prototype.end = function () {
51
+ return __awaiter(this, void 0, void 0, function () {
52
+ var result;
53
+ return __generator(this, function (_a) {
54
+ switch (_a.label) {
55
+ case 0:
56
+ if (!this._collectionName || !this._db) {
57
+ throw new Error('Aggregation pipeline cannot send request');
58
+ }
59
+ return [4, this._request.send('database.aggregate', {
60
+ collectionName: this._collectionName,
61
+ stages: this._stages
62
+ })];
63
+ case 1:
64
+ result = _a.sent();
65
+ if (result && result.data && result.data.list) {
66
+ return [2, {
67
+ requestId: result.requestId,
68
+ data: JSON.parse(result.data.list).map(EJSON.parse)
69
+ }];
70
+ }
71
+ return [2, result];
72
+ }
73
+ });
74
+ });
75
+ };
76
+ Aggregation.prototype.unwrap = function () {
77
+ return this._stages;
78
+ };
79
+ Aggregation.prototype.done = function () {
80
+ return this._stages.map(function (_a) {
81
+ var _b;
82
+ var stageKey = _a.stageKey, stageValue = _a.stageValue;
83
+ return _b = {},
84
+ _b[stageKey] = JSON.parse(stageValue),
85
+ _b;
86
+ });
87
+ };
88
+ Aggregation.prototype._pipe = function (stage, param) {
89
+ this._stages.push({
90
+ stageKey: "$" + stage,
91
+ stageValue: JSON.stringify(param)
92
+ });
93
+ return this;
94
+ };
95
+ Aggregation.prototype.addFields = function (param) {
96
+ return this._pipe('addFields', param);
97
+ };
98
+ Aggregation.prototype.bucket = function (param) {
99
+ return this._pipe('bucket', param);
100
+ };
101
+ Aggregation.prototype.bucketAuto = function (param) {
102
+ return this._pipe('bucketAuto', param);
103
+ };
104
+ Aggregation.prototype.count = function (param) {
105
+ return this._pipe('count', param);
106
+ };
107
+ Aggregation.prototype.geoNear = function (param) {
108
+ if (param.query) {
109
+ param.query = QuerySerializer.encode(param.query);
110
+ }
111
+ if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {
112
+ param.distanceMultiplier = param.distanceMultiplier;
113
+ }
114
+ if (param.near) {
115
+ param.near = new Point(param.near.longitude, param.near.latitude).toJSON();
116
+ }
117
+ return this._pipe('geoNear', param);
118
+ };
119
+ Aggregation.prototype.group = function (param) {
120
+ return this._pipe('group', param);
121
+ };
122
+ Aggregation.prototype.limit = function (param) {
123
+ return this._pipe('limit', param);
124
+ };
125
+ Aggregation.prototype.match = function (param) {
126
+ return this._pipe('match', QuerySerializer.encode(param));
127
+ };
128
+ Aggregation.prototype.project = function (param) {
129
+ return this._pipe('project', param);
130
+ };
131
+ Aggregation.prototype.lookup = function (param) {
132
+ return this._pipe('lookup', param);
133
+ };
134
+ Aggregation.prototype.replaceRoot = function (param) {
135
+ return this._pipe('replaceRoot', param);
136
+ };
137
+ Aggregation.prototype.sample = function (param) {
138
+ return this._pipe('sample', param);
139
+ };
140
+ Aggregation.prototype.skip = function (param) {
141
+ return this._pipe('skip', param);
142
+ };
143
+ Aggregation.prototype.sort = function (param) {
144
+ return this._pipe('sort', param);
145
+ };
146
+ Aggregation.prototype.sortByCount = function (param) {
147
+ return this._pipe('sortByCount', param);
148
+ };
149
+ Aggregation.prototype.unwind = function (param) {
150
+ return this._pipe('unwind', param);
151
+ };
152
+ return Aggregation;
153
+ }());
154
+ export default Aggregation;
@@ -0,0 +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
+ }
@@ -0,0 +1,44 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ import { DocumentReference } from './document';
15
+ import { Query } from './query';
16
+ import Aggregation from './aggregate';
17
+ var CollectionReference = (function (_super) {
18
+ __extends(CollectionReference, _super);
19
+ function CollectionReference(db, coll) {
20
+ return _super.call(this, db, coll) || this;
21
+ }
22
+ Object.defineProperty(CollectionReference.prototype, "name", {
23
+ get: function () {
24
+ return this._coll;
25
+ },
26
+ enumerable: true,
27
+ configurable: true
28
+ });
29
+ CollectionReference.prototype.doc = function (docID) {
30
+ if (typeof docID !== 'string' && typeof docID !== 'number') {
31
+ throw new Error('docId必须为字符串或数字');
32
+ }
33
+ return new DocumentReference(this._db, this._coll, docID);
34
+ };
35
+ CollectionReference.prototype.add = function (data, callback) {
36
+ var docRef = new DocumentReference(this._db, this._coll, undefined);
37
+ return docRef.create(data, callback);
38
+ };
39
+ CollectionReference.prototype.aggregate = function () {
40
+ return new Aggregation(this._db, this._coll);
41
+ };
42
+ return CollectionReference;
43
+ }(Query));
44
+ export { CollectionReference };
@@ -0,0 +1,175 @@
1
+ import { QueryCommand } from './commands/query';
2
+ import { LogicCommand } from './commands/logic';
3
+ import { UpdateCommand } from './commands/update';
4
+ import Aggregation from './aggregate';
5
+ export declare type IQueryCondition = Record<string, any> | LogicCommand;
6
+ export declare const Command: {
7
+ eq(val: any): QueryCommand;
8
+ neq(val: any): QueryCommand;
9
+ lt(val: any): QueryCommand;
10
+ lte(val: any): QueryCommand;
11
+ gt(val: any): QueryCommand;
12
+ gte(val: any): QueryCommand;
13
+ in(val: any): QueryCommand;
14
+ nin(val: any): QueryCommand;
15
+ all(val: any): QueryCommand;
16
+ elemMatch(val: any): QueryCommand;
17
+ exists(val: boolean): QueryCommand;
18
+ size(val: number): QueryCommand;
19
+ mod(val: number[]): QueryCommand;
20
+ geoNear(val: any): QueryCommand;
21
+ geoWithin(val: any): QueryCommand;
22
+ geoIntersects(val: any): QueryCommand;
23
+ and(...__expressions__: import("./serializer/datatype").IQueryCondition[]): LogicCommand;
24
+ nor(...__expressions__: import("./serializer/datatype").IQueryCondition[]): LogicCommand;
25
+ or(...__expressions__: import("./serializer/datatype").IQueryCondition[]): LogicCommand;
26
+ not(...__expressions__: import("./serializer/datatype").IQueryCondition[]): LogicCommand;
27
+ set(val: any): UpdateCommand;
28
+ remove(): UpdateCommand;
29
+ inc(val: number): UpdateCommand;
30
+ mul(val: number): UpdateCommand;
31
+ push(...args: any[]): UpdateCommand;
32
+ pull(values: any): UpdateCommand;
33
+ pullAll(values: any): UpdateCommand;
34
+ pop(): UpdateCommand;
35
+ shift(): UpdateCommand;
36
+ unshift(...__values__: any[]): UpdateCommand;
37
+ addToSet(values: any): UpdateCommand;
38
+ rename(values: any): UpdateCommand;
39
+ bit(values: any): UpdateCommand;
40
+ max(values: any): UpdateCommand;
41
+ min(values: any): UpdateCommand;
42
+ expr(values: AggregationOperator): {
43
+ $expr: AggregationOperator;
44
+ };
45
+ jsonSchema(schema: any): {
46
+ $jsonSchema: any;
47
+ };
48
+ text(values: string | {
49
+ search: string;
50
+ language?: string;
51
+ caseSensitive?: boolean;
52
+ diacriticSensitive: boolean;
53
+ }): {
54
+ $search: {
55
+ (regexp: string | RegExp): number;
56
+ (searcher: {
57
+ [Symbol.search](string: string): number;
58
+ }): number;
59
+ };
60
+ $language?: undefined;
61
+ $caseSensitive?: undefined;
62
+ $diacriticSensitive?: undefined;
63
+ } | {
64
+ $search: string;
65
+ $language: string;
66
+ $caseSensitive: boolean;
67
+ $diacriticSensitive: boolean;
68
+ };
69
+ aggregate: {
70
+ pipeline(): Aggregation;
71
+ abs: (param: any) => AggregationOperator;
72
+ add: (param: any) => AggregationOperator;
73
+ ceil: (param: any) => AggregationOperator;
74
+ divide: (param: any) => AggregationOperator;
75
+ exp: (param: any) => AggregationOperator;
76
+ floor: (param: any) => AggregationOperator;
77
+ ln: (param: any) => AggregationOperator;
78
+ log: (param: any) => AggregationOperator;
79
+ log10: (param: any) => AggregationOperator;
80
+ mod: (param: any) => AggregationOperator;
81
+ multiply: (param: any) => AggregationOperator;
82
+ pow: (param: any) => AggregationOperator;
83
+ sqrt: (param: any) => AggregationOperator;
84
+ subtract: (param: any) => AggregationOperator;
85
+ trunc: (param: any) => AggregationOperator;
86
+ arrayElemAt: (param: any) => AggregationOperator;
87
+ arrayToObject: (param: any) => AggregationOperator;
88
+ concatArrays: (param: any) => AggregationOperator;
89
+ filter: (param: any) => AggregationOperator;
90
+ in: (param: any) => AggregationOperator;
91
+ indexOfArray: (param: any) => AggregationOperator;
92
+ isArray: (param: any) => AggregationOperator;
93
+ map: (param: any) => AggregationOperator;
94
+ range: (param: any) => AggregationOperator;
95
+ reduce: (param: any) => AggregationOperator;
96
+ reverseArray: (param: any) => AggregationOperator;
97
+ size: (param: any) => AggregationOperator;
98
+ slice: (param: any) => AggregationOperator;
99
+ zip: (param: any) => AggregationOperator;
100
+ and: (param: any) => AggregationOperator;
101
+ not: (param: any) => AggregationOperator;
102
+ or: (param: any) => AggregationOperator;
103
+ cmp: (param: any) => AggregationOperator;
104
+ eq: (param: any) => AggregationOperator;
105
+ gt: (param: any) => AggregationOperator;
106
+ gte: (param: any) => AggregationOperator;
107
+ lt: (param: any) => AggregationOperator;
108
+ lte: (param: any) => AggregationOperator;
109
+ neq: (param: any) => AggregationOperator;
110
+ cond: (param: any) => AggregationOperator;
111
+ ifNull: (param: any) => AggregationOperator;
112
+ switch: (param: any) => AggregationOperator;
113
+ dateFromParts: (param: any) => AggregationOperator;
114
+ dateFromString: (param: any) => AggregationOperator;
115
+ dayOfMonth: (param: any) => AggregationOperator;
116
+ dayOfWeek: (param: any) => AggregationOperator;
117
+ dayOfYear: (param: any) => AggregationOperator;
118
+ isoDayOfWeek: (param: any) => AggregationOperator;
119
+ isoWeek: (param: any) => AggregationOperator;
120
+ isoWeekYear: (param: any) => AggregationOperator;
121
+ millisecond: (param: any) => AggregationOperator;
122
+ minute: (param: any) => AggregationOperator;
123
+ month: (param: any) => AggregationOperator;
124
+ second: (param: any) => AggregationOperator;
125
+ hour: (param: any) => AggregationOperator;
126
+ week: (param: any) => AggregationOperator;
127
+ year: (param: any) => AggregationOperator;
128
+ literal: (param: any) => AggregationOperator;
129
+ mergeObjects: (param: any) => AggregationOperator;
130
+ objectToArray: (param: any) => AggregationOperator;
131
+ allElementsTrue: (param: any) => AggregationOperator;
132
+ anyElementTrue: (param: any) => AggregationOperator;
133
+ setDifference: (param: any) => AggregationOperator;
134
+ setEquals: (param: any) => AggregationOperator;
135
+ setIntersection: (param: any) => AggregationOperator;
136
+ setIsSubset: (param: any) => AggregationOperator;
137
+ setUnion: (param: any) => AggregationOperator;
138
+ concat: (param: any) => AggregationOperator;
139
+ dateToString: (param: any) => AggregationOperator;
140
+ indexOfBytes: (param: any) => AggregationOperator;
141
+ indexOfCP: (param: any) => AggregationOperator;
142
+ split: (param: any) => AggregationOperator;
143
+ strLenBytes: (param: any) => AggregationOperator;
144
+ strLenCP: (param: any) => AggregationOperator;
145
+ strcasecmp: (param: any) => AggregationOperator;
146
+ substr: (param: any) => AggregationOperator;
147
+ substrBytes: (param: any) => AggregationOperator;
148
+ substrCP: (param: any) => AggregationOperator;
149
+ toLower: (param: any) => AggregationOperator;
150
+ toUpper: (param: any) => AggregationOperator;
151
+ meta: (param: any) => AggregationOperator;
152
+ addToSet: (param: any) => AggregationOperator;
153
+ avg: (param: any) => AggregationOperator;
154
+ first: (param: any) => AggregationOperator;
155
+ last: (param: any) => AggregationOperator;
156
+ max: (param: any) => AggregationOperator;
157
+ min: (param: any) => AggregationOperator;
158
+ push: (param: any) => AggregationOperator;
159
+ stdDevPop: (param: any) => AggregationOperator;
160
+ stdDevSamp: (param: any) => AggregationOperator;
161
+ sum: (param: any) => AggregationOperator;
162
+ let: (param: any) => AggregationOperator;
163
+ };
164
+ project: {
165
+ slice: (param: any) => ProjectionOperator;
166
+ elemMatch: (param: any) => ProjectionOperator;
167
+ };
168
+ };
169
+ declare class AggregationOperator {
170
+ constructor(name: any, param: any);
171
+ }
172
+ declare class ProjectionOperator {
173
+ constructor(name: any, param: any);
174
+ }
175
+ export default Command;