@warlock.js/cascade 5.30.0 → 5.31.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 (89) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -5
  3. package/cjs/index.cjs +0 -1
  4. package/cjs/index.cjs.map +1 -1
  5. package/esm/contracts/database-restorer.contract.d.mts.map +1 -1
  6. package/esm/data-source/data-source-registry.d.mts.map +1 -1
  7. package/esm/data-source/data-source-registry.mjs.map +1 -1
  8. package/esm/drivers/mongodb/mongodb-driver.d.mts.map +1 -1
  9. package/esm/drivers/mongodb/mongodb-driver.mjs.map +1 -1
  10. package/esm/drivers/mongodb/mongodb-id-generator.d.mts.map +1 -1
  11. package/esm/drivers/mongodb/mongodb-id-generator.mjs.map +1 -1
  12. package/esm/drivers/mongodb/mongodb-query-builder.d.mts.map +1 -1
  13. package/esm/drivers/mongodb/mongodb-query-builder.mjs.map +1 -1
  14. package/esm/drivers/mongodb/mongodb-query-operations.d.mts.map +1 -1
  15. package/esm/drivers/mongodb/mongodb-query-operations.mjs.map +1 -1
  16. package/esm/drivers/mongodb/mongodb-query-parser.d.mts.map +1 -1
  17. package/esm/drivers/mongodb/mongodb-query-parser.mjs.map +1 -1
  18. package/esm/drivers/postgres/naming.mjs.map +1 -1
  19. package/esm/drivers/postgres/postgres-dialect.d.mts.map +1 -1
  20. package/esm/drivers/postgres/postgres-dialect.mjs.map +1 -1
  21. package/esm/drivers/postgres/postgres-driver.d.mts.map +1 -1
  22. package/esm/drivers/postgres/postgres-driver.mjs.map +1 -1
  23. package/esm/drivers/postgres/postgres-migration-driver.d.mts.map +1 -1
  24. package/esm/drivers/postgres/postgres-migration-driver.mjs.map +1 -1
  25. package/esm/drivers/postgres/postgres-query-builder.d.mts.map +1 -1
  26. package/esm/drivers/postgres/postgres-query-builder.mjs.map +1 -1
  27. package/esm/drivers/postgres/postgres-query-parser.d.mts.map +1 -1
  28. package/esm/drivers/postgres/postgres-query-parser.mjs +0 -1
  29. package/esm/drivers/postgres/postgres-query-parser.mjs.map +1 -1
  30. package/esm/drivers/postgres/postgres-sql-serializer.mjs.map +1 -1
  31. package/esm/drivers/postgres/postgres-ttl-purge.mjs.map +1 -1
  32. package/esm/drivers/postgres/types.d.mts.map +1 -1
  33. package/esm/errors/unsupported-query-operation.error.mjs.map +1 -1
  34. package/esm/expressions/column-expressions.d.mts.map +1 -1
  35. package/esm/expressions/column-expressions.mjs.map +1 -1
  36. package/esm/migration/foreign-key-builder.mjs.map +1 -1
  37. package/esm/migration/parse-created-at.mjs.map +1 -1
  38. package/esm/migration/sql-grammar.mjs.map +1 -1
  39. package/esm/model/generate-model-id.mjs.map +1 -1
  40. package/esm/model/methods/accessor-methods.mjs.map +1 -1
  41. package/esm/model/methods/dirty-methods.mjs.map +1 -1
  42. package/esm/model/methods/hydration-methods.mjs.map +1 -1
  43. package/esm/model/methods/query-methods.mjs.map +1 -1
  44. package/esm/model/methods/scope-methods.mjs.map +1 -1
  45. package/esm/model/methods/static-event-methods.mjs.map +1 -1
  46. package/esm/model/methods/write-methods.mjs.map +1 -1
  47. package/esm/model/model.d.mts.map +1 -1
  48. package/esm/model/model.mjs.map +1 -1
  49. package/esm/model/register-model.d.mts.map +1 -1
  50. package/esm/model/register-model.mjs.map +1 -1
  51. package/esm/operations/migrations.d.mts.map +1 -1
  52. package/esm/operations/migrations.mjs.map +1 -1
  53. package/esm/query-builder/query-builder.d.mts.map +1 -1
  54. package/esm/query-builder/query-builder.mjs.map +1 -1
  55. package/esm/relations/key-conventions.mjs.map +1 -1
  56. package/esm/relations/pivot-operations.d.mts.map +1 -1
  57. package/esm/relations/pivot-operations.mjs.map +1 -1
  58. package/esm/relations/relation-loader.d.mts.map +1 -1
  59. package/esm/relations/relation-loader.mjs.map +1 -1
  60. package/esm/remover/database-remover.d.mts.map +1 -1
  61. package/esm/remover/database-remover.mjs.map +1 -1
  62. package/esm/sync/sync-context.d.mts.map +1 -1
  63. package/esm/sync/sync-context.mjs.map +1 -1
  64. package/esm/sync/sync-fanout.mjs.map +1 -1
  65. package/esm/sync/sync-manager.d.mts.map +1 -1
  66. package/esm/sync/sync-manager.mjs.map +1 -1
  67. package/esm/utils/database-writer.utils.d.mts.map +1 -1
  68. package/esm/utils/database-writer.utils.mjs.map +1 -1
  69. package/esm/utils/is-valid-date-value.mjs.map +1 -1
  70. package/esm/writer/database-writer.d.mts.map +1 -1
  71. package/esm/writer/database-writer.mjs.map +1 -1
  72. package/llms-full.txt +541 -434
  73. package/package.json +5 -5
  74. package/skills/aggregate-data/SKILL.md +28 -17
  75. package/skills/alter-migration/SKILL.md +325 -233
  76. package/skills/cascade-basics/SKILL.md +19 -19
  77. package/skills/configure-delete-strategy/SKILL.md +11 -11
  78. package/skills/define-model/SKILL.md +19 -17
  79. package/skills/define-relations/SKILL.md +13 -18
  80. package/skills/index.md +3 -0
  81. package/skills/manage-transactions/SKILL.md +18 -12
  82. package/skills/paginate-results/SKILL.md +6 -8
  83. package/skills/perform-atomic-ops/SKILL.md +26 -21
  84. package/skills/query-data/SKILL.md +27 -33
  85. package/skills/run-cascade-cli/SKILL.md +11 -10
  86. package/skills/search-by-vector/SKILL.md +8 -5
  87. package/skills/subscribe-to-model-events/SKILL.md +17 -17
  88. package/skills/track-changes/SKILL.md +9 -9
  89. package/skills/write-migration/SKILL.md +4 -4
package/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to `@warlock.js/cascade` are documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). `@warlock.js/*` packages are released in lockstep — every package shares the same version number, so a version below may list only the changes that affected this package.
6
6
 
7
+ ## 5.31.0 - 2026-10-18
8
+
9
+ ### Fixed
10
+
11
+ - The model-events skill uses `Model.globalEvents().on()` for global listeners; the abstract base model's per-model `on()` shortcut requires a concrete subclass.
12
+
7
13
  ## 5.30.0 - 2026-10-16
8
14
 
9
15
  ### Changed
package/README.md CHANGED
@@ -8,7 +8,6 @@ Cascade is a unified ORM for MongoDB and PostgreSQL — one model-first API runs
8
8
 
9
9
  Some but not all of the features:
10
10
 
11
-
12
11
  - **Easy to use:** `Cascade` is very easy to use, it's just a wrapper around MongoDB driver.
13
12
  - **Supports multiple connections:** You can perform multiple connections to different MongoDB connections and use each one of them separately.
14
13
  - **Supports multiple databases:** `Cascade` supports multiple databases, you can connect to multiple databases at the same time.
@@ -27,7 +26,6 @@ Some but not all of the features:
27
26
  - **Embedded documents:** `Cascade` supports single and multiple embedded documents, you can embed documents inside other documents.
28
27
  - **Syncing Models**: Auto update documents when model's data is updated or deleted.
29
28
 
30
-
31
29
  ## Server-only
32
30
 
33
31
  `@warlock.js/cascade`'s entire runtime surface is server-only — its `package.json` declares `"warlock": { "environment": "server" }`. `@warlock.js/web`'s build treats this as a boundary: app client code cannot value-import this package (type-only imports are still allowed), while server loaders/controllers/modules can import it freely.
@@ -50,7 +48,6 @@ Using pnpm:
50
48
  pnpm add @warlock.js/cascade
51
49
  ```
52
50
 
53
-
54
51
  ## Peek inside cascade
55
52
 
56
53
  Here is a simple example of defining a User model:
@@ -96,7 +93,6 @@ Outputs something similar to:
96
93
  }
97
94
  ```
98
95
 
99
-
100
96
  ## Documentation
101
97
 
102
- To see the full documentation, please visit [Cascade Documentation](https://warlock.js.org/docs/cascade/getting-started/introduction)
98
+ To see the full documentation, please visit [Cascade Documentation](https://warlock.js.org/docs/cascade/getting-started/introduction)
package/cjs/index.cjs CHANGED
@@ -17358,7 +17358,6 @@ var PostgresQueryParser = class PostgresQueryParser {
17358
17358
  if (subParser.orderClauses.length > 0) orderBy = ` ORDER BY ${renumber(subParser.orderClauses.join(", "))}`;
17359
17359
  if (subParser.limitValue !== void 0) limitClause = ` ${this.dialect.limitOffset(subParser.limitValue)}`;
17360
17360
  }
17361
- orderBy || limitClause ? `${quotedRelatedTable}${fkCondition}${extraWhere}${orderBy}${limitClause}` : `${innerSelect.replace("json_agg(", "").replace(/\)$/, "")}${quotedRelatedTable}${fkCondition}${extraWhere}`;
17362
17361
  const aggregated = orderBy || limitClause ? `(SELECT json_agg(row_to_json(sub.*)) FROM (SELECT * FROM ${quotedRelatedTable} a WHERE ${fkCondition}${extraWhere}${orderBy}${limitClause}) sub) AS ${quotedAlias}` : `(SELECT ${innerSelect} FROM ${quotedRelatedTable} a WHERE ${fkCondition}${extraWhere}) AS ${quotedAlias}`;
17363
17362
  this.selectRaw.push(aggregated);
17364
17363
  } else {