@warlock.js/cascade 4.15.0 → 5.0.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 (66) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/cjs/index.cjs +494 -72
  3. package/cjs/index.cjs.map +1 -1
  4. package/esm/contracts/query-builder.contract.d.mts +7 -3
  5. package/esm/contracts/query-builder.contract.d.mts.map +1 -1
  6. package/esm/drivers/mongodb/mongodb-query-builder.d.mts.map +1 -1
  7. package/esm/drivers/mongodb/mongodb-query-builder.mjs +4 -3
  8. package/esm/drivers/mongodb/mongodb-query-builder.mjs.map +1 -1
  9. package/esm/drivers/mongodb/mongodb-query-parser.d.mts +21 -0
  10. package/esm/drivers/mongodb/mongodb-query-parser.d.mts.map +1 -1
  11. package/esm/drivers/mongodb/mongodb-query-parser.mjs +55 -22
  12. package/esm/drivers/mongodb/mongodb-query-parser.mjs.map +1 -1
  13. package/esm/errors/unsafe-filter.error.d.mts +33 -0
  14. package/esm/errors/unsafe-filter.error.d.mts.map +1 -0
  15. package/esm/errors/unsafe-filter.error.mjs +40 -0
  16. package/esm/errors/unsafe-filter.error.mjs.map +1 -0
  17. package/esm/errors/unsafe-raw-expression.error.d.mts +23 -0
  18. package/esm/errors/unsafe-raw-expression.error.d.mts.map +1 -0
  19. package/esm/errors/unsafe-raw-expression.error.mjs +28 -0
  20. package/esm/errors/unsafe-raw-expression.error.mjs.map +1 -0
  21. package/esm/index.d.mts +5 -1
  22. package/esm/index.mjs +5 -1
  23. package/esm/model/methods/accessor-methods.mjs +39 -1
  24. package/esm/model/methods/accessor-methods.mjs.map +1 -1
  25. package/esm/model/methods/delete-methods.mjs +3 -2
  26. package/esm/model/methods/delete-methods.mjs.map +1 -1
  27. package/esm/model/methods/query-methods.mjs +7 -4
  28. package/esm/model/methods/query-methods.mjs.map +1 -1
  29. package/esm/model/methods/serialization-methods.mjs +49 -4
  30. package/esm/model/methods/serialization-methods.mjs.map +1 -1
  31. package/esm/model/methods/write-methods.d.mts.map +1 -1
  32. package/esm/model/methods/write-methods.mjs +2 -4
  33. package/esm/model/methods/write-methods.mjs.map +1 -1
  34. package/esm/model/model.d.mts +48 -2
  35. package/esm/model/model.d.mts.map +1 -1
  36. package/esm/model/model.mjs +61 -2
  37. package/esm/model/model.mjs.map +1 -1
  38. package/esm/model/model.types.d.mts +1 -1
  39. package/esm/query-builder/query-builder.d.mts +13 -1
  40. package/esm/query-builder/query-builder.d.mts.map +1 -1
  41. package/esm/query-builder/query-builder.mjs +28 -11
  42. package/esm/query-builder/query-builder.mjs.map +1 -1
  43. package/esm/remover/database-remover.d.mts.map +1 -1
  44. package/esm/remover/database-remover.mjs +1 -1
  45. package/esm/remover/database-remover.mjs.map +1 -1
  46. package/esm/utils/database-writer.utils.d.mts +1 -0
  47. package/esm/utils/database-writer.utils.d.mts.map +1 -1
  48. package/esm/utils/escape-regex.d.mts +67 -0
  49. package/esm/utils/escape-regex.d.mts.map +1 -0
  50. package/esm/utils/escape-regex.mjs +76 -0
  51. package/esm/utils/escape-regex.mjs.map +1 -0
  52. package/esm/utils/sanitize-filter.d.mts +26 -0
  53. package/esm/utils/sanitize-filter.d.mts.map +1 -0
  54. package/esm/utils/sanitize-filter.mjs +76 -0
  55. package/esm/utils/sanitize-filter.mjs.map +1 -0
  56. package/esm/writer/database-writer.d.mts +12 -0
  57. package/esm/writer/database-writer.d.mts.map +1 -1
  58. package/esm/writer/database-writer.mjs +26 -6
  59. package/esm/writer/database-writer.mjs.map +1 -1
  60. package/llms-full.txt +59 -4
  61. package/llms.txt +3 -3
  62. package/package.json +8 -8
  63. package/skills/README.md +3 -3
  64. package/skills/define-model/SKILL.md +17 -1
  65. package/skills/perform-atomic-ops/SKILL.md +4 -1
  66. package/skills/query-data/SKILL.md +38 -2
@@ -89,6 +89,25 @@ declare abstract class Model<TSchema extends ModelSchema = ModelSchema> {
89
89
  * ```
90
90
  */
91
91
  static toJsonColumns?: string[];
92
+ /**
93
+ * Top-level fields that are ALWAYS stripped from `toJSON()` output —
94
+ * regardless of `resource`, `resourceColumns` or `toJsonColumns`.
95
+ *
96
+ * `toJSON()` is invoked implicitly by `JSON.stringify(model)` (e.g.
97
+ * `res.json(user)`), and with no `resource`/`toJsonColumns` configured it
98
+ * returns the entire raw document. Declare credential/PII columns here so
99
+ * they can never leak through serialization, whatever else is configured.
100
+ *
101
+ * @default []
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * class User extends Model {
106
+ * public static hidden = ["password", "resetToken"];
107
+ * }
108
+ * ```
109
+ */
110
+ static hidden: string[];
92
111
  /**
93
112
  * Data source reference for this model.
94
113
  *
@@ -370,6 +389,16 @@ declare abstract class Model<TSchema extends ModelSchema = ModelSchema> {
370
389
  * ```
371
390
  */
372
391
  static relations: Readonly<Record<string, RelationDefinition>>;
392
+ /** Backing field for {@link isNew}. */
393
+ private newRecord;
394
+ /**
395
+ * The primary key value captured at the moment this instance became a
396
+ * persisted record — the ONLY value an UPDATE/REPLACE filter may be built
397
+ * from. See {@link trustedPrimaryKey}.
398
+ */
399
+ private capturedPrimaryKey;
400
+ /** Whether {@link capturedPrimaryKey} holds a captured value. */
401
+ private primaryKeyCaptured;
373
402
  /**
374
403
  * Flag indicating whether this model instance represents a new (unsaved) record.
375
404
  *
@@ -377,8 +406,25 @@ declare abstract class Model<TSchema extends ModelSchema = ModelSchema> {
377
406
  * - `false`: The model represents an existing database record
378
407
  *
379
408
  * This flag is used by the writer to determine whether to perform an insert or update.
409
+ *
410
+ * Setting it to `false` (hydration from the database, or the writer marking a
411
+ * freshly inserted row as persisted) is also the moment the instance captures
412
+ * its trusted primary key — see {@link trustedPrimaryKey}.
413
+ */
414
+ get isNew(): boolean;
415
+ set isNew(value: boolean);
416
+ /**
417
+ * The primary key value an UPDATE/REPLACE filter must be built from.
418
+ *
419
+ * For a persisted record this is the value the row was loaded with, captured
420
+ * when `isNew` flipped to `false` — NOT the current value in `data`. Deriving
421
+ * the filter from post-`merge()` state let a request body carrying
422
+ * `{ id: "<victim-id>" }` redirect the write to a different document
423
+ * (`model.merge(req.body); await model.save()`), so the two must never be the
424
+ * same read. For a model that was never persisted it falls back to the
425
+ * current value, which is what an insert would use anyway.
380
426
  */
381
- isNew: boolean;
427
+ get trustedPrimaryKey(): any;
382
428
  /**
383
429
  * The raw mutable data backing this model instance.
384
430
  *
@@ -1391,7 +1437,7 @@ declare abstract class Model<TSchema extends ModelSchema = ModelSchema> {
1391
1437
  /**
1392
1438
  * Get model schema
1393
1439
  */
1394
- getSchema(): any;
1440
+ getSchema(): ObjectValidator<import("@warlock.js/seal").Schema> | undefined;
1395
1441
  /**
1396
1442
  * Check if schema has the given key
1397
1443
  */
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.mts","names":[],"sources":["../../../../../../../cascade/src/model/model.ts"],"mappings":"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"}
1
+ {"version":3,"file":"model.d.mts","names":[],"sources":["../../../../../../../cascade/src/model/model.ts"],"mappings":"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"}
@@ -9,10 +9,10 @@ import { cloneModel, deepFreezeObject, hydrateModel, modelFromSnapshot, modelToS
9
9
  import { emitModelEvent, offModelEvent, onModelEvent, onceModelEvent } from "./methods/instance-event-methods.mjs";
10
10
  import { applyDefaultsToModel, generateModelNextId, performAtomicDecrement, performAtomicIncrement, performAtomicUpdate } from "./methods/meta-methods.mjs";
11
11
  import { attachPivotRelation, detachPivotRelation, pivotRelation } from "./methods/pivot-methods.mjs";
12
+ import { modelToJSON } from "./methods/serialization-methods.mjs";
12
13
  import { buildNewQueryBuilder, buildQuery, countRecords, decreaseField, findAll, findAndReplaceRecord, findAndUpdateRecords, findById, findFirst, findLast, findLatest, findOneAndDeleteRecord, findOneAndUpdateRecord, increaseField, paginateRecords, performAtomic, resolveDataSource, updateById } from "./methods/query-methods.mjs";
13
14
  import { restoreAllRecords, restoreRecord } from "./methods/restore-methods.mjs";
14
15
  import { addGlobalModelScope, addLocalModelScope, removeGlobalModelScope, removeLocalModelScope } from "./methods/scope-methods.mjs";
15
- import { modelToJSON } from "./methods/serialization-methods.mjs";
16
16
  import { cleanupModelEvents, getGlobalEvents, getModelEvents, offStaticEvent, onStaticEvent, onceStaticEvent } from "./methods/static-event-methods.mjs";
17
17
  import { createManyRecords, createRecord, findOrCreateRecord, saveModel, upsertRecord } from "./methods/write-methods.mjs";
18
18
 
@@ -91,6 +91,25 @@ var Model = class Model {
91
91
  */
92
92
  static toJsonColumns;
93
93
  /**
94
+ * Top-level fields that are ALWAYS stripped from `toJSON()` output —
95
+ * regardless of `resource`, `resourceColumns` or `toJsonColumns`.
96
+ *
97
+ * `toJSON()` is invoked implicitly by `JSON.stringify(model)` (e.g.
98
+ * `res.json(user)`), and with no `resource`/`toJsonColumns` configured it
99
+ * returns the entire raw document. Declare credential/PII columns here so
100
+ * they can never leak through serialization, whatever else is configured.
101
+ *
102
+ * @default []
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * class User extends Model {
107
+ * public static hidden = ["password", "resetToken"];
108
+ * }
109
+ * ```
110
+ */
111
+ static hidden = [];
112
+ /**
94
113
  * Data source reference for this model.
95
114
  *
96
115
  * Can be:
@@ -371,6 +390,16 @@ var Model = class Model {
371
390
  * ```
372
391
  */
373
392
  static relations = {};
393
+ /** Backing field for {@link isNew}. */
394
+ newRecord = true;
395
+ /**
396
+ * The primary key value captured at the moment this instance became a
397
+ * persisted record — the ONLY value an UPDATE/REPLACE filter may be built
398
+ * from. See {@link trustedPrimaryKey}.
399
+ */
400
+ capturedPrimaryKey = void 0;
401
+ /** Whether {@link capturedPrimaryKey} holds a captured value. */
402
+ primaryKeyCaptured = false;
374
403
  /**
375
404
  * Flag indicating whether this model instance represents a new (unsaved) record.
376
405
  *
@@ -378,8 +407,38 @@ var Model = class Model {
378
407
  * - `false`: The model represents an existing database record
379
408
  *
380
409
  * This flag is used by the writer to determine whether to perform an insert or update.
410
+ *
411
+ * Setting it to `false` (hydration from the database, or the writer marking a
412
+ * freshly inserted row as persisted) is also the moment the instance captures
413
+ * its trusted primary key — see {@link trustedPrimaryKey}.
414
+ */
415
+ get isNew() {
416
+ return this.newRecord;
417
+ }
418
+ set isNew(value) {
419
+ this.newRecord = value;
420
+ if (value) {
421
+ this.capturedPrimaryKey = void 0;
422
+ this.primaryKeyCaptured = false;
423
+ return;
424
+ }
425
+ this.capturedPrimaryKey = this.get(this.self().primaryKey);
426
+ this.primaryKeyCaptured = true;
427
+ }
428
+ /**
429
+ * The primary key value an UPDATE/REPLACE filter must be built from.
430
+ *
431
+ * For a persisted record this is the value the row was loaded with, captured
432
+ * when `isNew` flipped to `false` — NOT the current value in `data`. Deriving
433
+ * the filter from post-`merge()` state let a request body carrying
434
+ * `{ id: "<victim-id>" }` redirect the write to a different document
435
+ * (`model.merge(req.body); await model.save()`), so the two must never be the
436
+ * same read. For a model that was never persisted it falls back to the
437
+ * current value, which is what an insert would use anyway.
381
438
  */
382
- isNew = true;
439
+ get trustedPrimaryKey() {
440
+ return this.primaryKeyCaptured ? this.capturedPrimaryKey : this.get(this.self().primaryKey);
441
+ }
383
442
  /**
384
443
  * The raw mutable data backing this model instance.
385
444
  *