oak-domain 3.0.0 → 3.0.2

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 (226) hide show
  1. package/lib/actions/action.d.ts +16 -16
  2. package/lib/actions/action.js +17 -17
  3. package/lib/actions/relation.d.ts +5 -5
  4. package/lib/actions/relation.js +38 -38
  5. package/lib/base-app-domain/ActionAuth/Schema.d.ts +160 -160
  6. package/lib/base-app-domain/ActionAuth/Schema.js +2 -2
  7. package/lib/base-app-domain/ActionAuth/Storage.d.ts +3 -3
  8. package/lib/base-app-domain/ActionAuth/Storage.js +42 -42
  9. package/lib/base-app-domain/ActionDefDict.d.ts +9 -9
  10. package/lib/base-app-domain/ActionDefDict.js +11 -11
  11. package/lib/base-app-domain/EntityDict.d.ts +24 -24
  12. package/lib/base-app-domain/EntityDict.js +2 -2
  13. package/lib/base-app-domain/I18n/Schema.d.ts +129 -129
  14. package/lib/base-app-domain/I18n/Schema.js +2 -2
  15. package/lib/base-app-domain/I18n/Storage.d.ts +3 -3
  16. package/lib/base-app-domain/I18n/Storage.js +59 -59
  17. package/lib/base-app-domain/Modi/Action.d.ts +10 -10
  18. package/lib/base-app-domain/Modi/Action.js +14 -14
  19. package/lib/base-app-domain/Modi/Schema.d.ts +136 -136
  20. package/lib/base-app-domain/Modi/Schema.js +2 -2
  21. package/lib/base-app-domain/Modi/Storage.d.ts +3 -3
  22. package/lib/base-app-domain/Modi/Storage.js +63 -63
  23. package/lib/base-app-domain/ModiEntity/Schema.d.ts +311 -311
  24. package/lib/base-app-domain/ModiEntity/Schema.js +2 -2
  25. package/lib/base-app-domain/ModiEntity/Storage.d.ts +3 -3
  26. package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
  27. package/lib/base-app-domain/Oper/Schema.d.ts +152 -152
  28. package/lib/base-app-domain/Oper/Schema.js +2 -2
  29. package/lib/base-app-domain/Oper/Storage.d.ts +3 -3
  30. package/lib/base-app-domain/Oper/Storage.js +38 -38
  31. package/lib/base-app-domain/OperEntity/Schema.d.ts +300 -300
  32. package/lib/base-app-domain/OperEntity/Schema.js +2 -2
  33. package/lib/base-app-domain/OperEntity/Storage.d.ts +3 -3
  34. package/lib/base-app-domain/OperEntity/Storage.js +30 -30
  35. package/lib/base-app-domain/Relation/Schema.d.ts +188 -188
  36. package/lib/base-app-domain/Relation/Schema.js +2 -2
  37. package/lib/base-app-domain/Relation/Storage.d.ts +3 -3
  38. package/lib/base-app-domain/Relation/Storage.js +54 -54
  39. package/lib/base-app-domain/Relation.d.ts +10 -10
  40. package/lib/base-app-domain/Relation.js +10 -10
  41. package/lib/base-app-domain/RelationAuth/Schema.d.ts +180 -180
  42. package/lib/base-app-domain/RelationAuth/Schema.js +2 -2
  43. package/lib/base-app-domain/RelationAuth/Storage.d.ts +3 -3
  44. package/lib/base-app-domain/RelationAuth/Storage.js +46 -46
  45. package/lib/base-app-domain/Storage.d.ts +3 -3
  46. package/lib/base-app-domain/Storage.js +27 -27
  47. package/lib/base-app-domain/User/Action.d.ts +10 -10
  48. package/lib/base-app-domain/User/Action.js +12 -12
  49. package/lib/base-app-domain/User/Schema.d.ts +197 -197
  50. package/lib/base-app-domain/User/Schema.js +2 -2
  51. package/lib/base-app-domain/User/Storage.d.ts +3 -3
  52. package/lib/base-app-domain/User/Storage.js +33 -33
  53. package/lib/base-app-domain/UserEntityGrant/Action.d.ts +5 -5
  54. package/lib/base-app-domain/UserEntityGrant/Action.js +5 -5
  55. package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +157 -157
  56. package/lib/base-app-domain/UserEntityGrant/Schema.js +2 -2
  57. package/lib/base-app-domain/UserEntityGrant/Storage.d.ts +3 -3
  58. package/lib/base-app-domain/UserEntityGrant/Storage.js +29 -29
  59. package/lib/base-app-domain/UserRelation/Schema.d.ts +194 -194
  60. package/lib/base-app-domain/UserRelation/Schema.js +2 -2
  61. package/lib/base-app-domain/UserRelation/Storage.d.ts +3 -3
  62. package/lib/base-app-domain/UserRelation/Storage.js +56 -56
  63. package/lib/base-app-domain/_SubQuery.d.ts +112 -112
  64. package/lib/base-app-domain/_SubQuery.js +2 -2
  65. package/lib/base-app-domain/index.d.ts +4 -4
  66. package/lib/base-app-domain/index.js +7 -7
  67. package/lib/checkers/index.d.ts +5 -5
  68. package/lib/checkers/index.js +14 -14
  69. package/lib/compiler/env.d.ts +14 -14
  70. package/lib/compiler/env.js +50 -50
  71. package/lib/compiler/localeBuilder.d.ts +22 -22
  72. package/lib/compiler/localeBuilder.js +169 -169
  73. package/lib/compiler/schemalBuilder.d.ts +11 -11
  74. package/lib/compiler/schemalBuilder.js +3787 -3787
  75. package/lib/compiler/uiBuilder.d.ts +1 -1
  76. package/lib/compiler/uiBuilder.js +3 -3
  77. package/lib/entities/ActionAuth.d.ts +12 -12
  78. package/lib/entities/ActionAuth.js +29 -29
  79. package/lib/entities/I18n.d.ts +9 -9
  80. package/lib/entities/I18n.js +37 -37
  81. package/lib/entities/Modi.d.ts +11 -11
  82. package/lib/entities/Modi.js +49 -49
  83. package/lib/entities/ModiEntity.d.ts +8 -8
  84. package/lib/entities/ModiEntity.js +18 -18
  85. package/lib/entities/Oper.d.ts +11 -11
  86. package/lib/entities/Oper.js +21 -21
  87. package/lib/entities/OperEntity.d.ts +8 -8
  88. package/lib/entities/OperEntity.js +18 -18
  89. package/lib/entities/Relation.d.ts +8 -8
  90. package/lib/entities/Relation.js +35 -35
  91. package/lib/entities/RelationAuth.d.ts +8 -8
  92. package/lib/entities/RelationAuth.js +34 -34
  93. package/lib/entities/User.d.ts +8 -8
  94. package/lib/entities/User.js +31 -31
  95. package/lib/entities/UserEntityGrant.d.ts +8 -8
  96. package/lib/entities/UserEntityGrant.js +18 -18
  97. package/lib/entities/UserRelation.d.ts +10 -10
  98. package/lib/entities/UserRelation.js +38 -38
  99. package/lib/store/AsyncRowStore.d.ts +58 -58
  100. package/lib/store/AsyncRowStore.js +190 -190
  101. package/lib/store/CascadeStore.d.ts +103 -103
  102. package/lib/store/CascadeStore.js +2035 -2031
  103. package/lib/store/RelationAuth.d.ts +103 -96
  104. package/lib/store/RelationAuth.js +1492 -1307
  105. package/lib/store/SyncRowStore.d.ts +29 -29
  106. package/lib/store/SyncRowStore.js +49 -48
  107. package/lib/store/TriggerExecutor.d.ts +31 -31
  108. package/lib/store/TriggerExecutor.js +532 -532
  109. package/lib/store/actionAuth.d.ts +4 -4
  110. package/lib/store/actionAuth.js +40 -40
  111. package/lib/store/actionDef.d.ts +10 -10
  112. package/lib/store/actionDef.js +351 -351
  113. package/lib/store/checker.d.ts +26 -26
  114. package/lib/store/checker.js +623 -623
  115. package/lib/store/filter.d.ts +123 -123
  116. package/lib/store/filter.js +1761 -1739
  117. package/lib/store/modi.d.ts +13 -13
  118. package/lib/store/modi.js +315 -315
  119. package/lib/store/relation.d.ts +12 -12
  120. package/lib/store/relation.js +67 -67
  121. package/lib/timers/oper.d.ts +18 -18
  122. package/lib/timers/oper.js +60 -60
  123. package/lib/timers/vaccum.d.ts +20 -20
  124. package/lib/timers/vaccum.js +176 -176
  125. package/lib/triggers/index.d.ts +5 -5
  126. package/lib/triggers/index.js +8 -8
  127. package/lib/types/Action.d.ts +20 -20
  128. package/lib/types/Action.js +2 -2
  129. package/lib/types/AppLoader.d.ts +11 -11
  130. package/lib/types/AppLoader.js +10 -10
  131. package/lib/types/Aspect.d.ts +13 -13
  132. package/lib/types/Aspect.js +4 -4
  133. package/lib/types/Auth.d.ts +74 -74
  134. package/lib/types/Auth.js +2 -2
  135. package/lib/types/Connector.d.ts +33 -33
  136. package/lib/types/Connector.js +9 -9
  137. package/lib/types/Context.d.ts +7 -7
  138. package/lib/types/Context.js +3 -3
  139. package/lib/types/DataType.d.ts +24 -24
  140. package/lib/types/DataType.js +6 -6
  141. package/lib/types/Demand.d.ts +88 -88
  142. package/lib/types/Demand.js +10 -10
  143. package/lib/types/Endpoint.d.ts +11 -11
  144. package/lib/types/Endpoint.js +3 -3
  145. package/lib/types/Entity.d.ts +193 -192
  146. package/lib/types/Entity.js +14 -14
  147. package/lib/types/EntityDesc.d.ts +8 -8
  148. package/lib/types/EntityDesc.js +2 -2
  149. package/lib/types/Environment.d.ts +57 -57
  150. package/lib/types/Environment.js +2 -2
  151. package/lib/types/Exception.d.ts +115 -115
  152. package/lib/types/Exception.js +389 -389
  153. package/lib/types/Expression.d.ts +163 -163
  154. package/lib/types/Expression.js +427 -427
  155. package/lib/types/Geo.d.ts +18 -18
  156. package/lib/types/Geo.js +2 -2
  157. package/lib/types/Locale.d.ts +25 -25
  158. package/lib/types/Locale.js +2 -2
  159. package/lib/types/Logger.d.ts +6 -6
  160. package/lib/types/Logger.js +3 -3
  161. package/lib/types/Polyfill.d.ts +24 -24
  162. package/lib/types/Polyfill.js +2 -2
  163. package/lib/types/Port.d.ts +18 -18
  164. package/lib/types/Port.js +2 -2
  165. package/lib/types/RowStore.d.ts +18 -18
  166. package/lib/types/RowStore.js +34 -34
  167. package/lib/types/Storage.d.ts +57 -57
  168. package/lib/types/Storage.js +2 -2
  169. package/lib/types/Style.d.ts +11 -11
  170. package/lib/types/Style.js +2 -2
  171. package/lib/types/Timer.d.ts +14 -14
  172. package/lib/types/Timer.js +2 -2
  173. package/lib/types/Trigger.d.ts +108 -108
  174. package/lib/types/Trigger.js +54 -54
  175. package/lib/types/Txn.d.ts +2 -2
  176. package/lib/types/Txn.js +3 -3
  177. package/lib/types/Watcher.d.ts +19 -19
  178. package/lib/types/Watcher.js +4 -4
  179. package/lib/types/index.d.ts +24 -24
  180. package/lib/types/index.js +27 -27
  181. package/lib/types/schema/DataTypes.d.ts +34 -34
  182. package/lib/types/schema/DataTypes.js +3 -3
  183. package/lib/utils/SimpleConnector.d.ts +48 -48
  184. package/lib/utils/SimpleConnector.js +180 -180
  185. package/lib/utils/assert.d.ts +5 -5
  186. package/lib/utils/assert.js +9 -9
  187. package/lib/utils/concurrent.d.ts +15 -15
  188. package/lib/utils/concurrent.js +89 -89
  189. package/lib/utils/date.d.ts +1 -1
  190. package/lib/utils/date.js +18 -18
  191. package/lib/utils/geo.d.ts +4 -4
  192. package/lib/utils/geo.js +24 -24
  193. package/lib/utils/lodash.d.ts +20 -20
  194. package/lib/utils/lodash.js +55 -55
  195. package/lib/utils/mask.d.ts +5 -5
  196. package/lib/utils/mask.js +35 -35
  197. package/lib/utils/money.d.ts +6 -6
  198. package/lib/utils/money.js +40 -40
  199. package/lib/utils/random/random.d.ts +1 -1
  200. package/lib/utils/random/random.js +24 -24
  201. package/lib/utils/random/random.mp.d.ts +1 -1
  202. package/lib/utils/random/random.mp.js +25 -25
  203. package/lib/utils/random/random.web.d.ts +1 -1
  204. package/lib/utils/random/random.web.js +17 -17
  205. package/lib/utils/string.d.ts +28 -28
  206. package/lib/utils/string.js +82 -82
  207. package/lib/utils/url.d.ts +1 -1
  208. package/lib/utils/url.js +12 -12
  209. package/lib/utils/uuid.d.ts +17 -17
  210. package/lib/utils/uuid.js +257 -257
  211. package/lib/utils/validator.d.ts +25 -25
  212. package/lib/utils/validator.js +128 -128
  213. package/lib/utils/version.d.ts +7 -7
  214. package/lib/utils/version.js +21 -21
  215. package/package.json +49 -49
  216. package/src/entities/ActionAuth.ts +41 -41
  217. package/src/entities/I18n.ts +46 -46
  218. package/src/entities/Modi.ts +69 -69
  219. package/src/entities/ModiEntity.ts +26 -26
  220. package/src/entities/Oper.ts +32 -32
  221. package/src/entities/OperEntity.ts +27 -27
  222. package/src/entities/Relation.ts +43 -43
  223. package/src/entities/RelationAuth.ts +43 -43
  224. package/src/entities/User.ts +48 -48
  225. package/src/entities/UserEntityGrant.ts +27 -27
  226. package/src/entities/UserRelation.ts +50 -50
@@ -1,48 +1,48 @@
1
- /// <reference types="node" />
2
- import { IncomingHttpHeaders } from "http";
3
- import { AsyncContext, AsyncRowStore } from '../store/AsyncRowStore';
4
- import { SyncContext } from '../store/SyncRowStore';
5
- import { Connector, EntityDict, OakException } from "../types";
6
- export declare class SimpleConnector<ED extends EntityDict, BackCxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>> extends Connector<ED, BackCxt, FrontCxt> {
7
- static ASPECT_ROUTER: string;
8
- static BRIDGE_ROUTER: string;
9
- private serverAspectUrl;
10
- private serverBridgeUrl;
11
- private makeException;
12
- private contextBuilder;
13
- constructor(serverUrl: string, makeException: (exceptionData: any) => OakException<ED>, contextBuilder: (str: string | undefined) => (store: AsyncRowStore<ED, BackCxt>) => Promise<BackCxt>);
14
- callAspect(name: string, params: any, context: FrontCxt): Promise<{
15
- result: any;
16
- opRecords: any;
17
- message: string | null;
18
- } | {
19
- result: ArrayBuffer;
20
- message: string | null;
21
- opRecords?: undefined;
22
- }>;
23
- getRouter(): string;
24
- parseRequest(headers: IncomingHttpHeaders, body: any, store: AsyncRowStore<ED, BackCxt>): Promise<{
25
- name: string;
26
- params: any;
27
- context: BackCxt;
28
- }>;
29
- serializeResult(result: any, context: BackCxt, headers: IncomingHttpHeaders, body: any): Promise<{
30
- body: any;
31
- headers?: Record<string, any> | undefined;
32
- }>;
33
- serializeException(exception: OakException<ED>, headers: IncomingHttpHeaders, body: any): {
34
- body: any;
35
- headers?: Record<string, any> | undefined;
36
- };
37
- getBridgeRouter(): string;
38
- /**
39
- * 通过本地服务器桥接访问外部资源的url
40
- * @param url
41
- * @param headers
42
- */
43
- makeBridgeUrl(url: string, headers?: Record<string, string>): string;
44
- parseBridgeRequestQuery(urlParams: string): {
45
- url: string;
46
- headers?: Record<string, string> | undefined;
47
- };
48
- }
1
+ /// <reference types="node" />
2
+ import { IncomingHttpHeaders } from "http";
3
+ import { AsyncContext, AsyncRowStore } from '../store/AsyncRowStore';
4
+ import { SyncContext } from '../store/SyncRowStore';
5
+ import { Connector, EntityDict, OakException } from "../types";
6
+ export declare class SimpleConnector<ED extends EntityDict, BackCxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>> extends Connector<ED, BackCxt, FrontCxt> {
7
+ static ASPECT_ROUTER: string;
8
+ static BRIDGE_ROUTER: string;
9
+ private serverAspectUrl;
10
+ private serverBridgeUrl;
11
+ private makeException;
12
+ private contextBuilder;
13
+ constructor(serverUrl: string, makeException: (exceptionData: any) => OakException<ED>, contextBuilder: (str: string | undefined) => (store: AsyncRowStore<ED, BackCxt>) => Promise<BackCxt>);
14
+ callAspect(name: string, params: any, context: FrontCxt): Promise<{
15
+ result: any;
16
+ opRecords: any;
17
+ message: string | null;
18
+ } | {
19
+ result: ArrayBuffer;
20
+ message: string | null;
21
+ opRecords?: undefined;
22
+ }>;
23
+ getRouter(): string;
24
+ parseRequest(headers: IncomingHttpHeaders, body: any, store: AsyncRowStore<ED, BackCxt>): Promise<{
25
+ name: string;
26
+ params: any;
27
+ context: BackCxt;
28
+ }>;
29
+ serializeResult(result: any, context: BackCxt, headers: IncomingHttpHeaders, body: any): Promise<{
30
+ body: any;
31
+ headers?: Record<string, any> | undefined;
32
+ }>;
33
+ serializeException(exception: OakException<ED>, headers: IncomingHttpHeaders, body: any): {
34
+ body: any;
35
+ headers?: Record<string, any> | undefined;
36
+ };
37
+ getBridgeRouter(): string;
38
+ /**
39
+ * 通过本地服务器桥接访问外部资源的url
40
+ * @param url
41
+ * @param headers
42
+ */
43
+ makeBridgeUrl(url: string, headers?: Record<string, string>): string;
44
+ parseBridgeRequestQuery(urlParams: string): {
45
+ url: string;
46
+ headers?: Record<string, string> | undefined;
47
+ };
48
+ }
@@ -1,180 +1,180 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SimpleConnector = void 0;
4
- var tslib_1 = require("tslib");
5
- var assert_1 = tslib_1.__importDefault(require("assert"));
6
- var stream_1 = require("stream");
7
- var url_1 = tslib_1.__importDefault(require("url"));
8
- var types_1 = require("../types");
9
- function makeContentTypeAndBody(data) {
10
- //
11
- if (process.env.OAK_PLATFORM !== 'wechatMp') {
12
- if (data instanceof FormData) {
13
- return {
14
- // contentType: 'multipart/form-data',
15
- body: data,
16
- };
17
- }
18
- }
19
- return {
20
- contentType: 'application/json',
21
- body: JSON.stringify(data),
22
- };
23
- }
24
- var SimpleConnector = /** @class */ (function (_super) {
25
- tslib_1.__extends(SimpleConnector, _super);
26
- function SimpleConnector(serverUrl, makeException, contextBuilder) {
27
- var _this = _super.call(this) || this;
28
- _this.serverAspectUrl = "".concat(serverUrl).concat(SimpleConnector.ASPECT_ROUTER);
29
- _this.serverBridgeUrl = "".concat(serverUrl).concat(SimpleConnector.BRIDGE_ROUTER);
30
- _this.makeException = makeException;
31
- _this.contextBuilder = contextBuilder;
32
- return _this;
33
- }
34
- SimpleConnector.prototype.callAspect = function (name, params, context) {
35
- return tslib_1.__awaiter(this, void 0, void 0, function () {
36
- var cxtStr, _a, contentType, body, response, err, message, responseType, _b, exception, result, opRecords, result;
37
- return tslib_1.__generator(this, function (_c) {
38
- switch (_c.label) {
39
- case 0:
40
- cxtStr = context.toString();
41
- _a = makeContentTypeAndBody(params), contentType = _a.contentType, body = _a.body;
42
- return [4 /*yield*/, global.fetch(this.serverAspectUrl, {
43
- method: 'POST',
44
- headers: Object.assign({
45
- 'oak-cxt': cxtStr,
46
- 'oak-aspect': name,
47
- }, contentType && {
48
- 'Content-Type': contentType,
49
- }),
50
- body: body,
51
- })];
52
- case 1:
53
- response = _c.sent();
54
- if (response.status > 299) {
55
- err = new types_1.OakExternalException("\u7F51\u7EDC\u8BF7\u6C42\u8FD4\u56DE\u5F02\u5E38\uFF0Cstatus\u662F".concat(response.status));
56
- throw err;
57
- }
58
- message = response.headers.get('oak-message');
59
- responseType = response.headers.get('Content-Type') || response.headers.get('content-type');
60
- if (!(responseType === null || responseType === void 0 ? void 0 : responseType.toLocaleLowerCase().match(/application\/json/i))) return [3 /*break*/, 3];
61
- return [4 /*yield*/, response.json()];
62
- case 2:
63
- _b = _c.sent(), exception = _b.exception, result = _b.result, opRecords = _b.opRecords;
64
- if (exception) {
65
- throw this.makeException(exception);
66
- }
67
- return [2 /*return*/, {
68
- result: result,
69
- opRecords: opRecords,
70
- message: message,
71
- }];
72
- case 3:
73
- if (!(responseType === null || responseType === void 0 ? void 0 : responseType.toLocaleLowerCase().match(/application\/octet-stream/i))) return [3 /*break*/, 5];
74
- return [4 /*yield*/, response.arrayBuffer()];
75
- case 4:
76
- result = _c.sent();
77
- return [2 /*return*/, {
78
- result: result,
79
- message: message,
80
- }];
81
- case 5: throw new Error("\u5C1A\u4E0D\u652F\u6301\u7684content-type\u7C7B\u578B".concat(responseType));
82
- }
83
- });
84
- });
85
- };
86
- SimpleConnector.prototype.getRouter = function () {
87
- return SimpleConnector.ASPECT_ROUTER;
88
- };
89
- SimpleConnector.prototype.parseRequest = function (headers, body, store) {
90
- return tslib_1.__awaiter(this, void 0, void 0, function () {
91
- var oakCxtStr, aspectName, context;
92
- return tslib_1.__generator(this, function (_a) {
93
- switch (_a.label) {
94
- case 0:
95
- oakCxtStr = headers["oak-cxt"], aspectName = headers["oak-aspect"];
96
- (0, assert_1.default)(typeof oakCxtStr === 'string' || oakCxtStr === undefined);
97
- (0, assert_1.default)(typeof aspectName === 'string');
98
- return [4 /*yield*/, this.contextBuilder(oakCxtStr)(store)];
99
- case 1:
100
- context = _a.sent();
101
- context.setHeaders(headers);
102
- return [2 /*return*/, {
103
- name: aspectName,
104
- params: body,
105
- context: context,
106
- }];
107
- }
108
- });
109
- });
110
- };
111
- SimpleConnector.prototype.serializeResult = function (result, context, headers, body) {
112
- return tslib_1.__awaiter(this, void 0, void 0, function () {
113
- return tslib_1.__generator(this, function (_a) {
114
- switch (_a.label) {
115
- case 0:
116
- if (result instanceof stream_1.Stream || result instanceof Buffer) {
117
- return [2 /*return*/, {
118
- body: result,
119
- }];
120
- }
121
- return [4 /*yield*/, context.refineOpRecords()];
122
- case 1:
123
- _a.sent();
124
- return [2 /*return*/, {
125
- body: {
126
- result: result,
127
- opRecords: context.opRecords,
128
- },
129
- headers: {
130
- 'oak-message': context.getMessage(),
131
- },
132
- }];
133
- }
134
- });
135
- });
136
- };
137
- SimpleConnector.prototype.serializeException = function (exception, headers, body) {
138
- return {
139
- body: {
140
- exception: exception.toString(),
141
- },
142
- };
143
- };
144
- SimpleConnector.prototype.getBridgeRouter = function () {
145
- return SimpleConnector.BRIDGE_ROUTER;
146
- };
147
- /**
148
- * 通过本地服务器桥接访问外部资源的url
149
- * @param url
150
- * @param headers
151
- */
152
- SimpleConnector.prototype.makeBridgeUrl = function (url, headers) {
153
- // if (process.env.PROD !== 'true') {
154
- //     console.warn('在development下无法通过bridge访问资源,将直接访问,可能失败', url);
155
- //     return url;
156
- // }
157
- var encodeUrl = encodeURIComponent(url);
158
- // const urlParse = URL.parse(url, true);
159
- // const { search } = urlParse as {
160
- //     search: string;
161
- // };
162
- // if (headers) {
163
- //     search.append('headers', JSON.stringify(headers));
164
- // }
165
- return "".concat(this.serverBridgeUrl, "?url=").concat(encodeUrl);
166
- };
167
- SimpleConnector.prototype.parseBridgeRequestQuery = function (urlParams) {
168
- var search = new url_1.default.URLSearchParams(urlParams);
169
- var url = search.get('url');
170
- var headers = search.get('headers');
171
- return {
172
- url: url,
173
- headers: headers && JSON.parse(headers),
174
- };
175
- };
176
- SimpleConnector.ASPECT_ROUTER = '/aspect';
177
- SimpleConnector.BRIDGE_ROUTER = '/bridge';
178
- return SimpleConnector;
179
- }(types_1.Connector));
180
- exports.SimpleConnector = SimpleConnector;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimpleConnector = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var assert_1 = tslib_1.__importDefault(require("assert"));
6
+ var stream_1 = require("stream");
7
+ var url_1 = tslib_1.__importDefault(require("url"));
8
+ var types_1 = require("../types");
9
+ function makeContentTypeAndBody(data) {
10
+ //
11
+ if (process.env.OAK_PLATFORM !== 'wechatMp') {
12
+ if (data instanceof FormData) {
13
+ return {
14
+ // contentType: 'multipart/form-data',
15
+ body: data,
16
+ };
17
+ }
18
+ }
19
+ return {
20
+ contentType: 'application/json',
21
+ body: JSON.stringify(data),
22
+ };
23
+ }
24
+ var SimpleConnector = /** @class */ (function (_super) {
25
+ tslib_1.__extends(SimpleConnector, _super);
26
+ function SimpleConnector(serverUrl, makeException, contextBuilder) {
27
+ var _this = _super.call(this) || this;
28
+ _this.serverAspectUrl = "".concat(serverUrl).concat(SimpleConnector.ASPECT_ROUTER);
29
+ _this.serverBridgeUrl = "".concat(serverUrl).concat(SimpleConnector.BRIDGE_ROUTER);
30
+ _this.makeException = makeException;
31
+ _this.contextBuilder = contextBuilder;
32
+ return _this;
33
+ }
34
+ SimpleConnector.prototype.callAspect = function (name, params, context) {
35
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
36
+ var cxtStr, _a, contentType, body, response, err, message, responseType, _b, exception, result, opRecords, result;
37
+ return tslib_1.__generator(this, function (_c) {
38
+ switch (_c.label) {
39
+ case 0:
40
+ cxtStr = context.toString();
41
+ _a = makeContentTypeAndBody(params), contentType = _a.contentType, body = _a.body;
42
+ return [4 /*yield*/, global.fetch(this.serverAspectUrl, {
43
+ method: 'POST',
44
+ headers: Object.assign({
45
+ 'oak-cxt': cxtStr,
46
+ 'oak-aspect': name,
47
+ }, contentType && {
48
+ 'Content-Type': contentType,
49
+ }),
50
+ body: body,
51
+ })];
52
+ case 1:
53
+ response = _c.sent();
54
+ if (response.status > 299) {
55
+ err = new types_1.OakExternalException("\u7F51\u7EDC\u8BF7\u6C42\u8FD4\u56DE\u5F02\u5E38\uFF0Cstatus\u662F".concat(response.status));
56
+ throw err;
57
+ }
58
+ message = response.headers.get('oak-message');
59
+ responseType = response.headers.get('Content-Type') || response.headers.get('content-type');
60
+ if (!(responseType === null || responseType === void 0 ? void 0 : responseType.toLocaleLowerCase().match(/application\/json/i))) return [3 /*break*/, 3];
61
+ return [4 /*yield*/, response.json()];
62
+ case 2:
63
+ _b = _c.sent(), exception = _b.exception, result = _b.result, opRecords = _b.opRecords;
64
+ if (exception) {
65
+ throw this.makeException(exception);
66
+ }
67
+ return [2 /*return*/, {
68
+ result: result,
69
+ opRecords: opRecords,
70
+ message: message,
71
+ }];
72
+ case 3:
73
+ if (!(responseType === null || responseType === void 0 ? void 0 : responseType.toLocaleLowerCase().match(/application\/octet-stream/i))) return [3 /*break*/, 5];
74
+ return [4 /*yield*/, response.arrayBuffer()];
75
+ case 4:
76
+ result = _c.sent();
77
+ return [2 /*return*/, {
78
+ result: result,
79
+ message: message,
80
+ }];
81
+ case 5: throw new Error("\u5C1A\u4E0D\u652F\u6301\u7684content-type\u7C7B\u578B".concat(responseType));
82
+ }
83
+ });
84
+ });
85
+ };
86
+ SimpleConnector.prototype.getRouter = function () {
87
+ return SimpleConnector.ASPECT_ROUTER;
88
+ };
89
+ SimpleConnector.prototype.parseRequest = function (headers, body, store) {
90
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
91
+ var oakCxtStr, aspectName, context;
92
+ return tslib_1.__generator(this, function (_a) {
93
+ switch (_a.label) {
94
+ case 0:
95
+ oakCxtStr = headers["oak-cxt"], aspectName = headers["oak-aspect"];
96
+ (0, assert_1.default)(typeof oakCxtStr === 'string' || oakCxtStr === undefined);
97
+ (0, assert_1.default)(typeof aspectName === 'string');
98
+ return [4 /*yield*/, this.contextBuilder(oakCxtStr)(store)];
99
+ case 1:
100
+ context = _a.sent();
101
+ context.setHeaders(headers);
102
+ return [2 /*return*/, {
103
+ name: aspectName,
104
+ params: body,
105
+ context: context,
106
+ }];
107
+ }
108
+ });
109
+ });
110
+ };
111
+ SimpleConnector.prototype.serializeResult = function (result, context, headers, body) {
112
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
113
+ return tslib_1.__generator(this, function (_a) {
114
+ switch (_a.label) {
115
+ case 0:
116
+ if (result instanceof stream_1.Stream || result instanceof Buffer) {
117
+ return [2 /*return*/, {
118
+ body: result,
119
+ }];
120
+ }
121
+ return [4 /*yield*/, context.refineOpRecords()];
122
+ case 1:
123
+ _a.sent();
124
+ return [2 /*return*/, {
125
+ body: {
126
+ result: result,
127
+ opRecords: context.opRecords,
128
+ },
129
+ headers: {
130
+ 'oak-message': context.getMessage(),
131
+ },
132
+ }];
133
+ }
134
+ });
135
+ });
136
+ };
137
+ SimpleConnector.prototype.serializeException = function (exception, headers, body) {
138
+ return {
139
+ body: {
140
+ exception: exception.toString(),
141
+ },
142
+ };
143
+ };
144
+ SimpleConnector.prototype.getBridgeRouter = function () {
145
+ return SimpleConnector.BRIDGE_ROUTER;
146
+ };
147
+ /**
148
+ * 通过本地服务器桥接访问外部资源的url
149
+ * @param url
150
+ * @param headers
151
+ */
152
+ SimpleConnector.prototype.makeBridgeUrl = function (url, headers) {
153
+ // if (process.env.PROD !== 'true') {
154
+ //     console.warn('在development下无法通过bridge访问资源,将直接访问,可能失败', url);
155
+ //     return url;
156
+ // }
157
+ var encodeUrl = encodeURIComponent(url);
158
+ // const urlParse = URL.parse(url, true);
159
+ // const { search } = urlParse as {
160
+ //     search: string;
161
+ // };
162
+ // if (headers) {
163
+ //     search.append('headers', JSON.stringify(headers));
164
+ // }
165
+ return "".concat(this.serverBridgeUrl, "?url=").concat(encodeUrl);
166
+ };
167
+ SimpleConnector.prototype.parseBridgeRequestQuery = function (urlParams) {
168
+ var search = new url_1.default.URLSearchParams(urlParams);
169
+ var url = search.get('url');
170
+ var headers = search.get('headers');
171
+ return {
172
+ url: url,
173
+ headers: headers && JSON.parse(headers),
174
+ };
175
+ };
176
+ SimpleConnector.ASPECT_ROUTER = '/aspect';
177
+ SimpleConnector.BRIDGE_ROUTER = '/bridge';
178
+ return SimpleConnector;
179
+ }(types_1.Connector));
180
+ exports.SimpleConnector = SimpleConnector;
@@ -1,5 +1,5 @@
1
- /**
2
- * 防止assert打包体积过大,从这里引用
3
- */
4
- import assert from 'assert';
5
- export { assert, };
1
+ /**
2
+ * 防止assert打包体积过大,从这里引用
3
+ */
4
+ import assert from 'assert';
5
+ export { assert, };
@@ -1,9 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assert = void 0;
4
- var tslib_1 = require("tslib");
5
- /**
6
- * 防止assert打包体积过大,从这里引用
7
- */
8
- var assert_1 = tslib_1.__importDefault(require("assert"));
9
- exports.assert = assert_1.default;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assert = void 0;
4
+ var tslib_1 = require("tslib");
5
+ /**
6
+ * 防止assert打包体积过大,从这里引用
7
+ */
8
+ var assert_1 = tslib_1.__importDefault(require("assert"));
9
+ exports.assert = assert_1.default;
@@ -1,15 +1,15 @@
1
- declare type Mode = 'S' | 'X';
2
- /**
3
- * 模拟一个读写锁,用于同步。
4
- * 注意,千万不要发生自己等自己
5
- */
6
- export declare class RWLock {
7
- private readNumber;
8
- private writeNumber;
9
- private readWaiter;
10
- private writeWaiter;
11
- constructor();
12
- acquire(mode: Mode): Promise<void>;
13
- release(): void;
14
- }
15
- export {};
1
+ declare type Mode = 'S' | 'X';
2
+ /**
3
+ * 模拟一个读写锁,用于同步。
4
+ * 注意,千万不要发生自己等自己
5
+ */
6
+ export declare class RWLock {
7
+ private readNumber;
8
+ private writeNumber;
9
+ private readWaiter;
10
+ private writeWaiter;
11
+ constructor();
12
+ acquire(mode: Mode): Promise<void>;
13
+ release(): void;
14
+ }
15
+ export {};