velocious 1.0.405 → 1.0.407

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 (29) hide show
  1. package/README.md +1 -0
  2. package/build/src/database/query/index.d.ts +16 -2
  3. package/build/src/database/query/index.d.ts.map +1 -1
  4. package/build/src/database/query/index.js +9 -3
  5. package/build/src/database/query/model-class-query.d.ts +18 -0
  6. package/build/src/database/query/model-class-query.d.ts.map +1 -1
  7. package/build/src/database/query/model-class-query.js +58 -2
  8. package/build/src/database/query/preloader/belongs-to.d.ts +22 -1
  9. package/build/src/database/query/preloader/belongs-to.d.ts.map +1 -1
  10. package/build/src/database/query/preloader/belongs-to.js +117 -63
  11. package/build/src/database/query/preloader/has-many.d.ts +17 -1
  12. package/build/src/database/query/preloader/has-many.d.ts.map +1 -1
  13. package/build/src/database/query/preloader/has-many.js +59 -27
  14. package/build/src/database/query/preloader/has-one.d.ts +5 -1
  15. package/build/src/database/query/preloader/has-one.d.ts.map +1 -1
  16. package/build/src/database/query/preloader/has-one.js +23 -7
  17. package/build/src/database/query/preloader/selection.d.ts +87 -0
  18. package/build/src/database/query/preloader/selection.d.ts.map +1 -0
  19. package/build/src/database/query/preloader/selection.js +132 -0
  20. package/build/src/database/query/preloader.d.ts +22 -1
  21. package/build/src/database/query/preloader.d.ts.map +1 -1
  22. package/build/src/database/query/preloader.js +44 -7
  23. package/build/src/database/record/index.d.ts +22 -0
  24. package/build/src/database/record/index.d.ts.map +1 -1
  25. package/build/src/database/record/index.js +26 -1
  26. package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
  27. package/build/src/http-server/client/websocket-session.js +17 -3
  28. package/build/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +1 -1
@@ -0,0 +1,132 @@
1
+ // @ts-check
2
+ const IDENTIFIER_REGEX = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
3
+ /**
4
+ * Encapsulates the column selection and idempotency rules for preloading.
5
+ *
6
+ * Two per-target-model-name maps drive the behaviour, both keyed by the target
7
+ * model name (e.g. `"Account"`):
8
+ *
9
+ * - `preloadSelects` (from `.select({Account: ["id"]})`) narrows the columns
10
+ * loaded for that target to the listed attributes (plus the primary/foreign
11
+ * keys needed to map results back to their parents).
12
+ * - `preloadSelectsExtra` (from `.selectsExtra({Account: ["..."]})`) keeps the
13
+ * default `SELECT *` columns and loads the listed extra selects in addition.
14
+ *
15
+ * `force` re-loads relationships even when they are already preloaded.
16
+ */
17
+ export default class VelociousDatabaseQueryPreloaderSelection {
18
+ /**
19
+ * @param {object} [args] - Options object.
20
+ * @param {Record<string, string[]>} [args.preloadSelects] - Narrowing selects keyed by target model name.
21
+ * @param {Record<string, string[]>} [args.preloadSelectsExtra] - Extra selects keyed by target model name.
22
+ * @param {boolean} [args.force] - Whether to re-load already-preloaded relationships.
23
+ */
24
+ constructor({ preloadSelects = {}, preloadSelectsExtra = {}, force = false } = {}) {
25
+ this.preloadSelects = preloadSelects;
26
+ this.preloadSelectsExtra = preloadSelectsExtra;
27
+ this.force = force;
28
+ }
29
+ /** @returns {boolean} - Whether already-preloaded relationships should still be re-loaded. */
30
+ getForce() { return this.force; }
31
+ /**
32
+ * @param {typeof import("../../record/index.js").default} targetModelClass - Target model class.
33
+ * @returns {string[] | undefined} - Narrowing select attributes for the class, if any.
34
+ */
35
+ _narrowingFor(targetModelClass) {
36
+ return this.preloadSelects[targetModelClass.getModelName()];
37
+ }
38
+ /**
39
+ * @param {typeof import("../../record/index.js").default} targetModelClass - Target model class.
40
+ * @returns {string[] | undefined} - Extra select attributes/expressions for the class, if any.
41
+ */
42
+ _extraFor(targetModelClass) {
43
+ return this.preloadSelectsExtra[targetModelClass.getModelName()];
44
+ }
45
+ /**
46
+ * Apply the configured select clauses to a target query.
47
+ * @template {import("../model-class-query.js").default} T
48
+ * @param {object} args - Options object.
49
+ * @param {T} args.query - Target query to apply selects to.
50
+ * @param {typeof import("../../record/index.js").default} args.targetModelClass - Target model class.
51
+ * @param {string[]} args.mappingColumns - Columns that must always be loaded so results can be mapped back to parents (primary/foreign keys).
52
+ * @returns {T} - The query, with selects applied when a selection is configured.
53
+ */
54
+ applyToQuery({ query, targetModelClass, mappingColumns }) {
55
+ const narrowing = this._narrowingFor(targetModelClass);
56
+ const extra = this._extraFor(targetModelClass);
57
+ if (narrowing) {
58
+ const selects = [...new Set([...narrowing, ...mappingColumns, ...(extra || [])])];
59
+ return /** @type {T} */ (query.select(selects));
60
+ }
61
+ if (extra) {
62
+ const allColumns = `${query.driver.quoteTable(targetModelClass.tableName())}.*`;
63
+ return /** @type {T} */ (query.select([allColumns, ...extra]));
64
+ }
65
+ return query;
66
+ }
67
+ /**
68
+ * Whether an already-preloaded relationship's loaded target(s) satisfy the
69
+ * configured selection, so the relationship can be skipped. Returns false
70
+ * when `force` is set, when the relationship hasn't been preloaded, or when a
71
+ * required column is missing from a loaded target.
72
+ * @param {object} args - Options object.
73
+ * @param {import("../../record/instance-relationships/base.js").default} args.instanceRelationship - The source model's instance relationship.
74
+ * @param {typeof import("../../record/index.js").default} args.targetModelClass - Target model class.
75
+ * @param {string[]} args.mappingColumns - Primary/foreign key columns required for mapping.
76
+ * @returns {boolean} - Whether the relationship is already satisfied.
77
+ */
78
+ isSatisfied({ instanceRelationship, targetModelClass, mappingColumns }) {
79
+ if (this.force)
80
+ return false;
81
+ if (!instanceRelationship.getPreloaded())
82
+ return false;
83
+ const required = this._requiredColumnsFor({ targetModelClass, mappingColumns });
84
+ if (!required)
85
+ return false;
86
+ const loaded = instanceRelationship.getLoadedOrUndefined();
87
+ const targets = loaded === undefined ? [] : (Array.isArray(loaded) ? loaded : [loaded]);
88
+ for (const target of targets) {
89
+ for (const column of required) {
90
+ if (!target.hasLoadedColumn(column))
91
+ return false;
92
+ }
93
+ }
94
+ return true;
95
+ }
96
+ /**
97
+ * The set of columns that must be present on a loaded target for it to count
98
+ * as satisfied. Returns null when satisfaction can't be verified (an extra
99
+ * select is a raw SQL expression whose resulting column can't be derived), in
100
+ * which case the relationship is always re-loaded.
101
+ * @param {object} args - Options object.
102
+ * @param {typeof import("../../record/index.js").default} args.targetModelClass - Target model class.
103
+ * @param {string[]} args.mappingColumns - Primary/foreign key columns required for mapping.
104
+ * @returns {string[] | null} - Required column names, or null when unverifiable.
105
+ */
106
+ _requiredColumnsFor({ targetModelClass, mappingColumns }) {
107
+ const attributeMap = targetModelClass.getAttributeNameToColumnNameMap();
108
+ const narrowing = this._narrowingFor(targetModelClass);
109
+ const extra = this._extraFor(targetModelClass);
110
+ /** @type {string[]} */
111
+ const columns = [];
112
+ if (narrowing) {
113
+ for (const attribute of narrowing)
114
+ columns.push(attributeMap[attribute] || attribute);
115
+ for (const column of mappingColumns)
116
+ columns.push(column);
117
+ }
118
+ else {
119
+ for (const column of targetModelClass.getColumnNames())
120
+ columns.push(column);
121
+ }
122
+ if (extra) {
123
+ for (const entry of extra) {
124
+ if (!IDENTIFIER_REGEX.test(entry))
125
+ return null;
126
+ columns.push(attributeMap[entry] || entry);
127
+ }
128
+ }
129
+ return columns;
130
+ }
131
+ }
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3F1ZXJ5L3ByZWxvYWRlci9zZWxlY3Rpb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE1BQU0sZ0JBQWdCLEdBQUcsMEJBQTBCLENBQUE7QUFFbkQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sd0NBQXdDO0lBQzNEOzs7OztPQUtHO0lBQ0gsWUFBWSxFQUFDLGNBQWMsR0FBRyxFQUFFLEVBQUUsbUJBQW1CLEdBQUcsRUFBRSxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUMsR0FBRyxFQUFFO1FBQzdFLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQTtRQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQsOEZBQThGO0lBQzlGLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBRWhDOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxnQkFBZ0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxnQkFBZ0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLENBQUMsRUFBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFDO1FBQ3BELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFFOUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsU0FBUyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFFakYsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUNqRCxDQUFDO1FBRUQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sVUFBVSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFBO1lBRS9FLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsV0FBVyxDQUFDLEVBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFDO1FBQ2xFLElBQUksSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUM1QixJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUE7UUFFdEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFDLENBQUMsQ0FBQTtRQUU3RSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sS0FBSyxDQUFBO1FBRTNCLE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDMUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBRXZGLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO29CQUFFLE9BQU8sS0FBSyxDQUFBO1lBQ25ELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsbUJBQW1CLENBQUMsRUFBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUM7UUFDcEQsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsK0JBQStCLEVBQUUsQ0FBQTtRQUN2RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFDdEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBQzlDLHVCQUF1QjtRQUN2QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFFbEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLEtBQUssTUFBTSxTQUFTLElBQUksU0FBUztnQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQTtZQUNyRixLQUFLLE1BQU0sTUFBTSxJQUFJLGNBQWM7Z0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssTUFBTSxNQUFNLElBQUksZ0JBQWdCLENBQUMsY0FBYyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUUsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFBRSxPQUFPLElBQUksQ0FBQTtnQkFFOUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUE7WUFDNUMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuY29uc3QgSURFTlRJRklFUl9SRUdFWCA9IC9eW2EtekEtWl9dW2EtekEtWjAtOV9dKiQvXG5cbi8qKlxuICogRW5jYXBzdWxhdGVzIHRoZSBjb2x1bW4gc2VsZWN0aW9uIGFuZCBpZGVtcG90ZW5jeSBydWxlcyBmb3IgcHJlbG9hZGluZy5cbiAqXG4gKiBUd28gcGVyLXRhcmdldC1tb2RlbC1uYW1lIG1hcHMgZHJpdmUgdGhlIGJlaGF2aW91ciwgYm90aCBrZXllZCBieSB0aGUgdGFyZ2V0XG4gKiBtb2RlbCBuYW1lIChlLmcuIGBcIkFjY291bnRcImApOlxuICpcbiAqIC0gYHByZWxvYWRTZWxlY3RzYCAoZnJvbSBgLnNlbGVjdCh7QWNjb3VudDogW1wiaWRcIl19KWApIG5hcnJvd3MgdGhlIGNvbHVtbnNcbiAqICAgbG9hZGVkIGZvciB0aGF0IHRhcmdldCB0byB0aGUgbGlzdGVkIGF0dHJpYnV0ZXMgKHBsdXMgdGhlIHByaW1hcnkvZm9yZWlnblxuICogICBrZXlzIG5lZWRlZCB0byBtYXAgcmVzdWx0cyBiYWNrIHRvIHRoZWlyIHBhcmVudHMpLlxuICogLSBgcHJlbG9hZFNlbGVjdHNFeHRyYWAgKGZyb20gYC5zZWxlY3RzRXh0cmEoe0FjY291bnQ6IFtcIi4uLlwiXX0pYCkga2VlcHMgdGhlXG4gKiAgIGRlZmF1bHQgYFNFTEVDVCAqYCBjb2x1bW5zIGFuZCBsb2FkcyB0aGUgbGlzdGVkIGV4dHJhIHNlbGVjdHMgaW4gYWRkaXRpb24uXG4gKlxuICogYGZvcmNlYCByZS1sb2FkcyByZWxhdGlvbnNoaXBzIGV2ZW4gd2hlbiB0aGV5IGFyZSBhbHJlYWR5IHByZWxvYWRlZC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VRdWVyeVByZWxvYWRlclNlbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gW2FyZ3NdIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nW10+fSBbYXJncy5wcmVsb2FkU2VsZWN0c10gLSBOYXJyb3dpbmcgc2VsZWN0cyBrZXllZCBieSB0YXJnZXQgbW9kZWwgbmFtZS5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT59IFthcmdzLnByZWxvYWRTZWxlY3RzRXh0cmFdIC0gRXh0cmEgc2VsZWN0cyBrZXllZCBieSB0YXJnZXQgbW9kZWwgbmFtZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBbYXJncy5mb3JjZV0gLSBXaGV0aGVyIHRvIHJlLWxvYWQgYWxyZWFkeS1wcmVsb2FkZWQgcmVsYXRpb25zaGlwcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtwcmVsb2FkU2VsZWN0cyA9IHt9LCBwcmVsb2FkU2VsZWN0c0V4dHJhID0ge30sIGZvcmNlID0gZmFsc2V9ID0ge30pIHtcbiAgICB0aGlzLnByZWxvYWRTZWxlY3RzID0gcHJlbG9hZFNlbGVjdHNcbiAgICB0aGlzLnByZWxvYWRTZWxlY3RzRXh0cmEgPSBwcmVsb2FkU2VsZWN0c0V4dHJhXG4gICAgdGhpcy5mb3JjZSA9IGZvcmNlXG4gIH1cblxuICAvKiogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciBhbHJlYWR5LXByZWxvYWRlZCByZWxhdGlvbnNoaXBzIHNob3VsZCBzdGlsbCBiZSByZS1sb2FkZWQuICovXG4gIGdldEZvcmNlKCkgeyByZXR1cm4gdGhpcy5mb3JjZSB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7dHlwZW9mIGltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSB0YXJnZXRNb2RlbENsYXNzIC0gVGFyZ2V0IG1vZGVsIGNsYXNzLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nW10gfCB1bmRlZmluZWR9IC0gTmFycm93aW5nIHNlbGVjdCBhdHRyaWJ1dGVzIGZvciB0aGUgY2xhc3MsIGlmIGFueS5cbiAgICovXG4gIF9uYXJyb3dpbmdGb3IodGFyZ2V0TW9kZWxDbGFzcykge1xuICAgIHJldHVybiB0aGlzLnByZWxvYWRTZWxlY3RzW3RhcmdldE1vZGVsQ2xhc3MuZ2V0TW9kZWxOYW1lKCldXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi4vLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9IHRhcmdldE1vZGVsQ2xhc3MgLSBUYXJnZXQgbW9kZWwgY2xhc3MuXG4gICAqIEByZXR1cm5zIHtzdHJpbmdbXSB8IHVuZGVmaW5lZH0gLSBFeHRyYSBzZWxlY3QgYXR0cmlidXRlcy9leHByZXNzaW9ucyBmb3IgdGhlIGNsYXNzLCBpZiBhbnkuXG4gICAqL1xuICBfZXh0cmFGb3IodGFyZ2V0TW9kZWxDbGFzcykge1xuICAgIHJldHVybiB0aGlzLnByZWxvYWRTZWxlY3RzRXh0cmFbdGFyZ2V0TW9kZWxDbGFzcy5nZXRNb2RlbE5hbWUoKV1cbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSB0aGUgY29uZmlndXJlZCBzZWxlY3QgY2xhdXNlcyB0byBhIHRhcmdldCBxdWVyeS5cbiAgICogQHRlbXBsYXRlIHtpbXBvcnQoXCIuLi9tb2RlbC1jbGFzcy1xdWVyeS5qc1wiKS5kZWZhdWx0fSBUXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7VH0gYXJncy5xdWVyeSAtIFRhcmdldCBxdWVyeSB0byBhcHBseSBzZWxlY3RzIHRvLlxuICAgKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gYXJncy50YXJnZXRNb2RlbENsYXNzIC0gVGFyZ2V0IG1vZGVsIGNsYXNzLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzLm1hcHBpbmdDb2x1bW5zIC0gQ29sdW1ucyB0aGF0IG11c3QgYWx3YXlzIGJlIGxvYWRlZCBzbyByZXN1bHRzIGNhbiBiZSBtYXBwZWQgYmFjayB0byBwYXJlbnRzIChwcmltYXJ5L2ZvcmVpZ24ga2V5cykuXG4gICAqIEByZXR1cm5zIHtUfSAtIFRoZSBxdWVyeSwgd2l0aCBzZWxlY3RzIGFwcGxpZWQgd2hlbiBhIHNlbGVjdGlvbiBpcyBjb25maWd1cmVkLlxuICAgKi9cbiAgYXBwbHlUb1F1ZXJ5KHtxdWVyeSwgdGFyZ2V0TW9kZWxDbGFzcywgbWFwcGluZ0NvbHVtbnN9KSB7XG4gICAgY29uc3QgbmFycm93aW5nID0gdGhpcy5fbmFycm93aW5nRm9yKHRhcmdldE1vZGVsQ2xhc3MpXG4gICAgY29uc3QgZXh0cmEgPSB0aGlzLl9leHRyYUZvcih0YXJnZXRNb2RlbENsYXNzKVxuXG4gICAgaWYgKG5hcnJvd2luZykge1xuICAgICAgY29uc3Qgc2VsZWN0cyA9IFsuLi5uZXcgU2V0KFsuLi5uYXJyb3dpbmcsIC4uLm1hcHBpbmdDb2x1bW5zLCAuLi4oZXh0cmEgfHwgW10pXSldXG5cbiAgICAgIHJldHVybiAvKiogQHR5cGUge1R9ICovIChxdWVyeS5zZWxlY3Qoc2VsZWN0cykpXG4gICAgfVxuXG4gICAgaWYgKGV4dHJhKSB7XG4gICAgICBjb25zdCBhbGxDb2x1bW5zID0gYCR7cXVlcnkuZHJpdmVyLnF1b3RlVGFibGUodGFyZ2V0TW9kZWxDbGFzcy50YWJsZU5hbWUoKSl9LipgXG5cbiAgICAgIHJldHVybiAvKiogQHR5cGUge1R9ICovIChxdWVyeS5zZWxlY3QoW2FsbENvbHVtbnMsIC4uLmV4dHJhXSkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBhbiBhbHJlYWR5LXByZWxvYWRlZCByZWxhdGlvbnNoaXAncyBsb2FkZWQgdGFyZ2V0KHMpIHNhdGlzZnkgdGhlXG4gICAqIGNvbmZpZ3VyZWQgc2VsZWN0aW9uLCBzbyB0aGUgcmVsYXRpb25zaGlwIGNhbiBiZSBza2lwcGVkLiBSZXR1cm5zIGZhbHNlXG4gICAqIHdoZW4gYGZvcmNlYCBpcyBzZXQsIHdoZW4gdGhlIHJlbGF0aW9uc2hpcCBoYXNuJ3QgYmVlbiBwcmVsb2FkZWQsIG9yIHdoZW4gYVxuICAgKiByZXF1aXJlZCBjb2x1bW4gaXMgbWlzc2luZyBmcm9tIGEgbG9hZGVkIHRhcmdldC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5zdGFuY2UtcmVsYXRpb25zaGlwcy9iYXNlLmpzXCIpLmRlZmF1bHR9IGFyZ3MuaW5zdGFuY2VSZWxhdGlvbnNoaXAgLSBUaGUgc291cmNlIG1vZGVsJ3MgaW5zdGFuY2UgcmVsYXRpb25zaGlwLlxuICAgKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuLi8uLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gYXJncy50YXJnZXRNb2RlbENsYXNzIC0gVGFyZ2V0IG1vZGVsIGNsYXNzLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzLm1hcHBpbmdDb2x1bW5zIC0gUHJpbWFyeS9mb3JlaWduIGtleSBjb2x1bW5zIHJlcXVpcmVkIGZvciBtYXBwaW5nLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRoZSByZWxhdGlvbnNoaXAgaXMgYWxyZWFkeSBzYXRpc2ZpZWQuXG4gICAqL1xuICBpc1NhdGlzZmllZCh7aW5zdGFuY2VSZWxhdGlvbnNoaXAsIHRhcmdldE1vZGVsQ2xhc3MsIG1hcHBpbmdDb2x1bW5zfSkge1xuICAgIGlmICh0aGlzLmZvcmNlKSByZXR1cm4gZmFsc2VcbiAgICBpZiAoIWluc3RhbmNlUmVsYXRpb25zaGlwLmdldFByZWxvYWRlZCgpKSByZXR1cm4gZmFsc2VcblxuICAgIGNvbnN0IHJlcXVpcmVkID0gdGhpcy5fcmVxdWlyZWRDb2x1bW5zRm9yKHt0YXJnZXRNb2RlbENsYXNzLCBtYXBwaW5nQ29sdW1uc30pXG5cbiAgICBpZiAoIXJlcXVpcmVkKSByZXR1cm4gZmFsc2VcblxuICAgIGNvbnN0IGxvYWRlZCA9IGluc3RhbmNlUmVsYXRpb25zaGlwLmdldExvYWRlZE9yVW5kZWZpbmVkKClcbiAgICBjb25zdCB0YXJnZXRzID0gbG9hZGVkID09PSB1bmRlZmluZWQgPyBbXSA6IChBcnJheS5pc0FycmF5KGxvYWRlZCkgPyBsb2FkZWQgOiBbbG9hZGVkXSlcblxuICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRhcmdldHMpIHtcbiAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHJlcXVpcmVkKSB7XG4gICAgICAgIGlmICghdGFyZ2V0Lmhhc0xvYWRlZENvbHVtbihjb2x1bW4pKSByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzZXQgb2YgY29sdW1ucyB0aGF0IG11c3QgYmUgcHJlc2VudCBvbiBhIGxvYWRlZCB0YXJnZXQgZm9yIGl0IHRvIGNvdW50XG4gICAqIGFzIHNhdGlzZmllZC4gUmV0dXJucyBudWxsIHdoZW4gc2F0aXNmYWN0aW9uIGNhbid0IGJlIHZlcmlmaWVkIChhbiBleHRyYVxuICAgKiBzZWxlY3QgaXMgYSByYXcgU1FMIGV4cHJlc3Npb24gd2hvc2UgcmVzdWx0aW5nIGNvbHVtbiBjYW4ndCBiZSBkZXJpdmVkKSwgaW5cbiAgICogd2hpY2ggY2FzZSB0aGUgcmVsYXRpb25zaGlwIGlzIGFsd2F5cyByZS1sb2FkZWQuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7dHlwZW9mIGltcG9ydChcIi4uLy4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0fSBhcmdzLnRhcmdldE1vZGVsQ2xhc3MgLSBUYXJnZXQgbW9kZWwgY2xhc3MuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFyZ3MubWFwcGluZ0NvbHVtbnMgLSBQcmltYXJ5L2ZvcmVpZ24ga2V5IGNvbHVtbnMgcmVxdWlyZWQgZm9yIG1hcHBpbmcuXG4gICAqIEByZXR1cm5zIHtzdHJpbmdbXSB8IG51bGx9IC0gUmVxdWlyZWQgY29sdW1uIG5hbWVzLCBvciBudWxsIHdoZW4gdW52ZXJpZmlhYmxlLlxuICAgKi9cbiAgX3JlcXVpcmVkQ29sdW1uc0Zvcih7dGFyZ2V0TW9kZWxDbGFzcywgbWFwcGluZ0NvbHVtbnN9KSB7XG4gICAgY29uc3QgYXR0cmlidXRlTWFwID0gdGFyZ2V0TW9kZWxDbGFzcy5nZXRBdHRyaWJ1dGVOYW1lVG9Db2x1bW5OYW1lTWFwKClcbiAgICBjb25zdCBuYXJyb3dpbmcgPSB0aGlzLl9uYXJyb3dpbmdGb3IodGFyZ2V0TW9kZWxDbGFzcylcbiAgICBjb25zdCBleHRyYSA9IHRoaXMuX2V4dHJhRm9yKHRhcmdldE1vZGVsQ2xhc3MpXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgICBjb25zdCBjb2x1bW5zID0gW11cblxuICAgIGlmIChuYXJyb3dpbmcpIHtcbiAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIG5hcnJvd2luZykgY29sdW1ucy5wdXNoKGF0dHJpYnV0ZU1hcFthdHRyaWJ1dGVdIHx8IGF0dHJpYnV0ZSlcbiAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIG1hcHBpbmdDb2x1bW5zKSBjb2x1bW5zLnB1c2goY29sdW1uKVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB0YXJnZXRNb2RlbENsYXNzLmdldENvbHVtbk5hbWVzKCkpIGNvbHVtbnMucHVzaChjb2x1bW4pXG4gICAgfVxuXG4gICAgaWYgKGV4dHJhKSB7XG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGV4dHJhKSB7XG4gICAgICAgIGlmICghSURFTlRJRklFUl9SRUdFWC50ZXN0KGVudHJ5KSkgcmV0dXJuIG51bGxcblxuICAgICAgICBjb2x1bW5zLnB1c2goYXR0cmlidXRlTWFwW2VudHJ5XSB8fCBlbnRyeSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29sdW1uc1xuICB9XG59XG4iXX0=
@@ -1,18 +1,39 @@
1
1
  export default class VelociousDatabaseQueryPreloader {
2
+ /**
3
+ * Preloads relationship(s) onto one or more already-loaded model instances.
4
+ * Accepts either a query built via `Model.preload(...).select(...)` (its
5
+ * preload graph and selects are used) or a raw preload spec
6
+ * (string / array / nested object).
7
+ * @param {Array<import("../record/index.js").default>} models - Model instances to preload onto.
8
+ * @param {import("./model-class-query.js").default | import("./index.js").NestedPreloadRecord | string | Array<string | import("./index.js").NestedPreloadRecord>} queryOrSpec - Preload source.
9
+ * @param {{force?: boolean}} [options] - Options.
10
+ * @returns {Promise<void>} - Resolves when preloading completes.
11
+ */
12
+ static preload(models: Array<import("../record/index.js").default>, queryOrSpec: import("./model-class-query.js").default | import("./index.js").NestedPreloadRecord | string | Array<string | import("./index.js").NestedPreloadRecord>, { force }?: {
13
+ force?: boolean;
14
+ }): Promise<void>;
2
15
  /**
3
16
  * @param {object} args - Options object.
4
17
  * @param {typeof import("../record/index.js").default} args.modelClass - Model class.
5
18
  * @param {import("../record/index.js").default[]} args.models - Model instances.
6
19
  * @param {import("../query/index.js").NestedPreloadRecord} args.preload - Preload.
20
+ * @param {Record<string, string[]>} [args.preloadSelects] - Narrowing selects keyed by target model name.
21
+ * @param {Record<string, string[]>} [args.preloadSelectsExtra] - Extra selects keyed by target model name.
22
+ * @param {PreloaderSelection} [args.selection] - Pre-built selection (takes precedence over the select maps when given).
7
23
  */
8
- constructor({ modelClass, models, preload, ...restArgs }: {
24
+ constructor({ modelClass, models, preload, preloadSelects, preloadSelectsExtra, selection, ...restArgs }: {
9
25
  modelClass: typeof import("../record/index.js").default;
10
26
  models: import("../record/index.js").default[];
11
27
  preload: import("../query/index.js").NestedPreloadRecord;
28
+ preloadSelects?: Record<string, string[]> | undefined;
29
+ preloadSelectsExtra?: Record<string, string[]> | undefined;
30
+ selection?: PreloaderSelection | undefined;
12
31
  });
13
32
  modelClass: typeof import("../record/index.js").default;
14
33
  models: import("../record/index.js").default[];
15
34
  preload: import("../query/index.js").NestedPreloadRecord;
35
+ selection: PreloaderSelection;
16
36
  run(): Promise<void>;
17
37
  }
38
+ import PreloaderSelection from "./preloader/selection.js";
18
39
  //# sourceMappingURL=preloader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preloader.d.ts","sourceRoot":"","sources":["../../../../src/database/query/preloader.js"],"names":[],"mappings":"AAsEA;IACE;;;;;OAKG;IACH,0DAJG;QAA0D,UAAU,EAA5D,cAAc,oBAAoB,EAAE,OAAO;QACE,MAAM,EAAnD,OAAO,oBAAoB,EAAE,OAAO,EAAE;QACgB,OAAO,EAA7D,OAAO,mBAAmB,EAAE,mBAAmB;KACzD,EAOA;IAHC,wDAA4B;IAC5B,+CAAoB;IACpB,yDAAsB;IAGxB,qBAwDC;CACF"}
1
+ {"version":3,"file":"preloader.d.ts","sourceRoot":"","sources":["../../../../src/database/query/preloader.js"],"names":[],"mappings":"AAuEA;IACE;;;;;;;;;OASG;IACH,uBALW,KAAK,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,eAC3C,OAAO,wBAAwB,EAAE,OAAO,GAAG,OAAO,YAAY,EAAE,mBAAmB,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,YAAY,EAAE,mBAAmB,CAAC,cACvJ;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAC,GACf,OAAO,CAAC,IAAI,CAAC,CAyBzB;IAED;;;;;;;;OAQG;IACH,0GAPG;QAA0D,UAAU,EAA5D,cAAc,oBAAoB,EAAE,OAAO;QACE,MAAM,EAAnD,OAAO,oBAAoB,EAAE,OAAO,EAAE;QACgB,OAAO,EAA7D,OAAO,mBAAmB,EAAE,mBAAmB;QACf,cAAc;QACd,mBAAmB;QACzB,SAAS;KAC7C,EAQA;IAJC,wDAA4B;IAC5B,+CAAoB;IACpB,yDAAsB;IACtB,8BAA2F;IAG7F,qBAwDC;CACF;+BAjL8B,0BAA0B"}
@@ -2,6 +2,7 @@
2
2
  import BelongsToPreloader from "./preloader/belongs-to.js";
3
3
  import HasManyPreloader from "./preloader/has-many.js";
4
4
  import HasOnePreloader from "./preloader/has-one.js";
5
+ import PreloaderSelection from "./preloader/selection.js";
5
6
  import restArgsError from "../../utils/rest-args-error.js";
6
7
  /**
7
8
  * @param {import("../query/index.js").NestedPreloadRecord | string | string[] | boolean} preload - Preload data in shorthand or nested form.
@@ -55,17 +56,53 @@ function normalizeNestedPreload(preload) {
55
56
  throw new Error(`Invalid preload type: ${typeof preload}`);
56
57
  }
57
58
  export default class VelociousDatabaseQueryPreloader {
59
+ /**
60
+ * Preloads relationship(s) onto one or more already-loaded model instances.
61
+ * Accepts either a query built via `Model.preload(...).select(...)` (its
62
+ * preload graph and selects are used) or a raw preload spec
63
+ * (string / array / nested object).
64
+ * @param {Array<import("../record/index.js").default>} models - Model instances to preload onto.
65
+ * @param {import("./model-class-query.js").default | import("./index.js").NestedPreloadRecord | string | Array<string | import("./index.js").NestedPreloadRecord>} queryOrSpec - Preload source.
66
+ * @param {{force?: boolean}} [options] - Options.
67
+ * @returns {Promise<void>} - Resolves when preloading completes.
68
+ */
69
+ static async preload(models, queryOrSpec, { force = false } = {}) {
70
+ if (models.length == 0)
71
+ return;
72
+ const modelClass = /** @type {typeof import("../record/index.js").default} */ (models[0].constructor);
73
+ const isQuery = Boolean(queryOrSpec) && typeof queryOrSpec == "object" && "_preload" in queryOrSpec;
74
+ // Reuse the query builder's preload/select normalization for raw specs
75
+ // instead of duplicating it here.
76
+ const query = isQuery
77
+ ? /** @type {import("./model-class-query.js").default} */ (queryOrSpec)
78
+ : modelClass.preload(/** @type {any} */ (queryOrSpec));
79
+ const preloader = new VelociousDatabaseQueryPreloader({
80
+ modelClass,
81
+ models,
82
+ preload: query._preload,
83
+ selection: new PreloaderSelection({
84
+ preloadSelects: query._preloadSelects,
85
+ preloadSelectsExtra: query._preloadSelectsExtra,
86
+ force
87
+ })
88
+ });
89
+ await preloader.run();
90
+ }
58
91
  /**
59
92
  * @param {object} args - Options object.
60
93
  * @param {typeof import("../record/index.js").default} args.modelClass - Model class.
61
94
  * @param {import("../record/index.js").default[]} args.models - Model instances.
62
95
  * @param {import("../query/index.js").NestedPreloadRecord} args.preload - Preload.
96
+ * @param {Record<string, string[]>} [args.preloadSelects] - Narrowing selects keyed by target model name.
97
+ * @param {Record<string, string[]>} [args.preloadSelectsExtra] - Extra selects keyed by target model name.
98
+ * @param {PreloaderSelection} [args.selection] - Pre-built selection (takes precedence over the select maps when given).
63
99
  */
64
- constructor({ modelClass, models, preload, ...restArgs }) {
100
+ constructor({ modelClass, models, preload, preloadSelects = {}, preloadSelectsExtra = {}, selection, ...restArgs }) {
65
101
  restArgsError(restArgs);
66
102
  this.modelClass = modelClass;
67
103
  this.models = models;
68
104
  this.preload = preload;
105
+ this.selection = selection || new PreloaderSelection({ preloadSelects, preloadSelectsExtra });
69
106
  }
70
107
  async run() {
71
108
  for (const preloadRelationshipName in this.preload) {
@@ -73,17 +110,17 @@ export default class VelociousDatabaseQueryPreloader {
73
110
  let preloadResult;
74
111
  if (relationship.getType() == "belongsTo") {
75
112
  const belongsToRelationship = /** @type {import("../record/relationships/belongs-to.js").default} */ (relationship);
76
- const hasManyPreloader = new BelongsToPreloader({ models: this.models, relationship: belongsToRelationship });
113
+ const hasManyPreloader = new BelongsToPreloader({ models: this.models, relationship: belongsToRelationship, selection: this.selection });
77
114
  preloadResult = await hasManyPreloader.run();
78
115
  }
79
116
  else if (relationship.getType() == "hasMany") {
80
117
  const hasManyRelationship = /** @type {import("../record/relationships/has-many.js").default} */ (relationship);
81
- const hasManyPreloader = new HasManyPreloader({ models: this.models, relationship: hasManyRelationship });
118
+ const hasManyPreloader = new HasManyPreloader({ models: this.models, relationship: hasManyRelationship, selection: this.selection });
82
119
  preloadResult = await hasManyPreloader.run();
83
120
  }
84
121
  else if (relationship.getType() == "hasOne") {
85
122
  const hasOneRelationship = /** @type {import("../record/relationships/has-one.js").default} */ (relationship);
86
- const hasOnePreloader = new HasOnePreloader({ models: this.models, relationship: hasOneRelationship });
123
+ const hasOnePreloader = new HasOnePreloader({ models: this.models, relationship: hasOneRelationship, selection: this.selection });
87
124
  preloadResult = await hasOnePreloader.run();
88
125
  }
89
126
  else {
@@ -102,7 +139,7 @@ export default class VelociousDatabaseQueryPreloader {
102
139
  if (models.length == 0)
103
140
  continue;
104
141
  const targetModelClass = configuration.getModelClass(className);
105
- const preloader = new VelociousDatabaseQueryPreloader({ modelClass: targetModelClass, models, preload: normalizedPreload });
142
+ const preloader = new VelociousDatabaseQueryPreloader({ modelClass: targetModelClass, models, preload: normalizedPreload, selection: this.selection });
106
143
  await preloader.run();
107
144
  }
108
145
  }
@@ -110,11 +147,11 @@ export default class VelociousDatabaseQueryPreloader {
110
147
  const targetModelClass = relationship.getTargetModelClass();
111
148
  if (!targetModelClass)
112
149
  throw new Error("No target model class could be gotten from relationship");
113
- const preloader = new VelociousDatabaseQueryPreloader({ modelClass: targetModelClass, models: targetModels, preload: normalizedPreload });
150
+ const preloader = new VelociousDatabaseQueryPreloader({ modelClass: targetModelClass, models: targetModels, preload: normalizedPreload, selection: this.selection });
114
151
  await preloader.run();
115
152
  }
116
153
  }
117
154
  }
118
155
  }
119
156
  }
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3F1ZXJ5L3ByZWxvYWRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxrQkFBa0IsTUFBTSwyQkFBMkIsQ0FBQTtBQUMxRCxPQUFPLGdCQUFnQixNQUFNLHlCQUF5QixDQUFBO0FBQ3RELE9BQU8sZUFBZSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BELE9BQU8sYUFBYSxNQUFNLGdDQUFnQyxDQUFBO0FBRTFEOzs7R0FHRztBQUNILFNBQVMsc0JBQXNCLENBQUMsT0FBTztJQUNyQyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxJQUFJLFNBQVM7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUV4RCxJQUFJLE9BQU8sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE9BQU8sRUFBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBQyxDQUFBO0lBQzFCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMzQiw4REFBOEQ7UUFDOUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBRWpCLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQTtnQkFDcEIsU0FBUTtZQUNWLENBQUM7WUFFRCxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxlQUFlLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBRXJELElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3BCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxN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S0FBSyxNQUFNLFNBQVMsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO3dCQUNoRCxNQUFNLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTt3QkFFakQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7NEJBQUUsU0FBUTt3QkFFaEMsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFBO3dCQUMvRCxNQUFNLFNBQVMsR0FBRyxJQUFJLCtCQUErQixDQUFDLEVBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQyxDQUFBO3dCQUV6SCxNQUFNLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtvQkFDdkIsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQTtvQkFFM0QsSUFBSSxDQUFDLGdCQUFnQjt3QkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUE7b0JBRWpHLE1BQU0sU0FBUyxHQUFHLElBQUksK0JBQStCLENBQUMsRUFBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQyxDQUFBO29CQUV2SSxNQUFNLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtnQkFDdkIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCZWxvbmdzVG9QcmVsb2FkZXIgZnJvbSBcIi4vcHJlbG9hZGVyL2JlbG9uZ3MtdG8uanNcIlxuaW1wb3J0IEhhc01hbnlQcmVsb2FkZXIgZnJvbSBcIi4vcHJlbG9hZGVyL2hhcy1tYW55LmpzXCJcbmltcG9ydCBIYXNPbmVQcmVsb2FkZXIgZnJvbSBcIi4vcHJlbG9hZGVyL2hhcy1vbmUuanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uLy4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9xdWVyeS9pbmRleC5qc1wiKS5OZXN0ZWRQcmVsb2FkUmVjb3JkIHwgc3RyaW5nIHwgc3RyaW5nW10gfCBib29sZWFufSBwcmVsb2FkIC0gUHJlbG9hZCBkYXRhIGluIHNob3J0aGFuZCBvciBuZXN0ZWQgZm9ybS5cbiAqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9xdWVyeS9pbmRleC5qc1wiKS5OZXN0ZWRQcmVsb2FkUmVjb3JkIHwgbnVsbH0gLSBOb3JtYWxpemVkIG5lc3RlZCBwcmVsb2FkIHJlY29yZC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplTmVzdGVkUHJlbG9hZChwcmVsb2FkKSB7XG4gIGlmICghcHJlbG9hZCB8fCB0eXBlb2YgcHJlbG9hZCA9PSBcImJvb2xlYW5cIikgcmV0dXJuIG51bGxcblxuICBpZiAodHlwZW9mIHByZWxvYWQgPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB7W3ByZWxvYWRdOiB0cnVlfVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkocHJlbG9hZCkpIHtcbiAgICAvKiogQHR5cGUge2ltcG9ydChcIi4uL3F1ZXJ5L2luZGV4LmpzXCIpLk5lc3RlZFByZWxvYWRSZWNvcmR9ICovXG4gICAgY29uc3QgcmVzdWx0ID0ge31cblxuICAgIGZvciAoY29uc3QgZW50cnkgb2YgcHJlbG9hZCkge1xuICAgICAgaWYgKHR5cGVvZiBlbnRyeSA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJlc3VsdFtlbnRyeV0gPSB0cnVlXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChlbnRyeSAmJiB0eXBlb2YgZW50cnkgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRW50cnkgPSBub3JtYWxpemVOZXN0ZWRQcmVsb2FkKGVudHJ5KVxuXG4gICAgICAgIGlmIChub3JtYWxpemVkRW50cnkpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhub3JtYWxpemVkRW50cnkpKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwcmVsb2FkIGVudHJ5IHR5cGU6ICR7dHlwZW9mIGVudHJ5fWApXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgaWYgKHByZWxvYWQgJiYgdHlwZW9mIHByZWxvYWQgPT0gXCJvYmplY3RcIikge1xuICAgIC8qKiBAdHlwZSB7aW1wb3J0KFwiLi4vcXVlcnkvaW5kZXguanNcIikuTmVzdGVkUHJlbG9hZFJlY29yZH0gKi9cbiAgICBjb25zdCByZXN1bHQgPSB7fVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocHJlbG9hZCkpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSBub3JtYWxpemVOZXN0ZWRQcmVsb2FkKHZhbHVlKVxuXG4gICAgICBpZiAobm9ybWFsaXplZFZhbHVlKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gbm9ybWFsaXplZFZhbHVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcHJlbG9hZCB2YWx1ZSBmb3IgJHtrZXl9OiAke3R5cGVvZiB2YWx1ZX1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwcmVsb2FkIHR5cGU6ICR7dHlwZW9mIHByZWxvYWR9YClcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VRdWVyeVByZWxvYWRlciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gYXJncy5tb2RlbENsYXNzIC0gTW9kZWwgY2xhc3MuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHRbXX0gYXJncy5tb2RlbHMgLSBNb2RlbCBpbnN0YW5jZXMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vcXVlcnkvaW5kZXguanNcIikuTmVzdGVkUHJlbG9hZFJlY29yZH0gYXJncy5wcmVsb2FkIC0gUHJlbG9hZC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHttb2RlbENsYXNzLCBtb2RlbHMsIHByZWxvYWQsIC4uLnJlc3RBcmdzfSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICB0aGlzLm1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzXG4gICAgdGhpcy5tb2RlbHMgPSBtb2RlbHNcbiAgICB0aGlzLnByZWxvYWQgPSBwcmVsb2FkXG4gIH1cblxuICBhc3luYyBydW4oKSB7XG4gICAgZm9yIChjb25zdCBwcmVsb2FkUmVsYXRpb25zaGlwTmFtZSBpbiB0aGlzLnByZWxvYWQpIHtcbiAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcCA9IHRoaXMubW9kZWxDbGFzcy5nZXRSZWxhdGlvbnNoaXBCeU5hbWUocHJlbG9hZFJlbGF0aW9uc2hpcE5hbWUpXG4gICAgICBsZXQgcHJlbG9hZFJlc3VsdFxuXG4gICAgICBpZiAocmVsYXRpb25zaGlwLmdldFR5cGUoKSA9PSBcImJlbG9uZ3NUb1wiKSB7XG4gICAgICAgIGNvbnN0IGJlbG9uZ3NUb1JlbGF0aW9uc2hpcCA9IC8qKiBAdHlwZSB7aW1wb3J0KFwiLi4vcmVjb3JkL3JlbGF0aW9uc2hpcHMvYmVsb25ncy10by5qc1wiKS5kZWZhdWx0fSAqLyAocmVsYXRpb25zaGlwKVxuICAgICAgICBjb25zdCBoYXNNYW55UHJlbG9hZGVyID0gbmV3IEJlbG9uZ3NUb1ByZWxvYWRlcih7bW9kZWxzOiB0aGlzLm1vZGVscywgcmVsYXRpb25zaGlwOiBiZWxvbmdzVG9SZWxhdGlvbnNoaXB9KVxuXG4gICAgICAgIHByZWxvYWRSZXN1bHQgPSBhd2FpdCBoYXNNYW55UHJlbG9hZGVyLnJ1bigpXG4gICAgICB9IGVsc2UgaWYgKHJlbGF0aW9uc2hpcC5nZXRUeXBlKCkgPT0gXCJoYXNNYW55XCIpIHtcbiAgICAgICAgY29uc3QgaGFzTWFueVJlbGF0aW9uc2hpcCA9IC8qKiBAdHlwZSB7aW1wb3J0KFwiLi4vcmVjb3JkL3JlbGF0aW9uc2hpcHMvaGFzLW1hbnkuanNcIikuZGVmYXVsdH0gKi8gKHJlbGF0aW9uc2hpcClcbiAgICAgICAgY29uc3QgaGFzTWFueVByZWxvYWRlciA9IG5ldyBIYXNNYW55UHJlbG9hZGVyKHttb2RlbHM6IHRoaXMubW9kZWxzLCByZWxhdGlvbnNoaXA6IGhhc01hbnlSZWxhdGlvbnNoaXB9KVxuXG4gICAgICAgIHByZWxvYWRSZXN1bHQgPSBhd2FpdCBoYXNNYW55UHJlbG9hZGVyLnJ1bigpXG4gICAgICB9IGVsc2UgaWYgKHJlbGF0aW9uc2hpcC5nZXRUeXBlKCkgPT0gXCJoYXNPbmVcIikge1xuICAgICAgICBjb25zdCBoYXNPbmVSZWxhdGlvbnNoaXAgPSAvKiogQHR5cGUge2ltcG9ydChcIi4uL3JlY29yZC9yZWxhdGlvbnNoaXBzL2hhcy1vbmUuanNcIikuZGVmYXVsdH0gKi8gKHJlbGF0aW9uc2hpcClcbiAgICAgICAgY29uc3QgaGFzT25lUHJlbG9hZGVyID0gbmV3IEhhc09uZVByZWxvYWRlcih7bW9kZWxzOiB0aGlzLm1vZGVscywgcmVsYXRpb25zaGlwOiBoYXNPbmVSZWxhdGlvbnNoaXB9KVxuXG4gICAgICAgIHByZWxvYWRSZXN1bHQgPSBhd2FpdCBoYXNPbmVQcmVsb2FkZXIucnVuKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biByZWxhdGlvbnNoaXAgdHlwZTogJHtyZWxhdGlvbnNoaXAuZ2V0VHlwZSgpfWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhcmdldE1vZGVscyA9IEFycmF5LmlzQXJyYXkocHJlbG9hZFJlc3VsdCkgPyBwcmVsb2FkUmVzdWx0IDogKHByZWxvYWRSZXN1bHQ/LnRhcmdldE1vZGVscyB8fCBbXSlcbiAgICAgIGNvbnN0IHRhcmdldE1vZGVsc0J5Q2xhc3NOYW1lID0gQXJyYXkuaXNBcnJheShwcmVsb2FkUmVzdWx0KSA/IHVuZGVmaW5lZCA6IHByZWxvYWRSZXN1bHQ/LnRhcmdldE1vZGVsc0J5Q2xhc3NOYW1lXG5cbiAgICAgIC8vIEhhbmRsZSBhbnkgZnVydGhlciBwcmVsb2FkcyBpbiB0aGUgdHJlZVxuICAgICAgY29uc3QgbmV3UHJlbG9hZCA9IHRoaXMucHJlbG9hZFtwcmVsb2FkUmVsYXRpb25zaGlwTmFtZV1cbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQcmVsb2FkID0gbm9ybWFsaXplTmVzdGVkUHJlbG9hZChuZXdQcmVsb2FkKVxuXG4gICAgICBpZiAobm9ybWFsaXplZFByZWxvYWQgJiYgdGFyZ2V0TW9kZWxzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKHJlbGF0aW9uc2hpcC5nZXRQb2x5bW9ycGhpYygpICYmIHRhcmdldE1vZGVsc0J5Q2xhc3NOYW1lKSB7XG4gICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IHJlbGF0aW9uc2hpcC5nZXRDb25maWd1cmF0aW9uKClcblxuICAgICAgICAgIGZvciAoY29uc3QgY2xhc3NOYW1lIGluIHRhcmdldE1vZGVsc0J5Q2xhc3NOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBtb2RlbHMgPSB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZVtjbGFzc05hbWVdXG5cbiAgICAgICAgICAgIGlmIChtb2RlbHMubGVuZ3RoID09IDApIGNvbnRpbnVlXG5cbiAgICAgICAgICAgIGNvbnN0IHRhcmdldE1vZGVsQ2xhc3MgPSBjb25maWd1cmF0aW9uLmdldE1vZGVsQ2xhc3MoY2xhc3NOYW1lKVxuICAgICAgICAgICAgY29uc3QgcHJlbG9hZGVyID0gbmV3IFZlbG9jaW91c0RhdGFiYXNlUXVlcnlQcmVsb2FkZXIoe21vZGVsQ2xhc3M6IHRhcmdldE1vZGVsQ2xhc3MsIG1vZGVscywgcHJlbG9hZDogbm9ybWFsaXplZFByZWxvYWR9KVxuXG4gICAgICAgICAgICBhd2FpdCBwcmVsb2FkZXIucnVuKClcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0TW9kZWxDbGFzcyA9IHJlbGF0aW9uc2hpcC5nZXRUYXJnZXRNb2RlbENsYXNzKClcblxuICAgICAgICAgIGlmICghdGFyZ2V0TW9kZWxDbGFzcykgdGhyb3cgbmV3IEVycm9yKFwiTm8gdGFyZ2V0IG1vZGVsIGNsYXNzIGNvdWxkIGJlIGdvdHRlbiBmcm9tIHJlbGF0aW9uc2hpcFwiKVxuXG4gICAgICAgICAgY29uc3QgcHJlbG9hZGVyID0gbmV3IFZlbG9jaW91c0RhdGFiYXNlUXVlcnlQcmVsb2FkZXIoe21vZGVsQ2xhc3M6IHRhcmdldE1vZGVsQ2xhc3MsIG1vZGVsczogdGFyZ2V0TW9kZWxzLCBwcmVsb2FkOiBub3JtYWxpemVkUHJlbG9hZH0pXG5cbiAgICAgICAgICBhd2FpdCBwcmVsb2FkZXIucnVuKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3F1ZXJ5L3ByZWxvYWRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxrQkFBa0IsTUFBTSwyQkFBMkIsQ0FBQTtBQUMxRCxPQUFPLGdCQUFnQixNQUFNLHlCQUF5QixDQUFBO0FBQ3RELE9BQU8sZUFBZSxNQUFNLHdCQUF3QixDQUFBO0FBQ3BELE9BQU8sa0JBQWtCLE1BQU0sMEJBQTBCLENBQUE7QUFDekQsT0FBTyxhQUFhLE1BQU0sZ0NBQWdDLENBQUE7QUFFMUQ7OztHQUdHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxPQUFPO0lBQ3JDLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxPQUFPLElBQUksU0FBUztRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRXhELElBQUksT0FBTyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7UUFDL0IsT0FBTyxFQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzNCLDhEQUE4RDtRQUM5RCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUE7UUFFakIsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFBO2dCQUNwQixTQUFRO1lBQ1YsQ0FBQztZQUVELElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFFckQsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDcEIsS0FBSyxN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dCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJlbG9uZ3NUb1ByZWxvYWRlciBmcm9tIFwiLi9wcmVsb2FkZXIvYmVsb25ncy10by5qc1wiXG5pbXBvcnQgSGFzTWFueVByZWxvYWRlciBmcm9tIFwiLi9wcmVsb2FkZXIvaGFzLW1hbnkuanNcIlxuaW1wb3J0IEhhc09uZVByZWxvYWRlciBmcm9tIFwiLi9wcmVsb2FkZXIvaGFzLW9uZS5qc1wiXG5pbXBvcnQgUHJlbG9hZGVyU2VsZWN0aW9uIGZyb20gXCIuL3ByZWxvYWRlci9zZWxlY3Rpb24uanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uLy4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbi8qKlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9xdWVyeS9pbmRleC5qc1wiKS5OZXN0ZWRQcmVsb2FkUmVjb3JkIHwgc3RyaW5nIHwgc3RyaW5nW10gfCBib29sZWFufSBwcmVsb2FkIC0gUHJlbG9hZCBkYXRhIGluIHNob3J0aGFuZCBvciBuZXN0ZWQgZm9ybS5cbiAqIEByZXR1cm5zIHtpbXBvcnQoXCIuLi9xdWVyeS9pbmRleC5qc1wiKS5OZXN0ZWRQcmVsb2FkUmVjb3JkIHwgbnVsbH0gLSBOb3JtYWxpemVkIG5lc3RlZCBwcmVsb2FkIHJlY29yZC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplTmVzdGVkUHJlbG9hZChwcmVsb2FkKSB7XG4gIGlmICghcHJlbG9hZCB8fCB0eXBlb2YgcHJlbG9hZCA9PSBcImJvb2xlYW5cIikgcmV0dXJuIG51bGxcblxuICBpZiAodHlwZW9mIHByZWxvYWQgPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB7W3ByZWxvYWRdOiB0cnVlfVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkocHJlbG9hZCkpIHtcbiAgICAvKiogQHR5cGUge2ltcG9ydChcIi4uL3F1ZXJ5L2luZGV4LmpzXCIpLk5lc3RlZFByZWxvYWRSZWNvcmR9ICovXG4gICAgY29uc3QgcmVzdWx0ID0ge31cblxuICAgIGZvciAoY29uc3QgZW50cnkgb2YgcHJlbG9hZCkge1xuICAgICAgaWYgKHR5cGVvZiBlbnRyeSA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJlc3VsdFtlbnRyeV0gPSB0cnVlXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChlbnRyeSAmJiB0eXBlb2YgZW50cnkgPT0gXCJvYmplY3RcIikge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRW50cnkgPSBub3JtYWxpemVOZXN0ZWRQcmVsb2FkKGVudHJ5KVxuXG4gICAgICAgIGlmIChub3JtYWxpemVkRW50cnkpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhub3JtYWxpemVkRW50cnkpKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwcmVsb2FkIGVudHJ5IHR5cGU6ICR7dHlwZW9mIGVudHJ5fWApXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgaWYgKHByZWxvYWQgJiYgdHlwZW9mIHByZWxvYWQgPT0gXCJvYmplY3RcIikge1xuICAgIC8qKiBAdHlwZSB7aW1wb3J0KFwiLi4vcXVlcnkvaW5kZXguanNcIikuTmVzdGVkUHJlbG9hZFJlY29yZH0gKi9cbiAgICBjb25zdCByZXN1bHQgPSB7fVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocHJlbG9hZCkpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSBub3JtYWxpemVOZXN0ZWRQcmVsb2FkKHZhbHVlKVxuXG4gICAgICBpZiAobm9ybWFsaXplZFZhbHVlKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gbm9ybWFsaXplZFZhbHVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcHJlbG9hZCB2YWx1ZSBmb3IgJHtrZXl9OiAke3R5cGVvZiB2YWx1ZX1gKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwcmVsb2FkIHR5cGU6ICR7dHlwZW9mIHByZWxvYWR9YClcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VRdWVyeVByZWxvYWRlciB7XG4gIC8qKlxuICAgKiBQcmVsb2FkcyByZWxhdGlvbnNoaXAocykgb250byBvbmUgb3IgbW9yZSBhbHJlYWR5LWxvYWRlZCBtb2RlbCBpbnN0YW5jZXMuXG4gICAqIEFjY2VwdHMgZWl0aGVyIGEgcXVlcnkgYnVpbHQgdmlhIGBNb2RlbC5wcmVsb2FkKC4uLikuc2VsZWN0KC4uLilgIChpdHNcbiAgICogcHJlbG9hZCBncmFwaCBhbmQgc2VsZWN0cyBhcmUgdXNlZCkgb3IgYSByYXcgcHJlbG9hZCBzcGVjXG4gICAqIChzdHJpbmcgLyBhcnJheSAvIG5lc3RlZCBvYmplY3QpLlxuICAgKiBAcGFyYW0ge0FycmF5PGltcG9ydChcIi4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0Pn0gbW9kZWxzIC0gTW9kZWwgaW5zdGFuY2VzIHRvIHByZWxvYWQgb250by5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL21vZGVsLWNsYXNzLXF1ZXJ5LmpzXCIpLmRlZmF1bHQgfCBpbXBvcnQoXCIuL2luZGV4LmpzXCIpLk5lc3RlZFByZWxvYWRSZWNvcmQgfCBzdHJpbmcgfCBBcnJheTxzdHJpbmcgfCBpbXBvcnQoXCIuL2luZGV4LmpzXCIpLk5lc3RlZFByZWxvYWRSZWNvcmQ+fSBxdWVyeU9yU3BlYyAtIFByZWxvYWQgc291cmNlLlxuICAgKiBAcGFyYW0ge3tmb3JjZT86IGJvb2xlYW59fSBbb3B0aW9uc10gLSBPcHRpb25zLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIHByZWxvYWRpbmcgY29tcGxldGVzLlxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHByZWxvYWQobW9kZWxzLCBxdWVyeU9yU3BlYywge2ZvcmNlID0gZmFsc2V9ID0ge30pIHtcbiAgICBpZiAobW9kZWxzLmxlbmd0aCA9PSAwKSByZXR1cm5cblxuICAgIGNvbnN0IG1vZGVsQ2xhc3MgPSAvKiogQHR5cGUge3R5cGVvZiBpbXBvcnQoXCIuLi9yZWNvcmQvaW5kZXguanNcIikuZGVmYXVsdH0gKi8gKG1vZGVsc1swXS5jb25zdHJ1Y3RvcilcbiAgICBjb25zdCBpc1F1ZXJ5ID0gQm9vbGVhbihxdWVyeU9yU3BlYykgJiYgdHlwZW9mIHF1ZXJ5T3JTcGVjID09IFwib2JqZWN0XCIgJiYgXCJfcHJlbG9hZFwiIGluIHF1ZXJ5T3JTcGVjXG4gICAgLy8gUmV1c2UgdGhlIHF1ZXJ5IGJ1aWxkZXIncyBwcmVsb2FkL3NlbGVjdCBub3JtYWxpemF0aW9uIGZvciByYXcgc3BlY3NcbiAgICAvLyBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0IGhlcmUuXG4gICAgY29uc3QgcXVlcnkgPSBpc1F1ZXJ5XG4gICAgICA/IC8qKiBAdHlwZSB7aW1wb3J0KFwiLi9tb2RlbC1jbGFzcy1xdWVyeS5qc1wiKS5kZWZhdWx0fSAqLyAocXVlcnlPclNwZWMpXG4gICAgICA6IG1vZGVsQ2xhc3MucHJlbG9hZCgvKiogQHR5cGUge2FueX0gKi8gKHF1ZXJ5T3JTcGVjKSlcblxuICAgIGNvbnN0IHByZWxvYWRlciA9IG5ldyBWZWxvY2lvdXNEYXRhYmFzZVF1ZXJ5UHJlbG9hZGVyKHtcbiAgICAgIG1vZGVsQ2xhc3MsXG4gICAgICBtb2RlbHMsXG4gICAgICBwcmVsb2FkOiBxdWVyeS5fcHJlbG9hZCxcbiAgICAgIHNlbGVjdGlvbjogbmV3IFByZWxvYWRlclNlbGVjdGlvbih7XG4gICAgICAgIHByZWxvYWRTZWxlY3RzOiBxdWVyeS5fcHJlbG9hZFNlbGVjdHMsXG4gICAgICAgIHByZWxvYWRTZWxlY3RzRXh0cmE6IHF1ZXJ5Ll9wcmVsb2FkU2VsZWN0c0V4dHJhLFxuICAgICAgICBmb3JjZVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgYXdhaXQgcHJlbG9hZGVyLnJ1bigpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHt0eXBlb2YgaW1wb3J0KFwiLi4vcmVjb3JkL2luZGV4LmpzXCIpLmRlZmF1bHR9IGFyZ3MubW9kZWxDbGFzcyAtIE1vZGVsIGNsYXNzLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL3JlY29yZC9pbmRleC5qc1wiKS5kZWZhdWx0W119IGFyZ3MubW9kZWxzIC0gTW9kZWwgaW5zdGFuY2VzLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL3F1ZXJ5L2luZGV4LmpzXCIpLk5lc3RlZFByZWxvYWRSZWNvcmR9IGFyZ3MucHJlbG9hZCAtIFByZWxvYWQuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nW10+fSBbYXJncy5wcmVsb2FkU2VsZWN0c10gLSBOYXJyb3dpbmcgc2VsZWN0cyBrZXllZCBieSB0YXJnZXQgbW9kZWwgbmFtZS5cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT59IFthcmdzLnByZWxvYWRTZWxlY3RzRXh0cmFdIC0gRXh0cmEgc2VsZWN0cyBrZXllZCBieSB0YXJnZXQgbW9kZWwgbmFtZS5cbiAgICogQHBhcmFtIHtQcmVsb2FkZXJTZWxlY3Rpb259IFthcmdzLnNlbGVjdGlvbl0gLSBQcmUtYnVpbHQgc2VsZWN0aW9uICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhlIHNlbGVjdCBtYXBzIHdoZW4gZ2l2ZW4pLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe21vZGVsQ2xhc3MsIG1vZGVscywgcHJlbG9hZCwgcHJlbG9hZFNlbGVjdHMgPSB7fSwgcHJlbG9hZFNlbGVjdHNFeHRyYSA9IHt9LCBzZWxlY3Rpb24sIC4uLnJlc3RBcmdzfSkge1xuICAgIHJlc3RBcmdzRXJyb3IocmVzdEFyZ3MpXG5cbiAgICB0aGlzLm1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzXG4gICAgdGhpcy5tb2RlbHMgPSBtb2RlbHNcbiAgICB0aGlzLnByZWxvYWQgPSBwcmVsb2FkXG4gICAgdGhpcy5zZWxlY3Rpb24gPSBzZWxlY3Rpb24gfHwgbmV3IFByZWxvYWRlclNlbGVjdGlvbih7cHJlbG9hZFNlbGVjdHMsIHByZWxvYWRTZWxlY3RzRXh0cmF9KVxuICB9XG5cbiAgYXN5bmMgcnVuKCkge1xuICAgIGZvciAoY29uc3QgcHJlbG9hZFJlbGF0aW9uc2hpcE5hbWUgaW4gdGhpcy5wcmVsb2FkKSB7XG4gICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSB0aGlzLm1vZGVsQ2xhc3MuZ2V0UmVsYXRpb25zaGlwQnlOYW1lKHByZWxvYWRSZWxhdGlvbnNoaXBOYW1lKVxuICAgICAgbGV0IHByZWxvYWRSZXN1bHRcblxuICAgICAgaWYgKHJlbGF0aW9uc2hpcC5nZXRUeXBlKCkgPT0gXCJiZWxvbmdzVG9cIikge1xuICAgICAgICBjb25zdCBiZWxvbmdzVG9SZWxhdGlvbnNoaXAgPSAvKiogQHR5cGUge2ltcG9ydChcIi4uL3JlY29yZC9yZWxhdGlvbnNoaXBzL2JlbG9uZ3MtdG8uanNcIikuZGVmYXVsdH0gKi8gKHJlbGF0aW9uc2hpcClcbiAgICAgICAgY29uc3QgaGFzTWFueVByZWxvYWRlciA9IG5ldyBCZWxvbmdzVG9QcmVsb2FkZXIoe21vZGVsczogdGhpcy5tb2RlbHMsIHJlbGF0aW9uc2hpcDogYmVsb25nc1RvUmVsYXRpb25zaGlwLCBzZWxlY3Rpb246IHRoaXMuc2VsZWN0aW9ufSlcblxuICAgICAgICBwcmVsb2FkUmVzdWx0ID0gYXdhaXQgaGFzTWFueVByZWxvYWRlci5ydW4oKVxuICAgICAgfSBlbHNlIGlmIChyZWxhdGlvbnNoaXAuZ2V0VHlwZSgpID09IFwiaGFzTWFueVwiKSB7XG4gICAgICAgIGNvbnN0IGhhc01hbnlSZWxhdGlvbnNoaXAgPSAvKiogQHR5cGUge2ltcG9ydChcIi4uL3JlY29yZC9yZWxhdGlvbnNoaXBzL2hhcy1tYW55LmpzXCIpLmRlZmF1bHR9ICovIChyZWxhdGlvbnNoaXApXG4gICAgICAgIGNvbnN0IGhhc01hbnlQcmVsb2FkZXIgPSBuZXcgSGFzTWFueVByZWxvYWRlcih7bW9kZWxzOiB0aGlzLm1vZGVscywgcmVsYXRpb25zaGlwOiBoYXNNYW55UmVsYXRpb25zaGlwLCBzZWxlY3Rpb246IHRoaXMuc2VsZWN0aW9ufSlcblxuICAgICAgICBwcmVsb2FkUmVzdWx0ID0gYXdhaXQgaGFzTWFueVByZWxvYWRlci5ydW4oKVxuICAgICAgfSBlbHNlIGlmIChyZWxhdGlvbnNoaXAuZ2V0VHlwZSgpID09IFwiaGFzT25lXCIpIHtcbiAgICAgICAgY29uc3QgaGFzT25lUmVsYXRpb25zaGlwID0gLyoqIEB0eXBlIHtpbXBvcnQoXCIuLi9yZWNvcmQvcmVsYXRpb25zaGlwcy9oYXMtb25lLmpzXCIpLmRlZmF1bHR9ICovIChyZWxhdGlvbnNoaXApXG4gICAgICAgIGNvbnN0IGhhc09uZVByZWxvYWRlciA9IG5ldyBIYXNPbmVQcmVsb2FkZXIoe21vZGVsczogdGhpcy5tb2RlbHMsIHJlbGF0aW9uc2hpcDogaGFzT25lUmVsYXRpb25zaGlwLCBzZWxlY3Rpb246IHRoaXMuc2VsZWN0aW9ufSlcblxuICAgICAgICBwcmVsb2FkUmVzdWx0ID0gYXdhaXQgaGFzT25lUHJlbG9hZGVyLnJ1bigpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcmVsYXRpb25zaGlwIHR5cGU6ICR7cmVsYXRpb25zaGlwLmdldFR5cGUoKX1gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB0YXJnZXRNb2RlbHMgPSBBcnJheS5pc0FycmF5KHByZWxvYWRSZXN1bHQpID8gcHJlbG9hZFJlc3VsdCA6IChwcmVsb2FkUmVzdWx0Py50YXJnZXRNb2RlbHMgfHwgW10pXG4gICAgICBjb25zdCB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZSA9IEFycmF5LmlzQXJyYXkocHJlbG9hZFJlc3VsdCkgPyB1bmRlZmluZWQgOiBwcmVsb2FkUmVzdWx0Py50YXJnZXRNb2RlbHNCeUNsYXNzTmFtZVxuXG4gICAgICAvLyBIYW5kbGUgYW55IGZ1cnRoZXIgcHJlbG9hZHMgaW4gdGhlIHRyZWVcbiAgICAgIGNvbnN0IG5ld1ByZWxvYWQgPSB0aGlzLnByZWxvYWRbcHJlbG9hZFJlbGF0aW9uc2hpcE5hbWVdXG4gICAgICBjb25zdCBub3JtYWxpemVkUHJlbG9hZCA9IG5vcm1hbGl6ZU5lc3RlZFByZWxvYWQobmV3UHJlbG9hZClcblxuICAgICAgaWYgKG5vcm1hbGl6ZWRQcmVsb2FkICYmIHRhcmdldE1vZGVscy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChyZWxhdGlvbnNoaXAuZ2V0UG9seW1vcnBoaWMoKSAmJiB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZSkge1xuICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSByZWxhdGlvbnNoaXAuZ2V0Q29uZmlndXJhdGlvbigpXG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGNsYXNzTmFtZSBpbiB0YXJnZXRNb2RlbHNCeUNsYXNzTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgbW9kZWxzID0gdGFyZ2V0TW9kZWxzQnlDbGFzc05hbWVbY2xhc3NOYW1lXVxuXG4gICAgICAgICAgICBpZiAobW9kZWxzLmxlbmd0aCA9PSAwKSBjb250aW51ZVxuXG4gICAgICAgICAgICBjb25zdCB0YXJnZXRNb2RlbENsYXNzID0gY29uZmlndXJhdGlvbi5nZXRNb2RlbENsYXNzKGNsYXNzTmFtZSlcbiAgICAgICAgICAgIGNvbnN0IHByZWxvYWRlciA9IG5ldyBWZWxvY2lvdXNEYXRhYmFzZVF1ZXJ5UHJlbG9hZGVyKHttb2RlbENsYXNzOiB0YXJnZXRNb2RlbENsYXNzLCBtb2RlbHMsIHByZWxvYWQ6IG5vcm1hbGl6ZWRQcmVsb2FkLCBzZWxlY3Rpb246IHRoaXMuc2VsZWN0aW9ufSlcblxuICAgICAgICAgICAgYXdhaXQgcHJlbG9hZGVyLnJ1bigpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHRhcmdldE1vZGVsQ2xhc3MgPSByZWxhdGlvbnNoaXAuZ2V0VGFyZ2V0TW9kZWxDbGFzcygpXG5cbiAgICAgICAgICBpZiAoIXRhcmdldE1vZGVsQ2xhc3MpIHRocm93IG5ldyBFcnJvcihcIk5vIHRhcmdldCBtb2RlbCBjbGFzcyBjb3VsZCBiZSBnb3R0ZW4gZnJvbSByZWxhdGlvbnNoaXBcIilcblxuICAgICAgICAgIGNvbnN0IHByZWxvYWRlciA9IG5ldyBWZWxvY2lvdXNEYXRhYmFzZVF1ZXJ5UHJlbG9hZGVyKHttb2RlbENsYXNzOiB0YXJnZXRNb2RlbENsYXNzLCBtb2RlbHM6IHRhcmdldE1vZGVscywgcHJlbG9hZDogbm9ybWFsaXplZFByZWxvYWQsIHNlbGVjdGlvbjogdGhpcy5zZWxlY3Rpb259KVxuXG4gICAgICAgICAgYXdhaXQgcHJlbG9hZGVyLnJ1bigpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -938,6 +938,20 @@ declare class VelociousDatabaseRecord {
938
938
  * @returns {import("./instance-relationships/base.js").default} - The relationship by name.
939
939
  */
940
940
  getRelationshipByName(relationshipName: string): import("./instance-relationships/base.js").default;
941
+ /**
942
+ * Preloads relationship(s) onto this already-loaded record. Accepts either a
943
+ * query built via `Model.preload(...).select(...)` or a raw preload spec
944
+ * (string / array / nested object). A relationship that is already preloaded
945
+ * with all the required columns present is left untouched unless `force` is
946
+ * set. Preloading onto the relationship cache lets later accessors reuse the
947
+ * loaded data instead of issuing identical queries.
948
+ * @param {import("../query/model-class-query.js").default | import("../query/index.js").NestedPreloadRecord | string | Array<string | import("../query/index.js").NestedPreloadRecord>} queryOrSpec - Preload source.
949
+ * @param {{force?: boolean}} [options] - Options.
950
+ * @returns {Promise<void>} - Resolves when preloading completes.
951
+ */
952
+ preload(queryOrSpec: import("../query/model-class-query.js").default | import("../query/index.js").NestedPreloadRecord | string | Array<string | import("../query/index.js").NestedPreloadRecord>, options?: {
953
+ force?: boolean;
954
+ }): Promise<void>;
941
955
  /**
942
956
  * @param {string} relationshipName - Relationship name.
943
957
  * @returns {Promise<any>} - Loaded relationship value.
@@ -1200,6 +1214,14 @@ declare class VelociousDatabaseRecord {
1200
1214
  * @returns {any} - The column.
1201
1215
  */
1202
1216
  readColumn(attributeName: string): any;
1217
+ /**
1218
+ * Whether a column value is currently loaded on this record (either as a
1219
+ * persisted attribute or a pending change). Used to decide whether a preload
1220
+ * can be skipped because the required columns are already present.
1221
+ * @param {string} columnName - The column name to check.
1222
+ * @returns {boolean} - Whether the column is loaded.
1223
+ */
1224
+ hasLoadedColumn(columnName: string): boolean;
1203
1225
  /**
1204
1226
  * @param {object} args - Options object.
1205
1227
  * @param {string | undefined} args.columnType - Column type.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/record/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/record/index.js"],"names":[],"mappings":"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"}