joist-core 2.1.0-next.46 → 2.1.0-next.48
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.
- package/build/QueryParser.pruning.d.ts +1 -1
- package/build/QueryParser.pruning.d.ts.map +1 -1
- package/build/QueryParser.pruning.js +22 -6
- package/build/QueryParser.pruning.js.map +1 -1
- package/build/QueryParser.pruning.test.js +19 -0
- package/build/QueryParser.pruning.test.js.map +1 -1
- package/build/defaults.d.ts.map +1 -1
- package/build/defaults.js +49 -42
- package/build/defaults.js.map +1 -1
- package/build/trusted.d.ts +1 -1
- package/build/trusted.d.ts.map +1 -1
- package/build/trusted.js +1 -1
- package/build/trusted.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ColumnCondition, ExistsCondition, ParsedExpressionFilter, ParsedFindQuery, RawCondition } from "./QueryParser";
|
|
2
2
|
export declare function pruneUnusedJoins(parsed: ParsedFindQuery, keepAliases: string[]): void;
|
|
3
|
-
/** Returns true if a raw select expression references `alias.column`. */
|
|
3
|
+
/** Returns true if a raw select expression references `alias.column` or the whole-row `alias`. */
|
|
4
4
|
export declare function selectReferencesAlias(select: string, alias: string): boolean;
|
|
5
5
|
/** Pulls out a flat list of all `ColumnCondition`s from a `ParsedExpressionFilter` tree. */
|
|
6
6
|
export declare function deepFindConditions(condition: ParsedExpressionFilter | undefined, filterPruneable: boolean): (ColumnCondition | RawCondition | ExistsCondition)[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryParser.pruning.d.ts","sourceRoot":"","sources":["../src/QueryParser.pruning.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EAEf,sBAAsB,EACtB,eAAe,EACf,YAAY,EAEb,MAAM,eAAe,CAAC;AAIvB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CA2ErF;AAgBD,
|
|
1
|
+
{"version":3,"file":"QueryParser.pruning.d.ts","sourceRoot":"","sources":["../src/QueryParser.pruning.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EAEf,sBAAsB,EACtB,eAAe,EACf,YAAY,EAEb,MAAM,eAAe,CAAC;AAIvB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CA2ErF;AAgBD,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAY5E;AAoCD,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,sBAAsB,GAAG,SAAS,EAC7C,eAAe,EAAE,OAAO,GACvB,CAAC,eAAe,GAAG,YAAY,GAAG,eAAe,CAAC,EAAE,CAkBtD"}
|
|
@@ -99,31 +99,47 @@ function markSelectAliases(dt, parsed, select) {
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
|
-
/** Returns true if a raw select expression references `alias.column`. */
|
|
102
|
+
/** Returns true if a raw select expression references `alias.column` or the whole-row `alias`. */
|
|
103
103
|
function selectReferencesAlias(select, alias) {
|
|
104
104
|
// Most selects are simple `a.*`, but CTI adds expressions like
|
|
105
105
|
// `COALESCE(p_s0.shared_column, p_s1.shared_column) as shared_column`.
|
|
106
106
|
// Those expressions must keep the subtype joins, but `parseAlias` only sees
|
|
107
107
|
// the leading function name. Instead of parsing SQL, scan for the only alias
|
|
108
|
-
// forms Joist generates in selects: `alias.column
|
|
109
|
-
return selectReferencesCandidate(select, `${alias}.`) ||
|
|
108
|
+
// forms Joist generates in selects: `alias.column`, `"alias".column`, and whole-row aliases.
|
|
109
|
+
return (selectReferencesCandidate(select, `${alias}.`) ||
|
|
110
|
+
selectReferencesCandidate(select, `"${alias}".`) ||
|
|
111
|
+
selectReferencesCandidate(select, alias) ||
|
|
112
|
+
selectReferencesCandidate(select, `"${alias}"`));
|
|
110
113
|
}
|
|
111
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* Returns true when `candidate` is present at a SQL identifier boundary.
|
|
116
|
+
*
|
|
117
|
+
* Scans the select string for literal candidate matches, then verifies the characters before/after the match are not
|
|
118
|
+
* part of a larger identifier or dotted path. I.e. `row_to_json("ap")` matches, but `foo_"ap"` and `foo.ap` do not.
|
|
119
|
+
*/
|
|
112
120
|
function selectReferencesCandidate(select, candidate) {
|
|
113
121
|
let index = select.indexOf(candidate);
|
|
122
|
+
const quoted = candidate.startsWith('"');
|
|
114
123
|
while (index !== -1) {
|
|
124
|
+
// Each loop inspects one literal occurrence of `candidate`, then either accepts it as a real alias reference or
|
|
125
|
+
// advances to the next occurrence if the surrounding characters show it is part of a larger token.
|
|
115
126
|
// Avoid treating `foo.a.id` as a reference to `a`; Joist-generated aliases
|
|
116
127
|
// appear at the start of an expression or after punctuation/whitespace.
|
|
117
128
|
const previous = select[index - 1];
|
|
118
|
-
|
|
129
|
+
const next = select[index + candidate.length];
|
|
130
|
+
if ((index === 0 || (previous !== "." && !isSqlIdentifierChar(previous))) &&
|
|
131
|
+
!isSqlIdentifierChar(next) &&
|
|
132
|
+
(quoted || (previous !== '"' && next !== '"'))) {
|
|
119
133
|
return true;
|
|
134
|
+
}
|
|
135
|
+
// Continue scanning after the current occurrence; `indexOf` returns -1 once there are no more candidates.
|
|
120
136
|
index = select.indexOf(candidate, index + candidate.length);
|
|
121
137
|
}
|
|
122
138
|
return false;
|
|
123
139
|
}
|
|
124
140
|
/** Returns true for characters that can be part of an unquoted SQL identifier. */
|
|
125
141
|
function isSqlIdentifierChar(char) {
|
|
126
|
-
return /[A-Za-z0-9_]/.test(char);
|
|
142
|
+
return char !== undefined && /[A-Za-z0-9_]/.test(char);
|
|
127
143
|
}
|
|
128
144
|
/** Pulls out a flat list of all `ColumnCondition`s from a `ParsedExpressionFilter` tree. */
|
|
129
145
|
function deepFindConditions(condition, filterPruneable) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryParser.pruning.js","sourceRoot":"","sources":["../src/QueryParser.pruning.ts"],"names":[],"mappings":";;AAYA,4CA2EC;AAiBD,
|
|
1
|
+
{"version":3,"file":"QueryParser.pruning.js","sourceRoot":"","sources":["../src/QueryParser.pruning.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,19 @@ describe("QueryParser.pruning", () => {
|
|
|
60
60
|
// I.e. raw aggregate selects can reference joined aliases even when the parsed `aliases` metadata is empty.
|
|
61
61
|
expect(query.tables.map((table) => table.alias)).toEqual(["a", "b", "br"]);
|
|
62
62
|
});
|
|
63
|
+
it("keeps aliases referenced as whole rows by raw select SQL when alias metadata is empty", () => {
|
|
64
|
+
const query = {
|
|
65
|
+
selects: ["a.*", { sql: 'array_agg(row_to_json("ap")) as _permissions', bindings: [], aliases: [] }],
|
|
66
|
+
tables: [
|
|
67
|
+
{ join: "primary", alias: "a", table: "authors" },
|
|
68
|
+
{ join: "outer", alias: "ap", table: "auth_permissions", col1: "a.id", col2: "ap.author_id" },
|
|
69
|
+
],
|
|
70
|
+
condition: undefined,
|
|
71
|
+
orderBys: [],
|
|
72
|
+
};
|
|
73
|
+
(0, QueryParser_pruning_1.pruneUnusedJoins)(query, []);
|
|
74
|
+
expect(query.tables.map((table) => table.alias)).toEqual(["a", "ap"]);
|
|
75
|
+
});
|
|
63
76
|
});
|
|
64
77
|
describe("selectReferencesAlias", () => {
|
|
65
78
|
it("finds simple select references", () => {
|
|
@@ -70,6 +83,11 @@ describe("QueryParser.pruning", () => {
|
|
|
70
83
|
expect((0, QueryParser_pruning_1.selectReferencesAlias)('"a".*', "a")).toBe(true);
|
|
71
84
|
expect((0, QueryParser_pruning_1.selectReferencesAlias)('"book".id as __source_id', "book")).toBe(true);
|
|
72
85
|
});
|
|
86
|
+
it("finds whole-row select references", () => {
|
|
87
|
+
expect((0, QueryParser_pruning_1.selectReferencesAlias)("ap", "ap")).toBe(true);
|
|
88
|
+
expect((0, QueryParser_pruning_1.selectReferencesAlias)('array_agg(row_to_json("ap")) as _permissions', "ap")).toBe(true);
|
|
89
|
+
expect((0, QueryParser_pruning_1.selectReferencesAlias)("array_agg(row_to_json(ap)) as _permissions", "ap")).toBe(true);
|
|
90
|
+
});
|
|
73
91
|
it("finds aliases inside generated CTI expressions", () => {
|
|
74
92
|
expect((0, QueryParser_pruning_1.selectReferencesAlias)("COALESCE(p_s0.shared_column, p_s1.shared_column) as shared_column", "p_s0")).toBe(true);
|
|
75
93
|
expect((0, QueryParser_pruning_1.selectReferencesAlias)("CASE WHEN p_s0.id IS NOT NULL THEN 'LargePublisher' ELSE '_' END as __class", "p_s0")).toBe(true);
|
|
@@ -81,6 +99,7 @@ describe("QueryParser.pruning", () => {
|
|
|
81
99
|
it("does not match aliases inside longer identifiers", () => {
|
|
82
100
|
expect((0, QueryParser_pruning_1.selectReferencesAlias)("foo.a.id", "a")).toBe(false);
|
|
83
101
|
expect((0, QueryParser_pruning_1.selectReferencesAlias)('foo_"a".id', "a")).toBe(false);
|
|
102
|
+
expect((0, QueryParser_pruning_1.selectReferencesAlias)("book_m2m", "book")).toBe(false);
|
|
84
103
|
});
|
|
85
104
|
});
|
|
86
105
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryParser.pruning.test.js","sourceRoot":"","sources":["../src/QueryParser.pruning.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"QueryParser.pruning.test.js","sourceRoot":"","sources":["../src/QueryParser.pruning.test.ts"],"names":[],"mappings":";;AACA,+DAAgF;AAEhF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,KAAK,GAAoB;gBAC7B,OAAO,EAAE,CAAC,KAAK,CAAC;gBAChB,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;oBACjD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;oBAChF,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;iBACzF;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,KAAK;oBACX,EAAE,EAAE,KAAK;oBACT,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;iBAC7G;gBACD,QAAQ,EAAE,EAAE;aACb,CAAC;YAEF,IAAA,sCAAgB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAE5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,KAAK,GAAoB;gBAC7B,OAAO,EAAE,CAAC,KAAK,CAAC;gBAChB,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;oBACjD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;oBAChF,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;iBAC1F;gBACD,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE;oBACJ;wBACE,KAAK,EAAE,WAAW;wBAClB,OAAO,EAAE;4BACP,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE;4BAC/C,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;yBACpC;wBACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,yCAAyC,EAAE,QAAQ,EAAE,EAAE,EAAE;qBACrF;iBACF;aACF,CAAC;YAEF,IAAA,sCAAgB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAE5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;YACjF,MAAM,KAAK,GAAoB;gBAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,8CAA8C,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBACpG,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;oBACjD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;oBAChF,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;iBACxF;gBACD,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,EAAE;aACb,CAAC;YAEF,IAAA,sCAAgB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAE5B,4GAA4G;YAC5G,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uFAAuF,EAAE,GAAG,EAAE;YAC/F,MAAM,KAAK,GAAoB;gBAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,8CAA8C,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBACpG,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;oBACjD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;iBAC9F;gBACD,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,EAAE;aACb,CAAC;YAEF,IAAA,sCAAgB,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAE5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,IAAA,2CAAqB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,CAAC,IAAA,2CAAqB,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,CAAC,IAAA,2CAAqB,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,IAAA,2CAAqB,EAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,CAAC,IAAA,2CAAqB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,CAAC,IAAA,2CAAqB,EAAC,8CAA8C,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/F,MAAM,CAAC,IAAA,2CAAqB,EAAC,4CAA4C,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,CAAC,IAAA,2CAAqB,EAAC,mEAAmE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAC7G,IAAI,CACL,CAAC;YACF,MAAM,CACJ,IAAA,2CAAqB,EAAC,6EAA6E,EAAE,MAAM,CAAC,CAC7G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,IAAA,2CAAqB,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,CAAC,IAAA,2CAAqB,EAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,IAAA,2CAAqB,EAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAA,2CAAqB,EAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAA,2CAAqB,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/build/defaults.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAsE,MAAM,kBAAkB,CAAC;AAGtH,OAAO,EAAqB,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAsE,MAAM,kBAAkB,CAAC;AAGtH,OAAO,EAAqB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKlE,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAIhF;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA2CpD;AAED,oEAAoE;AACpE,wBAAsB,gBAAgB,CACpC,oBAAoB,EAAE,KAAK,EAAE,EAC7B,GAAG,EAAE,OAAO,EAIZ,gBAAgB,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOhF;AAED,wDAAwD;AACxD,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM;;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;gBAKhC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG;IAM3F,uFAAuF;IACjF,aAAa,CACjB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,iBAAiB,EACrB,oBAAoB,EAAE,KAAK,EAAE,EAC7B,YAAY,EAAE,cAAc,EAC5B,OAAO,EAAE,CAAC,EAAE,GACX,OAAO,CAAC,GAAG,CAAC;IA0Df,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAmCjD,wEAAwE;IACxE,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI;CAGb;AAED,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EACrD,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAC3B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,iBAAiB,EAAE,CAuCrB;AAED;;;;;;;;;GASG;AACH,cAAM,iBAAiB;;gBAIT,gBAAgB,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAQ3D,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAI9C,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;CASrE"}
|
package/build/defaults.js
CHANGED
|
@@ -13,49 +13,52 @@ const fields_1 = require("./fields");
|
|
|
13
13
|
const normalizeHints_1 = require("./normalizeHints");
|
|
14
14
|
const reactiveHints_1 = require("./reactiveHints");
|
|
15
15
|
const index_1 = require("./relations/index");
|
|
16
|
+
const trusted_1 = require("./trusted");
|
|
16
17
|
const utils_1 = require("./utils");
|
|
17
18
|
function hasDefaultValue(meta, fieldName) {
|
|
18
19
|
return (0, EntityMetadata_1.getBaseAndSelfMetas)(meta).some((m) => fieldName in m.config.__data.syncDefaults || fieldName in m.config.__data.asyncDefaults);
|
|
19
20
|
}
|
|
20
21
|
/** Run the sync defaults for `entity`. */
|
|
21
22
|
function setSyncDefaults(entity) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
field.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
(0, fields_1.setField)(entity, fieldName, value);
|
|
36
|
-
}
|
|
37
|
-
else if (!isRelation(field)) {
|
|
38
|
-
const hasBeenSet = fieldName in (0, BaseEntity_1.getInstanceData)(entity).data;
|
|
39
|
-
if (!hasBeenSet) {
|
|
23
|
+
return (0, trusted_1.runInTrustedContext)(() => {
|
|
24
|
+
const meta = (0, EntityMetadata_1.getMetadata)(entity);
|
|
25
|
+
// Allow subtypes to override base setDefaults
|
|
26
|
+
const syncDefaults = (0, EntityMetadata_1.getBaseAndSelfMetas)(meta).reduce((acc, m) => ({ ...acc, ...m.config.__data.syncDefaults }), {});
|
|
27
|
+
for (const [fieldName, maybeFn] of Object.entries(syncDefaults)) {
|
|
28
|
+
const field = meta.allFields[fieldName];
|
|
29
|
+
// Use allFields in case a subtype sets a default for one of its base fields
|
|
30
|
+
if ((field.kind === "primitive" || field.kind === "enum") &&
|
|
31
|
+
field.derived === "async") {
|
|
32
|
+
// If this is an AsyncReactiveField, we want to push in a default, but setOpts is called
|
|
33
|
+
// from the codegen constructor, so the user-defined `hasAsyncReactiveField` fields will
|
|
34
|
+
// not have been initialized yet (i.e. `entity[field]` will be undefined and not yet an
|
|
35
|
+
// `instanceof AsyncReactiveField`). Thankfully we can just use setField.
|
|
40
36
|
const value = maybeFn instanceof Function ? maybeFn(entity) : maybeFn;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
(0, fields_1.setField)(entity, fieldName, value);
|
|
38
|
+
}
|
|
39
|
+
else if (!isRelation(field)) {
|
|
40
|
+
const hasBeenSet = fieldName in (0, BaseEntity_1.getInstanceData)(entity).data;
|
|
41
|
+
if (!hasBeenSet) {
|
|
42
|
+
const value = maybeFn instanceof Function ? maybeFn(entity) : maybeFn;
|
|
43
|
+
// If the value is undefined, leave it unset, so that a default invoked during
|
|
44
|
+
// the constructor being called (before any other opts are set) can be called
|
|
45
|
+
// again during `em.flush` and get an opportunity to observe other fields.
|
|
46
|
+
if (value !== undefined) {
|
|
47
|
+
entity[fieldName] = value;
|
|
48
|
+
}
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
else {
|
|
52
|
+
const value = entity[fieldName];
|
|
53
|
+
if ((0, index_1.isLoadedReference)(value) && !value.isSet && !value.hasBeenSet) {
|
|
54
|
+
// A sync default usually would never be for a reference, because reference defaults usually
|
|
55
|
+
// require a field hint (so would be async) to get "the other entity". However, something like:
|
|
56
|
+
// `config.setDefault("original", (self) => self);` is technically valid.
|
|
57
|
+
value.set(maybeFn instanceof Function ? maybeFn(entity) : maybeFn);
|
|
58
|
+
}
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
|
-
}
|
|
61
|
+
});
|
|
59
62
|
}
|
|
60
63
|
/** Runs the async defaults for all inserted entities in `todos`. */
|
|
61
64
|
async function setAsyncDefaults(suppressedTypeErrors, ctx,
|
|
@@ -63,19 +66,23 @@ async function setAsyncDefaults(suppressedTypeErrors, ctx,
|
|
|
63
66
|
// the subtype `setOnEntities(...all subtype entities...)` and `setOnEntities(...any base types...)`
|
|
64
67
|
// as bulk calls.
|
|
65
68
|
insertsBySubType) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
return (0, trusted_1.runInTrustedContext)(async () => {
|
|
70
|
+
const dt = new DependencyTracker(insertsBySubType);
|
|
71
|
+
const results = await Promise.allSettled([...insertsBySubType.entries()].flatMap(([meta, inserts]) => {
|
|
72
|
+
// configure will have copy/pasted base defaults into our config, so we can loop over it directly
|
|
73
|
+
return Object.values(meta.config.__data.asyncDefaults).map((df) => df.setOnEntities(ctx, dt, suppressedTypeErrors, meta, inserts));
|
|
74
|
+
}));
|
|
75
|
+
(0, utils_1.failIfAnyRejected)(results);
|
|
76
|
+
});
|
|
72
77
|
}
|
|
73
78
|
/** Sets async defaults *synchronously*, only safe for factories with `DeepNew` entities. */
|
|
74
79
|
function setAsyncDefaultsSynchronously(ctx, entity) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
df.
|
|
78
|
-
|
|
80
|
+
return (0, trusted_1.runInTrustedContext)(() => {
|
|
81
|
+
// configure will have copy/pasted base defaults into our config, so we can loop over it directly
|
|
82
|
+
for (const df of Object.values((0, EntityMetadata_1.getMetadata)(entity).config.__data.asyncDefaults)) {
|
|
83
|
+
df.setOnFactoryEntity(ctx, entity);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
79
86
|
}
|
|
80
87
|
/** Wraps the hint + lambda of an async `setDefault`. */
|
|
81
88
|
class AsyncDefault {
|
package/build/defaults.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
|
package/build/trusted.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Returns true if we're inside a trusted context
|
|
1
|
+
/** Returns true if we're inside a trusted context, i.e. hooks, reactions, validations, or defaults. */
|
|
2
2
|
export declare function isInTrustedContext(): boolean;
|
|
3
3
|
/** Runs the given function within a trusted context. */
|
|
4
4
|
export declare function runInTrustedContext<T>(fn: () => T): T;
|
package/build/trusted.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trusted.d.ts","sourceRoot":"","sources":["../src/trusted.ts"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"trusted.d.ts","sourceRoot":"","sources":["../src/trusted.ts"],"names":[],"mappings":"AAIA,uGAAuG;AACvG,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAErD"}
|
package/build/trusted.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.isInTrustedContext = isInTrustedContext;
|
|
|
4
4
|
exports.runInTrustedContext = runInTrustedContext;
|
|
5
5
|
const async_hooks_1 = require("async_hooks");
|
|
6
6
|
const trustedContext = new async_hooks_1.AsyncLocalStorage();
|
|
7
|
-
/** Returns true if we're inside a trusted context
|
|
7
|
+
/** Returns true if we're inside a trusted context, i.e. hooks, reactions, validations, or defaults. */
|
|
8
8
|
function isInTrustedContext() {
|
|
9
9
|
return trustedContext.getStore() === true;
|
|
10
10
|
}
|
package/build/trusted.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trusted.js","sourceRoot":"","sources":["../src/trusted.ts"],"names":[],"mappings":";;AAKA,gDAEC;AAGD,kDAEC;AAZD,6CAAgD;AAEhD,MAAM,cAAc,GAAG,IAAI,+BAAiB,EAAW,CAAC;AAExD,
|
|
1
|
+
{"version":3,"file":"trusted.js","sourceRoot":"","sources":["../src/trusted.ts"],"names":[],"mappings":";;AAKA,gDAEC;AAGD,kDAEC;AAZD,6CAAgD;AAEhD,MAAM,cAAc,GAAG,IAAI,+BAAiB,EAAW,CAAC;AAExD,uGAAuG;AACvG,SAAgB,kBAAkB;IAChC,OAAO,cAAc,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC;AAC5C,CAAC;AAED,wDAAwD;AACxD,SAAgB,mBAAmB,CAAI,EAAW;IAChD,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joist-core",
|
|
3
|
-
"version": "2.1.0-next.
|
|
3
|
+
"version": "2.1.0-next.48",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"build"
|
|
21
21
|
],
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"joist-utils": "2.1.0-next.
|
|
23
|
+
"joist-utils": "2.1.0-next.48"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@types/object-hash": "^3.0.6",
|