covara 0.7.0 → 0.8.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.
- package/README.md +98 -62
- package/dist/cli/args.d.ts +14 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +78 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/commands/data.d.ts +2 -0
- package/dist/cli/commands/data.d.ts.map +1 -0
- package/dist/cli/commands/data.js +31 -0
- package/dist/cli/commands/data.js.map +1 -0
- package/dist/cli/commands/db.d.ts +2 -0
- package/dist/cli/commands/db.d.ts.map +1 -0
- package/dist/cli/commands/db.js +100 -0
- package/dist/cli/commands/db.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +2 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +125 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/env.d.ts +2 -0
- package/dist/cli/commands/env.d.ts.map +1 -0
- package/dist/cli/commands/env.js +94 -0
- package/dist/cli/commands/env.js.map +1 -0
- package/dist/cli/commands/import-export.d.ts +3 -0
- package/dist/cli/commands/import-export.d.ts.map +1 -0
- package/dist/cli/commands/import-export.js +156 -0
- package/dist/cli/commands/import-export.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +2 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +12 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/push.d.ts +2 -0
- package/dist/cli/commands/push.d.ts.map +1 -0
- package/dist/cli/commands/push.js +45 -0
- package/dist/cli/commands/push.js.map +1 -0
- package/dist/cli/commands/run.d.ts +2 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +54 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/seed.d.ts +2 -0
- package/dist/cli/commands/seed.d.ts.map +1 -0
- package/dist/cli/commands/seed.js +32 -0
- package/dist/cli/commands/seed.js.map +1 -0
- package/dist/cli/commands/studio.d.ts +2 -0
- package/dist/cli/commands/studio.d.ts.map +1 -0
- package/dist/cli/commands/studio.js +22 -0
- package/dist/cli/commands/studio.js.map +1 -0
- package/dist/cli/commands/types.d.ts +2 -0
- package/dist/cli/commands/types.d.ts.map +1 -0
- package/dist/cli/commands/types.js +28 -0
- package/dist/cli/commands/types.js.map +1 -0
- package/dist/cli/config.d.ts +28 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +81 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/drizzle-bridge.d.ts +29 -0
- package/dist/cli/drizzle-bridge.d.ts.map +1 -0
- package/dist/cli/drizzle-bridge.js +85 -0
- package/dist/cli/drizzle-bridge.js.map +1 -0
- package/dist/cli/index.d.ts +2 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +74 -20
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/prompt.d.ts +2 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +16 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/templates/package-json.js +1 -1
- package/dist/cli/worker.d.ts +2 -0
- package/dist/cli/worker.d.ts.map +1 -0
- package/dist/cli/worker.js +120 -0
- package/dist/cli/worker.js.map +1 -0
- package/dist/client/file-upload.d.ts +2 -1
- package/dist/client/file-upload.d.ts.map +1 -1
- package/dist/client/file-upload.js +5 -5
- package/dist/client/file-upload.js.map +1 -1
- package/dist/client/live-store.d.ts.map +1 -1
- package/dist/client/live-store.js +12 -6
- package/dist/client/live-store.js.map +1 -1
- package/dist/client/react-files.js +1 -1
- package/dist/client/react-files.js.map +1 -1
- package/dist/client/subscription-manager.d.ts.map +1 -1
- package/dist/client/subscription-manager.js +7 -0
- package/dist/client/subscription-manager.js.map +1 -1
- package/dist/htmx/client/runtime.d.ts +2 -0
- package/dist/htmx/client/runtime.d.ts.map +1 -0
- package/dist/htmx/client/runtime.js +195 -0
- package/dist/htmx/client/runtime.js.map +1 -0
- package/dist/htmx/context.d.ts +16 -0
- package/dist/htmx/context.d.ts.map +1 -0
- package/dist/htmx/context.js +52 -0
- package/dist/htmx/context.js.map +1 -0
- package/dist/htmx/forms.d.ts +3 -0
- package/dist/htmx/forms.d.ts.map +1 -0
- package/dist/htmx/forms.js +32 -0
- package/dist/htmx/forms.js.map +1 -0
- package/dist/htmx/ids.d.ts +11 -0
- package/dist/htmx/ids.d.ts.map +1 -0
- package/dist/htmx/ids.js +27 -0
- package/dist/htmx/ids.js.map +1 -0
- package/dist/htmx/index.d.ts +11 -0
- package/dist/htmx/index.d.ts.map +1 -0
- package/dist/htmx/index.js +15 -0
- package/dist/htmx/index.js.map +1 -0
- package/dist/htmx/live.d.ts +39 -0
- package/dist/htmx/live.d.ts.map +1 -0
- package/dist/htmx/live.js +37 -0
- package/dist/htmx/live.js.map +1 -0
- package/dist/htmx/page.d.ts +14 -0
- package/dist/htmx/page.d.ts.map +1 -0
- package/dist/htmx/page.js +59 -0
- package/dist/htmx/page.js.map +1 -0
- package/dist/htmx/render-util.d.ts +2 -0
- package/dist/htmx/render-util.d.ts.map +1 -0
- package/dist/htmx/render-util.js +15 -0
- package/dist/htmx/render-util.js.map +1 -0
- package/dist/htmx/server.d.ts +21 -0
- package/dist/htmx/server.d.ts.map +1 -0
- package/dist/htmx/server.js +286 -0
- package/dist/htmx/server.js.map +1 -0
- package/dist/htmx/sse-render.d.ts +10 -0
- package/dist/htmx/sse-render.d.ts.map +1 -0
- package/dist/htmx/sse-render.js +40 -0
- package/dist/htmx/sse-render.js.map +1 -0
- package/dist/htmx/template-gen.d.ts +7 -0
- package/dist/htmx/template-gen.d.ts.map +1 -0
- package/dist/htmx/template-gen.js +38 -0
- package/dist/htmx/template-gen.js.map +1 -0
- package/dist/resource/hook.d.ts.map +1 -1
- package/dist/resource/hook.js +101 -24
- package/dist/resource/hook.js.map +1 -1
- package/dist/resource/relations.d.ts +15 -4
- package/dist/resource/relations.d.ts.map +1 -1
- package/dist/resource/relations.js +146 -26
- package/dist/resource/relations.js.map +1 -1
- package/dist/resource/subscription.d.ts +15 -2
- package/dist/resource/subscription.d.ts.map +1 -1
- package/dist/resource/subscription.js +184 -3
- package/dist/resource/subscription.js.map +1 -1
- package/dist/resource/track-mutations.d.ts.map +1 -1
- package/dist/resource/track-mutations.js +11 -1
- package/dist/resource/track-mutations.js.map +1 -1
- package/dist/resource/types.d.ts +8 -0
- package/dist/resource/types.d.ts.map +1 -1
- package/dist/server/admin-bypass.d.ts +7 -0
- package/dist/server/admin-bypass.d.ts.map +1 -0
- package/dist/server/admin-bypass.js +22 -0
- package/dist/server/admin-bypass.js.map +1 -0
- package/dist/server/app.d.ts +9 -0
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +101 -1
- package/dist/server/app.js.map +1 -1
- package/dist/server/impersonation.d.ts +18 -0
- package/dist/server/impersonation.d.ts.map +1 -0
- package/dist/server/impersonation.js +53 -0
- package/dist/server/impersonation.js.map +1 -0
- package/dist/shared/escape.d.ts +3 -0
- package/dist/shared/escape.d.ts.map +1 -0
- package/dist/shared/escape.js +12 -0
- package/dist/shared/escape.js.map +1 -0
- package/dist/storage/local.d.ts +4 -0
- package/dist/storage/local.d.ts.map +1 -1
- package/dist/storage/local.js +5 -0
- package/dist/storage/local.js.map +1 -1
- package/dist/storage/resource.d.ts +5 -11
- package/dist/storage/resource.d.ts.map +1 -1
- package/dist/storage/resource.js +156 -194
- package/dist/storage/resource.js.map +1 -1
- package/dist/ui/admin-auth.d.ts +6 -0
- package/dist/ui/admin-auth.d.ts.map +1 -1
- package/dist/ui/admin-auth.js +59 -1
- package/dist/ui/admin-auth.js.map +1 -1
- package/dist/ui/data-explorer.d.ts.map +1 -1
- package/dist/ui/data-explorer.js +91 -4
- package/dist/ui/data-explorer.js.map +1 -1
- package/dist/ui/html/client/data-explorer-app.d.ts.map +1 -1
- package/dist/ui/html/client/data-explorer-app.js +20 -7
- package/dist/ui/html/client/data-explorer-app.js.map +1 -1
- package/dist/ui/html/client/runtime.d.ts.map +1 -1
- package/dist/ui/html/client/runtime.js +70 -2
- package/dist/ui/html/client/runtime.js.map +1 -1
- package/dist/ui/html/icons.d.ts.map +1 -1
- package/dist/ui/html/icons.js +2 -0
- package/dist/ui/html/icons.js.map +1 -1
- package/dist/ui/html/layout.d.ts +1 -0
- package/dist/ui/html/layout.d.ts.map +1 -1
- package/dist/ui/html/layout.js +274 -146
- package/dist/ui/html/layout.js.map +1 -1
- package/dist/ui/html/pages/filter-tester.d.ts.map +1 -1
- package/dist/ui/html/pages/filter-tester.js +15 -0
- package/dist/ui/html/pages/filter-tester.js.map +1 -1
- package/dist/ui/html/pages/users.d.ts.map +1 -1
- package/dist/ui/html/pages/users.js +8 -1
- package/dist/ui/html/pages/users.js.map +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +1 -1
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/middleware.d.ts.map +1 -1
- package/dist/ui/middleware.js +121 -5
- package/dist/ui/middleware.js.map +1 -1
- package/dist/ui/schema-registry.d.ts +5 -0
- package/dist/ui/schema-registry.d.ts.map +1 -1
- package/dist/ui/schema-registry.js +14 -0
- package/dist/ui/schema-registry.js.map +1 -1
- package/package.json +6 -2
|
@@ -1,5 +1,68 @@
|
|
|
1
|
-
import { and, eq, getTableColumns, inArray, } from "drizzle-orm";
|
|
1
|
+
import { and, eq, getTableColumns, getTableName, inArray, is, } from "drizzle-orm";
|
|
2
|
+
import { SQLiteTable, getTableConfig as sqliteTableConfig } from "drizzle-orm/sqlite-core";
|
|
3
|
+
import { PgTable, getTableConfig as pgTableConfig } from "drizzle-orm/pg-core";
|
|
2
4
|
import { createResourceFilter } from "./filter.js";
|
|
5
|
+
import { getResourceScopeResolver } from "../ui/schema-registry.js";
|
|
6
|
+
// Dialect-agnostic foreign-key reader: drizzle exposes FK metadata only via the
|
|
7
|
+
// per-dialect getTableConfig, so dispatch on the table's dialect brand.
|
|
8
|
+
const readForeignKeys = (table) => {
|
|
9
|
+
if (is(table, SQLiteTable))
|
|
10
|
+
return sqliteTableConfig(table).foreignKeys;
|
|
11
|
+
if (is(table, PgTable))
|
|
12
|
+
return pgTableConfig(table).foreignKeys;
|
|
13
|
+
return [];
|
|
14
|
+
};
|
|
15
|
+
const relationNameFromForeignKey = (columnName) => {
|
|
16
|
+
const stripped = columnName.replace(/_?[iI]d$/, "");
|
|
17
|
+
return stripped.length > 0 ? stripped : columnName;
|
|
18
|
+
};
|
|
19
|
+
// Derive a RelationsConfig from foreign keys: `belongsTo` from this table's own
|
|
20
|
+
// FKs, and `hasMany` from other registered tables whose FKs reference this one.
|
|
21
|
+
// Only single-column FKs to registered resources are discovered (no guessing);
|
|
22
|
+
// the result reuses the same scope-enforced loader as explicit relations.
|
|
23
|
+
export const discoverRelations = (sourceSchema, registry) => {
|
|
24
|
+
const discovered = {};
|
|
25
|
+
const sourceName = getTableName(sourceSchema);
|
|
26
|
+
for (const fk of readForeignKeys(sourceSchema)) {
|
|
27
|
+
const ref = fk.reference();
|
|
28
|
+
if (ref.columns.length !== 1 || ref.foreignColumns.length !== 1)
|
|
29
|
+
continue;
|
|
30
|
+
const name = relationNameFromForeignKey(ref.columns[0].name);
|
|
31
|
+
if (discovered[name])
|
|
32
|
+
continue;
|
|
33
|
+
discovered[name] = {
|
|
34
|
+
resource: getTableName(ref.foreignTable),
|
|
35
|
+
schema: ref.foreignTable,
|
|
36
|
+
type: "belongsTo",
|
|
37
|
+
foreignKey: ref.columns[0],
|
|
38
|
+
references: ref.foreignColumns[0],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
for (const [, entry] of registry) {
|
|
42
|
+
const other = entry.schema;
|
|
43
|
+
if (getTableName(other) === sourceName)
|
|
44
|
+
continue;
|
|
45
|
+
for (const fk of readForeignKeys(other)) {
|
|
46
|
+
const ref = fk.reference();
|
|
47
|
+
if (ref.columns.length !== 1 || ref.foreignColumns.length !== 1)
|
|
48
|
+
continue;
|
|
49
|
+
if (getTableName(ref.foreignTable) !== sourceName)
|
|
50
|
+
continue;
|
|
51
|
+
const name = getTableName(other);
|
|
52
|
+
if (discovered[name])
|
|
53
|
+
continue;
|
|
54
|
+
discovered[name] = {
|
|
55
|
+
resource: getTableName(other),
|
|
56
|
+
schema: other,
|
|
57
|
+
type: "hasMany",
|
|
58
|
+
foreignKey: ref.columns[0],
|
|
59
|
+
references: ref.foreignColumns[0],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return discovered;
|
|
64
|
+
};
|
|
65
|
+
const NO_SCOPE = { user: null, enforceScope: false };
|
|
3
66
|
const splitTopLevel = (str, delimiter) => {
|
|
4
67
|
const result = [];
|
|
5
68
|
let depth = 0;
|
|
@@ -101,48 +164,97 @@ export const parseNestedFilter = (filterExpr, relations) => {
|
|
|
101
164
|
};
|
|
102
165
|
};
|
|
103
166
|
export class RelationLoader {
|
|
104
|
-
constructor(db, sourceSchema, relations, resourceRegistry, config = {}) {
|
|
167
|
+
constructor(db, sourceSchema, relations, resourceRegistry, config = {}, auto = false) {
|
|
105
168
|
this.db = db;
|
|
106
169
|
this.sourceSchema = sourceSchema;
|
|
107
170
|
this.relations = relations;
|
|
108
171
|
this.resourceRegistry = resourceRegistry;
|
|
109
172
|
this.config = config;
|
|
173
|
+
this.auto = auto;
|
|
110
174
|
this.filterCache = new Map();
|
|
111
175
|
}
|
|
176
|
+
// Explicit relations merged over discovered ones (explicit wins). Discovery
|
|
177
|
+
// runs lazily on first use so the resource registry is fully populated, and
|
|
178
|
+
// the result is memoized. With `auto` off this is just the explicit config.
|
|
179
|
+
resolvedRelations() {
|
|
180
|
+
if (!this.auto)
|
|
181
|
+
return this.relations;
|
|
182
|
+
if (!this.memoRelations) {
|
|
183
|
+
this.memoRelations = {
|
|
184
|
+
...discoverRelations(this.sourceSchema, this.resourceRegistry),
|
|
185
|
+
...this.relations,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
return this.memoRelations;
|
|
189
|
+
}
|
|
112
190
|
getEagerIncludes() {
|
|
113
191
|
const specs = [];
|
|
114
|
-
for (const [name, relation] of Object.entries(this.
|
|
192
|
+
for (const [name, relation] of Object.entries(this.resolvedRelations())) {
|
|
115
193
|
if (relation.strategy === "eager") {
|
|
116
194
|
specs.push({ relation: name });
|
|
117
195
|
}
|
|
118
196
|
}
|
|
119
197
|
return specs;
|
|
120
198
|
}
|
|
121
|
-
buildRelationWhere(targetSchema, filterExpr, baseCondition) {
|
|
199
|
+
buildRelationWhere(targetSchema, filterExpr, baseCondition, scopeCondition) {
|
|
200
|
+
const condition = scopeCondition
|
|
201
|
+
? and(baseCondition, scopeCondition)
|
|
202
|
+
: baseCondition;
|
|
122
203
|
if (!filterExpr)
|
|
123
|
-
return
|
|
204
|
+
return condition;
|
|
124
205
|
let filter = this.filterCache.get(filterExpr);
|
|
125
206
|
if (!filter) {
|
|
126
207
|
filter = createResourceFilter(targetSchema, this.config.customOperators ?? {});
|
|
127
208
|
this.filterCache.set(filterExpr, filter);
|
|
128
209
|
}
|
|
129
|
-
return and(
|
|
210
|
+
return and(condition, filter.convert(filterExpr));
|
|
130
211
|
}
|
|
131
|
-
|
|
212
|
+
// Resolves the target resource's read scope into a SQL predicate for the
|
|
213
|
+
// effective user, so an included relation can never reveal rows the user
|
|
214
|
+
// could not read by querying that resource directly. Returns:
|
|
215
|
+
// - null → no scope to apply (disabled, public, unscoped, or target not
|
|
216
|
+
// a registered resource)
|
|
217
|
+
// - "DENY" → the user is denied read on the target; yield no rows
|
|
218
|
+
// - SQL → AND this predicate into the relation query
|
|
219
|
+
async scopeCondition(relation, ctx) {
|
|
220
|
+
if (!ctx.enforceScope)
|
|
221
|
+
return null;
|
|
222
|
+
const resolver = getResourceScopeResolver(relation.resource);
|
|
223
|
+
if (!resolver)
|
|
224
|
+
return null;
|
|
225
|
+
if (resolver.isPublic("read"))
|
|
226
|
+
return null;
|
|
227
|
+
let scope;
|
|
228
|
+
try {
|
|
229
|
+
scope = await resolver.resolve("read", ctx.user);
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
return "DENY";
|
|
233
|
+
}
|
|
234
|
+
if (scope.isEmpty())
|
|
235
|
+
return "DENY";
|
|
236
|
+
const expr = scope.toString();
|
|
237
|
+
if (!expr || expr === "*")
|
|
238
|
+
return null;
|
|
239
|
+
const filter = createResourceFilter(relation.schema, this.config.customOperators ?? {});
|
|
240
|
+
return filter.convert(expr);
|
|
241
|
+
}
|
|
242
|
+
async loadRelationsForItem(item, includes, idColumn, depth = 0, ctx = NO_SCOPE) {
|
|
132
243
|
if (depth > (this.config.maxDepth ?? 3)) {
|
|
133
244
|
return item;
|
|
134
245
|
}
|
|
135
246
|
const result = { ...item };
|
|
247
|
+
const relations = this.resolvedRelations();
|
|
136
248
|
for (const include of includes) {
|
|
137
|
-
const relation =
|
|
249
|
+
const relation = relations[include.relation];
|
|
138
250
|
if (!relation)
|
|
139
251
|
continue;
|
|
140
|
-
const related = await this.loadRelation(item, relation, include, idColumn, depth);
|
|
252
|
+
const related = await this.loadRelation(item, relation, include, idColumn, depth, ctx);
|
|
141
253
|
result[include.relation] = related;
|
|
142
254
|
}
|
|
143
255
|
return result;
|
|
144
256
|
}
|
|
145
|
-
async loadRelationsForItems(items, includes, idColumn, depth = 0) {
|
|
257
|
+
async loadRelationsForItems(items, includes, idColumn, depth = 0, ctx = NO_SCOPE) {
|
|
146
258
|
if (items.length === 0 || includes.length === 0) {
|
|
147
259
|
return items;
|
|
148
260
|
}
|
|
@@ -150,11 +262,12 @@ export class RelationLoader {
|
|
|
150
262
|
return items;
|
|
151
263
|
}
|
|
152
264
|
const results = items.map((item) => ({ ...item }));
|
|
265
|
+
const relations = this.resolvedRelations();
|
|
153
266
|
for (const include of includes) {
|
|
154
|
-
const relation =
|
|
267
|
+
const relation = relations[include.relation];
|
|
155
268
|
if (!relation)
|
|
156
269
|
continue;
|
|
157
|
-
const relatedMap = await this.batchLoadRelation(items, relation, include, idColumn, depth);
|
|
270
|
+
const relatedMap = await this.batchLoadRelation(items, relation, include, idColumn, depth, ctx);
|
|
158
271
|
for (const result of results) {
|
|
159
272
|
const id = String(result[idColumn]);
|
|
160
273
|
result[include.relation] =
|
|
@@ -166,9 +279,13 @@ export class RelationLoader {
|
|
|
166
279
|
}
|
|
167
280
|
return results;
|
|
168
281
|
}
|
|
169
|
-
async loadRelation(item, relation, include, idColumn, depth) {
|
|
282
|
+
async loadRelation(item, relation, include, idColumn, depth, ctx) {
|
|
170
283
|
const targetSchema = relation.schema;
|
|
171
284
|
const targetColumns = getTableColumns(targetSchema);
|
|
285
|
+
const isCollection = relation.type === "hasMany" || relation.type === "manyToMany";
|
|
286
|
+
const sc = await this.scopeCondition(relation, ctx);
|
|
287
|
+
if (sc === "DENY")
|
|
288
|
+
return isCollection ? [] : null;
|
|
172
289
|
const selectColumns = include.select
|
|
173
290
|
? Object.fromEntries(include.select
|
|
174
291
|
.filter((f) => f in targetColumns)
|
|
@@ -180,13 +297,13 @@ export class RelationLoader {
|
|
|
180
297
|
const fkValue = item[relation.foreignKey.name];
|
|
181
298
|
if (fkValue == null)
|
|
182
299
|
return null;
|
|
183
|
-
query = query.where(this.buildRelationWhere(targetSchema, include.filter, eq(relation.references, fkValue)));
|
|
300
|
+
query = query.where(this.buildRelationWhere(targetSchema, include.filter, eq(relation.references, fkValue), sc));
|
|
184
301
|
break;
|
|
185
302
|
}
|
|
186
303
|
case "hasOne":
|
|
187
304
|
case "hasMany": {
|
|
188
305
|
const sourceId = item[idColumn];
|
|
189
|
-
query = query.where(this.buildRelationWhere(targetSchema, include.filter, eq(relation.foreignKey, sourceId)));
|
|
306
|
+
query = query.where(this.buildRelationWhere(targetSchema, include.filter, eq(relation.foreignKey, sourceId), sc));
|
|
190
307
|
break;
|
|
191
308
|
}
|
|
192
309
|
case "manyToMany": {
|
|
@@ -198,7 +315,7 @@ export class RelationLoader {
|
|
|
198
315
|
.select(selectColumns)
|
|
199
316
|
.from(targetSchema)
|
|
200
317
|
.innerJoin(relation.through.schema, eq(relation.through.targetKey, relation.references))
|
|
201
|
-
.where(this.buildRelationWhere(targetSchema, include.filter, eq(relation.through.sourceKey, sourceId)));
|
|
318
|
+
.where(this.buildRelationWhere(targetSchema, include.filter, eq(relation.through.sourceKey, sourceId), sc));
|
|
202
319
|
break;
|
|
203
320
|
}
|
|
204
321
|
}
|
|
@@ -220,11 +337,11 @@ export class RelationLoader {
|
|
|
220
337
|
const nestedLoader = new RelationLoader(this.db, targetSchema, targetResource.config.relations, this.resourceRegistry, this.config);
|
|
221
338
|
const targetIdColumn = relation.references.name ?? "id";
|
|
222
339
|
if (relation.type === "hasMany" || relation.type === "manyToMany") {
|
|
223
|
-
return nestedLoader.loadRelationsForItems(results, include.nested, targetIdColumn, depth + 1);
|
|
340
|
+
return nestedLoader.loadRelationsForItems(results, include.nested, targetIdColumn, depth + 1, ctx);
|
|
224
341
|
}
|
|
225
342
|
else {
|
|
226
343
|
return results[0]
|
|
227
|
-
? nestedLoader.loadRelationsForItem(results[0], include.nested, targetIdColumn, depth + 1)
|
|
344
|
+
? nestedLoader.loadRelationsForItem(results[0], include.nested, targetIdColumn, depth + 1, ctx)
|
|
228
345
|
: null;
|
|
229
346
|
}
|
|
230
347
|
}
|
|
@@ -234,10 +351,13 @@ export class RelationLoader {
|
|
|
234
351
|
}
|
|
235
352
|
return results[0] ?? null;
|
|
236
353
|
}
|
|
237
|
-
async batchLoadRelation(items, relation, include, idColumn, depth) {
|
|
354
|
+
async batchLoadRelation(items, relation, include, idColumn, depth, ctx) {
|
|
238
355
|
const result = new Map();
|
|
239
356
|
const targetSchema = relation.schema;
|
|
240
357
|
const targetColumns = getTableColumns(targetSchema);
|
|
358
|
+
const sc = await this.scopeCondition(relation, ctx);
|
|
359
|
+
if (sc === "DENY")
|
|
360
|
+
return result;
|
|
241
361
|
const sourceIds = items.map((item) => item[idColumn]).filter((id) => id != null);
|
|
242
362
|
if (sourceIds.length === 0)
|
|
243
363
|
return result;
|
|
@@ -258,7 +378,7 @@ export class RelationLoader {
|
|
|
258
378
|
const query = this.db
|
|
259
379
|
.select(selectColumns)
|
|
260
380
|
.from(targetSchema)
|
|
261
|
-
.where(this.buildRelationWhere(targetSchema, include.filter, inArray(relation.references, fkValues)));
|
|
381
|
+
.where(this.buildRelationWhere(targetSchema, include.filter, inArray(relation.references, fkValues), sc));
|
|
262
382
|
const targetItems = await query;
|
|
263
383
|
const targetMap = new Map();
|
|
264
384
|
for (const targetItem of targetItems) {
|
|
@@ -285,7 +405,7 @@ export class RelationLoader {
|
|
|
285
405
|
let perQuery = this.db
|
|
286
406
|
.select(selectColumns)
|
|
287
407
|
.from(targetSchema)
|
|
288
|
-
.where(this.buildRelationWhere(targetSchema, include.filter, eq(relation.foreignKey, sourceId)));
|
|
408
|
+
.where(this.buildRelationWhere(targetSchema, include.filter, eq(relation.foreignKey, sourceId), sc));
|
|
289
409
|
if (perParentLimit != null) {
|
|
290
410
|
perQuery = perQuery.limit(perParentLimit);
|
|
291
411
|
}
|
|
@@ -303,7 +423,7 @@ export class RelationLoader {
|
|
|
303
423
|
_sourceId: relation.foreignKey,
|
|
304
424
|
})
|
|
305
425
|
.from(targetSchema)
|
|
306
|
-
.where(this.buildRelationWhere(targetSchema, include.filter, inArray(relation.foreignKey, sourceIds)));
|
|
426
|
+
.where(this.buildRelationWhere(targetSchema, include.filter, inArray(relation.foreignKey, sourceIds), sc));
|
|
307
427
|
const targetItems = await query;
|
|
308
428
|
if (relation.type === "hasOne") {
|
|
309
429
|
for (const targetItem of targetItems) {
|
|
@@ -337,7 +457,7 @@ export class RelationLoader {
|
|
|
337
457
|
.select(selectColumns)
|
|
338
458
|
.from(targetSchema)
|
|
339
459
|
.innerJoin(relation.through.schema, eq(relation.through.targetKey, relation.references))
|
|
340
|
-
.where(this.buildRelationWhere(targetSchema, include.filter, eq(relation.through.sourceKey, sourceId)));
|
|
460
|
+
.where(this.buildRelationWhere(targetSchema, include.filter, eq(relation.through.sourceKey, sourceId), sc));
|
|
341
461
|
if (perParentLimit != null) {
|
|
342
462
|
perQuery = perQuery.limit(perParentLimit);
|
|
343
463
|
}
|
|
@@ -356,7 +476,7 @@ export class RelationLoader {
|
|
|
356
476
|
})
|
|
357
477
|
.from(targetSchema)
|
|
358
478
|
.innerJoin(relation.through.schema, eq(relation.through.targetKey, relation.references))
|
|
359
|
-
.where(this.buildRelationWhere(targetSchema, include.filter, inArray(relation.through.sourceKey, sourceIds)));
|
|
479
|
+
.where(this.buildRelationWhere(targetSchema, include.filter, inArray(relation.through.sourceKey, sourceIds), sc));
|
|
360
480
|
const targetItems = await query;
|
|
361
481
|
for (const targetItem of targetItems) {
|
|
362
482
|
const sourceId = String(targetItem._sourceId);
|
|
@@ -376,11 +496,11 @@ export class RelationLoader {
|
|
|
376
496
|
const targetIdColumn = relation.references.name ?? "id";
|
|
377
497
|
for (const [sourceId, related] of result) {
|
|
378
498
|
if (Array.isArray(related)) {
|
|
379
|
-
const withNested = await nestedLoader.loadRelationsForItems(related, include.nested, targetIdColumn, depth + 1);
|
|
499
|
+
const withNested = await nestedLoader.loadRelationsForItems(related, include.nested, targetIdColumn, depth + 1, ctx);
|
|
380
500
|
result.set(sourceId, withNested);
|
|
381
501
|
}
|
|
382
502
|
else if (related) {
|
|
383
|
-
const withNested = await nestedLoader.loadRelationsForItem(related, include.nested, targetIdColumn, depth + 1);
|
|
503
|
+
const withNested = await nestedLoader.loadRelationsForItem(related, include.nested, targetIdColumn, depth + 1, ctx);
|
|
384
504
|
result.set(sourceId, withNested);
|
|
385
505
|
}
|
|
386
506
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/resource/relations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/resource/relations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { SSEWriter } from "../server/sse.js";
|
|
2
2
|
import { Filter } from "./filter.js";
|
|
3
|
-
import { Subscription, ChangelogEntry } from "./types.js";
|
|
3
|
+
import { Subscription, SubscriptionEvent, ChangelogEntry } from "./types.js";
|
|
4
4
|
export type BackpressurePolicy = "invalidate" | "disconnect" | "drop";
|
|
5
|
+
export type EventRenderer = (event: SubscriptionEvent | {
|
|
6
|
+
type: "invalidate";
|
|
7
|
+
reason?: string;
|
|
8
|
+
}) => string;
|
|
9
|
+
export declare const stashRenderer: (renderer: EventRenderer) => string;
|
|
10
|
+
export declare const takeRenderer: (token: string) => EventRenderer | undefined;
|
|
5
11
|
export declare const registerResourceMask: (resource: string, mask: (item: Record<string, unknown>) => Record<string, unknown>) => void;
|
|
6
12
|
type AggregateWatcher = (changed?: Record<string, unknown>[]) => void;
|
|
7
13
|
export declare const registerAggregateWatcher: (resource: string, watcher: AggregateWatcher) => (() => void);
|
|
@@ -21,7 +27,7 @@ export interface CreateSubscriptionOptions {
|
|
|
21
27
|
export declare const createSubscription: (options: CreateSubscriptionOptions) => Promise<string>;
|
|
22
28
|
export declare const removeSubscription: (subscriptionId: string) => Promise<void>;
|
|
23
29
|
export declare const getSubscription: (subscriptionId: string) => Promise<Subscription | undefined>;
|
|
24
|
-
export declare const registerHandler: (handlerId: string, writer: SSEWriter, backpressurePolicy?: BackpressurePolicy) => void;
|
|
30
|
+
export declare const registerHandler: (handlerId: string, writer: SSEWriter, backpressurePolicy?: BackpressurePolicy, renderer?: EventRenderer) => void;
|
|
25
31
|
export declare const unregisterHandler: (handlerId: string) => Promise<void>;
|
|
26
32
|
export declare const initializeEventSubscription: () => Promise<void>;
|
|
27
33
|
export declare const sendExistingItems: <T extends Record<string, unknown>>(subscriptionId: string, items: T[], idColumn: string) => Promise<void>;
|
|
@@ -34,7 +40,14 @@ export declare const invalidateResourceSubscriptions: (resource: string, reason?
|
|
|
34
40
|
export declare const processChangelogEntries: (entries: ChangelogEntry[], filterFactory: Filter, idColumn: string) => Promise<void>;
|
|
35
41
|
export declare const getSubscriptionsForResource: (resource: string) => Promise<Subscription[]>;
|
|
36
42
|
export declare const updateSubscriptionSeq: (subscriptionId: string, seq: number) => Promise<void>;
|
|
43
|
+
export declare const updateSubscriptionScope: (subscriptionId: string, scopeFilter: string | undefined) => Promise<void>;
|
|
44
|
+
export declare const applyScopeChange: <T extends Record<string, unknown>>(subscriptionId: string, newScopeFilter: string | undefined, matchingItems: T[], idColumn: string, relationLoader?: RelationLoader<T>) => Promise<{
|
|
45
|
+
added: number;
|
|
46
|
+
removed: number;
|
|
47
|
+
}>;
|
|
37
48
|
export declare const getCatchupEvents: (subscriptionId: string, sinceSeq: number) => Promise<ChangelogEntry[] | null>;
|
|
49
|
+
export type CatchupResult = "replayed" | "invalidate" | "no-subscription";
|
|
50
|
+
export declare const sendCatchupEvents: <T extends Record<string, unknown>>(subscriptionId: string, sinceSeq: number, uptoSeq: number, filterFactory: Filter, idColumn: string, relationLoader?: RelationLoader<T>) => Promise<CatchupResult>;
|
|
38
51
|
export declare const isHandlerConnected: (handlerId: string) => boolean;
|
|
39
52
|
export declare const getHandlerSubscriptions: (handlerId: string) => Promise<string[]>;
|
|
40
53
|
export declare const clearRelevantObjects: (subscriptionId: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/resource/subscription.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAA4B,MAAM,UAAU,CAAC;AAE5D,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/resource/subscription.ts"],"names":[],"mappings":"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"}
|