@palbase/backend 25.0.0 → 25.0.1

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 (43) hide show
  1. package/dist/bin/palbase-backend.cjs +2 -0
  2. package/dist/bin/palbase-backend.cjs.map +1 -1
  3. package/dist/bin/palbase-backend.js +2 -2
  4. package/dist/{chunk-43A3KGWL.js → chunk-34I4GB7D.js} +4 -2
  5. package/dist/{chunk-43A3KGWL.js.map → chunk-34I4GB7D.js.map} +1 -1
  6. package/dist/{chunk-ZQRWW37O.js → chunk-35PNTIRN.js} +5 -1
  7. package/dist/chunk-35PNTIRN.js.map +1 -0
  8. package/dist/{chunk-OEQBHE2Z.js → chunk-HBOJLP2Z.js} +19 -4
  9. package/dist/chunk-HBOJLP2Z.js.map +1 -0
  10. package/dist/{chunk-5CMLOAEF.js → chunk-YOY5DFQS.js} +2 -2
  11. package/dist/db/env.cjs.map +1 -1
  12. package/dist/db/env.d.cts +2 -1
  13. package/dist/db/env.d.ts +2 -1
  14. package/dist/db/index.cjs +17 -3
  15. package/dist/db/index.cjs.map +1 -1
  16. package/dist/db/index.d.cts +1 -1
  17. package/dist/db/index.d.ts +1 -1
  18. package/dist/db/index.js +1 -1
  19. package/dist/engine/index.cjs +2 -0
  20. package/dist/engine/index.cjs.map +1 -1
  21. package/dist/engine/index.d.cts +2 -2
  22. package/dist/engine/index.d.ts +2 -2
  23. package/dist/engine/index.js +2 -2
  24. package/dist/{index-Ct1iiB4N.d.ts → index-B4CcpqLb.d.ts} +23 -16
  25. package/dist/{index-BF1f0DfA.d.ts → index-B8v6hVyU.d.ts} +1 -1
  26. package/dist/{index-CwaWRhyc.d.cts → index-DmVyY6N7.d.cts} +23 -16
  27. package/dist/{index-CoaDN9dL.d.cts → index-VsjBQ4Kw.d.cts} +1 -1
  28. package/dist/index.cjs +75 -49
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.cts +8 -7
  31. package/dist/index.d.ts +8 -7
  32. package/dist/index.js +58 -49
  33. package/dist/index.js.map +1 -1
  34. package/dist/openapi/index.cjs +1 -1
  35. package/dist/openapi/index.cjs.map +1 -1
  36. package/dist/openapi/index.js +3 -3
  37. package/dist/openapi/index.js.map +1 -1
  38. package/docs/llms-full.txt +36 -5
  39. package/docs/schema.md +36 -5
  40. package/package.json +1 -1
  41. package/dist/chunk-OEQBHE2Z.js.map +0 -1
  42. package/dist/chunk-ZQRWW37O.js.map +0 -1
  43. /package/dist/{chunk-5CMLOAEF.js.map → chunk-YOY5DFQS.js.map} +0 -0
package/dist/db/index.cjs CHANGED
@@ -157,9 +157,16 @@ function defineTable(name, input) {
157
157
  }
158
158
  const policies = (input.policies ?? []).map(toPolicyDef);
159
159
  const rls = policies.length > 0 || input.rls !== false;
160
+ const owned = {};
161
+ for (const [colName, b] of Object.entries(input.columns)) {
162
+ const builder = b;
163
+ const clone = Object.create(Object.getPrototypeOf(builder));
164
+ Object.defineProperty(clone, "_def", { value: { ...builder._def }, enumerable: true, writable: true });
165
+ owned[colName] = clone;
166
+ }
160
167
  const def = {
161
168
  name,
162
- columns: input.columns,
169
+ columns: owned,
163
170
  rls,
164
171
  policies
165
172
  };
@@ -217,10 +224,10 @@ function defineTable(name, input) {
217
224
  }
218
225
  def.memory = input.memory;
219
226
  }
220
- for (const b of Object.values(input.columns)) {
227
+ for (const b of Object.values(owned)) {
221
228
  b._def.ownerTable = def;
222
229
  }
223
- const handle = { ...input.columns };
230
+ const handle = { ...owned };
224
231
  Object.defineProperty(handle, TABLE_META, { value: def, enumerable: false });
225
232
  return handle;
226
233
  }
@@ -480,6 +487,12 @@ var ColumnBuilder = class _ColumnBuilder {
480
487
  * In a cycle, ONE side needs an explicit return type:
481
488
  * `references((): AnyColumn => y.id)`. One side is enough — measured.
482
489
  * For a self-reference use `selfReferences(column)`: no thunk, no annotation.
490
+ *
491
+ * `as` names the FORWARD relation (`author_id` → `author` by default);
492
+ * `reverseAs` names the REVERSE one on the parent, whose default is this
493
+ * table's own name (`users.posts`). Two foreign keys from one table onto one
494
+ * parent therefore need a `reverseAs` on at least one of them — the reverse
495
+ * names would otherwise both be this table's name.
483
496
  */
484
497
  references(target, opts) {
485
498
  refuseOnVector(this._def, "references");
@@ -490,6 +503,7 @@ var ColumnBuilder = class _ColumnBuilder {
490
503
  }
491
504
  this._def.referencesThunk = target;
492
505
  if (opts?.as !== void 0) this._def.refAs = opts.as;
506
+ if (opts?.reverseAs !== void 0) this._def.reverseAs = opts.reverseAs;
493
507
  if (opts?.onDelete !== void 0) this._def.onDeleteAction = opts.onDelete;
494
508
  return new _ColumnBuilder(this._def.type, this._def);
495
509
  }