@kernhq/module-quire 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +93 -55
  2. package/dist/{server → client}/formula.d.ts +6 -0
  3. package/dist/client/formula.d.ts.map +1 -0
  4. package/dist/{server → client}/formula.js +6 -0
  5. package/dist/client/formula.js.map +1 -0
  6. package/dist/contract/properties.d.ts +26 -0
  7. package/dist/contract/properties.d.ts.map +1 -1
  8. package/dist/contract/properties.js +24 -0
  9. package/dist/contract/properties.js.map +1 -1
  10. package/dist/contract/router.d.ts +334 -0
  11. package/dist/contract/router.d.ts.map +1 -1
  12. package/dist/contract/router.js +43 -1
  13. package/dist/contract/router.js.map +1 -1
  14. package/dist/server/_impl.d.ts +341 -0
  15. package/dist/server/_impl.d.ts.map +1 -1
  16. package/dist/server/_impl.js +79 -10
  17. package/dist/server/_impl.js.map +1 -1
  18. package/dist/server/services/databases.d.ts +73 -1
  19. package/dist/server/services/databases.d.ts.map +1 -1
  20. package/dist/server/services/databases.js +167 -10
  21. package/dist/server/services/databases.js.map +1 -1
  22. package/dist/server/services/pages.d.ts.map +1 -1
  23. package/dist/server/services/pages.js +11 -1
  24. package/dist/server/services/pages.js.map +1 -1
  25. package/dist/server/services/query.d.ts.map +1 -1
  26. package/dist/server/services/query.js +93 -37
  27. package/dist/server/services/query.js.map +1 -1
  28. package/migrations/0006_rank_collation.sql +14 -0
  29. package/migrations/meta/_journal.json +7 -0
  30. package/package.json +3 -2
  31. package/src/client/components/PageTreeRow.svelte +1 -1
  32. package/src/client/core-api.ts +38 -0
  33. package/src/client/database/BoardView.svelte +354 -0
  34. package/src/client/database/CalendarView.svelte +346 -0
  35. package/src/client/database/DatabaseView.svelte +785 -0
  36. package/src/client/database/FilterMenu.svelte +281 -0
  37. package/src/client/database/FilterValue.svelte +176 -0
  38. package/src/client/database/GalleryView.svelte +177 -0
  39. package/src/client/database/ListView.svelte +108 -0
  40. package/src/client/database/OptionChip.svelte +38 -0
  41. package/src/client/database/PropertyDialog.svelte +460 -0
  42. package/src/client/database/PropertyMenu.svelte +162 -0
  43. package/src/client/database/RowPanel.svelte +157 -0
  44. package/src/client/database/SortMenu.svelte +199 -0
  45. package/src/client/database/TableView.svelte +388 -0
  46. package/src/client/database/ViewDialog.svelte +229 -0
  47. package/src/client/database/cells/Cell.svelte +103 -0
  48. package/src/client/database/cells/CheckboxCell.svelte +33 -0
  49. package/src/client/database/cells/ComputedCell.svelte +100 -0
  50. package/src/client/database/cells/DateCell.svelte +97 -0
  51. package/src/client/database/cells/LinkCell.svelte +143 -0
  52. package/src/client/database/cells/NumberCell.svelte +131 -0
  53. package/src/client/database/cells/PersonCell.svelte +116 -0
  54. package/src/client/database/cells/RelationCell.svelte +222 -0
  55. package/src/client/database/cells/SelectCell.svelte +133 -0
  56. package/src/client/database/cells/TextCell.svelte +85 -0
  57. package/src/client/database/colours.ts +27 -0
  58. package/src/client/database/property-types.test.ts +64 -0
  59. package/src/client/database/property-types.ts +294 -0
  60. package/src/client/database/view-config.test.ts +148 -0
  61. package/src/client/database/view-config.ts +102 -0
  62. package/src/client/formula.test.ts +139 -0
  63. package/src/client/formula.ts +430 -0
  64. package/src/client/i18n.ts +1176 -0
  65. package/src/client/index.ts +31 -0
  66. package/src/client/mock.ts +511 -1
  67. package/src/client/pages/PageView.svelte +47 -17
  68. package/src/client/pages/SpacePage.svelte +8 -2
  69. package/src/client/query.ts +17 -4
  70. package/src/contract/properties.ts +28 -0
  71. package/src/contract/router.ts +46 -0
  72. package/dist/server/formula.d.ts.map +0 -1
  73. package/dist/server/formula.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"_impl.js","sourceRoot":"","sources":["../../src/server/_impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_impl.js","sourceRoot":"","sources":["../../src/server/_impl.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,45 @@
1
1
  import type { Principal } from '@kernhq/contracts';
2
2
  import { type Kernel, type Tx } from '@kernhq/kernel';
3
- import type { Database, Property, Row, View, ViewConfig } from '../../contract/index.js';
3
+ import type { Database, DatabaseRef, Property, Row, RowRef, View, ViewConfig } from '../../contract/index.js';
4
4
  import { pages, properties, views } from '../schema.js';
5
5
  import type { QuireAccess } from './access.js';
6
6
  type PropertyRow = typeof properties.$inferSelect;
7
7
  type ViewRow = typeof views.$inferSelect;
8
8
  type PageRow = typeof pages.$inferSelect;
9
9
  export declare const toProperty: (r: PropertyRow) => Property;
10
+ /**
11
+ * `config` is **parsed**, never cast.
12
+ *
13
+ * The column is one jsonb blob written by whatever the client last sent, so a cast promises
14
+ * `filterMode: 'and'` and hands the caller `undefined`. Every default in `ViewConfig` exists to be
15
+ * relied on — parsing here is what makes the type the client is given true.
16
+ */
10
17
  export declare const toView: (r: ViewRow) => View;
11
18
  export declare const toRow: (p: PageRow) => Row;
12
19
  export declare function quireDatabases(kernel: Kernel, access: QuireAccess): {
13
20
  get(tx: Tx, workspaceId: string, databaseId: string): Promise<Database>;
21
+ /** Every database in a space, named. What a relation or a rollup is allowed to point at. */
22
+ list(tx: Tx, workspaceId: string, spaceId: string): Promise<DatabaseRef[]>;
23
+ /**
24
+ * The database a page *is*, or null.
25
+ *
26
+ * `pages.database_id` points the other way — it says which database a row belongs to — so this
27
+ * is the only way a `database` page can find what to draw. Null rather than a refusal: a page
28
+ * whose kind says database but which has none yet is a state the interface has to render.
29
+ */
30
+ forPage(tx: Tx, workspaceId: string, pageId: string): Promise<Database | null>;
31
+ /**
32
+ * Rows by name — what a relation cell draws and what it searches.
33
+ *
34
+ * `ids` and `query` are OR-ed rather than AND-ed on purpose: a cell asks for the rows it holds
35
+ * *and* the rows matching what is being typed in one call, and a cell that loses the chips it
36
+ * already had the moment somebody types is the bug this shape avoids.
37
+ */
38
+ lookup(tx: Tx, workspaceId: string, databaseId: string, opts: {
39
+ query: string;
40
+ ids: string[];
41
+ limit: number;
42
+ }): Promise<RowRef[]>;
14
43
  /**
15
44
  * Create a database on a page.
16
45
  *
@@ -153,6 +182,41 @@ export declare function quireDatabases(kernel: Kernel, access: QuireAccess): {
153
182
  position: string;
154
183
  hidden: boolean;
155
184
  }>;
185
+ /**
186
+ * Put a column behind another one.
187
+ *
188
+ * The rank is minted here, between the two neighbours, exactly as `pages.move` does it — the
189
+ * contract exposes `afterId` and never a raw position, because a client that writes its own
190
+ * fractional index writes one somebody else is already using.
191
+ */
192
+ moveProperty(tx: Tx, workspaceId: string, propertyId: string, afterId: string | null): Promise<{
193
+ id: string;
194
+ databaseId: string;
195
+ key: string;
196
+ name: string;
197
+ type: "number" | "date" | "email" | "text" | "select" | "multi_select" | "status" | "person" | "files" | "checkbox" | "url" | "phone" | "relation" | "rollup" | "formula" | "created_time" | "created_by" | "edited_time" | "edited_by";
198
+ config: {
199
+ options?: {
200
+ id: string;
201
+ label: string;
202
+ colour: string;
203
+ group?: "todo" | "doing" | "done" | undefined;
204
+ }[] | undefined;
205
+ format?: string | undefined;
206
+ precision?: number | undefined;
207
+ includeTime?: boolean | undefined;
208
+ isRange?: boolean | undefined;
209
+ relationDatabaseId?: string | undefined;
210
+ relationPropertyId?: string | undefined;
211
+ rollupRelationPropertyId?: string | undefined;
212
+ rollupTargetPropertyId?: string | undefined;
213
+ rollupFunction?: "count" | "count_values" | "count_unique" | "sum" | "average" | "min" | "max" | "range" | "show_original" | "checked" | "unchecked" | "percent_checked" | undefined;
214
+ expression?: string | undefined;
215
+ multiple?: boolean | undefined;
216
+ };
217
+ position: string;
218
+ hidden: boolean;
219
+ }>;
156
220
  removeProperty(tx: Tx, workspaceId: string, propertyId: string): Promise<{
157
221
  id: string;
158
222
  databaseId: string;
@@ -237,6 +301,14 @@ export declare function quireDatabases(kernel: Kernel, access: QuireAccess): {
237
301
  position: string;
238
302
  isDefault: boolean;
239
303
  }>;
304
+ /**
305
+ * Delete a view.
306
+ *
307
+ * Refused when it is the **last** one, not when it is the default — those are different rules,
308
+ * and the first tab of every database is the default, so refusing the default meant the first
309
+ * tab could never be deleted however many others existed. When the default goes, the next view
310
+ * by position takes over; a database with views and no default renders nothing at all.
311
+ */
240
312
  removeView(tx: Tx, workspaceId: string, viewId: string): Promise<{
241
313
  id: string;
242
314
  databaseId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../../src/server/services/databases.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"databases.d.ts","sourceRoot":"","sources":["../../../src/server/services/databases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAa,KAAK,MAAM,EAAE,KAAK,EAAE,EAAU,MAAM,gBAAgB,CAAA;AAUxE,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE7G,OAAO,EAAa,KAAK,EAAE,UAAU,EAAa,KAAK,EAAE,MAAM,cAAc,CAAA;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAG9C,KAAK,WAAW,GAAG,OAAO,UAAU,CAAC,YAAY,CAAA;AACjD,KAAK,OAAO,GAAG,OAAO,KAAK,CAAC,YAAY,CAAA;AACxC,KAAK,OAAO,GAAG,OAAO,KAAK,CAAC,YAAY,CAAA;AAExC,eAAO,MAAM,UAAU,GAAI,GAAG,WAAW,KAAG,QAS1C,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GAAI,GAAG,OAAO,KAAG,IAQlC,CAAA;AAEF,eAAO,MAAM,KAAK,GAAI,GAAG,OAAO,KAAG,GAWjC,CAAA;AAgBF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;YAYhD,EAAE,eAAe,MAAM,cAAc,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkC7E,4FAA4F;aAC7E,EAAE,eAAe,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAShF;;;;;;OAMG;gBACe,EAAE,eAAe,MAAM,UAAU,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IASpF;;;;;;OAMG;eAEG,EAAE,eACO,MAAM,cACP,MAAM,QACZ;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GACpD,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBpB;;;;;OAKG;eAEG,EAAE,aACK,SAAS,eACP,MAAM,SACZ;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8CrE,EAAE,eACO,MAAM,cACP,MAAM,SACX;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuB9E;;;;;OAKG;uBAEG,EAAE,eACO,MAAM,cACP,MAAM,SACX,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWvF;;;;;;OAMG;qBACoB,EAAE,eAAe,MAAM,cAAc,MAAM,WAAW,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA2BjE,EAAE,eAAe,MAAM,cAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAmB9D,EAAE,eACO,MAAM,cACP,MAAM,SACX;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;mBAwBrE,EAAE,eACO,MAAM,UACX,MAAM,SACP,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;IAWxE;;;;;;;OAOG;mBACkB,EAAE,eAAe,MAAM,UAAU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;IA2B5D;;;;;OAKG;aAEG,EAAE,eACO,MAAM,cACP,MAAM,QACZ;QAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;;;;;;;;;;;;;;;IAqDpE;;;;;;OAMG;kBACiB,EAAE,eAAe,MAAM,UAAU,MAAM;IAiD3D,yEAAyE;eAEnE,EAAE,eACO,MAAM,UACX,MAAM,YACJ,QAAQ,OACb,QAAQ,EAAE,GACd,OAAO,CAAC,OAAO,CAAC;IA8EnB;;;;;OAKG;oBAEG,EAAE,eACO,MAAM,cACP,MAAM,cACN,MAAM,aACP,MAAM,EAAE;IA8GrB;;;;;OAKG;qBACoB,EAAE,eAAe,MAAM,UAAU,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQlF,0CAA0C;gBACxB,EAAE,eAAe,MAAM,UAAU,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAUxE;;;;;OAKG;qBAEG,EAAE,eACO,MAAM,UACX,MAAM,cACF,MAAM,GAAG,IAAI,SAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAmBhC,wFAAwF;+BAC7D,MAAM,GAAG,MAAM,EAAE;;EAU/C;AACD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA"}
@@ -1,7 +1,8 @@
1
1
  import { KernError, uuidv7 } from '@kernhq/kernel';
2
- import { and, asc, eq, inArray, isNull, sql } from 'drizzle-orm';
2
+ import { and, asc, eq, ilike, inArray, isNull, or, sql } from 'drizzle-orm';
3
+ import { evaluateFormula, formulaDependencies, parseFormula, } from '../../client/formula.js';
3
4
  import { initialRank, rankBetween } from '../../client/rank.js';
4
- import { evaluateFormula, formulaDependencies, parseFormula, } from '../formula.js';
5
+ import { ViewConfig as ViewConfigSchema } from '../../contract/index.js';
5
6
  import { databases, pages, properties, relations, views } from '../schema.js';
6
7
  import { filterToSql, propertyFor, sortToSql } from './query.js';
7
8
  export const toProperty = (r) => ({
@@ -14,12 +15,19 @@ export const toProperty = (r) => ({
14
15
  position: r.position,
15
16
  hidden: r.hidden,
16
17
  });
18
+ /**
19
+ * `config` is **parsed**, never cast.
20
+ *
21
+ * The column is one jsonb blob written by whatever the client last sent, so a cast promises
22
+ * `filterMode: 'and'` and hands the caller `undefined`. Every default in `ViewConfig` exists to be
23
+ * relied on — parsing here is what makes the type the client is given true.
24
+ */
17
25
  export const toView = (r) => ({
18
26
  id: r.id,
19
27
  databaseId: r.databaseId,
20
28
  name: r.name,
21
29
  kind: r.kind,
22
- config: r.config,
30
+ config: ViewConfigSchema.parse((r.config ?? {})),
23
31
  position: r.position,
24
32
  isDefault: r.isDefault,
25
33
  });
@@ -94,6 +102,50 @@ export function quireDatabases(kernel, access) {
94
102
  updatedAt: db.updatedAt.toISOString(),
95
103
  };
96
104
  },
105
+ /** Every database in a space, named. What a relation or a rollup is allowed to point at. */
106
+ async list(tx, workspaceId, spaceId) {
107
+ const rows = await tx
108
+ .select({ id: databases.id, pageId: databases.pageId, name: databases.name })
109
+ .from(databases)
110
+ .where(and(eq(databases.workspaceId, workspaceId), eq(databases.spaceId, spaceId)))
111
+ .orderBy(asc(databases.name));
112
+ return rows;
113
+ },
114
+ /**
115
+ * The database a page *is*, or null.
116
+ *
117
+ * `pages.database_id` points the other way — it says which database a row belongs to — so this
118
+ * is the only way a `database` page can find what to draw. Null rather than a refusal: a page
119
+ * whose kind says database but which has none yet is a state the interface has to render.
120
+ */
121
+ async forPage(tx, workspaceId, pageId) {
122
+ const [db] = await tx
123
+ .select({ id: databases.id })
124
+ .from(databases)
125
+ .where(and(eq(databases.workspaceId, workspaceId), eq(databases.pageId, pageId)))
126
+ .limit(1);
127
+ return db ? this.get(tx, workspaceId, db.id) : null;
128
+ },
129
+ /**
130
+ * Rows by name — what a relation cell draws and what it searches.
131
+ *
132
+ * `ids` and `query` are OR-ed rather than AND-ed on purpose: a cell asks for the rows it holds
133
+ * *and* the rows matching what is being typed in one call, and a cell that loses the chips it
134
+ * already had the moment somebody types is the bug this shape avoids.
135
+ */
136
+ async lookup(tx, workspaceId, databaseId, opts) {
137
+ const wanted = [
138
+ opts.ids.length > 0 ? inArray(pages.id, opts.ids) : undefined,
139
+ opts.query.trim() ? ilike(pages.title, `%${opts.query.trim()}%`) : undefined,
140
+ ].filter((c) => c !== undefined);
141
+ const rows = await tx
142
+ .select({ id: pages.id, title: pages.title, icon: pages.icon })
143
+ .from(pages)
144
+ .where(and(eq(pages.workspaceId, workspaceId), eq(pages.databaseId, databaseId), isNull(pages.deletedAt), wanted.length > 0 ? or(...wanted) : undefined))
145
+ .orderBy(asc(pages.title))
146
+ .limit(opts.limit);
147
+ return rows.map((r) => ({ id: r.id, title: r.title, icon: r.icon }));
148
+ },
97
149
  /**
98
150
  * Create a database on a page.
99
151
  *
@@ -180,6 +232,40 @@ export function quireDatabases(kernel, access) {
180
232
  throw KernError.notFound('Property');
181
233
  return toProperty(row);
182
234
  },
235
+ /**
236
+ * Put a column behind another one.
237
+ *
238
+ * The rank is minted here, between the two neighbours, exactly as `pages.move` does it — the
239
+ * contract exposes `afterId` and never a raw position, because a client that writes its own
240
+ * fractional index writes one somebody else is already using.
241
+ */
242
+ async moveProperty(tx, workspaceId, propertyId, afterId) {
243
+ const [row] = await tx
244
+ .select()
245
+ .from(properties)
246
+ .where(and(eq(properties.workspaceId, workspaceId), eq(properties.id, propertyId)))
247
+ .limit(1);
248
+ if (!row)
249
+ throw KernError.notFound('Property');
250
+ if (afterId === propertyId)
251
+ throw KernError.badRequest('A column cannot follow itself');
252
+ const siblings = await tx
253
+ .select({ id: properties.id, position: properties.position })
254
+ .from(properties)
255
+ .where(and(eq(properties.workspaceId, workspaceId), eq(properties.databaseId, row.databaseId)))
256
+ .orderBy(asc(properties.position));
257
+ const others = siblings.filter((s) => s.id !== propertyId);
258
+ const at = afterId ? others.findIndex((s) => s.id === afterId) : -1;
259
+ if (afterId && at < 0)
260
+ throw KernError.badRequest('No such column in this database');
261
+ const position = rankBetween(others[at]?.position ?? null, others[at + 1]?.position ?? null);
262
+ const [moved] = await tx
263
+ .update(properties)
264
+ .set({ position })
265
+ .where(and(eq(properties.workspaceId, workspaceId), eq(properties.id, propertyId)))
266
+ .returning();
267
+ return toProperty(moved);
268
+ },
183
269
  async removeProperty(tx, workspaceId, propertyId) {
184
270
  const [row] = await tx
185
271
  .select()
@@ -229,6 +315,14 @@ export function quireDatabases(kernel, access) {
229
315
  throw KernError.notFound('View');
230
316
  return toView(row);
231
317
  },
318
+ /**
319
+ * Delete a view.
320
+ *
321
+ * Refused when it is the **last** one, not when it is the default — those are different rules,
322
+ * and the first tab of every database is the default, so refusing the default meant the first
323
+ * tab could never be deleted however many others existed. When the default goes, the next view
324
+ * by position takes over; a database with views and no default renders nothing at all.
325
+ */
232
326
  async removeView(tx, workspaceId, viewId) {
233
327
  const [row] = await tx
234
328
  .select()
@@ -237,9 +331,22 @@ export function quireDatabases(kernel, access) {
237
331
  .limit(1);
238
332
  if (!row)
239
333
  throw KernError.notFound('View');
240
- if (row.isDefault)
334
+ const siblings = await tx
335
+ .select({ id: views.id, position: views.position })
336
+ .from(views)
337
+ .where(and(eq(views.workspaceId, workspaceId), eq(views.databaseId, row.databaseId)))
338
+ .orderBy(asc(views.position));
339
+ if (siblings.length <= 1)
241
340
  throw KernError.badRequest('A database keeps at least one view');
242
341
  await tx.delete(views).where(and(eq(views.workspaceId, workspaceId), eq(views.id, viewId)));
342
+ if (row.isDefault) {
343
+ const heir = siblings.find((v) => v.id !== viewId);
344
+ if (heir)
345
+ await tx
346
+ .update(views)
347
+ .set({ isDefault: true })
348
+ .where(and(eq(views.workspaceId, workspaceId), eq(views.id, heir.id)));
349
+ }
243
350
  return toView(row);
244
351
  },
245
352
  /**
@@ -264,19 +371,32 @@ export function quireDatabases(kernel, access) {
264
371
  ? sql `(${sql.join(filters, sql ` or `)})`
265
372
  : sql `(${sql.join(filters, sql ` and `)})`);
266
373
  }
267
- if (opts.cursor)
268
- conditions.push(sql `${pages.id} > ${opts.cursor}`);
269
374
  const orderBy = (config?.sorts ?? []).map((s) => sortToSql(s, propertyFor(db.properties, s.propertyKey)));
270
- // Always last, so ordering is total and the keyset cursor cannot skip or repeat a row.
375
+ // Always last, so the ordering is total and two rows with equal sort keys keep a stable order
376
+ // between pages.
271
377
  orderBy.push(sql `${pages.id} asc`);
378
+ /**
379
+ * Paged by offset, not by a keyset on `pages.id`.
380
+ *
381
+ * A keyset cursor is only correct when the ordering it filters on *is* the ordering — and the
382
+ * moment a view carries a sort, `id > cursor` throws away rows that sort after the cursor but
383
+ * have a smaller id, and repeats the ones that sort before it. Every sorted view lost rows
384
+ * that way, and nothing said so: a short page reads as the end of the data.
385
+ *
386
+ * Offset paging repeats a row if somebody inserts one mid-scroll, which is the cheaper wrong
387
+ * answer, and the only alternative is a composite keyset over an arbitrary sort expression.
388
+ */
389
+ const offset = Number.parseInt(opts.cursor ?? '0', 10);
390
+ const from = Number.isFinite(offset) && offset > 0 ? offset : 0;
272
391
  const found = await tx
273
392
  .select()
274
393
  .from(pages)
275
394
  .where(and(...conditions))
276
395
  .orderBy(...orderBy)
277
- .limit(opts.limit + 1);
396
+ .limit(opts.limit + 1)
397
+ .offset(from);
278
398
  const items = found.slice(0, opts.limit).map(toRow);
279
- return { items, nextCursor: found.length > opts.limit ? (items.at(-1)?.id ?? null) : null };
399
+ return { items, nextCursor: found.length > opts.limit ? String(from + items.length) : null };
280
400
  },
281
401
  /**
282
402
  * Recompute the formulas and rollups of one row.
@@ -421,6 +541,13 @@ export function quireDatabases(kernel, access) {
421
541
  if (!property)
422
542
  throw KernError.notFound('Property');
423
543
  const inverse = property.config.relationPropertyId ?? null;
544
+ // The rows this link used to reach: they have to be recomputed and un-mirrored too, or a row
545
+ // that was just unlinked keeps the backlink and the rollup that came with it.
546
+ const before = await tx
547
+ .select({ id: relations.toPageId })
548
+ .from(relations)
549
+ .where(and(eq(relations.workspaceId, workspaceId), eq(relations.propertyId, propertyId), eq(relations.fromPageId, fromPageId)));
550
+ const previous = before.map((b) => b.id);
424
551
  await tx
425
552
  .delete(relations)
426
553
  .where(and(eq(relations.workspaceId, workspaceId), eq(relations.propertyId, propertyId), eq(relations.fromPageId, fromPageId)));
@@ -447,9 +574,39 @@ export function quireDatabases(kernel, access) {
447
574
  })));
448
575
  }
449
576
  }
577
+ /**
578
+ * Mirror the ids into `props` on both sides.
579
+ *
580
+ * The join table stays the truth — it is what a rollup walks — but nothing *reads* a row
581
+ * except through `props`: `toRow` returns that column and no other, and the relation branch
582
+ * of `filterToSql` is `props->key ?| array`. Without the mirror a relation column is
583
+ * permanently blank and a relation filter never matches, which reads as missing data rather
584
+ * than as a missing write. This is the same trick as `pages.title` mirroring the Y.Text.
585
+ */
586
+ await this.setRowFields(tx, workspaceId, fromPageId, null, { [property.key]: toPageIds });
587
+ const touched = [...new Set([...previous, ...toPageIds])];
588
+ if (inverse && touched.length > 0) {
589
+ const [inverseRow] = await tx
590
+ .select({ key: properties.key })
591
+ .from(properties)
592
+ .where(and(eq(properties.workspaceId, workspaceId), eq(properties.id, inverse)))
593
+ .limit(1);
594
+ if (inverseRow) {
595
+ const links = await tx
596
+ .select({ from: relations.fromPageId, to: relations.toPageId })
597
+ .from(relations)
598
+ .where(and(eq(relations.workspaceId, workspaceId), eq(relations.propertyId, inverse), inArray(relations.fromPageId, touched)));
599
+ // Every touched row is written, including one whose last link just went — an absent key
600
+ // here would leave the id it no longer holds sitting in `props`.
601
+ for (const id of touched)
602
+ await this.setRowFields(tx, workspaceId, id, null, {
603
+ [inverseRow.key]: links.filter((l) => l.from === id).map((l) => l.to),
604
+ });
605
+ }
606
+ }
450
607
  // The rows on both sides may carry rollups over this relation.
451
608
  await this.recompute(tx, workspaceId, fromPageId);
452
- for (const id of toPageIds)
609
+ for (const id of touched)
453
610
  await this.recompute(tx, workspaceId, id);
454
611
  },
455
612
  /**