@decaf-ts/core 0.10.0 → 0.10.2

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 (58) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/esm/identity/decorators.d.ts +7 -2
  7. package/lib/esm/identity/decorators.js +49 -18
  8. package/lib/esm/identity/decorators.js.map +1 -1
  9. package/lib/esm/index.d.ts +1 -1
  10. package/lib/esm/index.js +1 -1
  11. package/lib/esm/model/decorators.d.ts +2 -0
  12. package/lib/esm/model/decorators.js +81 -1
  13. package/lib/esm/model/decorators.js.map +1 -1
  14. package/lib/esm/overrides/overrides.js +28 -4
  15. package/lib/esm/overrides/overrides.js.map +1 -1
  16. package/lib/esm/persistence/Adapter.js +20 -3
  17. package/lib/esm/persistence/Adapter.js.map +1 -1
  18. package/lib/esm/persistence/Context.d.ts +5 -1
  19. package/lib/esm/persistence/Context.js +19 -1
  20. package/lib/esm/persistence/Context.js.map +1 -1
  21. package/lib/esm/persistence/Sequence.d.ts +7 -0
  22. package/lib/esm/persistence/Sequence.js +54 -0
  23. package/lib/esm/persistence/Sequence.js.map +1 -1
  24. package/lib/esm/persistence/constants.d.ts +1 -0
  25. package/lib/esm/persistence/constants.js +1 -0
  26. package/lib/esm/persistence/constants.js.map +1 -1
  27. package/lib/esm/tasks/builder.d.ts +10 -0
  28. package/lib/esm/tasks/builder.js +5 -1
  29. package/lib/esm/tasks/builder.js.map +1 -1
  30. package/lib/esm/utils/ContextualLoggedClass.js +13 -1
  31. package/lib/esm/utils/ContextualLoggedClass.js.map +1 -1
  32. package/lib/identity/decorators.cjs +49 -17
  33. package/lib/identity/decorators.d.ts +7 -2
  34. package/lib/identity/decorators.js.map +1 -1
  35. package/lib/index.cjs +1 -1
  36. package/lib/index.d.ts +1 -1
  37. package/lib/model/decorators.cjs +82 -0
  38. package/lib/model/decorators.d.ts +2 -0
  39. package/lib/model/decorators.js.map +1 -1
  40. package/lib/overrides/overrides.cjs +28 -4
  41. package/lib/overrides/overrides.js.map +1 -1
  42. package/lib/persistence/Adapter.cjs +20 -3
  43. package/lib/persistence/Adapter.js.map +1 -1
  44. package/lib/persistence/Context.cjs +18 -0
  45. package/lib/persistence/Context.d.ts +5 -1
  46. package/lib/persistence/Context.js.map +1 -1
  47. package/lib/persistence/Sequence.cjs +54 -0
  48. package/lib/persistence/Sequence.d.ts +7 -0
  49. package/lib/persistence/Sequence.js.map +1 -1
  50. package/lib/persistence/constants.cjs +1 -0
  51. package/lib/persistence/constants.d.ts +1 -0
  52. package/lib/persistence/constants.js.map +1 -1
  53. package/lib/tasks/builder.cjs +5 -1
  54. package/lib/tasks/builder.d.ts +10 -0
  55. package/lib/tasks/builder.js.map +1 -1
  56. package/lib/utils/ContextualLoggedClass.cjs +13 -1
  57. package/lib/utils/ContextualLoggedClass.js.map +1 -1
  58. package/package.json +1 -1
@@ -1,8 +1,26 @@
1
- import { Context as Ctx, InternalError } from "@decaf-ts/db-decorators";
1
+ import { Context as Ctx, InternalError, } from "@decaf-ts/db-decorators";
2
+ import { Logging } from "@decaf-ts/logging";
2
3
  export class Context extends Ctx {
3
4
  constructor(ctx) {
4
5
  super(ctx);
5
6
  }
7
+ // Ensure `Context.from(...)` returns a core Context instance (not the base db-decorators one).
8
+ static { this.factory = (arg) => {
9
+ const ctx = new Context();
10
+ return ctx.accumulate(Object.assign({}, arg, {
11
+ timestamp: new Date(),
12
+ logger: arg.logger || Logging.get(),
13
+ }));
14
+ }; }
15
+ static async from(operation, overrides, model, ...args) {
16
+ return this.factory(Object.assign({}, overrides || {}, {
17
+ operation,
18
+ model,
19
+ affectedTables: model,
20
+ args,
21
+ logger: overrides?.logger || Logging.get(),
22
+ }));
23
+ }
6
24
  pushPending(key, id) {
7
25
  const pending = this.pending() || {};
8
26
  pending[key] = pending[key] || [];
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../src/persistence/Context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../src/persistence/Context.ts"],"names":[],"mappings":"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"}
@@ -96,6 +96,13 @@ export declare class Sequence<A extends Adapter<any, any, any, any> = Adapter<an
96
96
  * @return A promise that resolves to an array of sequential values
97
97
  */
98
98
  range(count: number, ...argz: MaybeContextualArg<any>): Promise<(number | string | bigint)[]>;
99
+ /**
100
+ * @description Ensures the sequence exists and is at least a given value
101
+ * @summary Upserts the sequence record to the provided value when missing, and optionally only when the
102
+ * provided value is greater than the persisted one. This is used by decorators that want to "seed" a
103
+ * sequence based on an existing model value (for example when overriding/bootstrapping sequences).
104
+ */
105
+ ensureAtLeast(value: string | number | bigint, ...argz: MaybeContextualArg<any>): Promise<string | number | bigint>;
99
106
  protected parse(value: string | number | bigint): string | number | bigint;
100
107
  protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<ContextOf<typeof this.adapter>, ARGS>, operation: METHOD): ContextualizedArgs<ContextOf<typeof this.adapter>, ARGS, METHOD extends string ? true : false>;
101
108
  protected logCtx<ARGS extends any[] = any[], METHOD extends MethodOrOperation = MethodOrOperation>(args: MaybeContextualArg<ContextOf<typeof this.adapter>, ARGS>, operation: METHOD, allowCreate: false): ContextualizedArgs<ContextOf<typeof this.adapter>, ARGS, METHOD extends string ? true : false>;
@@ -200,6 +200,60 @@ export class Sequence extends ContextualLoggedClass {
200
200
  log.debug(`Calculated range: ${range.join(", ")}`);
201
201
  return range;
202
202
  }
203
+ /**
204
+ * @description Ensures the sequence exists and is at least a given value
205
+ * @summary Upserts the sequence record to the provided value when missing, and optionally only when the
206
+ * provided value is greater than the persisted one. This is used by decorators that want to "seed" a
207
+ * sequence based on an existing model value (for example when overriding/bootstrapping sequences).
208
+ */
209
+ async ensureAtLeast(value, ...argz) {
210
+ const { ctx } = (await this.logCtx(argz, OperationKeys.UPDATE, true)).for(this.ensureAtLeast);
211
+ const { name } = this.options;
212
+ if (!name)
213
+ throw new InternalError("Sequence name is required");
214
+ const desired = this.parse(value);
215
+ const greaterThan = (a, b) => {
216
+ if (typeof a === "bigint" || typeof b === "bigint") {
217
+ return BigInt(a) > BigInt(b);
218
+ }
219
+ if (typeof a === "number" || typeof b === "number") {
220
+ return Number(a) > Number(b);
221
+ }
222
+ return String(a) > String(b);
223
+ };
224
+ return Sequence.lock.execute(async () => {
225
+ const readExisting = async () => {
226
+ try {
227
+ return await this.repo.read(name, ctx);
228
+ }
229
+ catch (e) {
230
+ if (e instanceof NotFoundError)
231
+ return undefined;
232
+ throw e;
233
+ }
234
+ };
235
+ while (true) {
236
+ try {
237
+ const existing = await readExisting();
238
+ if (!existing) {
239
+ // Always create the sequence when missing, even if desired <= startWith.
240
+ await this.repo.create(new SequenceModel({ id: name, current: desired }), ctx);
241
+ return desired;
242
+ }
243
+ const current = this.parse(existing.current);
244
+ if (!greaterThan(desired, current))
245
+ return current;
246
+ await this.repo.update(new SequenceModel({ id: name, current: desired }), ctx);
247
+ return desired;
248
+ }
249
+ catch (e) {
250
+ if (e instanceof ConflictError)
251
+ continue;
252
+ throw e;
253
+ }
254
+ }
255
+ }, name);
256
+ }
203
257
  parse(value) {
204
258
  return Sequence.parseValue(this.options.type, value);
205
259
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Sequence.js","sourceRoot":"","sources":["../../../src/persistence/Sequence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sequence.js","sourceRoot":"","sources":["../../../src/persistence/Sequence.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,7 @@ export declare enum PersistenceKeys {
62
62
  AUTH_ROLE = "auth-role",
63
63
  DECAF_ROUTE = "DecafRoute",
64
64
  THROTTLE = "throttle",
65
+ PERSISTENT_VERSION = "persistent-version",
65
66
  DEFAULT_QUERY_ATTR = "default-query-attr"
66
67
  }
67
68
  export declare const DefaultContextFlags: ContextFlags<any>;
@@ -64,6 +64,7 @@ export var PersistenceKeys;
64
64
  PersistenceKeys["AUTH_ROLE"] = "auth-role";
65
65
  PersistenceKeys["DECAF_ROUTE"] = "DecafRoute";
66
66
  PersistenceKeys["THROTTLE"] = "throttle";
67
+ PersistenceKeys["PERSISTENT_VERSION"] = "persistent-version";
67
68
  PersistenceKeys["DEFAULT_QUERY_ATTR"] = "default-query-attr";
68
69
  })(PersistenceKeys || (PersistenceKeys = {}));
69
70
  export const DefaultContextFlags = Object.assign({}, {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/persistence/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/persistence/constants.ts"],"names":[],"mappings":"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"}
@@ -38,5 +38,15 @@ export declare class CompositeTaskBuilder extends TaskBuilder {
38
38
  constructor(arg?: ModelArg<CompositeTaskBuilder>);
39
39
  setAtomicity(value: TaskType): this;
40
40
  setSteps(value: TaskStepSpecModel[]): this;
41
+ /**
42
+ * Backwards compatible:
43
+ * - addStep(classification, input?)
44
+ * - addStep(classification, name, input?)
45
+ *
46
+ * Note: `name` is only treated as such when provided as the 2nd argument AND
47
+ * a 3rd argument is present. This avoids breaking existing calls where input
48
+ * is a string.
49
+ */
41
50
  addStep(classification: string, input?: any): this;
51
+ addStep(classification: string, name: string, input?: any): this;
42
52
  }
@@ -163,11 +163,15 @@ export class CompositeTaskBuilder extends TaskBuilder {
163
163
  this.steps = (value ?? []).map((step) => step instanceof TaskStepSpecModel ? step : new TaskStepSpecModel(step));
164
164
  return this;
165
165
  }
166
- addStep(classification, input) {
166
+ addStep(classification, nameOrInput, inputMaybe) {
167
167
  this.steps = this.steps || [];
168
168
  const now = new Date();
169
+ const hasThirdArg = arguments.length >= 3;
170
+ const name = hasThirdArg && typeof nameOrInput === "string" ? nameOrInput : undefined;
171
+ const input = hasThirdArg ? inputMaybe : nameOrInput;
169
172
  this.steps.push(new TaskStepSpecModel({
170
173
  classification,
174
+ name,
171
175
  input,
172
176
  createdAt: now,
173
177
  updatedAt: now,
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/tasks/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/tasks/builder.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,18 @@
1
1
  import { LoggedClass, Logging } from "@decaf-ts/logging";
2
2
  import { InternalError, } from "@decaf-ts/db-decorators";
3
3
  import { Context } from "./../persistence/Context.js";
4
+ function isContextLike(value) {
5
+ if (!value || typeof value !== "object")
6
+ return false;
7
+ const v = value;
8
+ // Avoid `instanceof` here because multiple linked builds of `@decaf-ts/core`
9
+ // can lead to duplicate Context constructors and failing realm checks.
10
+ return (typeof v.get === "function" &&
11
+ typeof v.accumulate === "function" &&
12
+ typeof v.override === "function" &&
13
+ typeof v.toOverrides === "function" &&
14
+ v.cache !== undefined);
15
+ }
4
16
  export class ContextualLoggedClass extends LoggedClass {
5
17
  logCtx(args, operation, allowCreate = false, overrides) {
6
18
  return ContextualLoggedClass.logCtx.call(this, operation, overrides || {}, allowCreate, ...args.filter((e) => typeof e !== "undefined"));
@@ -41,7 +53,7 @@ export class ContextualLoggedClass extends LoggedClass {
41
53
  return resp;
42
54
  };
43
55
  let ctx = args.pop();
44
- const hasContext = ctx instanceof Context;
56
+ const hasContext = ctx instanceof Context || isContextLike(ctx);
45
57
  if (ctx && !hasContext) {
46
58
  args.push(ctx);
47
59
  ctx = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ContextualLoggedClass.js","sourceRoot":"","sources":["../../../src/utils/ContextualLoggedClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextualLoggedClass.js","sourceRoot":"","sources":["../../../src/utils/ContextualLoggedClass.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pkOnCreate = pkOnCreate;
4
+ exports.sequenceOnCreateUpdate = sequenceOnCreateUpdate;
4
5
  exports.pkDec = pkDec;
5
6
  exports.sequenceDec = sequenceDec;
6
7
  exports.pk = pk;
@@ -27,13 +28,6 @@ function resolveSequenceName(model, suffix) {
27
28
  const anchor = suffix || "pk";
28
29
  return [tableName, anchor].filter(Boolean).join("_");
29
30
  }
30
- function normalizePropertyKey(attr) {
31
- if (typeof attr === "string")
32
- return attr;
33
- if (typeof attr === "symbol")
34
- return attr.description || attr.toString();
35
- return String(attr);
36
- }
37
31
  function ensureSequenceOptions(obj, attr, options) {
38
32
  if (!options.type) {
39
33
  const metaType = decoration_1.Metadata.type(obj.constructor, attr);
@@ -121,7 +115,7 @@ async function pkOnCreate(context, data, key, model) {
121
115
  Reflect.set(target, propertyKey, value);
122
116
  };
123
117
  if (!data.name)
124
- data.name = decorator_validation_1.Model.sequenceName(model, key);
118
+ data.name = decorator_validation_1.Model.sequenceName(model, "pk");
125
119
  let sequence;
126
120
  try {
127
121
  sequence = await this.adapter.Sequence(data, this._overrides);
@@ -132,6 +126,42 @@ async function pkOnCreate(context, data, key, model) {
132
126
  const next = await sequence.next(context);
133
127
  setPrimaryKeyValue(model, key, next);
134
128
  }
129
+ async function sequenceOnCreateUpdate(context, data, key, model, oldModel) {
130
+ if (!data.type || !data.generated)
131
+ return;
132
+ if (!data.name) {
133
+ const id = decorator_validation_1.Model.pk(model, true);
134
+ if (typeof id === "undefined" || id === null) {
135
+ throw new db_decorators_1.InternalError(`Cannot generate sequence without an id for ${model.constructor.name}`);
136
+ }
137
+ data.name = decorator_validation_1.Model.sequenceName(model, String(id), String(key));
138
+ }
139
+ let sequence;
140
+ try {
141
+ sequence = await this.adapter.Sequence(data, this._overrides);
142
+ }
143
+ catch (e) {
144
+ throw new db_decorators_1.InternalError(`Failed to instantiate Sequence ${data.name}: ${e}`);
145
+ }
146
+ const isUpdate = typeof oldModel !== "undefined" && oldModel !== null;
147
+ const hasValue = typeof model[key] !== "undefined" && model[key] !== null;
148
+ const allowGenerationOverride = !!context.get("allowGenerationOverride") && hasValue;
149
+ // Always ensure the backing sequence exists. If a user-provided value exists
150
+ // and no sequence exists, use that value as the starting point.
151
+ if (hasValue) {
152
+ await sequence.ensureAtLeast(model[key], context);
153
+ }
154
+ // On update, only run if explicitly enabled; but if we did run, we still already
155
+ // ensured the sequence exists/seeded above.
156
+ if (isUpdate && !data.update)
157
+ return;
158
+ // When generation override is enabled, keep the model's value but still ensure
159
+ // the backing sequence exists/has been seeded.
160
+ if (allowGenerationOverride)
161
+ return;
162
+ const next = await sequence.next(context);
163
+ Reflect.set(model, key, next);
164
+ }
135
165
  function pkDec(options, groupsort) {
136
166
  return function pkDec(obj, attr) {
137
167
  (0, decoration_1.prop)()(obj, attr);
@@ -152,20 +182,18 @@ function pkDec(options, groupsort) {
152
182
  return (0, decoration_1.apply)(...decs)(obj, attr);
153
183
  };
154
184
  }
155
- function sequenceDec(options, groupsort) {
185
+ function sequenceDec(options, params = {}, groupsort) {
156
186
  return function sequenceDec(obj, attr) {
157
187
  (0, decoration_1.prop)()(obj, attr);
158
188
  ensureSequenceOptions(obj, attr, options);
159
- if (!options.name) {
160
- const suffix = normalizePropertyKey(attr);
161
- options.name = resolveSequenceName(obj.constructor, suffix);
162
- }
163
189
  const decs = [
164
190
  (0, decorator_validation_1.required)(),
165
- (0, db_decorators_1.readonly)(),
166
191
  (0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.PersistenceKeys.SEQUENCE, attr), options),
167
- (0, db_decorators_1.onCreate)(pkOnCreate, options, groupsort),
192
+ (0, db_decorators_1.onCreate)(sequenceOnCreateUpdate, { ...options, ...params }, groupsort),
168
193
  ];
194
+ if (params.update) {
195
+ decs.push((0, db_decorators_1.onUpdate)(sequenceOnCreateUpdate, { ...options, ...params }, groupsort));
196
+ }
169
197
  if (options.generated)
170
198
  decs.push((0, db_decorators_1.generated)());
171
199
  return (0, decoration_1.apply)(...decs)(obj, attr);
@@ -203,14 +231,18 @@ function pk(opts) {
203
231
  })
204
232
  .apply();
205
233
  }
206
- function sequence(opts) {
234
+ function sequence(opts, updateOrParams) {
207
235
  const DefaultSequenceOptionsMin = Object.assign({}, SequenceOptions_1.DefaultSequenceOptions);
208
236
  delete DefaultSequenceOptionsMin.generated;
209
237
  opts = Object.assign({}, DefaultSequenceOptionsMin, opts);
238
+ const params = typeof updateOrParams === "boolean"
239
+ ? { update: updateOrParams }
240
+ : updateOrParams || {};
210
241
  return decoration_1.Decoration.for(constants_1.PersistenceKeys.SEQUENCE)
211
242
  .define({
212
243
  decorator: sequenceDec,
213
- args: [opts, { priority: defaultPkPriority }],
244
+ // Run after pk generation so the model id exists for per-instance sequences.
245
+ args: [opts, params, { priority: defaultPkPriority + 10 }],
214
246
  })
215
247
  .apply();
216
248
  }
@@ -4,6 +4,10 @@ import { SequenceOptions } from "../interfaces/SequenceOptions";
4
4
  import { GroupSort } from "@decaf-ts/db-decorators";
5
5
  import { Repository } from "../repository/Repository";
6
6
  import { ContextOf } from "../persistence/types";
7
+ export type SequenceDecoratorParams = {
8
+ /** when true, handler also runs on update (generates the next value) */
9
+ update?: boolean;
10
+ };
7
11
  /**
8
12
  * @description Callback function for primary key creation
9
13
  * @summary Handles the creation of primary key values for models using sequences
@@ -41,8 +45,9 @@ import { ContextOf } from "../persistence/types";
41
45
  * end
42
46
  */
43
47
  export declare function pkOnCreate<M extends Model, R extends Repository<M, any>, V extends SequenceOptions>(this: R, context: ContextOf<R>, data: V, key: keyof M, model: M): Promise<void>;
48
+ export declare function sequenceOnCreateUpdate<M extends Model, R extends Repository<M, any>, V extends SequenceOptions & SequenceDecoratorParams>(this: R, context: ContextOf<R>, data: V, key: keyof M, model: M, oldModel?: M): Promise<void>;
44
49
  export declare function pkDec(options: SequenceOptions, groupsort?: GroupSort): (obj: any, attr: any) => void;
45
- export declare function sequenceDec(options: SequenceOptions, groupsort?: GroupSort): (obj: any, attr: any) => void;
50
+ export declare function sequenceDec(options: SequenceOptions, params?: SequenceDecoratorParams, groupsort?: GroupSort): (obj: any, attr: any) => void;
46
51
  /**
47
52
  * @description Primary Key Decorator
48
53
  * @summary Marks a property as the model's primary key with automatic sequence generation
@@ -64,4 +69,4 @@ export declare function sequenceDec(options: SequenceOptions, groupsort?: GroupS
64
69
  * ```
65
70
  */
66
71
  export declare function pk(opts?: Partial<Omit<SequenceOptions, "cycle" | "startWith" | "incrementBy">>): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
67
- export declare function sequence(opts?: Partial<Omit<SequenceOptions, "cycle" | "startWith" | "incrementBy">>): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
72
+ export declare function sequence(opts?: Partial<Omit<SequenceOptions, "cycle" | "startWith" | "incrementBy">>, updateOrParams?: SequenceDecoratorParams | boolean): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/identity/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/identity/decorators.ts"],"names":[],"mappings":"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"}
package/lib/index.cjs CHANGED
@@ -49,7 +49,7 @@ __exportStar(require("./persistence/index.cjs"), exports);
49
49
  * @const VERSION
50
50
  * @memberOf module:core
51
51
  */
52
- exports.VERSION = "0.9.19";
52
+ exports.VERSION = "0.10.1";
53
53
  /**
54
54
  * @description Stores the current package version
55
55
  * @summary A constant representing the version of the core package
package/lib/index.d.ts CHANGED
@@ -22,7 +22,7 @@ export * from "./persistence";
22
22
  * @const VERSION
23
23
  * @memberOf module:core
24
24
  */
25
- export declare const VERSION = "0.9.19";
25
+ export declare const VERSION = "0.10.1";
26
26
  /**
27
27
  * @description Stores the current package version
28
28
  * @summary A constant representing the version of the core package
@@ -9,6 +9,8 @@ exports.createdBy = createdBy;
9
9
  exports.updatedBy = updatedBy;
10
10
  exports.createdAt = createdAt;
11
11
  exports.updatedAt = updatedAt;
12
+ exports.persistentVersion = persistentVersion;
13
+ exports.version = version;
12
14
  exports.getPkTypes = getPkTypes;
13
15
  exports.oneToOne = oneToOne;
14
16
  exports.oneToMany = oneToMany;
@@ -203,6 +205,86 @@ function createdAt() {
203
205
  function updatedAt() {
204
206
  return (0, db_decorators_1.timestamp)();
205
207
  }
208
+ async function persistentVersionOnCreate(context, data, key, model) {
209
+ // Sequences are meta-records that can be updated during other lifecycle hooks
210
+ // (for example while computing persistent versions). Persisting a persistent
211
+ // version for the sequence records themselves causes name recursion like:
212
+ // `owner_<id>_version -> ??sequence_owner_<id>_version_version -> ...`.
213
+ // Sequence versions do not need to be persistent.
214
+ if (decorator_validation_1.Model.tableName(model) === "??sequence")
215
+ return;
216
+ const id = decorator_validation_1.Model.pk(model, true);
217
+ if (typeof id === "undefined" || id === null) {
218
+ throw new db_decorators_1.InternalError(`Cannot generate persistent version without an id for ${model.constructor.name}`);
219
+ }
220
+ const options = {
221
+ name: decorator_validation_1.Model.sequenceName(model, String(id), String(key)),
222
+ type: Number,
223
+ generated: true,
224
+ startWith: 0,
225
+ incrementBy: 1,
226
+ cycle: false,
227
+ };
228
+ const sequence = await this.adapter.Sequence(options, this._overrides);
229
+ const hasValue = typeof model[key] !== "undefined" && model[key] !== null;
230
+ const allowGenerationOverride = !!context.get("allowGenerationOverride") && hasValue;
231
+ // Always ensure the sequence exists; if a value exists and no sequence exists,
232
+ // seed it from the current model value.
233
+ if (hasValue) {
234
+ await sequence.ensureAtLeast(model[key], context);
235
+ if (allowGenerationOverride)
236
+ return;
237
+ }
238
+ const next = await sequence.next(context);
239
+ model[key] = next;
240
+ }
241
+ async function persistentVersionOnUpdate(context, data, key, model, oldModel) {
242
+ // See persistentVersionOnCreate comment above.
243
+ if (decorator_validation_1.Model.tableName(model) === "??sequence")
244
+ return;
245
+ if (context.get("applyUpdateValidation") &&
246
+ oldModel &&
247
+ model[key] !== oldModel[key]) {
248
+ throw new db_decorators_1.ValidationError(`Version mismatch: ${model[key]} !== ${oldModel[key]}`);
249
+ }
250
+ const id = decorator_validation_1.Model.pk(model, true);
251
+ if (typeof id === "undefined" || id === null) {
252
+ throw new db_decorators_1.InternalError(`Cannot generate persistent version without an id for ${model.constructor.name}`);
253
+ }
254
+ const options = {
255
+ name: decorator_validation_1.Model.sequenceName(model, String(id), String(key)),
256
+ type: Number,
257
+ generated: true,
258
+ startWith: 0,
259
+ incrementBy: 1,
260
+ cycle: false,
261
+ };
262
+ const sequence = await this.adapter.Sequence(options, this._overrides);
263
+ const hasValue = typeof model[key] !== "undefined" && model[key] !== null;
264
+ const allowGenerationOverride = !!context.get("allowGenerationOverride") && hasValue;
265
+ if (hasValue) {
266
+ await sequence.ensureAtLeast(model[key], context);
267
+ if (allowGenerationOverride)
268
+ return;
269
+ }
270
+ const next = await sequence.next(context);
271
+ model[key] = next;
272
+ }
273
+ function persistentVersion() {
274
+ const key = constants_1.PersistenceKeys.PERSISTENT_VERSION;
275
+ return function version(target, propertyKey) {
276
+ return decoration_1.Decoration.for(key)
277
+ .define(
278
+ // Ensure class-level decorators (for example Fabric shared/private data) can "see" this attribute.
279
+ (0, decoration_1.prop)(), (0, decoration_1.propMetadata)(decoration_1.Metadata.key(key, propertyKey), true), (0, db_decorators_1.generated)(key), (0, decorator_validation_1.type)(Number), (0, db_decorators_1.onCreate)(persistentVersionOnCreate, {}, { priority: 70 }), (0, db_decorators_1.onUpdate)(persistentVersionOnUpdate, {}, { priority: 70 }))
280
+ .apply()(target, propertyKey);
281
+ };
282
+ }
283
+ function version(persistent = false) {
284
+ if (!persistent)
285
+ return (0, db_decorators_1.version)();
286
+ return persistentVersion();
287
+ }
206
288
  function getPkTypes(model) {
207
289
  return [
208
290
  // this needs to return a function to keep cross references possible even if currently we only have access to first defined type
@@ -107,6 +107,8 @@ export declare function createdBy(): (target: any, propertyKey?: any, descriptor
107
107
  export declare function updatedBy(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
108
108
  export declare function createdAt(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
109
109
  export declare function updatedAt(): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
110
+ export declare function persistentVersion(): (target: any, propertyKey?: any) => any;
111
+ export declare function version(persistent?: boolean): (target: any, propertyKey?: any) => any;
110
112
  export declare function getPkTypes(model: Constructor | (() => Constructor)): (() => any)[];
111
113
  /**
112
114
  * @description Defines a one-to-one relationship between models