@antelopejs/interface-data-api 0.6.2 → 0.7.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 (44) hide show
  1. package/README.md +28 -7
  2. package/dist/components.d.ts +6 -6
  3. package/dist/components.js +1 -1
  4. package/dist/components.js.map +1 -1
  5. package/dist/index.d.ts +9 -9
  6. package/dist/internal/deferred-joined-stream.js +11 -5
  7. package/dist/internal/deferred-joined-stream.js.map +1 -1
  8. package/dist/internal/field-types.d.ts +12 -5
  9. package/dist/internal/filters.js +1 -1
  10. package/dist/internal/filters.js.map +1 -1
  11. package/dist/internal/guards.d.ts +2 -2
  12. package/dist/internal/guards.js +5 -0
  13. package/dist/internal/guards.js.map +1 -1
  14. package/dist/internal/properties.d.ts +2 -2
  15. package/dist/internal/properties.js +24 -13
  16. package/dist/internal/properties.js.map +1 -1
  17. package/dist/internal/prototypes.d.ts +13 -5
  18. package/dist/internal/prototypes.js +21 -9
  19. package/dist/internal/prototypes.js.map +1 -1
  20. package/dist/internal/read-properties.d.ts +2 -2
  21. package/dist/internal/read-properties.js +8 -5
  22. package/dist/internal/read-properties.js.map +1 -1
  23. package/dist/internal/tables.d.ts +6 -7
  24. package/dist/internal/tables.js +1 -3
  25. package/dist/internal/tables.js.map +1 -1
  26. package/dist/internal/validation.d.ts +3 -3
  27. package/dist/internal/validation.js +32 -19
  28. package/dist/internal/validation.js.map +1 -1
  29. package/dist/metadata.d.ts +1 -1
  30. package/dist/tests/components/filter_comparisons.test.js +10 -0
  31. package/dist/tests/components/filter_comparisons.test.js.map +1 -1
  32. package/dist/tests/components/parse_body.test.js +1 -22
  33. package/dist/tests/components/parse_body.test.js.map +1 -1
  34. package/dist/tests/components/parse_body.untyped.spec.d.ts +1 -0
  35. package/dist/tests/components/parse_body.untyped.spec.js +42 -0
  36. package/dist/tests/components/parse_body.untyped.spec.js.map +1 -0
  37. package/dist/tests/components/stored_row.test.d.ts +1 -0
  38. package/dist/tests/components/stored_row.test.js +117 -0
  39. package/dist/tests/components/stored_row.test.js.map +1 -0
  40. package/dist/tests/internal/controller-fields.test.js +8 -6
  41. package/dist/tests/internal/controller-fields.test.js.map +1 -1
  42. package/docs/3.routes.md +4 -2
  43. package/docs/6.listable.md +2 -0
  44. package/package.json +3 -3
package/README.md CHANGED
@@ -1,16 +1,19 @@
1
- # `@antelopejs/interface-data-api`
1
+ <a href="https://github.com/AntelopeJS/antelopejs"><img data-illustration src="./.github/readme/strip.svg" width="100%" alt="INTERFACE · DATA API: part of AntelopeJS, hexagonal architecture beyond your own code. A glowing button reads Star AntelopeJS."></a>
2
2
 
3
3
  <div align="center">
4
- <a href="https://www.npmjs.com/package/@antelopejs/interface-data-api"><img data-illustration alt="npm" src="https://img.shields.io/npm/v/@antelopejs/interface-data-api?style=for-the-badge&labelColor=000000&color=000000"></a>
5
- <a href="./LICENSE"><img data-illustration alt="License" src="https://img.shields.io/npm/l/@antelopejs/interface-data-api?style=for-the-badge&labelColor=000000&color=000000"></a>
6
- <a href="https://discord.gg/g4pFt6eXqu"><img data-illustration alt="Discord" src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000"></a>
7
- <a href="https://interfaces.antelopejs.com/docs/data-api"><img data-illustration alt="Docs" src="https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000"></a>
4
+
5
+ # `@antelopejs/interface-data-api`
6
+
7
+ <a href="https://www.npmjs.com/package/@antelopejs/interface-data-api"><img data-illustration alt="npm" src="https://img.shields.io/npm/v/@antelopejs/interface-data-api?style=for-the-badge&labelColor=000000&color=000000"></a> <a href="./LICENSE"><img data-illustration alt="License" src="https://img.shields.io/npm/l/@antelopejs/interface-data-api?style=for-the-badge&labelColor=000000&color=000000"></a> <a href="https://discord.gg/g4pFt6eXqu"><img data-illustration alt="Discord" src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000"></a> <a href="https://interfaces.antelopejs.com/docs/data-api"><img data-illustration alt="Documentation" src="https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000"></a> <a href="https://github.com/AntelopeJS/antelopejs"><img data-illustration alt="Star AntelopeJS" src="https://img.shields.io/github/stars/AntelopeJS/antelopejs?label=Star%20AntelopeJS&style=for-the-badge&labelColor=000000&color=000000&logo=github"></a>
8
+
9
+ **CRUD REST endpoints generated from a database table for AntelopeJS, with access rules, validation and pagination.**
10
+
11
+ [Documentation](https://interfaces.antelopejs.com/docs/data-api) · [Implementations](#implementations) · [All interfaces and providers](https://github.com/AntelopeJS/antelopejs#ecosystem)
12
+
8
13
  </div>
9
14
 
10
15
  The AntelopeJS interface that generates CRUD REST endpoints from a database table. Declare a data controller and its fields, and it serves the `get`, `list`, `new`, `edit` and `delete` routes with access rules, validation and pagination.
11
16
 
12
- Part of [AntelopeJS](https://github.com/AntelopeJS/antelopejs). Used by [AntelopeJS DMS](https://github.com/AntelopeJS/dms), the open-source back office for your PostgreSQL, MongoDB or RethinkDB database.
13
-
14
17
  ## What it offers
15
18
 
16
19
  - `DataController` and `@RegisterDataController()` turn a table class into a controller with the default routes you pick from `DefaultRoutes`.
@@ -145,6 +148,24 @@ pnpm lint
145
148
  pnpm test
146
149
  ```
147
150
 
151
+ ## Part of AntelopeJS
152
+
153
+ This package belongs to [AntelopeJS](https://github.com/AntelopeJS/antelopejs), the TypeScript framework where modules depend on contracts and the application chooses the provider. The open-source back office [AntelopeJS DMS](https://github.com/AntelopeJS/dms) is built on it.
154
+
155
+ <!-- antelopejs-framework-modules:start -->
156
+
157
+ | Area | Contracts | Providers |
158
+ | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
159
+ | API | [`interface-api`](https://github.com/AntelopeJS/interface-api) · [`interface-api-util`](https://github.com/AntelopeJS/interface-api-util) · **`interface-data-api`** | [`api`](https://github.com/AntelopeJS/api) |
160
+ | Auth | [`interface-auth`](https://github.com/AntelopeJS/interface-auth) | [`auth-jwt`](https://github.com/AntelopeJS/auth-jwt) |
161
+ | Database | [`interface-database`](https://github.com/AntelopeJS/interface-database) · [`interface-database-decorators`](https://github.com/AntelopeJS/interface-database-decorators) · [`interface-database-catalog`](https://github.com/AntelopeJS/interface-database-catalog) · [`interface-mongodb`](https://github.com/AntelopeJS/interface-mongodb) · [`interface-rethinkdb`](https://github.com/AntelopeJS/interface-rethinkdb) | [`postgres`](https://github.com/AntelopeJS/postgres) · [`mongodb`](https://github.com/AntelopeJS/mongodb) · [`rethinkdb`](https://github.com/AntelopeJS/rethinkdb) |
162
+ | Redis | [`interface-redis`](https://github.com/AntelopeJS/interface-redis) · [`interface-redis-scheduler`](https://github.com/AntelopeJS/interface-redis-scheduler) | [`redis`](https://github.com/AntelopeJS/redis) |
163
+ | Email | [`interface-email`](https://github.com/AntelopeJS/interface-email) | [`nodemailer`](https://github.com/AntelopeJS/nodemailer) · [`brevo`](https://github.com/AntelopeJS/brevo) |
164
+ | File storage | [`interface-file-storage`](https://github.com/AntelopeJS/interface-file-storage) | [`file-storage-local`](https://github.com/AntelopeJS/file-storage-local) · [`file-storage-s3`](https://github.com/AntelopeJS/file-storage-s3) |
165
+ | Payments | [`interface-payment`](https://github.com/AntelopeJS/interface-payment) · [`interface-subscriptions`](https://github.com/AntelopeJS/interface-subscriptions) · [`interface-stripe`](https://github.com/AntelopeJS/interface-stripe) | [`stripe`](https://github.com/AntelopeJS/stripe) · [`mollie`](https://github.com/AntelopeJS/mollie) · [`checkout-com`](https://github.com/AntelopeJS/checkout-com) · [`payment-subscriptions`](https://github.com/AntelopeJS/payment-subscriptions) |
166
+
167
+ <!-- antelopejs-framework-modules:end -->
168
+
148
169
  ## License
149
170
 
150
171
  [Apache-2.0](./LICENSE)
@@ -1,7 +1,7 @@
1
1
  import { type RequestContext } from "@antelopejs/interface-api";
2
2
  import type { Datum, SchemaInstance, Stream, Table, ValueProxy } from "@antelopejs/interface-database";
3
3
  import "@antelopejs/interface-database";
4
- import { type DataAPIMeta, type DataControllerCallbackWithOptions, type DataControllerInstance, type FieldFilter, type FieldValues, type RowFields } from "./metadata";
4
+ import { type DataAPIMeta, type DataControllerCallbackWithOptions, type DataControllerInstance, type FieldFilter, type FieldValues, type StoredRow } from "./metadata";
5
5
  import * as extractors from "./internal/extractors";
6
6
  import * as tables from "./internal/tables";
7
7
  export declare namespace Parameters {
@@ -93,7 +93,7 @@ export declare namespace Query {
93
93
  function Joined(db: SchemaInstance<any>, meta: DataAPIMeta, query: Datum<any>, only?: Set<string>): Datum<any>;
94
94
  function Computed(db: SchemaInstance<any>, meta: DataAPIMeta, query: Stream<any>, only?: Set<string>): Stream<any>;
95
95
  function Computed(db: SchemaInstance<any>, meta: DataAPIMeta, query: Datum<any>, only?: Set<string>): Datum<any>;
96
- function ReadProperties(obj: DataControllerInstance, meta: DataAPIMeta, dbData: RowFields, action?: string, onlyList?: boolean): Promise<RowFields>;
96
+ function ReadProperties(obj: DataControllerInstance, meta: DataAPIMeta, dbData: StoredRow, action?: string, onlyList?: boolean): Promise<StoredRow>;
97
97
  /**
98
98
  * Writes the writable fields of `bodyData` into a database row.
99
99
  *
@@ -104,7 +104,7 @@ export declare namespace Query {
104
104
  * row and only their setters run: an absent field keeps its stored value,
105
105
  * `null` clears it.
106
106
  */
107
- function WriteProperties(obj: DataControllerInstance, meta: DataAPIMeta, bodyData: FieldValues, action?: string, existingDBData?: RowFields): Promise<RowFields>;
107
+ function WriteProperties(obj: DataControllerInstance, meta: DataAPIMeta, bodyData: FieldValues, action?: string, existingDBData?: StoredRow): Promise<StoredRow>;
108
108
  function Get<T extends object>(table: Table<T>, id: string | ValueProxy<string>, index?: string): import("@antelopejs/interface-database").SingleSelection<T> | Datum<T | null>;
109
109
  interface ListOptions {
110
110
  /**
@@ -213,8 +213,8 @@ export declare namespace Validation {
213
213
  * untouched keeps its stored locked value: read while locked it would be
214
214
  * `undefined`, and locking it again would store that over it.
215
215
  */
216
- function Lock(obj: DataControllerInstance, meta: DataAPIMeta, data: RowFields): void;
217
- function Unlock(obj: DataControllerInstance, meta: DataAPIMeta, dbData: RowFields): void;
216
+ function Lock(obj: DataControllerInstance, meta: DataAPIMeta, data: StoredRow): void;
217
+ function Unlock(obj: DataControllerInstance, meta: DataAPIMeta, dbData: StoredRow): void;
218
218
  function UnlockRequest<T extends {}, K extends keyof T>(obj: DataControllerInstance, meta: DataAPIMeta, row: ValueProxy<T>, field: K): ValueProxy<T[K]>;
219
- function ClearInternal(meta: DataAPIMeta, obj: RowFields | RowFields[]): void;
219
+ function ClearInternal(meta: DataAPIMeta, obj: StoredRow | StoredRow[]): void;
220
220
  }
@@ -158,7 +158,7 @@ var Query;
158
158
  (function (Query) {
159
159
  function GetModel(obj, meta) {
160
160
  (0, interface_api_util_1.assert)(meta.modelKey, 500, "Missing model key.");
161
- const model = (0, prototypes_1.fieldsOf)(obj)[meta.modelKey];
161
+ const [model] = (0, prototypes_1.controllerField)(obj, meta.modelKey);
162
162
  (0, interface_api_util_1.assert)(tables.isModelInstance(model), 500, "The controller holds no model.");
163
163
  return model;
164
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { type Class, type ClassDecorator } from "@antelopejs/interface-core/decorators";
2
2
  import { type ControllerClass, type RequestContext } from "@antelopejs/interface-api";
3
3
  import { Parameters, Validation } from "./components";
4
- import { type DataControllerCallback, type DataControllerCallbackWithOptions, type DataControllerDef, type DataControllerInstance, type ExtractDefCallbacks, type RowFields } from "./metadata";
4
+ import { type DataControllerCallback, type DataControllerCallbackWithOptions, type DataControllerDef, type DataControllerInstance, type ExtractDefCallbacks, type StoredRow } from "./metadata";
5
5
  export { type DataControllerCallback, type DataControllerCallbackWithOptions, type DataControllerDef, type DataControllerInstance, type ExtractCallback, type ExtractDefCallbacks, GetDataControllerMeta, } from "./metadata";
6
6
  declare abstract class TableHolder<C extends Class> {
7
7
  table: InstanceType<C>;
@@ -10,9 +10,9 @@ export declare function DataController<C extends Class, P extends DataController
10
10
  export declare const RegisterDataController: () => ClassDecorator<ControllerClass>;
11
11
  export declare namespace DefaultRoutes {
12
12
  /** Receives the loaded, unlocked model before readable fields are selected. Throw to deny the read. */
13
- export type GetGuard = (this: DataControllerInstance, ctx: RequestContext, current: RowFields, params: Parameters.GetParameters) => void | Promise<void>;
13
+ export type GetGuard = (this: DataControllerInstance, ctx: RequestContext, current: StoredRow, params: Parameters.GetParameters) => void | Promise<void>;
14
14
  function listRows(this: DataControllerInstance, reqCtx: RequestContext, params: Parameters.ListParameters): Promise<{
15
- results: RowFields[];
15
+ results: StoredRow[];
16
16
  total: number;
17
17
  offset: number;
18
18
  limit: number;
@@ -20,9 +20,9 @@ export declare namespace DefaultRoutes {
20
20
  function newRow(this: DataControllerInstance, _reqCtx: RequestContext, params: Parameters.NewParameters, body: Validation.WrittenBody): Promise<{
21
21
  _id: string;
22
22
  }>;
23
- function editRow(this: DataControllerInstance, _reqCtx: RequestContext, params: Parameters.EditParameters, body: Validation.WrittenBody): Promise<RowFields>;
23
+ function editRow(this: DataControllerInstance, _reqCtx: RequestContext, params: Parameters.EditParameters, body: Validation.WrittenBody): Promise<StoredRow>;
24
24
  function deleteRows(this: DataControllerInstance, _reqCtx: RequestContext, params: Parameters.DeleteParameters): Promise<number>;
25
- export const Get: DataControllerCallback<Parameters.GetParameters, RowFields, [
25
+ export const Get: DataControllerCallback<Parameters.GetParameters, StoredRow, [
26
26
  RequestContext,
27
27
  Parameters.GetParameters
28
28
  ]>;
@@ -33,7 +33,7 @@ export declare namespace DefaultRoutes {
33
33
  * The guard must treat the model as read-only; it includes non-readable fields
34
34
  * and the normal Get joined/computed/foreign data, not the response DTO.
35
35
  */
36
- export function WithGetGuard(guard: GetGuard): DataControllerCallback<Parameters.GetParameters, RowFields, [
36
+ export function WithGetGuard(guard: GetGuard): DataControllerCallback<Parameters.GetParameters, StoredRow, [
37
37
  RequestContext,
38
38
  Parameters.GetParameters
39
39
  ]>;
@@ -60,9 +60,9 @@ export declare namespace DefaultRoutes {
60
60
  Parameters.DeleteParameters
61
61
  ]>;
62
62
  export const All: {
63
- readonly get: DataControllerCallback<Parameters.GetParameters, RowFields, [RequestContext, Parameters.GetParameters]>;
63
+ readonly get: DataControllerCallback<Parameters.GetParameters, StoredRow, [RequestContext, Parameters.GetParameters]>;
64
64
  readonly list: DataControllerCallback<Parameters.ListParameters, {
65
- results: RowFields[];
65
+ results: StoredRow[];
66
66
  total: number;
67
67
  offset: number;
68
68
  limit: number;
@@ -70,7 +70,7 @@ export declare namespace DefaultRoutes {
70
70
  readonly new: DataControllerCallback<Parameters.NewParameters, {
71
71
  _id: string;
72
72
  }, [RequestContext, Parameters.NewParameters, Validation.WrittenBody]>;
73
- readonly edit: DataControllerCallback<Parameters.EditParameters, RowFields, [RequestContext, Parameters.EditParameters, Validation.WrittenBody]>;
73
+ readonly edit: DataControllerCallback<Parameters.EditParameters, StoredRow, [RequestContext, Parameters.EditParameters, Validation.WrittenBody]>;
74
74
  readonly delete: DataControllerCallback<Parameters.DeleteParameters, number, [RequestContext, Parameters.DeleteParameters]>;
75
75
  };
76
76
  export function WithOptions<O, R, A extends unknown[]>(callback: DataControllerCallback<O, R, A> | DataControllerCallbackWithOptions<O, R, A>, options?: Partial<O>, endpoint?: string): DataControllerCallbackWithOptions<O, R, A>;
@@ -17,6 +17,14 @@ const joined_1 = require("./joined");
17
17
  */
18
18
  class DeferredJoinedStream extends interface_database_1.Stream {
19
19
  }
20
+ /**
21
+ * `stream` viewed as its methods by name, read and written only under the
22
+ * names {@link wireDeferredJoinedStream} lists.
23
+ */
24
+ function operationsOf(stream) {
25
+ // SAFETY: callers index the result only with a name wireDeferredJoinedStream lists (an own method name of Stream.prototype, or run, cursor or build), each a method on the prototype chain of every Stream that returns one of Stream's member return types, and they write only such an operation under such a name.
26
+ return stream;
27
+ }
20
28
  function materializeDeferredJoin(stream) {
21
29
  const { db, meta, names, raw } = stream.deferredJoin;
22
30
  return (0, joined_1.Joined)(db, meta, raw, names);
@@ -75,9 +83,8 @@ function fieldAggregateDeferredJoinOperation(name, bareCallOnRaw) {
75
83
  }
76
84
  function forwardingDeferredJoinOperation(name) {
77
85
  return function (...args) {
78
- // SAFETY: name comes from wireDeferredJoinedStream, which lists the own method names of Stream.prototype plus run, cursor and build, all present on any Stream, and Joined returns a Stream for the raw Stream it is given.
79
- // oxlint-disable-next-line typescript/no-unsafe-return -- the method is looked up by a runtime name on a Stream, which TypeScript cannot relate to a signature; Reflect.apply and a typed lookup were tried and moved the finding to no-reflect-get, no-reflect-apply and no-unknown-returns
80
- return materializeDeferredJoin(this)[name](...args);
86
+ const materialized = materializeDeferredJoin(this);
87
+ return operationsOf(materialized)[name].apply(materialized, args);
81
88
  };
82
89
  }
83
90
  /** The operation a {@link DeferredJoinedStream} installs for a stream method. */
@@ -103,8 +110,7 @@ function wireDeferredJoinedStream() {
103
110
  for (const name of operationNames) {
104
111
  const factory = DEFERRED_JOIN_OPERATION_FACTORIES.get(name) ??
105
112
  forwardingDeferredJoinOperation;
106
- // SAFETY: name is a method name of Stream.prototype (or run, cursor, build), so the key is a writable data property on DeferredJoinedStream's prototype chain and assigning a function to it cannot throw; each installed operation takes the arguments of the Stream method it replaces.
107
- DeferredJoinedStream.prototype[name] = factory(name);
113
+ operationsOf(DeferredJoinedStream.prototype)[name] = factory(name);
108
114
  }
109
115
  }
110
116
  wireDeferredJoinedStream();
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-joined-stream.js","sourceRoot":"","sources":["../../src/internal/deferred-joined-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deferred-joined-stream.js","sourceRoot":"","sources":["../../src/internal/deferred-joined-stream.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  import type { RequestContext } from "@antelopejs/interface-api";
3
3
  import type { Class } from "@antelopejs/interface-core/decorators";
4
4
  import type { Query, SchemaInstance, ValueProxy, ValueProxyOrValue } from "@antelopejs/interface-database";
5
+ import type { WriteValue } from "@antelopejs/interface-database/common";
5
6
  import type { Table } from "@antelopejs/interface-database-decorators";
6
7
  import type { AccessMode, DataAPIMeta } from "../metadata";
7
8
  /**
@@ -25,12 +26,18 @@ export interface FieldValues {
25
26
  [field: string]: FieldValue | undefined;
26
27
  }
27
28
  /**
28
- * The fields of a table row a route holds, by name. The table class decides
29
- * what they hold: a relation holds a row instance, and a getter's result is
30
- * what the getter returned. Read a field through a guard.
29
+ * A value a table row holds: one a database stores, or the row instance a
30
+ * relation resolves to.
31
31
  */
32
- export interface RowFields {
33
- [field: string]: unknown;
32
+ export type StoredValue = WriteValue | Table | StoredRow | readonly StoredValue[];
33
+ /**
34
+ * The fields of a table row a route holds, by name: the stored values, the
35
+ * relations resolved to row instances, and the results of the getters a read
36
+ * selects. A getter, a controller default or a setter that leaves a `bigint`,
37
+ * a `symbol` or a function in a row is refused with 500.
38
+ */
39
+ export interface StoredRow {
40
+ [field: string]: StoredValue;
34
41
  }
35
42
  /** Parse outcome accepting the field value, carrying the value to write. */
36
43
  export interface FieldParseSuccess {
@@ -12,7 +12,7 @@ function FilterValuesOf(filter) {
12
12
  return isFilterList(filter) ? filter : [filter];
13
13
  }
14
14
  function parseFilter(searchVal) {
15
- const match = searchVal.match(/([^:]+):(.*)/);
15
+ const match = searchVal.match(/^:*([^:]+):(.*)/);
16
16
  return match ? [match[2], match[1]] : [searchVal, "eq"];
17
17
  }
18
18
  function copyFilter(filter) {
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/internal/filters.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAStC,wCAEC;AAED,kCAGC;AAED,gCAGC;AAjBD,SAAS,YAAY,CAAC,MAAmB;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc,CAAC,MAAmB;IAChD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,WAAW,CAAC,SAAiB;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,UAAU,CAAC,MAAmB;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAe,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/internal/filters.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAStC,wCAEC;AAED,kCAGC;AAED,gCAGC;AAjBD,SAAS,YAAY,CAAC,MAAmB;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc,CAAC,MAAmB;IAChD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,WAAW,CAAC,SAAiB;IAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,UAAU,CAAC,MAAmB;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAe,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /** @internal @packageDocumentation */
2
2
  import type { Class } from "@antelopejs/interface-core/decorators";
3
3
  import type { WriteDocument, WriteValue } from "@antelopejs/interface-database/common";
4
- import type { FieldValue, FieldValues, RowFields } from "./field-types";
4
+ import type { FieldValue, FieldValues, StoredRow } from "./field-types";
5
5
  /** Whether a value is a string. */
6
6
  export declare function isString(value: unknown): value is string;
7
7
  /** Whether `typeof` calls a value an object and it is not `null`: arrays qualify, functions do not (the predicate `object` still types a function as one). */
@@ -36,4 +36,4 @@ export declare function isFieldValues(value: unknown): value is FieldValues;
36
36
  */
37
37
  export declare function isWriteValue(value: unknown): value is WriteValue;
38
38
  /** Whether every own field of a row holds a {@link WriteValue}. */
39
- export declare function isWriteDocument(row: RowFields): row is WriteDocument;
39
+ export declare function isWriteDocument(row: StoredRow): row is WriteDocument;
@@ -101,6 +101,11 @@ function isWriteValue(value) {
101
101
  continue;
102
102
  if (!isObject(current))
103
103
  return false;
104
+ if (current instanceof Date)
105
+ continue;
106
+ const bigintView = current instanceof BigInt64Array || current instanceof BigUint64Array;
107
+ if (ArrayBuffer.isView(current) && !bigintView)
108
+ continue;
104
109
  if (seen.has(current))
105
110
  continue;
106
111
  seen.add(current);
@@ -1 +1 @@
1
- {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/internal/guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/internal/guards.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /** @internal @packageDocumentation */
2
2
  import type { Query } from "../components";
3
- import type { DataAPIMeta, DataControllerInstance, RowFields } from "../metadata";
4
- export declare function WriteProperties(obj: DataControllerInstance, meta: DataAPIMeta, bodyData: Parameters<typeof Query.WriteProperties>[2], action?: string, existingDBData?: Parameters<typeof Query.WriteProperties>[4]): RowFields;
3
+ import type { DataAPIMeta, DataControllerInstance, StoredRow } from "../metadata";
4
+ export declare function WriteProperties(obj: DataControllerInstance, meta: DataAPIMeta, bodyData: Parameters<typeof Query.WriteProperties>[2], action?: string, existingDBData?: Parameters<typeof Query.WriteProperties>[4]): StoredRow;
@@ -2,6 +2,8 @@
2
2
  /** @internal @packageDocumentation */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.WriteProperties = WriteProperties;
5
+ const interface_api_util_1 = require("@antelopejs/interface-api-util");
6
+ const guards_1 = require("./guards");
5
7
  const meta_records_1 = require("./meta-records");
6
8
  const prototypes_1 = require("./prototypes");
7
9
  function writableInBody(writable, bodyData) {
@@ -10,16 +12,24 @@ function writableInBody(writable, bodyData) {
10
12
  setters: writable.setters.filter(([key]) => Object.hasOwn(bodyData, key)),
11
13
  };
12
14
  }
13
- function writeTargetDefaults(instance, meta, dbData) {
15
+ /**
16
+ * Writes the defaults the controller class declares for its decorated fields
17
+ * into `fields` and `dbData`.
18
+ */
19
+ function writeTargetDefaults(fields, meta, dbData) {
14
20
  const defaults = Object.entries(new meta.target());
15
21
  for (const [key, value] of defaults) {
16
- if (value !== undefined) {
17
- instance[key] = value;
18
- const field = (0, meta_records_1.ownEntry)(meta.fields, key);
19
- if (field) {
20
- dbData[field.dbName || key] = value;
21
- }
22
- }
22
+ const field = (0, meta_records_1.ownEntry)(meta.fields, key);
23
+ if (value === undefined || !field)
24
+ continue;
25
+ (0, interface_api_util_1.assert)((0, guards_1.isWriteValue)(value), 500, `The default of field '${key}' is a bigint, a symbol or a function, which no database stores`);
26
+ fields[key] = value;
27
+ dbData[field.dbName || key] = value;
28
+ }
29
+ }
30
+ function refuseUnstoredValues(dbData) {
31
+ for (const [key, value] of Object.entries(dbData)) {
32
+ (0, interface_api_util_1.assert)((0, guards_1.isWriteValue)(value), 500, `A setter wrote a bigint, a symbol or a function into field '${key}', which no database stores`);
23
33
  }
24
34
  }
25
35
  function WriteProperties(obj, meta, bodyData, action, existingDBData) {
@@ -27,22 +37,23 @@ function WriteProperties(obj, meta, bodyData, action, existingDBData) {
27
37
  const writable = existingDBData
28
38
  ? writableInBody(actionWritable, bodyData)
29
39
  : actionWritable;
30
- const instance = (0, prototypes_1.fieldsOf)({ ...obj });
40
+ const fields = {};
31
41
  const dbData = existingDBData || {};
32
42
  Object.setPrototypeOf(dbData, (0, prototypes_1.prototypeOf)(meta.tableClass));
33
43
  if (!existingDBData) {
34
- writeTargetDefaults(instance, meta, dbData);
44
+ writeTargetDefaults(fields, meta, dbData);
35
45
  }
36
46
  for (const [key, field] of writable.props) {
37
47
  const value = (0, meta_records_1.ownEntry)(bodyData, key);
38
- instance[key] = value;
48
+ fields[key] = value;
39
49
  dbData[field.dbName || key] = value;
40
50
  }
41
- instance.table = dbData;
42
- Object.setPrototypeOf(instance, (0, prototypes_1.prototypeOf)(meta.target));
51
+ fields.table = dbData;
52
+ const instance = (0, prototypes_1.controllerReceiver)(obj, meta.target, fields);
43
53
  for (const [key, field] of writable.setters) {
44
54
  field.desc?.set?.apply(instance, [(0, meta_records_1.ownEntry)(bodyData, key)]);
45
55
  }
56
+ refuseUnstoredValues(dbData);
46
57
  return dbData;
47
58
  }
48
59
  //# sourceMappingURL=properties.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../src/internal/properties.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAuCtC,0CA6BC;AA3DD,iDAA0C;AAC1C,6CAAqD;AAErD,SAAS,cAAc,CACrB,QAA8B,EAC9B,QAAqD;IAErD,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAmB,EACnB,IAAiB,EACjB,MAAiB;IAEjB,MAAM,QAAQ,GAAwB,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,MAAM,KAAK,GAAG,IAAA,uBAAQ,EAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACzC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAC7B,GAA2B,EAC3B,IAAiB,EACjB,QAAqD,EACrD,MAAe,EACf,cAA4D;IAE5D,MAAM,cAAc,GAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAChE,MAAM,QAAQ,GAAG,cAAc;QAC7B,CAAC,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC;QAC1C,CAAC,CAAC,cAAc,CAAC;IACnB,MAAM,QAAQ,GAAG,IAAA,qBAAQ,EAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IACtC,MAAM,MAAM,GAAc,cAAc,IAAI,EAAE,CAAC;IAC/C,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAA,wBAAW,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAA,uBAAQ,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;IACtC,CAAC;IACD,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAA,wBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAA,uBAAQ,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../../src/internal/properties.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,21 @@
1
1
  /** @internal @packageDocumentation */
2
2
  import type { Class } from "@antelopejs/interface-core/decorators";
3
3
  import type { DataControllerInstance } from "./controller-types";
4
- import type { RowFields } from "./field-types";
4
+ import type { StoredRow } from "./field-types";
5
5
  /**
6
- * A controller instance read by field name: an object answers every string key,
7
- * with `undefined` for a field it lacks, and inherited accessors run on the
8
- * instance, because this is the instance itself.
6
+ * The field `name` of a controller, as `@ModifierKey` and `@ModelReference`
7
+ * name it: read as a property of the controller itself, so an own field, an
8
+ * injected parameter and an inherited accessor all answer, and a field the
9
+ * controller lacks answers `undefined`. It comes as the one argument a keyed
10
+ * modifier takes.
9
11
  */
10
- export declare function fieldsOf(instance: DataControllerInstance): RowFields;
12
+ export declare function controllerField(controller: DataControllerInstance, name: string): [value: unknown];
13
+ /**
14
+ * Makes `fields` the `this` the getters and setters of `target` run on: it
15
+ * holds the fields a route reads or writes, and inherits a copy of the
16
+ * controller's own fields, which inherits the prototype of `target`.
17
+ */
18
+ export declare function controllerReceiver(controller: DataControllerInstance, target: Class, fields: StoredRow): StoredRow;
11
19
  /** The object the instances of a class inherit from. */
12
20
  export declare function prototypeOf(target: Class): object;
13
21
  /** The class an instance was built from, read from its prototype. */
@@ -1,23 +1,35 @@
1
1
  "use strict";
2
2
  /** @internal @packageDocumentation */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.fieldsOf = fieldsOf;
4
+ exports.controllerField = controllerField;
5
+ exports.controllerReceiver = controllerReceiver;
5
6
  exports.prototypeOf = prototypeOf;
6
7
  exports.classOf = classOf;
7
8
  const guards_1 = require("./guards");
8
9
  /**
9
- * A controller instance read by field name: an object answers every string key,
10
- * with `undefined` for a field it lacks, and inherited accessors run on the
11
- * instance, because this is the instance itself.
10
+ * The field `name` of a controller, as `@ModifierKey` and `@ModelReference`
11
+ * name it: read as a property of the controller itself, so an own field, an
12
+ * injected parameter and an inherited accessor all answer, and a field the
13
+ * controller lacks answers `undefined`. It comes as the one argument a keyed
14
+ * modifier takes.
12
15
  */
13
- function fieldsOf(instance) {
14
- if (!holdsFields(instance)) {
16
+ function controllerField(controller, name) {
17
+ if (!(0, guards_1.isObject)(controller)) {
15
18
  throw new TypeError("A data controller must be an object.");
16
19
  }
17
- return instance;
20
+ // SAFETY: the controller is an object (checked above), so reading any string key is an ordinary property read that runs inherited accessors and answers undefined for a missing field; the assertion types the runtime name a decorator recorded as keyof object, which is never, only so TypeScript lets the controller be indexed; the never-typed value is widened to unknown by this function's declared return type, which Query.GetModel parses with isModelInstance and the keyed modifiers take as the [key: unknown] they declare.
21
+ return [controller[name]];
18
22
  }
19
- function holdsFields(instance) {
20
- return (0, guards_1.isObject)(instance);
23
+ /**
24
+ * Makes `fields` the `this` the getters and setters of `target` run on: it
25
+ * holds the fields a route reads or writes, and inherits a copy of the
26
+ * controller's own fields, which inherits the prototype of `target`.
27
+ */
28
+ function controllerReceiver(controller, target, fields) {
29
+ const controllerFields = { ...controller };
30
+ Object.setPrototypeOf(controllerFields, prototypeOf(target));
31
+ Object.setPrototypeOf(fields, controllerFields);
32
+ return fields;
21
33
  }
22
34
  /** The object the instances of a class inherit from. */
23
35
  function prototypeOf(target) {
@@ -1 +1 @@
1
- {"version":3,"file":"prototypes.js","sourceRoot":"","sources":["../../src/internal/prototypes.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAatC,4BAKC;AAOD,kCAMC;AAGD,0BAMC;AAlCD,qCAA6C;AAE7C;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,QAAgC;IACvD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,QAAgC;IACnD,OAAO,IAAA,iBAAQ,EAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,wDAAwD;AACxD,SAAgB,WAAW,CAAC,MAAa;IACvC,MAAM,SAAS,GAAY,MAAM,CAAC,SAAS,CAAC;IAC5C,IAAI,CAAC,IAAA,iBAAQ,EAAC,SAAS,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qEAAqE;AACrE,SAAgB,OAAO,CAAC,QAAgC;IACtD,MAAM,SAAS,GAAY,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAA,iBAAQ,EAAC,SAAS,CAAC,IAAI,CAAC,IAAA,gBAAO,EAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,SAAS,CAAC,WAAW,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"prototypes.js","sourceRoot":"","sources":["../../src/internal/prototypes.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAetC,0CASC;AAOD,gDASC;AAGD,kCAMC;AAGD,0BAMC;AApDD,qCAA6C;AAE7C;;;;;;GAMG;AACH,SAAgB,eAAe,CAC7B,UAAkC,EAClC,IAAY;IAEZ,IAAI,CAAC,IAAA,iBAAQ,EAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC9D,CAAC;IACD,4gBAA4gB;IAC5gB,OAAO,CAAC,UAAU,CAAC,IAAoC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAChC,UAAkC,EAClC,MAAa,EACb,MAAiB;IAEjB,MAAM,gBAAgB,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;IAC3C,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wDAAwD;AACxD,SAAgB,WAAW,CAAC,MAAa;IACvC,MAAM,SAAS,GAAY,MAAM,CAAC,SAAS,CAAC;IAC5C,IAAI,CAAC,IAAA,iBAAQ,EAAC,SAAS,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qEAAqE;AACrE,SAAgB,OAAO,CAAC,QAAgC;IACtD,MAAM,SAAS,GAAY,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAA,iBAAQ,EAAC,SAAS,CAAC,IAAI,CAAC,IAAA,gBAAO,EAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,SAAS,CAAC,WAAW,CAAC;AAC/B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /** @internal @packageDocumentation */
2
- import type { DataAPIMeta, DataControllerInstance, RowFields } from "../metadata";
2
+ import type { DataAPIMeta, DataControllerInstance, StoredRow } from "../metadata";
3
3
  /** Which fields a read leaves out. */
4
4
  interface ReadFilter {
5
5
  /** Leaves out the fields that no list mode lists. */
@@ -7,5 +7,5 @@ interface ReadFilter {
7
7
  /** Leaves out the getters that this list mode does not list. */
8
8
  listMode?: string;
9
9
  }
10
- export declare function ReadProperties(obj: DataControllerInstance, meta: DataAPIMeta, dbData: RowFields, action?: string, { onlyList, listMode }?: ReadFilter): Promise<RowFields>;
10
+ export declare function ReadProperties(obj: DataControllerInstance, meta: DataAPIMeta, dbData: StoredRow, action?: string, { onlyList, listMode }?: ReadFilter): Promise<StoredRow>;
11
11
  export {};