remult 0.26.21 → 0.26.23-next.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 (119) hide show
  1. package/SseSubscriptionServer.d.ts +3 -4
  2. package/assign.js +1 -2
  3. package/esm/graphql.js +1 -1
  4. package/esm/remult-hono.js +3 -1
  5. package/esm/remult-knex/index.js +3 -1
  6. package/esm/remult-sqlite3.js +4 -1
  7. package/esm/remult-sveltekit.js +1 -0
  8. package/esm/server/index.js +3 -2
  9. package/esm/server/initAsyncHooks.js +3 -3
  10. package/esm/server/remult-admin.js +1 -4
  11. package/esm/server/remult-api-server.js +47 -48
  12. package/esm/src/CompoundIdField.js +9 -9
  13. package/esm/src/data-api.js +1 -1
  14. package/esm/src/data-providers/json-entity-opfs-storage.js +9 -5
  15. package/esm/src/data-providers/sql-database.js +9 -9
  16. package/esm/src/filter/filter-consumer-bridge-to-sql-request.js +3 -1
  17. package/esm/src/live-query/LiveQueryClient.js +0 -1
  18. package/esm/src/remult-proxy.js +1 -3
  19. package/esm/src/remult-static.js +1 -0
  20. package/esm/src/remult3/Fields.js +4 -3
  21. package/esm/src/remult3/RepositoryImplementation.js +143 -104
  22. package/esm/src/remult3/entity.js +1 -1
  23. package/esm/src/remult3/relation-loader.js +2 -2
  24. package/esm/src/remult3/remult3.js +9 -0
  25. package/esm/src/server-action.js +16 -12
  26. package/esm/src/sort.js +0 -2
  27. package/esm/src/validators.js +3 -3
  28. package/esm/src/valueConverters.js +2 -2
  29. package/graphql.js +3 -4
  30. package/index.js +2 -2
  31. package/live-query/data-provider-live-query-storage.js +6 -6
  32. package/migrations/compare-migration-snapshots.js +48 -49
  33. package/migrations/generate-migrations.js +1 -2
  34. package/migrations/migrate.js +2 -3
  35. package/migrations/migration-types.d.ts +1 -1
  36. package/migrations/migration-types.js +4 -4
  37. package/migrations/update-migrations-ts-file.js +1 -2
  38. package/myLog.js +1 -2
  39. package/package.json +1 -1
  40. package/postgres/postgres-data-provider.d.ts +2 -2
  41. package/postgres/postgres-data-provider.js +5 -5
  42. package/postgres/schema-builder.js +3 -3
  43. package/remult-express.js +4 -3
  44. package/remult-fastify.js +4 -3
  45. package/remult-fresh.js +1 -2
  46. package/remult-hapi.js +4 -3
  47. package/remult-hono.js +6 -3
  48. package/remult-knex/index.d.ts +1 -1
  49. package/remult-knex/index.js +7 -5
  50. package/remult-mongo.d.ts +1 -1
  51. package/remult-next.d.ts +4 -5
  52. package/remult-next.js +11 -6
  53. package/remult-nuxt.js +1 -2
  54. package/remult-solid-start.js +1 -2
  55. package/remult-sqlite3.js +4 -1
  56. package/remult-sveltekit.js +33 -35
  57. package/server/JsonEntityFileStorage.d.ts +1 -1
  58. package/server/get-remult-admin-html.js +1 -2
  59. package/server/index.d.ts +1 -1
  60. package/server/index.js +4 -3
  61. package/server/initAsyncHooks.d.ts +10 -10
  62. package/server/initAsyncHooks.js +5 -2
  63. package/server/initDataProvider.js +1 -2
  64. package/server/initDataProviderOrJson.js +1 -2
  65. package/server/remult-admin.js +3 -7
  66. package/server/remult-api-server.d.ts +22 -22
  67. package/server/remult-api-server.js +54 -48
  68. package/src/CompoundIdField.d.ts +1 -1
  69. package/src/CompoundIdField.js +9 -0
  70. package/src/buildRestDataProvider.d.ts +1 -1
  71. package/src/buildRestDataProvider.js +8 -8
  72. package/src/column-interfaces.d.ts +8 -8
  73. package/src/column-interfaces.js +1 -2
  74. package/src/column.d.ts +4 -4
  75. package/src/column.js +2 -2
  76. package/src/context.d.ts +4 -4
  77. package/src/context.js +5 -5
  78. package/src/data-api.d.ts +2 -2
  79. package/src/data-api.js +4 -4
  80. package/src/data-interfaces.js +1 -2
  81. package/src/data-providers/json-entity-opfs-storage.js +30 -16
  82. package/src/data-providers/rest-data-provider.d.ts +3 -3
  83. package/src/data-providers/rest-data-provider.js +4 -4
  84. package/src/data-providers/sql-database.js +11 -11
  85. package/src/filter/filter-consumer-bridge-to-sql-request.d.ts +3 -3
  86. package/src/filter/filter-consumer-bridge-to-sql-request.js +21 -19
  87. package/src/filter/filter-interfaces.d.ts +1 -1
  88. package/src/filter/filter-interfaces.js +10 -6
  89. package/src/isOfType.js +2 -3
  90. package/src/live-query/SubscriptionServer.js +95 -97
  91. package/src/remult-proxy.js +1 -3
  92. package/src/remult-static.d.ts +2 -2
  93. package/src/remult-static.js +7 -4
  94. package/src/remult3/Fields.d.ts +2 -2
  95. package/src/remult3/Fields.js +11 -9
  96. package/src/remult3/RepositoryImplementation.d.ts +41 -39
  97. package/src/remult3/RepositoryImplementation.js +416 -365
  98. package/src/remult3/__updateEntityBasedOnWhere.js +1 -2
  99. package/src/remult3/addValidator.d.ts +1 -1
  100. package/src/remult3/addValidator.js +1 -2
  101. package/src/remult3/classDescribers.d.ts +3 -3
  102. package/src/remult3/classDescribers.js +3 -4
  103. package/src/remult3/entity.js +2 -4
  104. package/src/remult3/getEntityRef.js +4 -4
  105. package/src/remult3/relation-loader.d.ts +1 -1
  106. package/src/remult3/relationInfoMember.d.ts +2 -2
  107. package/src/remult3/relationInfoMember.js +4 -5
  108. package/src/remult3/remult3.d.ts +13 -10
  109. package/src/remult3/remult3.js +9 -0
  110. package/src/remult3/repository-internals.d.ts +3 -3
  111. package/src/remult3/repository-internals.js +2 -2
  112. package/src/server-action.d.ts +1 -1
  113. package/src/server-action.js +65 -58
  114. package/src/sort.d.ts +1 -1
  115. package/src/sort.js +0 -2
  116. package/src/sql-command.d.ts +1 -1
  117. package/src/validators.d.ts +1 -1
  118. package/src/validators.js +13 -11
  119. package/src/valueConverters.js +3 -2
@@ -211,7 +211,7 @@ export interface FieldMetadata<valueType = any, entityType = any> {
211
211
  * input.value = repo.fields.birthDate.toInput(person) // will return '1976-06-16'
212
212
  * @see {@link ValueConverter#toInput} for configuration details
213
213
  */
214
- toInput(value: valueType, inputType?: string): string;
214
+ toInput(value: valueType | null | undefined, inputType?: string): string;
215
215
  /** Adapts the value for usage with html input
216
216
  * @example
217
217
  * @Fields.dateOnly()
@@ -239,7 +239,7 @@ export interface ValueConverter<valueType> {
239
239
  * @example
240
240
  * fromJson: val => new Date(val)
241
241
  */
242
- fromJson?(val: any): valueType;
242
+ fromJson?(val: any): valueType | null | undefined;
243
243
  /**
244
244
  * Converts a value of valueType to a JSON DTO. This method is typically used when sending data
245
245
  * to a REST API or serializing an object to a JSON payload.
@@ -250,7 +250,7 @@ export interface ValueConverter<valueType> {
250
250
  * @example
251
251
  * toJson: val => val?.toISOString()
252
252
  */
253
- toJson?(val: valueType): any;
253
+ toJson?(val: valueType | null | undefined): any;
254
254
  /**
255
255
  * Converts a value from the database format to the valueType.
256
256
  *
@@ -260,7 +260,7 @@ export interface ValueConverter<valueType> {
260
260
  * @example
261
261
  * fromDb: val => new Date(val)
262
262
  */
263
- fromDb?(val: any): valueType;
263
+ fromDb?(val: any): valueType | null | undefined;
264
264
  /**
265
265
  * Converts a value of valueType to the database format.
266
266
  *
@@ -270,7 +270,7 @@ export interface ValueConverter<valueType> {
270
270
  * @example
271
271
  * toDb: val => val?.toISOString()
272
272
  */
273
- toDb?(val: valueType): any;
273
+ toDb?(val: valueType | null | undefined): any;
274
274
  /**
275
275
  * Converts a value of valueType to a string suitable for an HTML input element.
276
276
  *
@@ -281,7 +281,7 @@ export interface ValueConverter<valueType> {
281
281
  * @example
282
282
  * toInput: (val, inputType) => val?.toISOString().substring(0, 10)
283
283
  */
284
- toInput?(val: valueType, inputType?: string): string;
284
+ toInput?(val: valueType | null | undefined, inputType?: string): string;
285
285
  /**
286
286
  * Converts a string from an HTML input element to the valueType.
287
287
  *
@@ -292,7 +292,7 @@ export interface ValueConverter<valueType> {
292
292
  * @example
293
293
  * fromInput: (val, inputType) => new Date(val)
294
294
  */
295
- fromInput?(val: string, inputType?: string): valueType;
295
+ fromInput?(val: string, inputType?: string): valueType | null | undefined;
296
296
  /**
297
297
  * Returns a displayable string representation of a value of valueType.
298
298
  *
@@ -302,7 +302,7 @@ export interface ValueConverter<valueType> {
302
302
  * @example
303
303
  * displayValue: val => val?.toLocaleDateString()
304
304
  */
305
- displayValue?(val: valueType): string;
305
+ displayValue?(val: valueType | null | undefined): string;
306
306
  /**
307
307
  * Specifies the storage type used in the database for this field. This can be used to explicitly define the data type and precision of the field in the database.
308
308
  *
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.valueOrExpressionToValue = void 0;
3
+ exports.valueOrExpressionToValue = valueOrExpressionToValue;
4
4
  function valueOrExpressionToValue(f) {
5
5
  if (typeof f === 'function') {
6
6
  var x = f;
@@ -8,4 +8,3 @@ function valueOrExpressionToValue(f) {
8
8
  }
9
9
  return f;
10
10
  }
11
- exports.valueOrExpressionToValue = valueOrExpressionToValue;
package/src/column.d.ts CHANGED
@@ -6,14 +6,14 @@ export declare class LookupColumn<T> {
6
6
  private allowNull;
7
7
  toJson(): any;
8
8
  setId(val: any): void;
9
- waitLoadOf(id: any): Promise<T>;
9
+ waitLoadOf(id: any): Promise<T | undefined> | null;
10
10
  get(id: any): any;
11
11
  storedItem?: {
12
12
  item: T;
13
13
  };
14
14
  set(item: T): void;
15
- id: idType<T>;
16
- constructor(repository: Repository<T>, isReferenceRelation: any, allowNull: any);
15
+ id?: idType<T>;
16
+ constructor(repository: Repository<T>, isReferenceRelation: boolean, allowNull: boolean);
17
17
  get item(): T;
18
- waitLoad(): Promise<T>;
18
+ waitLoad(): Promise<T | null | undefined>;
19
19
  }
package/src/column.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LookupColumn = exports.makeTitle = void 0;
3
+ exports.LookupColumn = void 0;
4
+ exports.makeTitle = makeTitle;
4
5
  var tslib_1 = require("tslib");
5
6
  var getEntityRef_js_1 = require("./remult3/getEntityRef.js");
6
7
  var repository_internals_js_1 = require("./remult3/repository-internals.js");
@@ -13,7 +14,6 @@ function makeTitle(name) {
13
14
  .replace('Email', 'eMail')
14
15
  .replace(' I D', ' ID'));
15
16
  }
16
- exports.makeTitle = makeTitle;
17
17
  var LookupColumn = /** @class */ (function () {
18
18
  function LookupColumn(repository, isReferenceRelation, allowNull) {
19
19
  this.repository = repository;
package/src/context.d.ts CHANGED
@@ -11,14 +11,14 @@ export declare class RemultAsyncLocalStorage {
11
11
  constructor(remultObjectStorage: RemultAsyncLocalStorageCore<{
12
12
  remult: Remult;
13
13
  inInitRequest?: boolean;
14
- }>);
14
+ }> | undefined);
15
15
  run<T>(remult: Remult, callback: (remult: Remult) => Promise<T>): Promise<T>;
16
- isInInitRequest(): boolean;
16
+ isInInitRequest(): boolean | undefined;
17
17
  setInInitRequest(val: boolean): void;
18
18
  getStore(): {
19
19
  remult: Remult;
20
20
  inInitRequest?: boolean;
21
- };
21
+ } | undefined;
22
22
  }
23
23
  export type RemultAsyncLocalStorageCore<T> = {
24
24
  run<R>(store: T, callback: () => Promise<R>): Promise<R>;
@@ -202,6 +202,6 @@ export interface itemChange {
202
202
  deleted: boolean;
203
203
  }
204
204
  export declare function doTransaction(remult: Remult, what: (dp: DataProvider) => Promise<void>): Promise<void>;
205
- export declare function withRemult<T>(callback: (remult: any) => Promise<T>, options?: {
205
+ export declare function withRemult<T>(callback: (remult: Remult) => Promise<T>, options?: {
206
206
  dataProvider?: DataProvider | Promise<DataProvider> | (() => Promise<DataProvider | undefined>);
207
207
  }): Promise<T>;
package/src/context.js CHANGED
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withRemult = exports.doTransaction = exports.EventSource = exports.queryConfig = exports.Allow = exports.setControllerSettings = exports.ClassHelper = exports.Remult = exports.isBackend = exports.RemultAsyncLocalStorage = void 0;
3
+ exports.EventSource = exports.queryConfig = exports.Allow = exports.ClassHelper = exports.Remult = exports.RemultAsyncLocalStorage = void 0;
4
+ exports.isBackend = isBackend;
5
+ exports.setControllerSettings = setControllerSettings;
6
+ exports.doTransaction = doTransaction;
7
+ exports.withRemult = withRemult;
4
8
  var tslib_1 = require("tslib");
5
9
  var rest_data_provider_js_1 = require("./data-providers/rest-data-provider.js");
6
10
  var LiveQueryClient_js_1 = require("./live-query/LiveQueryClient.js");
@@ -65,7 +69,6 @@ if (!remult_static_js_1.remultStatic.asyncContext)
65
69
  function isBackend() {
66
70
  return remult_static_js_1.remultStatic.actionInfo.runningOnServer || !remult_proxy_js_1.remult.dataProvider.isProxy;
67
71
  }
68
- exports.isBackend = isBackend;
69
72
  var Remult = /** @class */ (function () {
70
73
  function Remult(provider) {
71
74
  var _this = this;
@@ -252,7 +255,6 @@ function setControllerSettings(target, options) {
252
255
  r = p.constructor;
253
256
  }
254
257
  }
255
- exports.setControllerSettings = setControllerSettings;
256
258
  var Allow = /** @class */ (function () {
257
259
  function Allow() {
258
260
  }
@@ -381,7 +383,6 @@ function doTransaction(remult, what) {
381
383
  });
382
384
  });
383
385
  }
384
- exports.doTransaction = doTransaction;
385
386
  var transactionLiveQueryPublisher = /** @class */ (function () {
386
387
  function transactionLiveQueryPublisher(orig) {
387
388
  this.orig = orig;
@@ -485,4 +486,3 @@ function withRemult(callback, options) {
485
486
  });
486
487
  });
487
488
  }
488
- exports.withRemult = withRemult;
package/src/data-api.d.ts CHANGED
@@ -23,8 +23,8 @@ export declare class DataApi<T = any> {
23
23
  private doOnId;
24
24
  updateManyThroughPutRequest(response: DataApiResponse, request: DataApiRequest, body: any): Promise<void>;
25
25
  updateManyImplementation(response: DataApiResponse, request: DataApiRequest, body: {
26
- where: any;
27
- set: any;
26
+ where?: any;
27
+ set?: any;
28
28
  }): Promise<void>;
29
29
  actualUpdate(row: any, body: any): Promise<rowHelperImplementation<T>>;
30
30
  put(response: DataApiResponse, id: any, body: any): Promise<void>;
package/src/data-api.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.serializeError = exports.determineSort = exports.DataApi = void 0;
3
+ exports.DataApi = void 0;
4
+ exports.determineSort = determineSort;
5
+ exports.serializeError = serializeError;
4
6
  var tslib_1 = require("tslib");
5
7
  var context_js_1 = require("./context.js");
6
8
  var rest_data_provider_js_1 = require("./data-providers/rest-data-provider.js");
@@ -515,7 +517,7 @@ var DataApi = /** @class */ (function () {
515
517
  return [4 /*yield*/, this.buildWhere(request, body)];
516
518
  case 1:
517
519
  where_2 = _a.sent();
518
- filter_interfaces_js_1.Filter.throwErrorIfFilterIsEmpty(where_2, 'deleteMany');
520
+ filter_interfaces_js_1.Filter.throwErrorIfFilterIsEmpty(where_2, 'updateMany');
519
521
  return [4 /*yield*/, (0, context_js_1.doTransaction)(this.remult, function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
520
522
  var updated, _a, _b, _c, x, e_3_1;
521
523
  var _d, e_3, _e, _f;
@@ -767,7 +769,6 @@ function determineSort(sortUrlParm, dirUrlParam) {
767
769
  });
768
770
  return result;
769
771
  }
770
- exports.determineSort = determineSort;
771
772
  function serializeError(data) {
772
773
  if (data instanceof TypeError) {
773
774
  data = { message: data.message, stack: data.stack };
@@ -779,4 +780,3 @@ function serializeError(data) {
779
780
  data = { message: x };
780
781
  return data;
781
782
  }
782
- exports.serializeError = serializeError;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractSort = void 0;
3
+ exports.extractSort = extractSort;
4
4
  var sort_js_1 = require("./sort.js");
5
5
  function extractSort(sort) {
6
6
  if (sort instanceof Array) {
@@ -12,4 +12,3 @@ function extractSort(sort) {
12
12
  }
13
13
  return sort;
14
14
  }
15
- exports.extractSort = extractSort;
@@ -7,7 +7,28 @@ var JsonEntityOpfsStorage = /** @class */ (function () {
7
7
  }
8
8
  JsonEntityOpfsStorage.prototype.getItem = function (entityDbName) {
9
9
  return tslib_1.__awaiter(this, void 0, void 0, function () {
10
- var _a, opfsFile, readable;
10
+ var opfsFile, readable;
11
+ return tslib_1.__generator(this, function (_a) {
12
+ switch (_a.label) {
13
+ case 0: return [4 /*yield*/, this.init()];
14
+ case 1: return [4 /*yield*/, (_a.sent()).getFileHandle(entityDbName + '.json', {
15
+ create: true,
16
+ })];
17
+ case 2:
18
+ opfsFile = _a.sent();
19
+ return [4 /*yield*/, opfsFile.getFile()];
20
+ case 3:
21
+ readable = _a.sent();
22
+ return [4 /*yield*/, readable.text()];
23
+ case 4: return [2 /*return*/, _a.sent()];
24
+ }
25
+ });
26
+ });
27
+ };
28
+ //@internal
29
+ JsonEntityOpfsStorage.prototype.init = function () {
30
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
31
+ var _a;
11
32
  return tslib_1.__generator(this, function (_b) {
12
33
  switch (_b.label) {
13
34
  case 0:
@@ -17,16 +38,7 @@ var JsonEntityOpfsStorage = /** @class */ (function () {
17
38
  case 1:
18
39
  _a.opfsRoot = _b.sent();
19
40
  _b.label = 2;
20
- case 2: return [4 /*yield*/, this.opfsRoot.getFileHandle(entityDbName + '.json', {
21
- create: true,
22
- })];
23
- case 3:
24
- opfsFile = _b.sent();
25
- return [4 /*yield*/, opfsFile.getFile()];
26
- case 4:
27
- readable = _b.sent();
28
- return [4 /*yield*/, readable.text()];
29
- case 5: return [2 /*return*/, _b.sent()];
41
+ case 2: return [2 /*return*/, this.opfsRoot];
30
42
  }
31
43
  });
32
44
  });
@@ -36,19 +48,21 @@ var JsonEntityOpfsStorage = /** @class */ (function () {
36
48
  var opfsFile, writable;
37
49
  return tslib_1.__generator(this, function (_a) {
38
50
  switch (_a.label) {
39
- case 0: return [4 /*yield*/, this.opfsRoot.getFileHandle(entityDbName + '.json', {
51
+ case 0: return [4 /*yield*/, this.init()];
52
+ case 1: return [4 /*yield*/, (_a.sent()).getFileHandle(entityDbName + '.json', {
40
53
  create: true,
41
54
  })];
42
- case 1:
55
+ case 2: return [4 /*yield*/, _a.sent()];
56
+ case 3:
43
57
  opfsFile = _a.sent();
44
58
  return [4 /*yield*/, opfsFile.createWritable()];
45
- case 2:
59
+ case 4:
46
60
  writable = _a.sent();
47
61
  return [4 /*yield*/, writable.write(json)];
48
- case 3:
62
+ case 5:
49
63
  _a.sent();
50
64
  return [4 /*yield*/, writable.close()];
51
- case 4:
65
+ case 6:
52
66
  _a.sent();
53
67
  return [2 /*return*/];
54
68
  }
@@ -15,8 +15,8 @@ export declare class RestEntityDataProvider implements EntityDataProvider, Proxy
15
15
  private http;
16
16
  private entity;
17
17
  constructor(url: () => string, http: () => RestDataProviderHttpProvider, entity: EntityMetadata);
18
- translateFromJson(row: any): {};
19
- translateToJson(row: any): {};
18
+ translateFromJson(row: any): any;
19
+ translateToJson(row: any): any;
20
20
  count(where: Filter): Promise<number>;
21
21
  deleteMany(where: Filter): Promise<number>;
22
22
  updateMany(where: Filter, data: any): Promise<number>;
@@ -29,7 +29,7 @@ export declare class RestEntityDataProvider implements EntityDataProvider, Proxy
29
29
  }
30
30
  export declare class RestDataProviderHttpProviderUsingFetch implements RestDataProviderHttpProvider {
31
31
  private fetch?;
32
- constructor(fetch?: (input: RequestInfo, init?: RequestInit) => Promise<Response>);
32
+ constructor(fetch?: ((input: RequestInfo, init?: RequestInit) => Promise<Response>) | undefined);
33
33
  get(url: string): Promise<any>;
34
34
  put(url: string, data: any): Promise<any>;
35
35
  delete(url: string): Promise<any>;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.liveQueryAction = exports.addFilterToUrlAndReturnTrueIfSuccessful = exports.RestDataProviderHttpProviderUsingFetch = exports.RestEntityDataProvider = exports.findOptionsFromJson = exports.findOptionsToJson = exports.RestDataProvider = void 0;
3
+ exports.liveQueryAction = exports.RestDataProviderHttpProviderUsingFetch = exports.RestEntityDataProvider = exports.RestDataProvider = void 0;
4
+ exports.findOptionsToJson = findOptionsToJson;
5
+ exports.findOptionsFromJson = findOptionsFromJson;
6
+ exports.addFilterToUrlAndReturnTrueIfSuccessful = addFilterToUrlAndReturnTrueIfSuccessful;
4
7
  var tslib_1 = require("tslib");
5
8
  var urlBuilder_js_1 = require("../../urlBuilder.js");
6
9
  var buildRestDataProvider_js_1 = require("../buildRestDataProvider.js");
@@ -58,7 +61,6 @@ function findOptionsToJson(options, meta) {
58
61
  options = tslib_1.__assign(tslib_1.__assign({}, options), { load: options.load(meta.fields).map(function (y) { return y.key; }) });
59
62
  return options;
60
63
  }
61
- exports.findOptionsToJson = findOptionsToJson;
62
64
  //@internal
63
65
  function findOptionsFromJson(json, meta) {
64
66
  var e_1, _a;
@@ -109,7 +111,6 @@ function findOptionsFromJson(json, meta) {
109
111
  }
110
112
  return r;
111
113
  }
112
- exports.findOptionsFromJson = findOptionsFromJson;
113
114
  var RestEntityDataProvider = /** @class */ (function () {
114
115
  function RestEntityDataProvider(url, http, entity) {
115
116
  this.url = url;
@@ -470,5 +471,4 @@ function addFilterToUrlAndReturnTrueIfSuccessful(filter, url) {
470
471
  }
471
472
  return true;
472
473
  }
473
- exports.addFilterToUrlAndReturnTrueIfSuccessful = addFilterToUrlAndReturnTrueIfSuccessful;
474
474
  exports.liveQueryAction = 'liveQuery-';
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRowAfterUpdate = exports.SqlDatabase = void 0;
3
+ exports.SqlDatabase = void 0;
4
+ exports.getRowAfterUpdate = getRowAfterUpdate;
4
5
  var tslib_1 = require("tslib");
5
6
  var filter_consumer_bridge_to_sql_request_js_1 = require("../filter/filter-consumer-bridge-to-sql-request.js");
6
7
  var filter_interfaces_js_1 = require("../filter/filter-interfaces.js");
@@ -268,16 +269,16 @@ var SqlDatabase = /** @class */ (function () {
268
269
  exports.SqlDatabase = SqlDatabase;
269
270
  var icons = new Map([
270
271
  // CRUD
271
- ['INSERT', '⚪'],
272
- ['SELECT', '🔵'],
273
- ['UPDATE', '🟣'],
274
- ['DELETE', '🟤'],
272
+ ['INSERT', '⚪'], // Used to insert new data into a database.
273
+ ['SELECT', '🔵'], // Used to select data from a database and retrieve it.
274
+ ['UPDATE', '🟣'], // Used to update existing data within a database.
275
+ ['DELETE', '🟤'], // Used to delete existing data from a database.
275
276
  // Additional
276
- ['CREATE', '🟩'],
277
- ['ALTER', '🟨'],
278
- ['DROP', '🟥'],
279
- ['TRUNCATE', '⬛'],
280
- ['GRANT', '🟪'],
277
+ ['CREATE', '🟩'], // Used to create a new table, or database.
278
+ ['ALTER', '🟨'], // Used to modify an existing database object, such as a table.
279
+ ['DROP', '🟥'], // Used to delete an entire table or database.
280
+ ['TRUNCATE', '⬛'], // Used to remove all records from a table, including all spaces allocated for the records are removed.
281
+ ['GRANT', '🟪'], // Used to give a specific user permission to perform certain tasks.
281
282
  ['REVOKE', '🟫'], // Used to take back permissions from a user.
282
283
  ]);
283
284
  var LogSQLCommand = /** @class */ (function () {
@@ -805,4 +806,3 @@ function getRowAfterUpdate(meta, dataProvider, data, id, operation) {
805
806
  return r[0];
806
807
  });
807
808
  }
808
- exports.getRowAfterUpdate = getRowAfterUpdate;
@@ -57,7 +57,7 @@ export declare class CustomSqlFilterBuilder implements SqlCommandWithParameters,
57
57
  * @param {FieldMetadata<valueType>} [field] - The field metadata.
58
58
  * @returns {string} - The SQL token.
59
59
  */
60
- param: <valueType>(val: valueType, field?: FieldMetadata<valueType, any>) => string;
60
+ param: <valueType>(val: valueType, field?: FieldMetadata<valueType>) => string;
61
61
  /**
62
62
  * Converts an entity filter into a raw SQL condition - and appends to it any `backendPrefilter` and `backendPreprocessFilter`
63
63
  * @param {RepositoryOverloads<entityType>} repo - The repository.
@@ -66,9 +66,9 @@ export declare class CustomSqlFilterBuilder implements SqlCommandWithParameters,
66
66
  */
67
67
  filterToRaw: <entityType>(repo: RepositoryOverloads<entityType>, condition: EntityFilter<entityType>) => Promise<string>;
68
68
  }
69
- export declare function isDbReadonly<entityType>(field: FieldMetadata, dbNames: EntityDbNames<entityType>): boolean;
69
+ export declare function isDbReadonly<entityType>(field: FieldMetadata, dbNames: EntityDbNames<entityType>): boolean | "" | undefined;
70
70
  export declare function shouldNotCreateField<entityType>(field: FieldMetadata, dbNames: EntityDbNames<entityType>): boolean;
71
- export declare function shouldCreateEntity(entity: EntityMetadata<any>, e: EntityDbNamesBase): boolean;
71
+ export declare function shouldCreateEntity(entity: EntityMetadata<unknown>, e: EntityDbNamesBase): boolean;
72
72
  export declare type EntityDbNamesBase = {
73
73
  $entityName: string;
74
74
  $dbNameOf(field: FieldMetadata<any> | string): string;
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fieldDbName = exports.entityDbName = exports.dbNamesOfWithForceSqlExpression = exports.dbNamesOf = exports.shouldCreateEntity = exports.shouldNotCreateField = exports.isDbReadonly = exports.CustomSqlFilterBuilder = exports.FilterConsumerBridgeToSqlRequest = void 0;
3
+ exports.CustomSqlFilterBuilder = exports.FilterConsumerBridgeToSqlRequest = void 0;
4
+ exports.isDbReadonly = isDbReadonly;
5
+ exports.shouldNotCreateField = shouldNotCreateField;
6
+ exports.shouldCreateEntity = shouldCreateEntity;
7
+ exports.dbNamesOf = dbNamesOf;
8
+ exports.dbNamesOfWithForceSqlExpression = dbNamesOfWithForceSqlExpression;
9
+ exports.entityDbName = entityDbName;
10
+ exports.fieldDbName = fieldDbName;
4
11
  var tslib_1 = require("tslib");
5
12
  var sql_database_js_1 = require("../data-providers/sql-database.js");
6
13
  var remult_proxy_js_1 = require("../remult-proxy.js");
@@ -332,17 +339,14 @@ function isDbReadonly(field, dbNames) {
332
339
  field.isServerExpression ||
333
340
  (field.options.sqlExpression && field.dbName != dbNames.$dbNameOf(field)));
334
341
  }
335
- exports.isDbReadonly = isDbReadonly;
336
342
  function shouldNotCreateField(field, dbNames) {
337
- return (field.isServerExpression ||
343
+ return Boolean(field.isServerExpression ||
338
344
  (field.options.sqlExpression && field.dbName != dbNames.$dbNameOf(field)));
339
345
  }
340
- exports.shouldNotCreateField = shouldNotCreateField;
341
346
  function shouldCreateEntity(entity, e) {
342
347
  return (!entity.options.sqlExpression &&
343
348
  e.$entityName.toLowerCase().indexOf('from ') < 0);
344
349
  }
345
- exports.shouldCreateEntity = shouldCreateEntity;
346
350
  function dbNamesOf(repo, wrapIdentifierOrOptions) {
347
351
  return tslib_1.__awaiter(this, void 0, void 0, function () {
348
352
  return tslib_1.__generator(this, function (_a) {
@@ -350,7 +354,6 @@ function dbNamesOf(repo, wrapIdentifierOrOptions) {
350
354
  });
351
355
  });
352
356
  }
353
- exports.dbNamesOf = dbNamesOf;
354
357
  function dbNamesOfWithForceSqlExpression(repo, wrapIdentifierOrOptions) {
355
358
  return tslib_1.__awaiter(this, void 0, void 0, function () {
356
359
  return tslib_1.__generator(this, function (_a) {
@@ -358,12 +361,11 @@ function dbNamesOfWithForceSqlExpression(repo, wrapIdentifierOrOptions) {
358
361
  });
359
362
  });
360
363
  }
361
- exports.dbNamesOfWithForceSqlExpression = dbNamesOfWithForceSqlExpression;
362
- function internalDbNamesOf(repo, wrapIdentifierOrOptions, forceSqlExpression) {
363
- if (forceSqlExpression === void 0) { forceSqlExpression = false; }
364
- return tslib_1.__awaiter(this, void 0, void 0, function () {
364
+ function internalDbNamesOf(repo_1, wrapIdentifierOrOptions_1) {
365
+ return tslib_1.__awaiter(this, arguments, void 0, function (repo, wrapIdentifierOrOptions, forceSqlExpression) {
365
366
  var options, meta, result, _a, _b, field, r, e_3_1;
366
367
  var _c, e_3, _d;
368
+ if (forceSqlExpression === void 0) { forceSqlExpression = false; }
367
369
  return tslib_1.__generator(this, function (_e) {
368
370
  switch (_e.label) {
369
371
  case 0:
@@ -408,6 +410,7 @@ function internalDbNamesOf(repo, wrapIdentifierOrOptions, forceSqlExpression) {
408
410
  else if (options.tableName === true) {
409
411
  r = result.$entityName + '.' + r;
410
412
  }
413
+ ;
411
414
  result[field.key] = r;
412
415
  _e.label = 5;
413
416
  case 5:
@@ -429,10 +432,10 @@ function internalDbNamesOf(repo, wrapIdentifierOrOptions, forceSqlExpression) {
429
432
  });
430
433
  });
431
434
  }
432
- function entityDbName(metadata, wrapIdentifier) {
433
- if (wrapIdentifier === void 0) { wrapIdentifier = function (x) { return x; }; }
434
- return tslib_1.__awaiter(this, void 0, void 0, function () {
435
+ function entityDbName(metadata_1) {
436
+ return tslib_1.__awaiter(this, arguments, void 0, function (metadata, wrapIdentifier) {
435
437
  var prev;
438
+ if (wrapIdentifier === void 0) { wrapIdentifier = function (x) { return x; }; }
436
439
  return tslib_1.__generator(this, function (_a) {
437
440
  switch (_a.label) {
438
441
  case 0:
@@ -457,13 +460,12 @@ function entityDbName(metadata, wrapIdentifier) {
457
460
  });
458
461
  });
459
462
  }
460
- exports.entityDbName = entityDbName;
461
463
  var sqlExpressionInProgressKey = Symbol.for("sqlExpressionInProgressKey");
462
- function fieldDbName(f, meta, wrapIdentifier, forceSqlExpression) {
463
- if (wrapIdentifier === void 0) { wrapIdentifier = function (x) { return x; }; }
464
- if (forceSqlExpression === void 0) { forceSqlExpression = false; }
465
- return tslib_1.__awaiter(this, void 0, void 0, function () {
464
+ function fieldDbName(f_1, meta_1) {
465
+ return tslib_1.__awaiter(this, arguments, void 0, function (f, meta, wrapIdentifier, forceSqlExpression) {
466
466
  var result_1, rel, field, fInfo;
467
+ if (wrapIdentifier === void 0) { wrapIdentifier = function (x) { return x; }; }
468
+ if (forceSqlExpression === void 0) { forceSqlExpression = false; }
467
469
  return tslib_1.__generator(this, function (_a) {
468
470
  switch (_a.label) {
469
471
  case 0:
@@ -476,6 +478,7 @@ function fieldDbName(f, meta, wrapIdentifier, forceSqlExpression) {
476
478
  _a.label = 1;
477
479
  case 1:
478
480
  _a.trys.push([1, , 3, 4]);
481
+ ;
479
482
  f[sqlExpressionInProgressKey] = true;
480
483
  return [4 /*yield*/, f.options.sqlExpression(meta)];
481
484
  case 2:
@@ -509,4 +512,3 @@ function fieldDbName(f, meta, wrapIdentifier, forceSqlExpression) {
509
512
  });
510
513
  });
511
514
  }
512
- exports.fieldDbName = fieldDbName;
@@ -221,7 +221,7 @@ export declare class FilterSerializer implements FilterConsumer {
221
221
  result: any;
222
222
  constructor();
223
223
  databaseCustom(databaseCustom: any): void;
224
- custom(key: any, customItem: any): void;
224
+ custom(key: string, customItem: any): void;
225
225
  hasUndefined: boolean;
226
226
  add(key: string, val: any): void;
227
227
  or(orElements: Filter[]): void;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.__updateEntityBasedOnWhere = exports.buildFilterFromRequestParameters = exports.entityFilterToJson = exports.FilterSerializer = exports.customDatabaseFilterToken = exports.customUrlToken = exports.NotFilter = exports.OrFilter = exports.AndFilter = exports.Filter = void 0;
3
+ exports.FilterSerializer = exports.customDatabaseFilterToken = exports.customUrlToken = exports.NotFilter = exports.OrFilter = exports.AndFilter = exports.Filter = void 0;
4
+ exports.entityFilterToJson = entityFilterToJson;
5
+ exports.buildFilterFromRequestParameters = buildFilterFromRequestParameters;
6
+ exports.__updateEntityBasedOnWhere = __updateEntityBasedOnWhere;
4
7
  var tslib_1 = require("tslib");
5
8
  var getEntityRef_js_1 = require("../remult3/getEntityRef.js");
6
9
  var relationInfoMember_js_1 = require("../remult3/relationInfoMember.js");
@@ -206,13 +209,17 @@ var Filter = /** @class */ (function () {
206
209
  var fieldToFilter_1 = whereItem[key];
207
210
  {
208
211
  if (key == '$or') {
209
- result.push(new (OrFilter.bind.apply(OrFilter, tslib_1.__spreadArray([void 0], tslib_1.__read(fieldToFilter_1.map(function (x) { return Filter.fromEntityFilter(entity, x); })), false)))());
212
+ result.push(new (OrFilter.bind.apply(OrFilter, tslib_1.__spreadArray([void 0], tslib_1.__read(fieldToFilter_1.map(function (x) {
213
+ return Filter.fromEntityFilter(entity, x);
214
+ })), false)))());
210
215
  }
211
216
  else if (key == '$not') {
212
217
  result.push(new NotFilter(Filter.fromEntityFilter(entity, fieldToFilter_1)));
213
218
  }
214
219
  else if (key == '$and') {
215
- result.push(new (AndFilter.bind.apply(AndFilter, tslib_1.__spreadArray([void 0], tslib_1.__read(fieldToFilter_1.map(function (x) { return Filter.fromEntityFilter(entity, x); })), false)))());
220
+ result.push(new (AndFilter.bind.apply(AndFilter, tslib_1.__spreadArray([void 0], tslib_1.__read(fieldToFilter_1.map(function (x) {
221
+ return Filter.fromEntityFilter(entity, x);
222
+ })), false)))());
216
223
  }
217
224
  else if (key.startsWith(exports.customUrlToken)) {
218
225
  result.push(new Filter(function (x) {
@@ -758,7 +765,6 @@ function entityFilterToJson(entityDefs, where) {
758
765
  return {};
759
766
  return Filter.fromEntityFilter(entityDefs, where).toJson();
760
767
  }
761
- exports.entityFilterToJson = entityFilterToJson;
762
768
  function buildFilterFromRequestParameters(entity, filterInfo) {
763
769
  var e_5, _a;
764
770
  var where = {};
@@ -989,7 +995,6 @@ function buildFilterFromRequestParameters(entity, filterInfo) {
989
995
  return array;
990
996
  }
991
997
  }
992
- exports.buildFilterFromRequestParameters = buildFilterFromRequestParameters;
993
998
  var customTranslator = /** @class */ (function () {
994
999
  function customTranslator(translateCustom) {
995
1000
  this.translateCustom = translateCustom;
@@ -1149,7 +1154,6 @@ function __updateEntityBasedOnWhere(entityDefs, where, r) {
1149
1154
  });
1150
1155
  }
1151
1156
  }
1152
- exports.__updateEntityBasedOnWhere = __updateEntityBasedOnWhere;
1153
1157
  var preciseValuesCollector = /** @class */ (function () {
1154
1158
  function preciseValuesCollector() {
1155
1159
  this.rawValues = {};
package/src/isOfType.js CHANGED
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cast = exports.isOfType = void 0;
3
+ exports.isOfType = isOfType;
4
+ exports.cast = cast;
4
5
  function isOfType(obj, checkMethod) {
5
6
  return typeof obj[checkMethod] !== 'undefined';
6
7
  }
7
- exports.isOfType = isOfType;
8
8
  function cast(obj, checkMethod) {
9
9
  if (isOfType(obj, checkMethod)) {
10
10
  return obj;
11
11
  }
12
12
  throw new Error("Object is not of type ".concat(checkMethod.toString()));
13
13
  }
14
- exports.cast = cast;