oak-domain 1.0.0 → 1.1.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 (102) hide show
  1. package/lib/OakError.js +2 -16
  2. package/lib/actions/action.d.ts +9 -1
  3. package/lib/actions/action.js +6 -2
  4. package/lib/base-app-domain/ActionDefDict.d.ts +5 -0
  5. package/lib/base-app-domain/ActionDefDict.js +7 -0
  6. package/lib/base-app-domain/EntityDict.d.ts +12 -0
  7. package/lib/base-app-domain/EntityDict.js +2 -0
  8. package/lib/base-app-domain/Modi/Action.d.ts +10 -0
  9. package/lib/base-app-domain/Modi/Action.js +14 -0
  10. package/lib/base-app-domain/Modi/Schema.d.ts +161 -0
  11. package/lib/base-app-domain/Modi/Schema.js +2 -0
  12. package/lib/base-app-domain/Modi/Storage.d.ts +3 -0
  13. package/lib/base-app-domain/Modi/Storage.js +60 -0
  14. package/lib/base-app-domain/ModiEntity/Schema.d.ts +179 -0
  15. package/lib/base-app-domain/ModiEntity/Schema.js +2 -0
  16. package/lib/base-app-domain/ModiEntity/Storage.d.ts +3 -0
  17. package/lib/base-app-domain/ModiEntity/Storage.js +26 -0
  18. package/lib/base-app-domain/Oper/Schema.d.ts +158 -0
  19. package/lib/base-app-domain/Oper/Schema.js +2 -0
  20. package/lib/base-app-domain/Oper/Storage.d.ts +3 -0
  21. package/lib/base-app-domain/Oper/Storage.js +29 -0
  22. package/lib/base-app-domain/OperEntity/Schema.d.ts +196 -0
  23. package/lib/base-app-domain/OperEntity/Schema.js +2 -0
  24. package/lib/base-app-domain/OperEntity/Storage.d.ts +3 -0
  25. package/lib/base-app-domain/OperEntity/Storage.js +26 -0
  26. package/lib/base-app-domain/Storage.d.ts +3 -0
  27. package/lib/base-app-domain/Storage.js +15 -0
  28. package/lib/base-app-domain/User/Schema.d.ts +140 -0
  29. package/lib/base-app-domain/User/Schema.js +2 -0
  30. package/lib/base-app-domain/User/Storage.d.ts +3 -0
  31. package/lib/base-app-domain/User/Storage.js +25 -0
  32. package/lib/base-app-domain/_SubQuery.d.ts +36 -0
  33. package/lib/base-app-domain/_SubQuery.js +2 -0
  34. package/lib/base-app-domain/index.d.ts +3 -0
  35. package/lib/base-app-domain/index.js +6 -0
  36. package/lib/checkers/index.d.ts +3 -0
  37. package/lib/checkers/index.js +8 -0
  38. package/lib/compiler/env.d.ts +4 -3
  39. package/lib/compiler/env.js +22 -9
  40. package/lib/compiler/schemalBuilder.js +689 -355
  41. package/lib/entities/Action.d.ts +12 -0
  42. package/lib/entities/Action.js +17 -0
  43. package/lib/entities/Modi.d.ts +11 -0
  44. package/lib/entities/Modi.js +46 -0
  45. package/lib/entities/ModiEntity.d.ts +8 -0
  46. package/lib/entities/ModiEntity.js +15 -0
  47. package/lib/entities/Ooperation.d.ts +12 -0
  48. package/lib/entities/Ooperation.js +17 -0
  49. package/lib/entities/Oper.d.ts +10 -0
  50. package/lib/entities/Oper.js +17 -0
  51. package/lib/entities/OperEntity.d.ts +8 -0
  52. package/lib/entities/OperEntity.js +15 -0
  53. package/lib/entities/Update.d.ts +9 -0
  54. package/lib/entities/Update.js +44 -0
  55. package/lib/entities/User.d.ts +7 -0
  56. package/lib/entities/User.js +12 -0
  57. package/lib/entities/Uupdate.d.ts +9 -0
  58. package/lib/entities/Uupdate.js +44 -0
  59. package/lib/store/CascadeStore.d.ts +31 -6
  60. package/lib/store/CascadeStore.js +957 -230
  61. package/lib/store/TriggerExecutor.d.ts +4 -3
  62. package/lib/store/TriggerExecutor.js +30 -102
  63. package/lib/store/UniversalContext.d.ts +1 -0
  64. package/lib/store/UniversalContext.js +10 -59
  65. package/lib/store/action.d.ts +6 -0
  66. package/lib/store/action.js +14 -0
  67. package/lib/store/actionDef.js +14 -47
  68. package/lib/store/filter.d.ts +6 -0
  69. package/lib/store/filter.js +60 -29
  70. package/lib/store/modi.d.ts +11 -0
  71. package/lib/store/modi.js +143 -0
  72. package/lib/store/projection.d.ts +7 -0
  73. package/lib/store/projection.js +211 -0
  74. package/lib/store/relation.js +6 -6
  75. package/lib/store/selection.d.ts +7 -0
  76. package/lib/store/selection.js +227 -0
  77. package/lib/triggers/index.d.ts +2 -0
  78. package/lib/triggers/index.js +5 -0
  79. package/lib/triggers/modi.d.ts +5 -0
  80. package/lib/triggers/modi.js +72 -0
  81. package/lib/types/Context.d.ts +1 -0
  82. package/lib/types/DataType.d.ts +1 -1
  83. package/lib/types/Entity.d.ts +29 -16
  84. package/lib/types/Exception.d.ts +28 -0
  85. package/lib/types/Exception.js +75 -23
  86. package/lib/types/Expression.d.ts +9 -0
  87. package/lib/types/Expression.js +47 -38
  88. package/lib/types/RowStore.d.ts +3 -3
  89. package/lib/types/Storage.d.ts +6 -0
  90. package/lib/types/Trigger.d.ts +5 -5
  91. package/lib/types/index.js +19 -28
  92. package/lib/utils/SimpleConnector.js +5 -58
  93. package/lib/utils/assert.js +2 -4
  94. package/lib/utils/concurrent.js +5 -54
  95. package/lib/utils/lodash.d.ts +4 -1
  96. package/lib/utils/lodash.js +19 -15
  97. package/package.json +10 -5
  98. package/src/entities/Modi.ts +68 -0
  99. package/src/entities/ModiEntity.ts +24 -0
  100. package/src/entities/Oper.ts +28 -0
  101. package/src/entities/OperEntity.ts +24 -0
  102. package/src/entities/User.ts +20 -0
@@ -1,4 +1,5 @@
1
1
  import { EntityDict, OperateOption, SelectOption, SelectRowShape } from "../types/Entity";
2
+ import { EntityDict as BaseEntityDict } from '../base-app-domain';
2
3
  import { Logger } from "../types/Logger";
3
4
  import { Checker } from '../types/Auth';
4
5
  import { Context } from '../types/Context';
@@ -6,7 +7,7 @@ import { Trigger, Executor } from "../types/Trigger";
6
7
  /**
7
8
  * update可能会传入多种不同的action,此时都需要检查update trigger
8
9
  */
9
- export declare class TriggerExecutor<ED extends EntityDict, Cxt extends Context<ED>> extends Executor<ED, Cxt> {
10
+ export declare class TriggerExecutor<ED extends EntityDict & BaseEntityDict, Cxt extends Context<ED>> extends Executor<ED, Cxt> {
10
11
  private counter;
11
12
  private triggerMap;
12
13
  private triggerNameMap;
@@ -20,11 +21,11 @@ export declare class TriggerExecutor<ED extends EntityDict, Cxt extends Context<
20
21
  private preCommitTrigger;
21
22
  preOperation<T extends keyof ED>(entity: T, operation: ED[T]['Operation'] | ED[T]['Selection'] & {
22
23
  action: 'select';
23
- }, context: Cxt, option?: OperateOption | SelectOption): Promise<void>;
24
+ }, context: Cxt, option: OperateOption | SelectOption): Promise<void>;
24
25
  private onCommit;
25
26
  private postCommitTrigger;
26
27
  postOperation<T extends keyof ED>(entity: T, operation: ED[T]['Operation'] | ED[T]['Selection'] & {
27
28
  action: 'select';
28
- }, context: Cxt, option?: OperateOption | SelectOption, result?: SelectRowShape<ED[T]['Schema'], ED[T]['Selection']['data']>[]): Promise<void>;
29
+ }, context: Cxt, option: OperateOption | SelectOption, result?: SelectRowShape<ED[T]['Schema'], ED[T]['Selection']['data']>[]): Promise<void>;
29
30
  checkpoint(context: Cxt, timestamp: number): Promise<number>;
30
31
  }
@@ -1,83 +1,8 @@
1
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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
- return new (P || (P = Promise))(function (resolve, reject) {
31
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
- step((generator = generator.apply(thisArg, _arguments || [])).next());
35
- });
36
- };
37
- var __generator = (this && this.__generator) || function (thisArg, body) {
38
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
- function verb(n) { return function (v) { return step([n, v]); }; }
41
- function step(op) {
42
- if (f) throw new TypeError("Generator is already executing.");
43
- while (_) try {
44
- 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;
45
- if (y = 0, t) op = [op[0] & 2, t.value];
46
- switch (op[0]) {
47
- case 0: case 1: t = op; break;
48
- case 4: _.label++; return { value: op[1], done: false };
49
- case 5: _.label++; y = op[1]; op = [0]; continue;
50
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
- default:
52
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
- if (t[2]) _.ops.pop();
57
- _.trys.pop(); continue;
58
- }
59
- op = body.call(thisArg, _);
60
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
- }
63
- };
64
- var __values = (this && this.__values) || function(o) {
65
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
66
- if (m) return m.call(o);
67
- if (o && typeof o.length === "number") return {
68
- next: function () {
69
- if (o && i >= o.length) o = void 0;
70
- return { value: o && o[i++], done: !o };
71
- }
72
- };
73
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
74
- };
75
- var __importDefault = (this && this.__importDefault) || function (mod) {
76
- return (mod && mod.__esModule) ? mod : { "default": mod };
77
- };
78
2
  Object.defineProperty(exports, "__esModule", { value: true });
79
3
  exports.TriggerExecutor = void 0;
80
- var assert_1 = __importDefault(require("assert"));
4
+ var tslib_1 = require("tslib");
5
+ var assert_1 = tslib_1.__importDefault(require("assert"));
81
6
  var lodash_1 = require("../utils/lodash");
82
7
  var filter_1 = require("../store/filter");
83
8
  var Trigger_1 = require("../types/Trigger");
@@ -93,7 +18,7 @@ var Trigger_1 = require("../types/Trigger");
93
18
  'stat': 'select',
94
19
  }; */
95
20
  var TriggerExecutor = /** @class */ (function (_super) {
96
- __extends(TriggerExecutor, _super);
21
+ tslib_1.__extends(TriggerExecutor, _super);
97
22
  function TriggerExecutor(contextBuilder, logger) {
98
23
  if (logger === void 0) { logger = console; }
99
24
  var _this = _super.call(this) || this;
@@ -107,7 +32,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
107
32
  }
108
33
  TriggerExecutor.prototype.registerChecker = function (checker) {
109
34
  var entity = checker.entity, action = checker.action, checkFn = checker.checker, type = checker.type;
110
- var triggerName = "".concat(entity).concat(action, "\u6743\u9650\u68C0\u67E5-").concat(this.counter++);
35
+ var triggerName = "".concat(String(entity)).concat(action, "\u6743\u9650\u68C0\u67E5-").concat(this.counter++);
111
36
  var trigger = {
112
37
  checkerType: type,
113
38
  name: triggerName,
@@ -177,10 +102,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
177
102
  }
178
103
  };
179
104
  TriggerExecutor.prototype.preCommitTrigger = function (entity, operation, trigger, context, option) {
180
- return __awaiter(this, void 0, void 0, function () {
105
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
181
106
  var _a, filter, filter2, rowStore, count, _b, _c, _d, _e;
182
107
  var _f, _g;
183
- return __generator(this, function (_h) {
108
+ return tslib_1.__generator(this, function (_h) {
184
109
  switch (_h.label) {
185
110
  case 0:
186
111
  (0, assert_1.default)(trigger.action !== 'select');
@@ -217,11 +142,11 @@ var TriggerExecutor = /** @class */ (function (_super) {
217
142
  rowStore = context.rowStore;
218
143
  return [4 /*yield*/, rowStore.count(entity, {
219
144
  filter: filter2
220
- }, context)];
145
+ }, context, {})];
221
146
  case 3:
222
147
  count = _h.sent();
223
148
  if (count > 0) {
224
- throw new Error("\u5BF9\u8C61".concat(entity, "\u7684\u884C\u300C").concat(JSON.stringify(operation), "\u300D\u4E0A\u5DF2\u7ECF\u5B58\u5728\u672A\u5B8C\u6210\u7684\u8DE8\u4E8B\u52A1\u7EA6\u675F"));
149
+ throw new Error("\u5BF9\u8C61".concat(String(entity), "\u7684\u884C\u300C").concat(JSON.stringify(operation), "\u300D\u4E0A\u5DF2\u7ECF\u5B58\u5728\u672A\u5B8C\u6210\u7684\u8DE8\u4E8B\u52A1\u7EA6\u675F"));
225
150
  }
226
151
  return [3 /*break*/, 4];
227
152
  case 4:
@@ -248,10 +173,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
248
173
  };
249
174
  TriggerExecutor.prototype.preOperation = function (entity, operation, context, option) {
250
175
  var _a;
251
- return __awaiter(this, void 0, void 0, function () {
176
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
252
177
  var action, triggers, preTriggers, preTriggers_1, preTriggers_1_1, trigger, number, e_1_1, commitTriggers, commitTriggers_1, commitTriggers_1_1, trigger, e_2_1;
253
178
  var e_1, _b, e_2, _c;
254
- return __generator(this, function (_d) {
179
+ return tslib_1.__generator(this, function (_d) {
255
180
  switch (_d.label) {
256
181
  case 0:
257
182
  action = operation.action;
@@ -261,7 +186,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
261
186
  _d.label = 1;
262
187
  case 1:
263
188
  _d.trys.push([1, 6, 7, 8]);
264
- preTriggers_1 = __values(preTriggers), preTriggers_1_1 = preTriggers_1.next();
189
+ preTriggers_1 = tslib_1.__values(preTriggers), preTriggers_1_1 = preTriggers_1.next();
265
190
  _d.label = 2;
266
191
  case 2:
267
192
  if (!!preTriggers_1_1.done) return [3 /*break*/, 5];
@@ -292,7 +217,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
292
217
  _d.label = 9;
293
218
  case 9:
294
219
  _d.trys.push([9, 14, 15, 16]);
295
- commitTriggers_1 = __values(commitTriggers), commitTriggers_1_1 = commitTriggers_1.next();
220
+ commitTriggers_1 = tslib_1.__values(commitTriggers), commitTriggers_1_1 = commitTriggers_1.next();
296
221
  _d.label = 10;
297
222
  case 10:
298
223
  if (!!commitTriggers_1_1.done) return [3 /*break*/, 13];
@@ -322,9 +247,9 @@ var TriggerExecutor = /** @class */ (function (_super) {
322
247
  };
323
248
  TriggerExecutor.prototype.onCommit = function (trigger, operation, cxtStr, option) {
324
249
  var _this = this;
325
- return function () { return __awaiter(_this, void 0, void 0, function () {
250
+ return function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
326
251
  var context, number, rowStore, filter;
327
- return __generator(this, function (_a) {
252
+ return tslib_1.__generator(this, function (_a) {
328
253
  switch (_a.label) {
329
254
  case 0: return [4 /*yield*/, this.contextBuilder(cxtStr)];
330
255
  case 1:
@@ -356,10 +281,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
356
281
  else if (operation.filter) {
357
282
  Object.assign(filter, { filter: operation.filter });
358
283
  }
359
- return [4 /*yield*/, rowStore.operate(trigger.entity, __assign({ action: 'update', data: {
284
+ return [4 /*yield*/, rowStore.operate(trigger.entity, tslib_1.__assign({ id: 'aaa', action: 'update', data: {
360
285
  $$triggerTimestamp$$: null,
361
286
  $$triggerData$$: null,
362
- } }, filter /** as Filter<'update', DeduceFilter<ED[T]['Schema']>> */), context)];
287
+ } }, filter /** as Filter<'update', DeduceFilter<ED[T]['Schema']>> */), context, {})];
363
288
  case 4:
364
289
  _a.sent();
365
290
  _a.label = 5;
@@ -372,9 +297,9 @@ var TriggerExecutor = /** @class */ (function (_super) {
372
297
  }); };
373
298
  };
374
299
  TriggerExecutor.prototype.postCommitTrigger = function (operation, trigger, context, option) {
375
- return __awaiter(this, void 0, void 0, function () {
300
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
376
301
  var _a, _b, _c, _d, _e;
377
- return __generator(this, function (_f) {
302
+ return tslib_1.__generator(this, function (_f) {
378
303
  switch (_f.label) {
379
304
  case 0:
380
305
  _b = (_a = context).on;
@@ -391,10 +316,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
391
316
  };
392
317
  TriggerExecutor.prototype.postOperation = function (entity, operation, context, option, result) {
393
318
  var _a;
394
- return __awaiter(this, void 0, void 0, function () {
319
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
395
320
  var action, triggers, postTriggers, postTriggers_1, postTriggers_1_1, trigger, number, e_3_1, commitTriggers, commitTriggers_2, commitTriggers_2_1, trigger, e_4_1;
396
321
  var e_3, _b, e_4, _c;
397
- return __generator(this, function (_d) {
322
+ return tslib_1.__generator(this, function (_d) {
398
323
  switch (_d.label) {
399
324
  case 0:
400
325
  action = operation.action;
@@ -404,7 +329,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
404
329
  _d.label = 1;
405
330
  case 1:
406
331
  _d.trys.push([1, 6, 7, 8]);
407
- postTriggers_1 = __values(postTriggers), postTriggers_1_1 = postTriggers_1.next();
332
+ postTriggers_1 = tslib_1.__values(postTriggers), postTriggers_1_1 = postTriggers_1.next();
408
333
  _d.label = 2;
409
334
  case 2:
410
335
  if (!!postTriggers_1_1.done) return [3 /*break*/, 5];
@@ -438,7 +363,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
438
363
  _d.label = 9;
439
364
  case 9:
440
365
  _d.trys.push([9, 14, 15, 16]);
441
- commitTriggers_2 = __values(commitTriggers), commitTriggers_2_1 = commitTriggers_2.next();
366
+ commitTriggers_2 = tslib_1.__values(commitTriggers), commitTriggers_2_1 = commitTriggers_2.next();
442
367
  _d.label = 10;
443
368
  case 10:
444
369
  if (!!commitTriggers_2_1.done) return [3 /*break*/, 13];
@@ -467,10 +392,10 @@ var TriggerExecutor = /** @class */ (function (_super) {
467
392
  });
468
393
  };
469
394
  TriggerExecutor.prototype.checkpoint = function (context, timestamp) {
470
- return __awaiter(this, void 0, void 0, function () {
395
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
471
396
  var result, rowStore, _a, _b, entity, rows, rows_1, rows_1_1, row, $$triggerData$$, _c, name_1, operation, cxtStr, params, trigger, e_5_1, e_6_1;
472
397
  var e_6, _d, e_5, _e;
473
- return __generator(this, function (_f) {
398
+ return tslib_1.__generator(this, function (_f) {
474
399
  switch (_f.label) {
475
400
  case 0:
476
401
  result = 0;
@@ -478,7 +403,7 @@ var TriggerExecutor = /** @class */ (function (_super) {
478
403
  _f.label = 1;
479
404
  case 1:
480
405
  _f.trys.push([1, 13, 14, 15]);
481
- _a = __values(this.volatileEntities), _b = _a.next();
406
+ _a = tslib_1.__values(this.volatileEntities), _b = _a.next();
482
407
  _f.label = 2;
483
408
  case 2:
484
409
  if (!!_b.done) return [3 /*break*/, 12];
@@ -493,13 +418,16 @@ var TriggerExecutor = /** @class */ (function (_super) {
493
418
  $gt: timestamp,
494
419
  }
495
420
  },
496
- }, context)];
421
+ }, context, {
422
+ dontCollect: true,
423
+ forUpdate: true,
424
+ })];
497
425
  case 3:
498
426
  rows = (_f.sent()).result;
499
427
  _f.label = 4;
500
428
  case 4:
501
429
  _f.trys.push([4, 9, 10, 11]);
502
- rows_1 = (e_5 = void 0, __values(rows)), rows_1_1 = rows_1.next();
430
+ rows_1 = (e_5 = void 0, tslib_1.__values(rows)), rows_1_1 = rows_1.next();
503
431
  _f.label = 5;
504
432
  case 5:
505
433
  if (!!rows_1_1.done) return [3 /*break*/, 8];
@@ -23,4 +23,5 @@ export declare abstract class UniversalContext<ED extends EntityDict> implements
23
23
  rollback(): Promise<void>;
24
24
  getCurrentTxnId(): string | undefined;
25
25
  abstract toString(): Promise<string>;
26
+ abstract getCurrentUserId(): Promise<string | undefined>;
26
27
  }
@@ -1,57 +1,8 @@
1
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
- var __values = (this && this.__values) || function(o) {
39
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
40
- if (m) return m.call(o);
41
- if (o && typeof o.length === "number") return {
42
- next: function () {
43
- if (o && i >= o.length) o = void 0;
44
- return { value: o && o[i++], done: !o };
45
- }
46
- };
47
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
48
- };
49
- var __importDefault = (this && this.__importDefault) || function (mod) {
50
- return (mod && mod.__esModule) ? mod : { "default": mod };
51
- };
52
2
  Object.defineProperty(exports, "__esModule", { value: true });
53
3
  exports.UniversalContext = void 0;
54
- var assert_1 = __importDefault(require("assert"));
4
+ var tslib_1 = require("tslib");
5
+ var assert_1 = tslib_1.__importDefault(require("assert"));
55
6
  var concurrent_1 = require("../utils/concurrent");
56
7
  var UniversalContext = /** @class */ (function () {
57
8
  function UniversalContext(store) {
@@ -83,9 +34,9 @@ var UniversalContext = /** @class */ (function () {
83
34
  * @param options
84
35
  */
85
36
  UniversalContext.prototype.begin = function (options) {
86
- return __awaiter(this, void 0, void 0, function () {
37
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
87
38
  var _a;
88
- return __generator(this, function (_b) {
39
+ return tslib_1.__generator(this, function (_b) {
89
40
  switch (_b.label) {
90
41
  case 0: return [4 /*yield*/, this.rwLock.acquire('X')];
91
42
  case 1:
@@ -105,10 +56,10 @@ var UniversalContext = /** @class */ (function () {
105
56
  });
106
57
  };
107
58
  UniversalContext.prototype.commit = function () {
108
- return __awaiter(this, void 0, void 0, function () {
59
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
109
60
  var _a, _b, e, e_1_1;
110
61
  var e_1, _c;
111
- return __generator(this, function (_d) {
62
+ return tslib_1.__generator(this, function (_d) {
112
63
  switch (_d.label) {
113
64
  case 0:
114
65
  if (!this.uuid) return [3 /*break*/, 10];
@@ -121,7 +72,7 @@ var UniversalContext = /** @class */ (function () {
121
72
  _d.label = 2;
122
73
  case 2:
123
74
  _d.trys.push([2, 7, 8, 9]);
124
- _a = __values(this.events.commit), _b = _a.next();
75
+ _a = tslib_1.__values(this.events.commit), _b = _a.next();
125
76
  _d.label = 3;
126
77
  case 3:
127
78
  if (!!_b.done) return [3 /*break*/, 6];
@@ -153,10 +104,10 @@ var UniversalContext = /** @class */ (function () {
153
104
  });
154
105
  };
155
106
  UniversalContext.prototype.rollback = function () {
156
- return __awaiter(this, void 0, void 0, function () {
107
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
157
108
  var _a, _b, e, e_2_1;
158
109
  var e_2, _c;
159
- return __generator(this, function (_d) {
110
+ return tslib_1.__generator(this, function (_d) {
160
111
  switch (_d.label) {
161
112
  case 0:
162
113
  if (!this.uuid) return [3 /*break*/, 10];
@@ -169,7 +120,7 @@ var UniversalContext = /** @class */ (function () {
169
120
  _d.label = 2;
170
121
  case 2:
171
122
  _d.trys.push([2, 7, 8, 9]);
172
- _a = __values(this.events.rollback), _b = _a.next();
123
+ _a = tslib_1.__values(this.events.rollback), _b = _a.next();
173
124
  _d.label = 3;
174
125
  case 3:
175
126
  if (!!_b.done) return [3 /*break*/, 6];
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 判断一个action是不是延时性操作,如果是则返回动作本身
3
+ * @param action
4
+ * @returns
5
+ */
6
+ export declare function isLaterAction(action: string): string | undefined;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isLaterAction = void 0;
4
+ /**
5
+ * 判断一个action是不是延时性操作,如果是则返回动作本身
6
+ * @param action
7
+ * @returns
8
+ */
9
+ function isLaterAction(action) {
10
+ if (action.endsWith('-l')) {
11
+ return action.slice(0, action.length - 2);
12
+ }
13
+ }
14
+ exports.isLaterAction = isLaterAction;
@@ -1,42 +1,7 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.analyzeActionDefDict = exports.checkFilterContains = exports.getFullProjection = void 0;
4
+ var tslib_1 = require("tslib");
40
5
  var filter_1 = require("./filter");
41
6
  var types_1 = require("../types");
42
7
  function getFullProjection(entity, schema) {
@@ -57,10 +22,10 @@ function getFullProjection(entity, schema) {
57
22
  }
58
23
  exports.getFullProjection = getFullProjection;
59
24
  function checkFilterContains(entity, schema, contained, context, filter) {
60
- return __awaiter(this, void 0, void 0, function () {
25
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
61
26
  var rowStore, filter2, result, data_1;
62
27
  var _a;
63
- return __generator(this, function (_b) {
28
+ return tslib_1.__generator(this, function (_b) {
64
29
  switch (_b.label) {
65
30
  case 0:
66
31
  if (!filter) {
@@ -79,7 +44,9 @@ function checkFilterContains(entity, schema, contained, context, filter) {
79
44
  filter: filter2,
80
45
  indexFrom: 0,
81
46
  count: 10,
82
- }, context)];
47
+ }, context, {
48
+ dontCollect: true,
49
+ })];
83
50
  case 1:
84
51
  result = (_b.sent()).result;
85
52
  if (result.length > 0) {
@@ -115,8 +82,8 @@ function makeIntrinsicWatchers(schema) {
115
82
  watchers.push({
116
83
  entity: entity,
117
84
  name: "\u5BF9\u8C61".concat(entity, "\u4E0A\u7684\u8FC7\u671F\u81EA\u52A8watcher"),
118
- filter: function () { return __awaiter(_this, void 0, void 0, function () {
119
- return __generator(this, function (_a) {
85
+ filter: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
86
+ return tslib_1.__generator(this, function (_a) {
120
87
  return [2 /*return*/, {
121
88
  expired: false,
122
89
  expiresAt: {
@@ -153,10 +120,10 @@ function analyzeActionDefDict(schema, actionDefDict) {
153
120
  entity: entity,
154
121
  checker: function (_a, context) {
155
122
  var operation = _a.operation;
156
- return __awaiter(_this, void 0, void 0, function () {
123
+ return tslib_1.__awaiter(_this, void 0, void 0, function () {
157
124
  var filter, conditionalFilter;
158
125
  var _b, _c;
159
- return __generator(this, function (_d) {
126
+ return tslib_1.__generator(this, function (_d) {
160
127
  switch (_d.label) {
161
128
  case 0:
162
129
  filter = operation.filter;
@@ -183,10 +150,10 @@ function analyzeActionDefDict(schema, actionDefDict) {
183
150
  when: 'before',
184
151
  fn: function (_a) {
185
152
  var operation = _a.operation;
186
- return __awaiter(_this, void 0, void 0, function () {
153
+ return tslib_1.__awaiter(_this, void 0, void 0, function () {
187
154
  var _b, data;
188
155
  var _c;
189
- return __generator(this, function (_d) {
156
+ return tslib_1.__generator(this, function (_d) {
190
157
  _b = operation.data, data = _b === void 0 ? {} : _b;
191
158
  Object.assign(operation, {
192
159
  data: Object.assign(data, (_c = {},
@@ -210,10 +177,10 @@ function analyzeActionDefDict(schema, actionDefDict) {
210
177
  when: 'before',
211
178
  fn: function (_a) {
212
179
  var operation = _a.operation;
213
- return __awaiter(_this, void 0, void 0, function () {
180
+ return tslib_1.__awaiter(_this, void 0, void 0, function () {
214
181
  var data;
215
182
  var _b;
216
- return __generator(this, function (_c) {
183
+ return tslib_1.__generator(this, function (_c) {
217
184
  data = operation.data;
218
185
  Object.assign(data, (_b = {},
219
186
  _b[attr] = is,
@@ -34,3 +34,9 @@ export declare function contains<ED extends EntityDict, T extends keyof ED>(enti
34
34
  * @param conditionalFilter
35
35
  */
36
36
  export declare function repel<ED extends EntityDict, T extends keyof ED>(entity: T, schema: StorageSchema<ED>, filter1: ED[T]['Selection']['filter'], filter2: ED[T]['Selection']['filter']): boolean;
37
+ /**
38
+ * 从filter中判断是否有确定的id对象,如果有则返回这些id,没有返回空数组
39
+ * @param filter
40
+ * @returns
41
+ */
42
+ export declare function getRelevantIds<ED extends EntityDict, T extends keyof ED>(filter: ED[T]['Selection']['filter']): string[];