velocious 1.0.674 → 1.0.676

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 (31) hide show
  1. package/README.md +4 -2
  2. package/build/database/query/model-class-query.js +25 -2
  3. package/build/database/query/order-base.js +9 -0
  4. package/build/database/query/order-column.js +10 -0
  5. package/build/database/query/order-plain.js +16 -0
  6. package/build/src/database/query/model-class-query.d.ts +10 -0
  7. package/build/src/database/query/model-class-query.d.ts.map +1 -1
  8. package/build/src/database/query/model-class-query.js +24 -3
  9. package/build/src/database/query/order-base.d.ts +6 -0
  10. package/build/src/database/query/order-base.d.ts.map +1 -1
  11. package/build/src/database/query/order-base.js +9 -1
  12. package/build/src/database/query/order-column.d.ts +5 -0
  13. package/build/src/database/query/order-column.d.ts.map +1 -1
  14. package/build/src/database/query/order-column.js +9 -1
  15. package/build/src/database/query/order-plain.d.ts +5 -0
  16. package/build/src/database/query/order-plain.d.ts.map +1 -1
  17. package/build/src/database/query/order-plain.js +14 -1
  18. package/build/src/testing/browser-frontend-tenant-database-scenarios.d.ts +11 -0
  19. package/build/src/testing/browser-frontend-tenant-database-scenarios.d.ts.map +1 -0
  20. package/build/src/testing/browser-frontend-tenant-database-scenarios.js +147 -0
  21. package/build/src/testing/browser-test-app.js +3 -1
  22. package/build/testing/browser-frontend-tenant-database-scenarios.js +158 -0
  23. package/build/testing/browser-test-app.js +2 -0
  24. package/package.json +1 -1
  25. package/scripts/test-browser.js +5 -0
  26. package/src/database/query/model-class-query.js +25 -2
  27. package/src/database/query/order-base.js +9 -0
  28. package/src/database/query/order-column.js +10 -0
  29. package/src/database/query/order-plain.js +16 -0
  30. package/src/testing/browser-frontend-tenant-database-scenarios.js +158 -0
  31. package/src/testing/browser-test-app.js +2 -0
package/README.md CHANGED
@@ -21,8 +21,8 @@
21
21
  * Self-sustaining sync feeds: upstream imports triggered by the changes pull itself, with framework-owned coalescing and throttling (see [docs/sync-upstream-imports.md](docs/sync-upstream-imports.md))
22
22
  * AwesomeTasks-shaped offline sync proof using routed resources, domain commands, signed offline grants, and peer-forwarded mutations (see the [developer guide](docs/shared-resource-sync-guide.md) and [proof](docs/awesome-tasks-offline-sync-proof.md))
23
23
  * SQLite web persistence that automatically prefers OPFS, then IndexedDB, and migrates legacy persisted bytes when possible (see [docs/sqlite-web-persistence.md](docs/sqlite-web-persistence.md))
24
- * Bounded frontend tenant SQLite handles with independently deduplicated per-database migrations/model readiness, React lifecycle integration, durable flush/close, backend-complete deletion, clean-only LRU eviction, and scoped pins (see [docs/frontend-tenant-sqlite-lifecycle.md](docs/frontend-tenant-sqlite-lifecycle.md))
25
- * Expo / Metro compatibility guidance and a real Expo export check (see [docs/expo-metro-compatibility.md](docs/expo-metro-compatibility.md))
24
+ * Bounded frontend tenant SQLite handles with independently deduplicated per-database migrations/model readiness, React lifecycle integration, durable flush/close, backend-complete deletion, clean-only LRU eviction, scoped pins, and real-browser two-project persistence coverage (see [docs/frontend-tenant-sqlite-lifecycle.md](docs/frontend-tenant-sqlite-lifecycle.md))
25
+ * Expo / Metro compatibility guidance and an all-platform export fixture that exercises two real tenant SQLite replicas in exported web and resolves native bundles to `expo-sqlite` (see [docs/expo-metro-compatibility.md](docs/expo-metro-compatibility.md))
26
26
  * Gap-less positional lists with automatic reordering via `actsAsList`, including models with numeric, string, or UUID primary keys (see [docs/acts-as-list.md](docs/acts-as-list.md))
27
27
  * Rails-style nested-attribute writes on frontend-model `save()` (see [docs/nested-attributes.md](docs/nested-attributes.md))
28
28
  * Async-aware test-data factories with inherited traits, graph-first native association autosave, metadata-aware override precedence, callbacks, sequences, linting, and a process-global reload-retention budget that bounds cache-busted re-import memory (see [docs/factories.md](docs/factories.md))
@@ -1881,6 +1881,8 @@ const firstTask = await Task.first()
1881
1881
  const lastTask = await Task.last()
1882
1882
  ```
1883
1883
 
1884
+ An explicitly set `order(...)` is preserved: `first()` reads from the front of the ordered result and `last()` from its end (reversing the effective direction without mutating the source query). When no order was set, a deterministic identity order is applied.
1885
+
1884
1886
  ### Find by attributes
1885
1887
 
1886
1888
  ```js
@@ -940,10 +940,17 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
940
940
 
941
941
  /**
942
942
  * Runs first.
943
+ *
944
+ * An explicitly set order is preserved; the deterministic identity order is
945
+ * only applied as a fallback when no order was set, so `LIMIT 1` never
946
+ * returns an arbitrary row.
943
947
  * @returns {Promise<InstanceType<MC> | null>} - Resolves with the first.
944
948
  */
945
949
  async first() {
946
- const newQuery = this.clone().limit(1).reorder(this._defaultIdentityOrder("ASC"))
950
+ const newQuery = this.clone().limit(1)
951
+
952
+ if (newQuery.getOrders().length == 0) newQuery.reorder(this._defaultIdentityOrder("ASC"))
953
+
947
954
  const results = await newQuery.toArray()
948
955
 
949
956
  return results[0] || null
@@ -951,10 +958,26 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
951
958
 
952
959
  /**
953
960
  * Runs last.
961
+ *
962
+ * An explicitly set order is preserved and read from its end; the
963
+ * deterministic identity order is only applied as a fallback when no order
964
+ * was set. The clone shares its order instances with the source query, so
965
+ * the explicit orders are replaced by independent reversed copies instead
966
+ * of mutating the shared ones.
954
967
  * @returns {Promise<InstanceType<MC> | null>} - Resolves with the last.
955
968
  */
956
969
  async last() {
957
- const results = await this.clone().reorder(this._defaultIdentityOrder("DESC")).limit(1).toArray()
970
+ const newQuery = this.clone().limit(1)
971
+
972
+ if (newQuery.getOrders().length == 0) {
973
+ newQuery.reorder(this._defaultIdentityOrder("DESC"))
974
+ } else {
975
+ const orders = newQuery.getOrders()
976
+
977
+ for (let i = 0; i < orders.length; i += 1) orders[i] = orders[i].reversedCopy()
978
+ }
979
+
980
+ const results = await newQuery.toArray()
958
981
 
959
982
  return results[0] || null
960
983
  }
@@ -27,6 +27,15 @@ export default class VelociousDatabaseQueryOrderBase {
27
27
  throw new Error("setReverseOrder not implemented")
28
28
  }
29
29
 
30
+ /**
31
+ * Runs reversed copy.
32
+ * @abstract
33
+ * @returns {import("./order-base.js").default} - A new independent order with the direction reversed.
34
+ */
35
+ reversedCopy() {
36
+ throw new Error("reversedCopy not implemented")
37
+ }
38
+
30
39
  toSql() {
31
40
  throw new Error("'toSql' wasn't implemented")
32
41
  }
@@ -59,6 +59,16 @@ export default class VelociousDatabaseQueryOrderColumn extends OrderBase {
59
59
  this.reverseOrder = reverseOrder
60
60
  }
61
61
 
62
+ /**
63
+ * Runs reversed copy.
64
+ * @returns {VelociousDatabaseQueryOrderColumn} - A new independent order reversing the effective (rendered) direction.
65
+ */
66
+ reversedCopy() {
67
+ const direction = this.reverseOrder ? this.direction : reverseDirection(this.direction)
68
+
69
+ return new VelociousDatabaseQueryOrderColumn(this.query, {column: this.column, direction, tableName: this.tableName})
70
+ }
71
+
62
72
  /**
63
73
  * Runs to sql.
64
74
  * @returns {string} - SQL string.
@@ -18,6 +18,22 @@ export default class VelociousDatabaseQueryOrderPlain extends OrderBase {
18
18
  this.reverseOrder = true
19
19
  }
20
20
 
21
+ /**
22
+ * Runs reversed copy.
23
+ * @returns {VelociousDatabaseQueryOrderPlain} - A new independent order reversing the effective (rendered) direction; a directionless plain order renders DESC.
24
+ */
25
+ reversedCopy() {
26
+ const effective = this.reverseOrder ? `${this.plain} DESC` : this.plain
27
+ const match = effective.match(/^(.*\S)\s+(ASC|DESC)$/i)
28
+
29
+ if (match) {
30
+ const direction = match[2].toUpperCase() == "ASC" ? "DESC" : "ASC"
31
+ return new VelociousDatabaseQueryOrderPlain(this.query, `${match[1]} ${direction}`)
32
+ }
33
+
34
+ return new VelociousDatabaseQueryOrderPlain(this.query, `${effective} DESC`)
35
+ }
36
+
21
37
  toSql() {
22
38
  if (this.reverseOrder) {
23
39
  return `${this.plain} DESC`
@@ -291,11 +291,21 @@ export default class VelociousDatabaseQueryModelClassQuery<MC extends typeof imp
291
291
  create(attributes?: Record<string, ReturnType<typeof JSON.parse>>): Promise<InstanceType<MC>>;
292
292
  /**
293
293
  * Runs first.
294
+ *
295
+ * An explicitly set order is preserved; the deterministic identity order is
296
+ * only applied as a fallback when no order was set, so `LIMIT 1` never
297
+ * returns an arbitrary row.
294
298
  * @returns {Promise<InstanceType<MC> | null>} - Resolves with the first.
295
299
  */
296
300
  first(): Promise<InstanceType<MC> | null>;
297
301
  /**
298
302
  * Runs last.
303
+ *
304
+ * An explicitly set order is preserved and read from its end; the
305
+ * deterministic identity order is only applied as a fallback when no order
306
+ * was set. The clone shares its order instances with the source query, so
307
+ * the explicit orders are replaced by independent reversed copies instead
308
+ * of mutating the shared ones.
299
309
  * @returns {Promise<InstanceType<MC> | null>} - Resolves with the last.
300
310
  */
301
311
  last(): Promise<InstanceType<MC> | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"model-class-query.d.ts","sourceRoot":"","sources":["../../../../src/database/query/model-class-query.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-class-query.d.ts","sourceRoot":"","sources":["../../../../src/database/query/model-class-query.js"],"names":[],"mappings":"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"}