remult 3.3.6 → 3.3.8

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.
@@ -0,0 +1,2 @@
1
+ import type { AdminDisplayOptions } from './remult-admin.js';
2
+ export default function remultAdminHtml(options: AdminDisplayOptions): string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = remultAdminHtml;
4
+ var get_remult_admin_html_js_1 = require("./get-remult-admin-html.js");
5
+ function remultAdminHtml(options) {
6
+ var head = options.head, rootPath = options.rootPath, requireAuthToken = options.requireAuthToken, disableLiveQuery = options.disableLiveQuery;
7
+ return (0, get_remult_admin_html_js_1.getHtml)()
8
+ .replace('<!--PLACE_HERE_HEAD-->', head)
9
+ .replace('<!--PLACE_HERE_BODY-->', "<script>\n window.optionsFromServer = ".concat(JSON.stringify({
10
+ rootPath: rootPath,
11
+ requireAuthToken: requireAuthToken,
12
+ disableLiveQuery: disableLiveQuery,
13
+ }), "\n</script>"));
14
+ }
@@ -50,6 +50,5 @@ export interface AdminDisplayOptions {
50
50
  requireAuthToken: boolean;
51
51
  disableLiveQuery: boolean;
52
52
  }
53
- export default function remultAdminHtml(options: AdminDisplayOptions): string;
54
53
  export declare function buildEntityInfo(options: AdminEntitiesOptions): EntityUIInfo[];
55
54
  export type RelationsToOneValues = Record<string, Map<any, any>>;
@@ -1,23 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = remultAdminHtml;
4
3
  exports.buildEntityInfo = buildEntityInfo;
5
4
  var tslib_1 = require("tslib");
6
5
  var relationInfoMember_js_1 = require("../src/remult3/relationInfoMember.js");
7
6
  var filter_interfaces_js_1 = require("../src/filter/filter-interfaces.js");
8
- var get_remult_admin_html_js_1 = require("./get-remult-admin-html.js");
9
7
  var RepositoryImplementation_js_1 = require("../src/remult3/RepositoryImplementation.js");
10
8
  var inputTypes_js_1 = require("../inputTypes.js");
11
- function remultAdminHtml(options) {
12
- var head = options.head, rootPath = options.rootPath, requireAuthToken = options.requireAuthToken, disableLiveQuery = options.disableLiveQuery;
13
- return (0, get_remult_admin_html_js_1.getHtml)()
14
- .replace('<!--PLACE_HERE_HEAD-->', head)
15
- .replace('<!--PLACE_HERE_BODY-->', "<script>\n window.optionsFromServer = ".concat(JSON.stringify({
16
- rootPath: rootPath,
17
- requireAuthToken: requireAuthToken,
18
- disableLiveQuery: disableLiveQuery,
19
- }), "\n</script>"));
20
- }
21
9
  function buildEntityInfo(options) {
22
10
  var e_1, _a;
23
11
  var _b, _c;
@@ -15,7 +15,7 @@ var getEntityRef_js_1 = require("../src/remult3/getEntityRef.js");
15
15
  var server_action_js_1 = require("../src/server-action.js");
16
16
  var server_action_info_js_1 = require("../src/server-action-info.js");
17
17
  var remult_static_js_1 = require("../src/remult-static.js");
18
- var remult_admin_js_1 = tslib_1.__importStar(require("./remult-admin.js"));
18
+ var remult_admin_js_1 = require("./remult-admin.js");
19
19
  var isOfType_js_1 = require("../src/isOfType.js");
20
20
  var initDataProviderOrJson_js_1 = require("./initDataProviderOrJson.js");
21
21
  var module_js_1 = require("./module.js");
@@ -389,20 +389,22 @@ var RemultServerImplementation = /** @class */ (function () {
389
389
  if (this.options.admin !== undefined && this.options.admin !== false) {
390
390
  var admin = function () {
391
391
  return _this.process(function (remult, req, res, orig, origResponse) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
392
- var allowed, head, requireAuthToken, disableLiveQuery;
392
+ var allowed, head, requireAuthToken, disableLiveQuery, remultAdminHtml;
393
393
  var _a, _b, _c, _d, _e, _f, _g;
394
394
  return tslib_1.__generator(this, function (_h) {
395
- allowed = (0, isOfType_js_1.isOfType)(this.options.admin, 'allow')
396
- ? this.options.admin.allow
397
- : this.options.admin;
398
- if (remult.isAllowed(allowed)) {
399
- if (((_a = orig === null || orig === void 0 ? void 0 : orig.params) === null || _a === void 0 ? void 0 : _a.id) === '__entities-metadata') {
395
+ switch (_h.label) {
396
+ case 0:
397
+ allowed = (0, isOfType_js_1.isOfType)(this.options.admin, 'allow')
398
+ ? this.options.admin.allow
399
+ : this.options.admin;
400
+ if (!remult.isAllowed(allowed)) return [3 /*break*/, 4];
401
+ if (!(((_a = orig === null || orig === void 0 ? void 0 : orig.params) === null || _a === void 0 ? void 0 : _a.id) === '__entities-metadata')) return [3 /*break*/, 1];
400
402
  res.success((0, remult_admin_js_1.buildEntityInfo)({
401
403
  remult: remult,
402
404
  entities: this.entities,
403
405
  }));
404
- }
405
- else {
406
+ return [3 /*break*/, 3];
407
+ case 1:
406
408
  head = '<title>Admin</title>';
407
409
  requireAuthToken = false;
408
410
  disableLiveQuery = false;
@@ -413,17 +415,22 @@ var RemultServerImplementation = /** @class */ (function () {
413
415
  disableLiveQuery =
414
416
  (_f = this.options.admin.disableLiveQuery) !== null && _f !== void 0 ? _f : disableLiveQuery;
415
417
  }
416
- origResponse.send((0, remult_admin_js_1.default)({
418
+ return [4 /*yield*/, Promise.resolve().then(function () { return tslib_1.__importStar(require('./remult-admin-html.js')); })];
419
+ case 2:
420
+ remultAdminHtml = (_h.sent()).default;
421
+ origResponse.send(remultAdminHtml({
417
422
  rootPath: (_g = this.options.rootPath) !== null && _g !== void 0 ? _g : '/api',
418
423
  head: head,
419
424
  requireAuthToken: requireAuthToken,
420
425
  disableLiveQuery: disableLiveQuery,
421
426
  }));
422
- }
427
+ _h.label = 3;
428
+ case 3: return [3 /*break*/, 5];
429
+ case 4:
430
+ res.notFound();
431
+ _h.label = 5;
432
+ case 5: return [2 /*return*/];
423
433
  }
424
- else
425
- res.notFound();
426
- return [2 /*return*/];
427
434
  });
428
435
  }); });
429
436
  };
@@ -11,31 +11,57 @@ var JsonEntityIndexedDbStorage = /** @class */ (function () {
11
11
  this.supportsRawJson = true;
12
12
  }
13
13
  JsonEntityIndexedDbStorage.prototype.getItem = function (entityDbName) {
14
+ return this.run('readonly', function (s) { return s.get(entityDbName); });
15
+ };
16
+ JsonEntityIndexedDbStorage.prototype.setItem = function (entityDbName, json) {
17
+ return this.run('readwrite', function (s) {
18
+ return s.put(json, entityDbName);
19
+ });
20
+ };
21
+ JsonEntityIndexedDbStorage.prototype.removeItem = function (entityDbName) {
22
+ return this.run('readwrite', function (s) { return s.delete(entityDbName); });
23
+ };
24
+ JsonEntityIndexedDbStorage.prototype.clear = function () {
25
+ return this.run('readwrite', function (s) { return s.clear(); });
26
+ };
27
+ //@internal
28
+ JsonEntityIndexedDbStorage.prototype.run = function (mode, op) {
14
29
  return tslib_1.__awaiter(this, void 0, void 0, function () {
30
+ var attempt, err_1;
15
31
  var _this = this;
16
32
  return tslib_1.__generator(this, function (_a) {
17
- return [2 /*return*/, new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
18
- var transaction, store, request;
19
- return tslib_1.__generator(this, function (_a) {
20
- switch (_a.label) {
21
- case 0: return [4 /*yield*/, this.init()];
22
- case 1:
23
- transaction = (_a.sent()).transaction([this.storeName], 'readonly');
24
- store = transaction.objectStore(this.storeName);
25
- request = store.get(entityDbName);
26
- request.onerror = function (event) { return reject(request.error); };
27
- request.onsuccess = function (event) {
28
- if (request.result) {
29
- resolve(request.result);
30
- }
31
- else {
32
- resolve(null);
33
- }
34
- };
35
- return [2 /*return*/];
36
- }
37
- });
38
- }); })];
33
+ switch (_a.label) {
34
+ case 0:
35
+ attempt = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
36
+ var db;
37
+ var _this = this;
38
+ return tslib_1.__generator(this, function (_a) {
39
+ switch (_a.label) {
40
+ case 0: return [4 /*yield*/, this.init()];
41
+ case 1:
42
+ db = _a.sent();
43
+ return [2 /*return*/, new Promise(function (resolve, reject) {
44
+ var request = op(db.transaction([_this.storeName], mode).objectStore(_this.storeName));
45
+ request.onerror = function () { return reject(request.error); };
46
+ request.onsuccess = function () { var _a; return resolve((_a = request.result) !== null && _a !== void 0 ? _a : null); };
47
+ })];
48
+ }
49
+ });
50
+ }); };
51
+ _a.label = 1;
52
+ case 1:
53
+ _a.trys.push([1, 3, , 5]);
54
+ return [4 /*yield*/, attempt()];
55
+ case 2: return [2 /*return*/, _a.sent()];
56
+ case 3:
57
+ err_1 = _a.sent();
58
+ if ((err_1 === null || err_1 === void 0 ? void 0 : err_1.name) !== 'InvalidStateError')
59
+ throw err_1;
60
+ this.db = undefined;
61
+ return [4 /*yield*/, attempt()];
62
+ case 4: return [2 /*return*/, _a.sent()];
63
+ case 5: return [2 /*return*/];
64
+ }
39
65
  });
40
66
  });
41
67
  };
@@ -47,95 +73,36 @@ var JsonEntityIndexedDbStorage = /** @class */ (function () {
47
73
  return tslib_1.__generator(this, function (_b) {
48
74
  switch (_b.label) {
49
75
  case 0:
50
- if (!!this.db) return [3 /*break*/, 2];
76
+ if (this.db)
77
+ return [2 /*return*/, this.db];
51
78
  _a = this;
52
79
  return [4 /*yield*/, new Promise(function (resolve, reject) {
53
- var db;
54
80
  var request = indexedDB.open(_this.dbName, 1);
55
- request.onerror = function (event) { return reject(request.error); };
56
- request.onsuccess = function (event) {
57
- db = request.result;
58
- resolve(db);
81
+ request.onerror = function () { return reject(request.error); };
82
+ request.onupgradeneeded = function () {
83
+ return request.result.createObjectStore(_this.storeName);
59
84
  };
60
- request.onupgradeneeded = function (event) {
61
- db = request.result;
62
- db.createObjectStore(_this.storeName);
85
+ request.onsuccess = function () {
86
+ var db = request.result;
87
+ var forget = function () {
88
+ if (_this.db === db)
89
+ _this.db = undefined;
90
+ };
91
+ db.onclose = forget;
92
+ db.onversionchange = function () {
93
+ db.close();
94
+ forget();
95
+ };
96
+ resolve(db);
63
97
  };
64
98
  })];
65
99
  case 1:
66
100
  _a.db = _b.sent();
67
- _b.label = 2;
68
- case 2: return [2 /*return*/, this.db];
101
+ return [2 /*return*/, this.db];
69
102
  }
70
103
  });
71
104
  });
72
105
  };
73
- JsonEntityIndexedDbStorage.prototype.setItem = function (entityDbName, json) {
74
- return tslib_1.__awaiter(this, void 0, void 0, function () {
75
- var _this = this;
76
- return tslib_1.__generator(this, function (_a) {
77
- return [2 /*return*/, new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
78
- var transaction, store, request;
79
- return tslib_1.__generator(this, function (_a) {
80
- switch (_a.label) {
81
- case 0: return [4 /*yield*/, this.init()];
82
- case 1:
83
- transaction = (_a.sent()).transaction([this.storeName], 'readwrite');
84
- store = transaction.objectStore(this.storeName);
85
- request = store.put(json, entityDbName);
86
- request.onerror = function (event) { return reject(request.error); };
87
- request.onsuccess = function (event) { return resolve(); };
88
- return [2 /*return*/];
89
- }
90
- });
91
- }); })];
92
- });
93
- });
94
- };
95
- JsonEntityIndexedDbStorage.prototype.removeItem = function (entityDbName) {
96
- return tslib_1.__awaiter(this, void 0, void 0, function () {
97
- var _this = this;
98
- return tslib_1.__generator(this, function (_a) {
99
- return [2 /*return*/, new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
100
- var transaction, store, request;
101
- return tslib_1.__generator(this, function (_a) {
102
- switch (_a.label) {
103
- case 0: return [4 /*yield*/, this.init()];
104
- case 1:
105
- transaction = (_a.sent()).transaction([this.storeName], 'readwrite');
106
- store = transaction.objectStore(this.storeName);
107
- request = store.delete(entityDbName);
108
- request.onerror = function (_event) { return reject(request.error); };
109
- request.onsuccess = function (_event) { return resolve(); };
110
- return [2 /*return*/];
111
- }
112
- });
113
- }); })];
114
- });
115
- });
116
- };
117
- JsonEntityIndexedDbStorage.prototype.clear = function () {
118
- return tslib_1.__awaiter(this, void 0, void 0, function () {
119
- var _this = this;
120
- return tslib_1.__generator(this, function (_a) {
121
- return [2 /*return*/, new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
122
- var transaction, store, request;
123
- return tslib_1.__generator(this, function (_a) {
124
- switch (_a.label) {
125
- case 0: return [4 /*yield*/, this.init()];
126
- case 1:
127
- transaction = (_a.sent()).transaction([this.storeName], 'readwrite');
128
- store = transaction.objectStore(this.storeName);
129
- request = store.clear();
130
- request.onerror = function (_event) { return reject(request.error); };
131
- request.onsuccess = function (_event) { return resolve(); };
132
- return [2 /*return*/];
133
- }
134
- });
135
- }); })];
136
- });
137
- });
138
- };
139
106
  return JsonEntityIndexedDbStorage;
140
107
  }());
141
108
  exports.JsonEntityIndexedDbStorage = JsonEntityIndexedDbStorage;
@@ -313,8 +313,8 @@ export declare class ValueListInfo<T extends ValueListItem> implements ValueConv
313
313
  toJson(val: T): any;
314
314
  fromDb(val: any): T;
315
315
  toDb(val: T): any;
316
- toInput(val: T, inputType: string): string;
317
- fromInput(val: string, inputType: string): T;
316
+ toInput(val: T, inputType?: string): string;
317
+ fromInput(val: string, inputType?: string): T;
318
318
  displayValue?(val: T): string;
319
319
  fieldTypeInDb?: string;
320
320
  inputType?: string;