remult 0.14.6 → 0.14.7

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 (74) hide show
  1. package/assign.js +5 -1
  2. package/classType.js +2 -1
  3. package/graphql.js +146 -84
  4. package/index.js +73 -25
  5. package/inputTypes.js +16 -9
  6. package/package.json +1 -2
  7. package/postgres/index.js +4 -1
  8. package/postgres/postgres-data-provider.d.ts +4 -1
  9. package/postgres/postgres-data-provider.js +364 -165
  10. package/postgres/postgresColumnSyntax.d.ts +1 -1
  11. package/postgres/postgresColumnSyntax.js +8 -4
  12. package/remult-express.js +10 -6
  13. package/remult-knex/index.d.ts +5 -2
  14. package/remult-knex/index.js +720 -300
  15. package/remult-middleware.js +29 -24
  16. package/remult-mongo.js +406 -172
  17. package/server/JsonEntityFileStorage.js +15 -10
  18. package/server/expressBridge.d.ts +4 -2
  19. package/server/expressBridge.js +570 -383
  20. package/server/index.js +11 -4
  21. package/server/register-actions-on-server.js +38 -12
  22. package/server/register-entities-on-server.js +13 -9
  23. package/src/__EntityValueProvider.js +2 -1
  24. package/src/__RowsOfDataForTesting.js +2 -1
  25. package/src/backend-tests/backend-database-test-setup.backend-spec.js +190 -72
  26. package/src/backend-tests/my-test.backend-spec.js +114 -45
  27. package/src/column-interfaces.js +6 -2
  28. package/src/column.js +113 -71
  29. package/src/context.js +330 -174
  30. package/src/data-api.js +326 -162
  31. package/src/data-interfaces.js +11 -7
  32. package/src/data-providers/array-entity-data-provider.js +286 -171
  33. package/src/data-providers/in-memory-database.js +27 -12
  34. package/src/data-providers/json-data-provider.js +77 -41
  35. package/src/data-providers/rest-data-provider.js +189 -102
  36. package/src/data-providers/sql-database.js +403 -223
  37. package/src/data-providers/web-sql-data-provider.js +139 -78
  38. package/src/entity.js +2 -1
  39. package/src/filter/filter-consumer-bridge-to-sql-request.d.ts +1 -1
  40. package/src/filter/filter-consumer-bridge-to-sql-request.js +248 -106
  41. package/src/filter/filter-consumer-bridge-to-url-builder.js +2 -1
  42. package/src/filter/filter-interfaces.js +440 -277
  43. package/src/id-entity.js +17 -8
  44. package/src/remult3/RepositoryImplementation.js +2367 -1191
  45. package/src/remult3/index.js +5 -2
  46. package/src/remult3/remult3.js +2 -1
  47. package/src/server-action.js +528 -294
  48. package/src/shared-tests/db-tests-setup.js +153 -49
  49. package/src/shared-tests/db-tests.db-tests.js +1566 -660
  50. package/src/shared-tests/deleteAll.js +20 -3
  51. package/src/shared-tests/entityWithValidations.js +79 -52
  52. package/src/shared-tests/index.js +6 -4
  53. package/src/shared-tests/test-custom-id-column.spec.js +85 -37
  54. package/src/shared-tests/test-special-value.spec.js +104 -64
  55. package/src/shared-tests/test-update-with-null.spec.js +49 -28
  56. package/src/sort.js +95 -38
  57. package/src/sql-command.js +2 -1
  58. package/src/tests/Done.js +13 -7
  59. package/src/tests/TestDataApiResponse.js +22 -15
  60. package/src/tests/c.js +27 -21
  61. package/src/tests/createData.js +48 -20
  62. package/src/tests/d.js +27 -19
  63. package/src/tests/dWithPrefilter.js +44 -31
  64. package/src/tests/entityForCustomFilter.js +66 -42
  65. package/src/tests/entityWithValidationsOnColumn.js +29 -21
  66. package/src/tests/frontend-database-tests-setup.spec.js +98 -35
  67. package/src/tests/h.js +44 -35
  68. package/src/tests/remult-3-entities.js +80 -71
  69. package/src/tests/tasks.js +29 -23
  70. package/src/tests/testHelper.spec.js +322 -170
  71. package/src/tests/testModel/models.js +33 -25
  72. package/src/validators.js +59 -32
  73. package/urlBuilder.js +14 -8
  74. package/valueConverters.js +160 -161
package/src/context.js CHANGED
@@ -1,119 +1,170 @@
1
- import { Action, actionInfo } from './server-action';
2
- import { RestDataProvider, RestDataProviderHttpProviderUsingFetch } from './data-providers/rest-data-provider';
3
- import { RepositoryImplementation } from "./remult3/RepositoryImplementation";
4
- export class HttpProviderBridgeToRestDataProviderHttpProvider {
5
- constructor(http) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventSource = exports.queryConfig = exports.Allow = exports.setControllerSettings = exports.MethodHelper = exports.ClassHelper = exports.classHelpers = exports.allEntities = exports.Remult = exports.isBackend = exports.processHttpException = exports.toPromise = exports.retry = exports.HttpProviderBridgeToRestDataProviderHttpProvider = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var server_action_1 = require("./server-action");
6
+ var rest_data_provider_1 = require("./data-providers/rest-data-provider");
7
+ var RepositoryImplementation_1 = require("./remult3/RepositoryImplementation");
8
+ var HttpProviderBridgeToRestDataProviderHttpProvider = /** @class */ (function () {
9
+ function HttpProviderBridgeToRestDataProviderHttpProvider(http) {
6
10
  this.http = http;
7
11
  }
8
- async post(url, data) {
9
- return await retry(() => toPromise(this.http.post(url, data)));
10
- }
11
- delete(url) {
12
+ HttpProviderBridgeToRestDataProviderHttpProvider.prototype.post = function (url, data) {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
14
+ var _this = this;
15
+ return tslib_1.__generator(this, function (_a) {
16
+ switch (_a.label) {
17
+ case 0: return [4 /*yield*/, retry(function () { return toPromise(_this.http.post(url, data)); })];
18
+ case 1: return [2 /*return*/, _a.sent()];
19
+ }
20
+ });
21
+ });
22
+ };
23
+ HttpProviderBridgeToRestDataProviderHttpProvider.prototype.delete = function (url) {
12
24
  return toPromise(this.http.delete(url));
13
- }
14
- put(url, data) {
25
+ };
26
+ HttpProviderBridgeToRestDataProviderHttpProvider.prototype.put = function (url, data) {
15
27
  return toPromise(this.http.put(url, data));
16
- }
17
- async get(url) {
18
- return await retry(() => toPromise(this.http.get(url)));
19
- }
20
- }
21
- export async function retry(what) {
22
- while (true) {
23
- try {
24
- return await what();
25
- }
26
- catch (err) {
27
- if (err.message?.startsWith("Error occurred while trying to proxy") ||
28
- err.message?.startsWith("Error occured while trying to proxy") ||
29
- err.message?.includes("http proxy error") ||
30
- err.message?.startsWith("Gateway Timeout")) {
31
- await new Promise((res, req) => {
32
- setTimeout(() => {
33
- res({});
34
- }, 250);
35
- });
36
- continue;
28
+ };
29
+ HttpProviderBridgeToRestDataProviderHttpProvider.prototype.get = function (url) {
30
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
31
+ var _this = this;
32
+ return tslib_1.__generator(this, function (_a) {
33
+ switch (_a.label) {
34
+ case 0: return [4 /*yield*/, retry(function () { return toPromise(_this.http.get(url)); })];
35
+ case 1: return [2 /*return*/, _a.sent()];
36
+ }
37
+ });
38
+ });
39
+ };
40
+ return HttpProviderBridgeToRestDataProviderHttpProvider;
41
+ }());
42
+ exports.HttpProviderBridgeToRestDataProviderHttpProvider = HttpProviderBridgeToRestDataProviderHttpProvider;
43
+ function retry(what) {
44
+ var _a, _b, _c, _d;
45
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
46
+ var err_1;
47
+ return tslib_1.__generator(this, function (_e) {
48
+ switch (_e.label) {
49
+ case 0:
50
+ if (!true) return [3 /*break*/, 7];
51
+ _e.label = 1;
52
+ case 1:
53
+ _e.trys.push([1, 3, , 6]);
54
+ return [4 /*yield*/, what()];
55
+ case 2: return [2 /*return*/, _e.sent()];
56
+ case 3:
57
+ err_1 = _e.sent();
58
+ if (!(((_a = err_1.message) === null || _a === void 0 ? void 0 : _a.startsWith("Error occurred while trying to proxy")) || ((_b = err_1.message) === null || _b === void 0 ? void 0 : _b.startsWith("Error occured while trying to proxy")) || ((_c = err_1.message) === null || _c === void 0 ? void 0 : _c.includes("http proxy error")) || ((_d = err_1.message) === null || _d === void 0 ? void 0 : _d.startsWith("Gateway Timeout")))) return [3 /*break*/, 5];
59
+ return [4 /*yield*/, new Promise(function (res, req) {
60
+ setTimeout(function () {
61
+ res({});
62
+ }, 250);
63
+ })];
64
+ case 4:
65
+ _e.sent();
66
+ return [3 /*break*/, 0];
67
+ case 5: throw err_1;
68
+ case 6: return [3 /*break*/, 0];
69
+ case 7: return [2 /*return*/];
37
70
  }
38
- throw err;
39
- }
40
- }
71
+ });
72
+ });
41
73
  }
42
- export function toPromise(p) {
43
- let r;
74
+ exports.retry = retry;
75
+ function toPromise(p) {
76
+ var _this = this;
77
+ var r;
44
78
  if (p["toPromise"] !== undefined) {
45
79
  r = p["toPromise"]();
46
80
  }
47
81
  //@ts-ignore
48
82
  else
49
83
  r = p;
50
- return r.then((x) => {
84
+ return r.then(function (x) {
51
85
  if (x && (x.status == 200 || x.status == 201) && x.headers && x.request && x.data) //for axios
52
86
  return x.data;
53
87
  return x;
54
- }).catch(async (ex) => {
55
- throw await processHttpException(ex);
56
- });
88
+ }).catch(function (ex) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
89
+ return tslib_1.__generator(this, function (_a) {
90
+ switch (_a.label) {
91
+ case 0: return [4 /*yield*/, processHttpException(ex)];
92
+ case 1: throw _a.sent();
93
+ }
94
+ });
95
+ }); });
57
96
  }
58
- export async function processHttpException(ex) {
59
- let z = await ex;
60
- var error;
61
- if (z.error)
62
- error = z.error;
63
- else if (z.isAxiosError) {
64
- if (typeof z.response?.data === "string")
65
- error = z.response.data;
66
- else
67
- error = z?.response?.data;
68
- }
69
- if (!error)
70
- error = z.message;
71
- if (z.status == 0 && z.error.isTrusted)
72
- error = "Network Error";
73
- if (typeof error === 'string') {
74
- error = {
75
- message: error,
76
- };
77
- }
78
- let httpStatusCode = z.status;
79
- if (httpStatusCode === undefined)
80
- httpStatusCode = z.response?.status;
81
- if (httpStatusCode !== undefined && httpStatusCode !== null) {
82
- error.httpStatusCode = httpStatusCode;
83
- }
84
- var result = Object.assign(error, {
85
- // exception: ex disabled for now because JSON.stringify crashed with this
97
+ exports.toPromise = toPromise;
98
+ function processHttpException(ex) {
99
+ var _a, _b, _c;
100
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
101
+ var z, error, httpStatusCode, result;
102
+ return tslib_1.__generator(this, function (_d) {
103
+ switch (_d.label) {
104
+ case 0: return [4 /*yield*/, ex];
105
+ case 1:
106
+ z = _d.sent();
107
+ if (z.error)
108
+ error = z.error;
109
+ else if (z.isAxiosError) {
110
+ if (typeof ((_a = z.response) === null || _a === void 0 ? void 0 : _a.data) === "string")
111
+ error = z.response.data;
112
+ else
113
+ error = (_b = z === null || z === void 0 ? void 0 : z.response) === null || _b === void 0 ? void 0 : _b.data;
114
+ }
115
+ if (!error)
116
+ error = z.message;
117
+ if (z.status == 0 && z.error.isTrusted)
118
+ error = "Network Error";
119
+ if (typeof error === 'string') {
120
+ error = {
121
+ message: error,
122
+ };
123
+ }
124
+ httpStatusCode = z.status;
125
+ if (httpStatusCode === undefined)
126
+ httpStatusCode = (_c = z.response) === null || _c === void 0 ? void 0 : _c.status;
127
+ if (httpStatusCode !== undefined && httpStatusCode !== null) {
128
+ error.httpStatusCode = httpStatusCode;
129
+ }
130
+ result = Object.assign(error, {
131
+ // exception: ex disabled for now because JSON.stringify crashed with this
132
+ });
133
+ return [2 /*return*/, result];
134
+ }
135
+ });
86
136
  });
87
- return result;
88
137
  }
89
- export function isBackend() {
90
- return actionInfo.runningOnServer;
138
+ exports.processHttpException = processHttpException;
139
+ function isBackend() {
140
+ return server_action_1.actionInfo.runningOnServer;
91
141
  }
92
- export class Remult {
142
+ exports.isBackend = isBackend;
143
+ var Remult = /** @class */ (function () {
93
144
  /** Creates a new instance of the `remult` object.
94
145
  *
95
146
  * Can receive either an HttpProvider or a DataProvider as a parameter - which will be used to fetch data from.
96
147
  *
97
148
  * If no provider is specified, `fetch` will be used as an http provider
98
149
  */
99
- constructor(provider) {
150
+ function Remult(provider) {
100
151
  this._userChangeEvent = new EventSource();
101
152
  this.repCache = new Map();
102
153
  if (provider && provider.getEntityDataProvider) {
103
154
  this._dataSource = provider;
104
155
  return;
105
156
  }
106
- let http = provider;
107
- let dataProvider;
157
+ var http = provider;
158
+ var dataProvider;
108
159
  if (http) {
109
160
  dataProvider = new HttpProviderBridgeToRestDataProviderHttpProvider(http);
110
161
  }
111
162
  if (!dataProvider) {
112
- dataProvider = new RestDataProviderHttpProviderUsingFetch();
163
+ dataProvider = new rest_data_provider_1.RestDataProviderHttpProviderUsingFetch();
113
164
  }
114
- this._dataSource = new RestDataProvider(Remult.apiBaseUrl, dataProvider);
115
- if (!Action.provider)
116
- Action.provider = dataProvider;
165
+ this._dataSource = new rest_data_provider_1.RestDataProvider(Remult.apiBaseUrl, dataProvider);
166
+ if (!server_action_1.Action.provider)
167
+ server_action_1.Action.provider = dataProvider;
117
168
  }
118
169
  /**Return's a `Repository` of the specific entity type
119
170
  * @example
@@ -121,64 +172,90 @@ export class Remult {
121
172
  * @see [Repository](https://remult.dev/docs/ref_repository.html)
122
173
  *
123
174
  */
124
- repo(entity, dataProvider) {
175
+ Remult.prototype.repo = function (entity, dataProvider) {
125
176
  if (dataProvider === undefined)
126
177
  dataProvider = this._dataSource;
127
- let dpCache = this.repCache.get(dataProvider);
178
+ var dpCache = this.repCache.get(dataProvider);
128
179
  if (!dpCache)
129
180
  this.repCache.set(dataProvider, dpCache = new Map());
130
- let r = dpCache.get(entity);
181
+ var r = dpCache.get(entity);
131
182
  if (!r) {
132
- dpCache.set(entity, r = new RepositoryImplementation(entity, this, dataProvider));
183
+ dpCache.set(entity, r = new RepositoryImplementation_1.RepositoryImplementation(entity, this, dataProvider));
133
184
  }
134
185
  return r;
135
- }
136
- /** Returns the current user's info */
137
- get user() {
138
- if (this._user === undefined) {
139
- return {
140
- id: undefined,
141
- name: '',
142
- roles: []
143
- };
144
- }
145
- return this._user;
146
- }
147
- /** Set's the current user info */
148
- async setUser(info) {
149
- this._user = info;
150
- let auth = info;
151
- if (auth) {
152
- if (!this._user.id && auth.sub)
153
- this._user.id = auth.sub;
154
- if (!this._user.roles && auth.permissions) {
155
- this._user.roles = auth.permissions;
186
+ };
187
+ Object.defineProperty(Remult.prototype, "user", {
188
+ /** Returns the current user's info */
189
+ get: function () {
190
+ if (this._user === undefined) {
191
+ return {
192
+ id: undefined,
193
+ name: '',
194
+ roles: []
195
+ };
156
196
  }
157
- if (!this._user.name)
158
- this._user.name = auth.username;
159
- }
160
- if (this._user && !this._user.roles)
161
- this._user.roles = [];
162
- await this._userChangeEvent.fire();
163
- }
197
+ return this._user;
198
+ },
199
+ enumerable: false,
200
+ configurable: true
201
+ });
202
+ /** Set's the current user info */
203
+ Remult.prototype.setUser = function (info) {
204
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
205
+ var auth;
206
+ return tslib_1.__generator(this, function (_a) {
207
+ switch (_a.label) {
208
+ case 0:
209
+ this._user = info;
210
+ auth = info;
211
+ if (auth) {
212
+ if (!this._user.id && auth.sub)
213
+ this._user.id = auth.sub;
214
+ if (!this._user.roles && auth.permissions) {
215
+ this._user.roles = auth.permissions;
216
+ }
217
+ if (!this._user.name)
218
+ this._user.name = auth.username;
219
+ }
220
+ if (this._user && !this._user.roles)
221
+ this._user.roles = [];
222
+ return [4 /*yield*/, this._userChangeEvent.fire()];
223
+ case 1:
224
+ _a.sent();
225
+ return [2 /*return*/];
226
+ }
227
+ });
228
+ });
229
+ };
164
230
  /** Checks if a user was authenticated */
165
- authenticated() {
231
+ Remult.prototype.authenticated = function () {
166
232
  return this.user.id !== undefined;
167
- }
233
+ };
168
234
  /** checks if the user has any of the roles specified in the parameters
169
235
  * @example
170
236
  * remult.isAllowed("admin")
171
237
  * @see
172
238
  * [Allowed](https://remult.dev/docs/allowed.html)
173
239
  */
174
- isAllowed(roles) {
240
+ Remult.prototype.isAllowed = function (roles) {
241
+ var e_1, _a;
175
242
  if (roles == undefined)
176
243
  return undefined;
177
244
  if (roles instanceof Array) {
178
- for (const role of roles) {
179
- if (this.isAllowed(role) === true) {
180
- return true;
245
+ try {
246
+ for (var roles_1 = tslib_1.__values(roles), roles_1_1 = roles_1.next(); !roles_1_1.done; roles_1_1 = roles_1.next()) {
247
+ var role = roles_1_1.value;
248
+ if (this.isAllowed(role) === true) {
249
+ return true;
250
+ }
251
+ }
252
+ }
253
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
254
+ finally {
255
+ try {
256
+ if (roles_1_1 && !roles_1_1.done && (_a = roles_1.return)) _a.call(roles_1);
181
257
  }
258
+ finally { if (e_1) throw e_1.error; }
182
259
  }
183
260
  return false;
184
261
  }
@@ -191,17 +268,28 @@ export class Remult {
191
268
  if (this.user.roles.indexOf(roles.toString()) >= 0)
192
269
  return true;
193
270
  return false;
194
- }
271
+ };
195
272
  /** checks if the user matches the allowedForInstance callback
196
273
  * @see
197
274
  * [Allowed](https://remult.dev/docs/allowed.html)
198
275
  */
199
- isAllowedForInstance(instance, allowed) {
276
+ Remult.prototype.isAllowedForInstance = function (instance, allowed) {
277
+ var e_2, _a;
200
278
  if (Array.isArray(allowed)) {
201
279
  {
202
- for (const item of allowed) {
203
- if (this.isAllowedForInstance(instance, item))
204
- return true;
280
+ try {
281
+ for (var allowed_1 = tslib_1.__values(allowed), allowed_1_1 = allowed_1.next(); !allowed_1_1.done; allowed_1_1 = allowed_1.next()) {
282
+ var item = allowed_1_1.value;
283
+ if (this.isAllowedForInstance(instance, item))
284
+ return true;
285
+ }
286
+ }
287
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
288
+ finally {
289
+ try {
290
+ if (allowed_1_1 && !allowed_1_1.done && (_a = allowed_1.return)) _a.call(allowed_1);
291
+ }
292
+ finally { if (e_2) throw e_2.error; }
205
293
  }
206
294
  }
207
295
  }
@@ -210,76 +298,144 @@ export class Remult {
210
298
  }
211
299
  else
212
300
  return this.isAllowed(allowed);
213
- }
214
- /** returns a dispatcher object that fires once a user has changed*/
215
- get userChange() {
216
- return this._userChangeEvent.dispatcher;
217
- }
301
+ };
302
+ Object.defineProperty(Remult.prototype, "userChange", {
303
+ /** returns a dispatcher object that fires once a user has changed*/
304
+ get: function () {
305
+ return this._userChangeEvent.dispatcher;
306
+ },
307
+ enumerable: false,
308
+ configurable: true
309
+ });
218
310
  /** sets the current data provider */
219
- setDataProvider(dataProvider) {
311
+ Remult.prototype.setDataProvider = function (dataProvider) {
220
312
  this._dataSource = dataProvider;
221
- }
222
- clearAllCache() {
313
+ };
314
+ Remult.prototype.clearAllCache = function () {
223
315
  this.repCache.clear();
224
- }
225
- }
226
- /** The api Base Url to be used in all remult calls. by default it's set to `/api`.
227
- *
228
- * Set this property in case you want to determine a non relative api url
229
- */
230
- Remult.apiBaseUrl = '/api';
231
- /** A helper callback that can be used to debug and trace all find operations. Useful in debugging scenarios */
232
- Remult.onFind = (metadata, options) => { };
233
- export const allEntities = [];
234
- export const classHelpers = new Map();
235
- export class ClassHelper {
236
- constructor() {
316
+ };
317
+ /** The api Base Url to be used in all remult calls. by default it's set to `/api`.
318
+ *
319
+ * Set this property in case you want to determine a non relative api url
320
+ */
321
+ Remult.apiBaseUrl = '/api';
322
+ /** A helper callback that can be used to debug and trace all find operations. Useful in debugging scenarios */
323
+ Remult.onFind = function (metadata, options) { };
324
+ return Remult;
325
+ }());
326
+ exports.Remult = Remult;
327
+ exports.allEntities = [];
328
+ exports.classHelpers = new Map();
329
+ var ClassHelper = /** @class */ (function () {
330
+ function ClassHelper() {
237
331
  this.methods = [];
238
332
  }
239
- }
240
- export class MethodHelper {
241
- constructor() {
333
+ return ClassHelper;
334
+ }());
335
+ exports.ClassHelper = ClassHelper;
336
+ var MethodHelper = /** @class */ (function () {
337
+ function MethodHelper() {
242
338
  this.classes = new Map();
243
339
  }
244
- }
245
- export function setControllerSettings(target, options) {
246
- let r = target;
340
+ return MethodHelper;
341
+ }());
342
+ exports.MethodHelper = MethodHelper;
343
+ function setControllerSettings(target, options) {
344
+ var e_3, _a;
345
+ var r = target;
247
346
  while (true) {
248
- let helper = classHelpers.get(r);
347
+ var helper = exports.classHelpers.get(r);
249
348
  if (helper) {
250
- for (const m of helper.methods) {
251
- m.classes.set(target, options);
349
+ try {
350
+ for (var _b = (e_3 = void 0, tslib_1.__values(helper.methods)), _c = _b.next(); !_c.done; _c = _b.next()) {
351
+ var m = _c.value;
352
+ m.classes.set(target, options);
353
+ }
354
+ }
355
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
356
+ finally {
357
+ try {
358
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
359
+ }
360
+ finally { if (e_3) throw e_3.error; }
252
361
  }
253
362
  }
254
- let p = Object.getPrototypeOf(r.prototype);
363
+ var p = Object.getPrototypeOf(r.prototype);
255
364
  if (p == null)
256
365
  break;
257
366
  r = p.constructor;
258
367
  }
259
368
  }
260
- export class Allow {
261
- }
262
- Allow.everyone = () => true;
263
- Allow.authenticated = (remult) => remult.authenticated();
264
- export const queryConfig = {
369
+ exports.setControllerSettings = setControllerSettings;
370
+ var Allow = /** @class */ (function () {
371
+ function Allow() {
372
+ }
373
+ Allow.everyone = function () { return true; };
374
+ Allow.authenticated = function (remult) { return remult.authenticated(); };
375
+ return Allow;
376
+ }());
377
+ exports.Allow = Allow;
378
+ exports.queryConfig = {
265
379
  defaultPageSize: 200
266
380
  };
267
- export class EventSource {
268
- constructor() {
381
+ var EventSource = /** @class */ (function () {
382
+ function EventSource() {
383
+ var _this = this;
269
384
  this.listeners = [];
270
385
  this.dispatcher = {
271
- observe: async (what) => {
272
- this.listeners.push(what);
273
- await what();
274
- return () => {
275
- this.listeners = this.listeners.filter(x => x != what);
276
- };
277
- }
386
+ observe: function (what) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
387
+ var _this = this;
388
+ return tslib_1.__generator(this, function (_a) {
389
+ switch (_a.label) {
390
+ case 0:
391
+ this.listeners.push(what);
392
+ return [4 /*yield*/, what()];
393
+ case 1:
394
+ _a.sent();
395
+ return [2 /*return*/, function () {
396
+ _this.listeners = _this.listeners.filter(function (x) { return x != what; });
397
+ }];
398
+ }
399
+ });
400
+ }); }
278
401
  };
279
402
  }
280
- async fire() {
281
- for (const l of this.listeners) {
282
- await l();
283
- }
284
- }
285
- }
403
+ EventSource.prototype.fire = function () {
404
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
405
+ var _a, _b, l, e_4_1;
406
+ var e_4, _c;
407
+ return tslib_1.__generator(this, function (_d) {
408
+ switch (_d.label) {
409
+ case 0:
410
+ _d.trys.push([0, 5, 6, 7]);
411
+ _a = tslib_1.__values(this.listeners), _b = _a.next();
412
+ _d.label = 1;
413
+ case 1:
414
+ if (!!_b.done) return [3 /*break*/, 4];
415
+ l = _b.value;
416
+ return [4 /*yield*/, l()];
417
+ case 2:
418
+ _d.sent();
419
+ _d.label = 3;
420
+ case 3:
421
+ _b = _a.next();
422
+ return [3 /*break*/, 1];
423
+ case 4: return [3 /*break*/, 7];
424
+ case 5:
425
+ e_4_1 = _d.sent();
426
+ e_4 = { error: e_4_1 };
427
+ return [3 /*break*/, 7];
428
+ case 6:
429
+ try {
430
+ if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
431
+ }
432
+ finally { if (e_4) throw e_4.error; }
433
+ return [7 /*endfinally*/];
434
+ case 7: return [2 /*return*/];
435
+ }
436
+ });
437
+ });
438
+ };
439
+ return EventSource;
440
+ }());
441
+ exports.EventSource = EventSource;