@memberjunction/core 6.2.0-edge.3 → 6.2.0-edge.5

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 (99) hide show
  1. package/dist/generic/BaseEntitySaveQueue.d.ts +7 -0
  2. package/dist/generic/BaseEntitySaveQueue.d.ts.map +1 -1
  3. package/dist/generic/BaseEntitySaveQueue.js +22 -4
  4. package/dist/generic/BaseEntitySaveQueue.js.map +1 -1
  5. package/dist/generic/JSONType-interfaces/IEntityConfiguration.d.ts +33 -0
  6. package/dist/generic/JSONType-interfaces/IEntityConfiguration.d.ts.map +1 -1
  7. package/dist/generic/RegisterForStartup.d.ts +44 -0
  8. package/dist/generic/RegisterForStartup.d.ts.map +1 -1
  9. package/dist/generic/RegisterForStartup.js +124 -48
  10. package/dist/generic/RegisterForStartup.js.map +1 -1
  11. package/dist/generic/baseEngine.d.ts +222 -7
  12. package/dist/generic/baseEngine.d.ts.map +1 -1
  13. package/dist/generic/baseEngine.js +555 -37
  14. package/dist/generic/baseEngine.js.map +1 -1
  15. package/dist/generic/baseEngineSweeper.d.ts +35 -0
  16. package/dist/generic/baseEngineSweeper.d.ts.map +1 -0
  17. package/dist/generic/baseEngineSweeper.js +97 -0
  18. package/dist/generic/baseEngineSweeper.js.map +1 -0
  19. package/dist/generic/baseEntity.d.ts +45 -1
  20. package/dist/generic/baseEntity.d.ts.map +1 -1
  21. package/dist/generic/baseEntity.js +308 -187
  22. package/dist/generic/baseEntity.js.map +1 -1
  23. package/dist/generic/baseInfo.d.ts +31 -3
  24. package/dist/generic/baseInfo.d.ts.map +1 -1
  25. package/dist/generic/baseInfo.js +138 -40
  26. package/dist/generic/baseInfo.js.map +1 -1
  27. package/dist/generic/databaseProviderBase.d.ts +57 -19
  28. package/dist/generic/databaseProviderBase.d.ts.map +1 -1
  29. package/dist/generic/databaseProviderBase.js +203 -80
  30. package/dist/generic/databaseProviderBase.js.map +1 -1
  31. package/dist/generic/entityConfiguration.d.ts +8 -2
  32. package/dist/generic/entityConfiguration.d.ts.map +1 -1
  33. package/dist/generic/entityConfiguration.js +9 -0
  34. package/dist/generic/entityConfiguration.js.map +1 -1
  35. package/dist/generic/entityEventBatch.d.ts +124 -0
  36. package/dist/generic/entityEventBatch.d.ts.map +1 -0
  37. package/dist/generic/entityEventBatch.js +194 -0
  38. package/dist/generic/entityEventBatch.js.map +1 -0
  39. package/dist/generic/entityInfo.d.ts +103 -8
  40. package/dist/generic/entityInfo.d.ts.map +1 -1
  41. package/dist/generic/entityInfo.js +376 -60
  42. package/dist/generic/entityInfo.js.map +1 -1
  43. package/dist/generic/infoProviderResolution.d.ts +16 -0
  44. package/dist/generic/infoProviderResolution.d.ts.map +1 -0
  45. package/dist/generic/infoProviderResolution.js +17 -0
  46. package/dist/generic/infoProviderResolution.js.map +1 -0
  47. package/dist/generic/interfaces.d.ts +143 -3
  48. package/dist/generic/interfaces.d.ts.map +1 -1
  49. package/dist/generic/interfaces.js.map +1 -1
  50. package/dist/generic/localCacheManager.d.ts +505 -56
  51. package/dist/generic/localCacheManager.d.ts.map +1 -1
  52. package/dist/generic/localCacheManager.js +1185 -175
  53. package/dist/generic/localCacheManager.js.map +1 -1
  54. package/dist/generic/logging.d.ts +15 -0
  55. package/dist/generic/logging.d.ts.map +1 -1
  56. package/dist/generic/logging.js +17 -0
  57. package/dist/generic/logging.js.map +1 -1
  58. package/dist/generic/metadata.d.ts +1 -1
  59. package/dist/generic/metadata.d.ts.map +1 -1
  60. package/dist/generic/metadata.js.map +1 -1
  61. package/dist/generic/mjapiUrl.d.ts +21 -0
  62. package/dist/generic/mjapiUrl.d.ts.map +1 -0
  63. package/dist/generic/mjapiUrl.js +25 -0
  64. package/dist/generic/mjapiUrl.js.map +1 -0
  65. package/dist/generic/providerBase.d.ts +301 -5
  66. package/dist/generic/providerBase.d.ts.map +1 -1
  67. package/dist/generic/providerBase.js +750 -168
  68. package/dist/generic/providerBase.js.map +1 -1
  69. package/dist/generic/queryInfo.d.ts +10 -9
  70. package/dist/generic/queryInfo.d.ts.map +1 -1
  71. package/dist/generic/queryInfo.js +60 -33
  72. package/dist/generic/queryInfo.js.map +1 -1
  73. package/dist/generic/scoring/ReciprocalRankFusion.d.ts.map +1 -1
  74. package/dist/generic/scoring/ReciprocalRankFusion.js +10 -3
  75. package/dist/generic/scoring/ReciprocalRankFusion.js.map +1 -1
  76. package/dist/generic/securityInfo.d.ts +11 -6
  77. package/dist/generic/securityInfo.d.ts.map +1 -1
  78. package/dist/generic/securityInfo.js +15 -10
  79. package/dist/generic/securityInfo.js.map +1 -1
  80. package/dist/generic/telemetryManager.d.ts.map +1 -1
  81. package/dist/generic/telemetryManager.js +4 -1
  82. package/dist/generic/telemetryManager.js.map +1 -1
  83. package/dist/generic/transactionGroup.d.ts +27 -0
  84. package/dist/generic/transactionGroup.d.ts.map +1 -1
  85. package/dist/generic/transactionGroup.js +58 -5
  86. package/dist/generic/transactionGroup.js.map +1 -1
  87. package/dist/generic/util.d.ts.map +1 -1
  88. package/dist/generic/util.js +3 -0
  89. package/dist/generic/util.js.map +1 -1
  90. package/dist/generic/wellKnownUserSource.d.ts +3 -2
  91. package/dist/generic/wellKnownUserSource.d.ts.map +1 -1
  92. package/dist/generic/wellKnownUserSource.js +18 -9
  93. package/dist/generic/wellKnownUserSource.js.map +1 -1
  94. package/dist/index.d.ts +2 -0
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +2 -0
  97. package/dist/index.js.map +1 -1
  98. package/package.json +3 -3
  99. package/readme.md +29 -4
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { SerialTaskFlushResult } from '@memberjunction/global';
10
10
  import { BaseEntity } from './baseEntity.js';
11
+ import type { EntitySaveReturnMode } from './entityConfiguration.js';
11
12
  /**
12
13
  * A per-entity-instance serial save queue. INSERT and UPDATE of the same `BaseEntity` instance are
13
14
  * serialized (the UPDATE waits for the INSERT to land); different entities save concurrently. All
@@ -18,13 +19,18 @@ import { BaseEntity } from './baseEntity.js';
18
19
  export declare class BaseEntitySaveQueue {
19
20
  private readonly queue;
20
21
  private readonly onError?;
22
+ private readonly saveReturnMode?;
21
23
  /**
22
24
  * @param opts.onError Optional handler for a failed save's diagnostic message. Defaults to the
23
25
  * global `LogError`. Consumers with structured logging (e.g. a category/metadata logger) pass
24
26
  * their own so failures stay in their log stream.
27
+ * @param opts.saveReturnMode Optional {@link EntitySaveReturnMode} forwarded to every queued
28
+ * `entity.Save(options)` call (e.g. `'datestamps_only'` for high-write execution log queues
29
+ * whose wide JSON/text payload columns are already in memory).
25
30
  */
26
31
  constructor(opts?: {
27
32
  onError?: (message: string) => void;
33
+ saveReturnMode?: EntitySaveReturnMode;
28
34
  });
29
35
  /**
30
36
  * Fire-and-forget INSERT of a freshly `NewRecord()`'d entity. The entity instance is the
@@ -44,6 +50,7 @@ export declare class BaseEntitySaveQueue {
44
50
  * AND cannot race an in-flight INSERT.
45
51
  */
46
52
  Update(entity: BaseEntity, applyMutation?: (entity: BaseEntity) => void): void;
53
+ private buildSaveOptions;
47
54
  /** Awaits all pending saves and returns failure diagnostics. Call at the run/goal finalize boundary. */
48
55
  Flush(): Promise<SerialTaskFlushResult>;
49
56
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BaseEntitySaveQueue.d.ts","sourceRoot":"","sources":["../../src/generic/BaseEntitySaveQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAwB,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA4B;IAErD;;;;OAIG;gBACS,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE;IAI1D;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKvC;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAKpE;;;;;OAKG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAOrF,wGAAwG;IACjG,KAAK,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAI9C;;;;OAIG;YACW,OAAO;IAgBrB,oGAAoG;IACpG,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,SAAS;CAGpB"}
1
+ {"version":3,"file":"BaseEntitySaveQueue.d.ts","sourceRoot":"","sources":["../../src/generic/BaseEntitySaveQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAwB,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAIlE;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA8B;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAuB;IAEvD;;;;;;;OAOG;gBACS,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,cAAc,CAAC,EAAE,oBAAoB,CAAA;KAAE;IAKjG;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAMvC;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAMpE;;;;;OAKG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAMrF,OAAO,CAAC,gBAAgB;IAcxB,wGAAwG;IACjG,KAAK,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAI9C;;;;OAIG;YACW,OAAO;IAgBrB,oGAAoG;IACpG,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,SAAS;CAGpB"}
@@ -21,10 +21,14 @@ export class BaseEntitySaveQueue {
21
21
  * @param opts.onError Optional handler for a failed save's diagnostic message. Defaults to the
22
22
  * global `LogError`. Consumers with structured logging (e.g. a category/metadata logger) pass
23
23
  * their own so failures stay in their log stream.
24
+ * @param opts.saveReturnMode Optional {@link EntitySaveReturnMode} forwarded to every queued
25
+ * `entity.Save(options)` call (e.g. `'datestamps_only'` for high-write execution log queues
26
+ * whose wide JSON/text payload columns are already in memory).
24
27
  */
25
28
  constructor(opts) {
26
29
  this.queue = new KeyedSerialTaskQueue();
27
30
  this.onError = opts?.onError;
31
+ this.saveReturnMode = opts?.saveReturnMode;
28
32
  }
29
33
  /**
30
34
  * Fire-and-forget INSERT of a freshly `NewRecord()`'d entity. The entity instance is the
@@ -32,7 +36,8 @@ export class BaseEntitySaveQueue {
32
36
  */
33
37
  Insert(entity) {
34
38
  const label = this.labelFor('Insert', entity);
35
- void this.queue.enqueue(entity, () => this.runSave(entity, label), { isOk: (ok) => ok === true, label });
39
+ const options = this.buildSaveOptions(false);
40
+ void this.queue.enqueue(entity, () => this.runSave(entity, label, options), { isOk: (ok) => ok === true, label });
36
41
  }
37
42
  /**
38
43
  * Fire-and-forget INSERT that waits for `dependency`'s pending tasks to settle first. Use this for
@@ -41,7 +46,8 @@ export class BaseEntitySaveQueue {
41
46
  */
42
47
  InsertAfter(entity, dependency) {
43
48
  const label = this.labelFor('Insert', entity);
44
- void this.queue.enqueue(entity, () => this.runSave(entity, label), { isOk: (ok) => ok === true, label, after: dependency });
49
+ const options = this.buildSaveOptions(false);
50
+ void this.queue.enqueue(entity, () => this.runSave(entity, label, options), { isOk: (ok) => ok === true, label, after: dependency });
45
51
  }
46
52
  /**
47
53
  * Fire-and-forget UPDATE chained after the entity's INSERT. `applyMutation` (if given) runs INSIDE
@@ -51,10 +57,22 @@ export class BaseEntitySaveQueue {
51
57
  */
52
58
  Update(entity, applyMutation) {
53
59
  const label = this.labelFor('Update', entity);
54
- const options = new EntitySaveOptions();
55
- options.IgnoreDirtyState = true;
60
+ const options = this.buildSaveOptions(true);
56
61
  void this.queue.enqueue(entity, () => this.runSave(entity, label, options, applyMutation), { isOk: (ok) => ok === true, label });
57
62
  }
63
+ buildSaveOptions(ignoreDirtyState) {
64
+ if (!ignoreDirtyState && !this.saveReturnMode) {
65
+ return undefined;
66
+ }
67
+ const options = new EntitySaveOptions();
68
+ if (ignoreDirtyState) {
69
+ options.IgnoreDirtyState = true;
70
+ }
71
+ if (this.saveReturnMode) {
72
+ options.SaveReturnMode = this.saveReturnMode;
73
+ }
74
+ return options;
75
+ }
58
76
  /** Awaits all pending saves and returns failure diagnostics. Call at the run/goal finalize boundary. */
59
77
  Flush() {
60
78
  return this.queue.flush();
@@ -1 +1 @@
1
- {"version":3,"file":"BaseEntitySaveQueue.js","sourceRoot":"","sources":["../../src/generic/BaseEntitySaveQueue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseEntitySaveQueue.js","sourceRoot":"","sources":["../../src/generic/BaseEntitySaveQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,oBAAoB,EAAyB,MAAM,wBAAwB,CAAC;AAGrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,OAAO,mBAAmB;IAK5B;;;;;;;OAOG;IACH,YAAY,IAAqF;QAZhF,UAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAahD,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,cAAc,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,MAAkB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtH,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,MAAkB,EAAE,UAAsB;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7C,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IACzI,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,MAAkB,EAAE,aAA4C;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5C,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACrI,CAAC;IAEO,gBAAgB,CAAC,gBAAyB;QAC9C,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACxC,IAAI,gBAAgB,EAAE,CAAC;YACnB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,wGAAwG;IACjG,KAAK;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,OAAO,CAAC,MAAkB,EAAE,KAAa,EAAE,OAA2B,EAAE,aAA4C;QAC9H,IAAI,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAChB,aAAa,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,WAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjF,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,oGAAoG;IAC5F,UAAU,CAAC,OAAe;QAC9B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,EAAuB,EAAE,MAAkB;QACxD,IAAI,IAAI,GAAG,QAAQ,CAAC;QACpB,IAAI,CAAC;YACD,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,QAAQ,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACL,gFAAgF;QACpF,CAAC;QACD,OAAO,uBAAuB,EAAE,IAAI,IAAI,GAAG,CAAC;IAChD,CAAC;IAEO,SAAS,CAAC,MAAkB;QAChC,OAAO,MAAM,CAAC,YAAY,EAAE,eAAe,IAAI,qBAAqB,CAAC;IACzE,CAAC;CACJ"}
@@ -20,6 +20,17 @@
20
20
  *
21
21
  * @see guides/FORMS_ARCHITECTURE_GUIDE.md §7d
22
22
  */
23
+ /**
24
+ * Controls which columns a save operation (`spCreate` / `spUpdate` and provider save wrappers)
25
+ * returns from the database:
26
+ * - `'full'` (default): Re-queries `SELECT * FROM <BaseView>` after `INSERT`/`UPDATE` so all
27
+ * columns (including virtual/joined columns) are returned from the database.
28
+ * - `'datestamps_only'`: Returns only the primary key column(s) plus `__mj_CreatedAt` and
29
+ * `__mj_UpdatedAt` (when present on the entity) directly from `<BaseTable>`, avoiding the
30
+ * expensive `BaseView` JOINs and large column reads while still returning exact DB-generated
31
+ * keys and timestamps for optimistic concurrency / inconsistency checks.
32
+ */
33
+ export type EntitySaveReturnMode = 'full' | 'datestamps_only';
23
34
  export interface IEntityConfiguration {
24
35
  /**
25
36
  * Presentation / chrome. Null = host defaults (`Layout: auto`,
@@ -38,6 +49,13 @@ export interface IEntityConfiguration {
38
49
  * policy says Deep, unless NotCloneable is true.
39
50
  */
40
51
  Clone?: IEntityCloneConfiguration;
52
+ /**
53
+ * Controls which columns a save operation (`spCreate` / `spUpdate`) returns from the database.
54
+ * - `'full'` (default when omitted): Re-queries `SELECT * FROM <BaseView>` after `INSERT`/`UPDATE`.
55
+ * - `'datestamps_only'`: Selects only the primary key(s) and `__mj_CreatedAt`/`__mj_UpdatedAt`
56
+ * directly from `<BaseTable>`, preserving in-memory field values on the saved entity.
57
+ */
58
+ SaveReturnMode?: EntitySaveReturnMode;
41
59
  }
42
60
  /**
43
61
  * Configuration for entity-level file attachments.
@@ -147,6 +165,13 @@ export interface IEntityCloneConfiguration {
147
165
  Enabled?: boolean;
148
166
  /** Hard refusal: this entity's rows are never created by the clone engine, as root or as child. Overrides every relationship policy. Use for audit, run, credential and metadata entities. */
149
167
  NotCloneable?: boolean;
168
+ /**
169
+ * Lets a NotCloneable entity's rows be copied after all, but only as children of a template copy: a
170
+ * clone run under a preset with `TemplateSourceField` whose source record has that flag set. Use for
171
+ * rows that are private to a person (conversations, dashboard preferences) and must never be copied
172
+ * from one user to another, yet belong in a template built to be copied.
173
+ */
174
+ CloneableFromTemplate?: boolean;
150
175
  /** Shown to users and returned in warnings when NotCloneable or Enabled=false. */
151
176
  NotCloneableReason?: string;
152
177
  /** Authorization name checked with ancestors. Default 'Clone Records'; resolved per §9.1. */
@@ -308,5 +333,13 @@ export interface IClonePreset {
308
333
  Relationships?: Record<string, {
309
334
  Policy: 'Deep' | 'Reference' | 'Skip';
310
335
  }>;
336
+ /**
337
+ * Makes this a template preset. Names a boolean field on the root entity; the preset is offered and
338
+ * applied only when the source record has it set (e.g. `IsTemplate` on `MJ: Users`), and the plan is
339
+ * blocked otherwise. A template preset may open edges the configuration Locks and copy children whose
340
+ * entity is `CloneableFromTemplate`: those protections keep a person's private records from being
341
+ * copied to someone else, which does not apply to a record built to be copied.
342
+ */
343
+ TemplateSourceField?: string;
311
344
  }
312
345
  //# sourceMappingURL=IEntityConfiguration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IEntityConfiguration.d.ts","sourceRoot":"","sources":["../../../src/generic/JSONType-interfaces/IEntityConfiguration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IEntityConfiguration.d.ts","sourceRoot":"","sources":["../../../src/generic/JSONType-interfaces/IEntityConfiguration.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { BaseSingleton } from "@memberjunction/global";
2
2
  import { UserInfo } from "./securityInfo.js";
3
3
  import { IMetadataProvider } from "./interfaces.js";
4
+ import type { LocalCacheManagerConfig } from "./localCacheManager.js";
4
5
  /**
5
6
  * Options for the @RegisterForStartup decorator
6
7
  */
@@ -166,7 +167,22 @@ export interface StartupOptions {
166
167
  * Not surfaced in user-facing configuration.
167
168
  */
168
169
  engineFilter?: (reg: StartupRegistration) => boolean;
170
+ /**
171
+ * Settings for `LocalCacheManager`. Applied whether or not startup is the first to initialize
172
+ * it — a database provider initializes the manager from inside its own `Config()`, so these
173
+ * settings usually arrive second and are merged on top (see `LocalCacheManager.Initialize`).
174
+ */
175
+ cacheManagerConfig?: Partial<LocalCacheManagerConfig>;
176
+ /**
177
+ * On a shared cache, servers starting at the same time load their engines one after another
178
+ * so only the first reads the database; the others find the cache warm (plan: cold-start
179
+ * herd). This is how long one server may hold the turn, in milliseconds, and how long the
180
+ * others wait for it. 0 turns the coordination off. Default: 30000.
181
+ */
182
+ warmupLeaseMs?: number;
169
183
  }
184
+ /** Name of the lease that orders engine warm-up across servers sharing a cache. */
185
+ export declare const STARTUP_WARMUP_LEASE = "startup-warmup";
170
186
  /**
171
187
  * Where the resolved startup mode came from, highest precedence first:
172
188
  * MJ_STARTUP_MODE env var > programmatic option > config file > caller default.
@@ -300,6 +316,34 @@ export declare class StartupManager extends BaseSingleton<StartupManager> {
300
316
  * Internal method that performs the actual startup loading work.
301
317
  */
302
318
  private executeLoad;
319
+ /**
320
+ * Loads the synchronous engines, priority group by priority group.
321
+ * @returns Every result so far, and the first fatal failure (loading stops there).
322
+ */
323
+ private loadSyncGroups;
324
+ /** Loads one registered engine and reports how it went. Never throws. */
325
+ private loadRegistration;
326
+ /** Logs non-fatal load failures at their declared severity ('silent' logs nothing). */
327
+ private logLoadFailures;
328
+ /**
329
+ * Keeps this server's warm-up turn alive while its engines load, re-claiming the lease every
330
+ * third of its TTL. Without it a slow cold-database load loses the turn mid-flight and every
331
+ * waiting server starts loading too.
332
+ */
333
+ private startWarmupRenewal;
334
+ /**
335
+ * How many lease TTLs a server waits for another server's warm-up before loading anyway. The
336
+ * holder renews while it loads, so this bounds a warm-up that is slow, not one that died.
337
+ */
338
+ static WarmupWaitLeaseMultiple: number;
339
+ /**
340
+ * Waits for this server's turn to warm its engines when other servers share the cache (plan:
341
+ * cold-start herd). The first server loads from the database and fills the shared cache; the
342
+ * ones that start alongside it wait, then load from the warm cache. On a private cache the turn
343
+ * is granted at once. A turn that is not granted within `leaseMs` is taken anyway.
344
+ * @returns True when this server holds the turn and must release it.
345
+ */
346
+ private takeWarmupTurn;
303
347
  /**
304
348
  * Completes a 'task'-mode startup: no registered engines execute (sync or
305
349
  * deferred); each lazy-loads on first touch via its own Config()/EnsureLoaded().
@@ -1 +1 @@
1
- {"version":3,"file":"RegisterForStartup.d.ts","sourceRoot":"","sources":["../../src/generic/RegisterForStartup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RegisterForStartup.d.ts","sourceRoot":"","sources":["../../src/generic/RegisterForStartup.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,9 @@ import { BaseSingleton } from "@memberjunction/global";
2
2
  import { Metadata } from "./metadata.js";
3
3
  import { LocalCacheManager } from "./localCacheManager.js";
4
4
  import { LogStatus, LogStatusEx } from "./logging.js";
5
+ /** Name of the lease that orders engine warm-up across servers sharing a cache. */
6
+ export const STARTUP_WARMUP_LEASE = 'startup-warmup';
7
+ const DEFAULT_WARMUP_LEASE_MS = 30000;
5
8
  const STARTUP_MODES = ['full', 'task'];
6
9
  /**
7
10
  * Environment variable for per-invocation startup-mode override,
@@ -208,7 +211,7 @@ export class StartupManager extends BaseSingleton {
208
211
  // Get the storage provider from the metadata provider (uses IndexedDB)
209
212
  const cacheStart = Date.now();
210
213
  const storageProvider = (provider ?? Metadata.Provider).LocalStorageProvider;
211
- await LocalCacheManager.Instance.Initialize(storageProvider);
214
+ await LocalCacheManager.Instance.Initialize(storageProvider, options?.cacheManagerConfig);
212
215
  LogStatusEx({ message: `LocalCacheManager initialized in ${Date.now() - cacheStart}ms`, verboseOnly: true });
213
216
  const startTime = Date.now();
214
217
  const allRegistrations = this.GetRegistrations();
@@ -227,56 +230,34 @@ export class StartupManager extends BaseSingleton {
227
230
  const syncRegistrations = activeRegistrations.filter(r => !r.options.deferred);
228
231
  const deferredRegistrations = activeRegistrations.filter(r => r.options.deferred);
229
232
  const groups = this.groupByPriority(syncRegistrations);
230
- const results = [];
231
- for (const group of groups) {
232
- const groupResults = await Promise.all(group.map(async (reg) => {
233
- const loadStart = Date.now();
234
- try {
235
- const instance = reg.getInstance();
236
- await instance.HandleStartup(contextUser, provider);
237
- reg.loadedAt = new Date();
238
- reg.loadDurationMs = Date.now() - loadStart;
239
- return {
240
- className: reg.constructor.name,
241
- success: true,
242
- durationMs: reg.loadDurationMs
243
- };
244
- }
245
- catch (error) {
246
- const durationMs = Date.now() - loadStart;
247
- return {
248
- className: reg.constructor.name,
249
- success: false,
250
- error: error,
251
- severity: reg.options.severity || 'error',
252
- durationMs
253
- };
254
- }
255
- }));
256
- results.push(...groupResults);
257
- // Check for fatal errors - stop immediately
258
- const fatal = groupResults.find(r => !r.success && r.severity === 'fatal');
259
- if (fatal) {
260
- return {
261
- success: false,
262
- results,
263
- totalDurationMs: Date.now() - startTime,
264
- fatalError: fatal.error
265
- };
233
+ const warmupLeaseMs = options?.warmupLeaseMs ?? DEFAULT_WARMUP_LEASE_MS;
234
+ const warmup = await this.takeWarmupTurn(warmupLeaseMs, syncRegistrations.length);
235
+ let loaded;
236
+ // The lease's TTL doubles as the maximum another server waits for it, so a holder that
237
+ // takes longer than the TTL to load its engines has already let the others through — the
238
+ // herd re-forms against a cold database, which is what the lease exists to prevent. Renew
239
+ // it while the load runs.
240
+ const renewal = warmup ? this.startWarmupRenewal(warmupLeaseMs) : null;
241
+ try {
242
+ loaded = await this.loadSyncGroups(groups, contextUser, provider);
243
+ }
244
+ finally {
245
+ if (renewal) {
246
+ clearInterval(renewal);
266
247
  }
267
- // Log non-fatal errors
268
- for (const result of groupResults) {
269
- if (!result.success) {
270
- if (result.severity === 'error') {
271
- console.error(`[StartupManager] Error loading ${result.className}:`, result.error);
272
- }
273
- else if (result.severity === 'warn') {
274
- console.warn(`[StartupManager] Warning loading ${result.className}:`, result.error);
275
- }
276
- // 'silent' - do nothing
277
- }
248
+ if (warmup) {
249
+ await LocalCacheManager.Instance.ReleaseSharedLease(STARTUP_WARMUP_LEASE);
278
250
  }
279
251
  }
252
+ const results = loaded.results;
253
+ if (loaded.fatal) {
254
+ return {
255
+ success: false,
256
+ results,
257
+ totalDurationMs: Date.now() - startTime,
258
+ fatalError: loaded.fatal.error
259
+ };
260
+ }
280
261
  this._loadCompleted = true;
281
262
  // Log per-engine timing summary so slow engines are visible
282
263
  const totalMs = Date.now() - startTime;
@@ -296,6 +277,101 @@ export class StartupManager extends BaseSingleton {
296
277
  totalDurationMs: totalMs
297
278
  };
298
279
  }
280
+ /**
281
+ * Loads the synchronous engines, priority group by priority group.
282
+ * @returns Every result so far, and the first fatal failure (loading stops there).
283
+ */
284
+ async loadSyncGroups(groups, contextUser, provider) {
285
+ const results = [];
286
+ for (const group of groups) {
287
+ const groupResults = await Promise.all(group.map(reg => this.loadRegistration(reg, contextUser, provider)));
288
+ results.push(...groupResults);
289
+ const fatal = groupResults.find(r => !r.success && r.severity === 'fatal');
290
+ if (fatal) {
291
+ return { results, fatal };
292
+ }
293
+ this.logLoadFailures(groupResults);
294
+ }
295
+ return { results };
296
+ }
297
+ /** Loads one registered engine and reports how it went. Never throws. */
298
+ async loadRegistration(reg, contextUser, provider) {
299
+ const loadStart = Date.now();
300
+ try {
301
+ const instance = reg.getInstance();
302
+ await instance.HandleStartup(contextUser, provider);
303
+ reg.loadedAt = new Date();
304
+ reg.loadDurationMs = Date.now() - loadStart;
305
+ return { className: reg.constructor.name, success: true, durationMs: reg.loadDurationMs };
306
+ }
307
+ catch (error) {
308
+ return {
309
+ className: reg.constructor.name,
310
+ success: false,
311
+ error: error,
312
+ severity: reg.options.severity || 'error',
313
+ durationMs: Date.now() - loadStart
314
+ };
315
+ }
316
+ }
317
+ /** Logs non-fatal load failures at their declared severity ('silent' logs nothing). */
318
+ logLoadFailures(groupResults) {
319
+ for (const result of groupResults) {
320
+ if (result.success) {
321
+ continue;
322
+ }
323
+ if (result.severity === 'error') {
324
+ console.error(`[StartupManager] Error loading ${result.className}:`, result.error);
325
+ }
326
+ else if (result.severity === 'warn') {
327
+ console.warn(`[StartupManager] Warning loading ${result.className}:`, result.error);
328
+ }
329
+ }
330
+ }
331
+ /**
332
+ * Keeps this server's warm-up turn alive while its engines load, re-claiming the lease every
333
+ * third of its TTL. Without it a slow cold-database load loses the turn mid-flight and every
334
+ * waiting server starts loading too.
335
+ */
336
+ startWarmupRenewal(leaseMs) {
337
+ const everyMs = Math.max(1000, Math.floor(leaseMs / 3));
338
+ const timer = setInterval(() => {
339
+ LocalCacheManager.Instance.RenewSharedLease(STARTUP_WARMUP_LEASE, leaseMs).catch(() => undefined);
340
+ }, everyMs);
341
+ if (typeof timer === 'object' && timer !== null && 'unref' in timer) {
342
+ timer.unref();
343
+ }
344
+ return timer;
345
+ }
346
+ /**
347
+ * How many lease TTLs a server waits for another server's warm-up before loading anyway. The
348
+ * holder renews while it loads, so this bounds a warm-up that is slow, not one that died.
349
+ */
350
+ static { this.WarmupWaitLeaseMultiple = 4; }
351
+ /**
352
+ * Waits for this server's turn to warm its engines when other servers share the cache (plan:
353
+ * cold-start herd). The first server loads from the database and fills the shared cache; the
354
+ * ones that start alongside it wait, then load from the warm cache. On a private cache the turn
355
+ * is granted at once. A turn that is not granted within `leaseMs` is taken anyway.
356
+ * @returns True when this server holds the turn and must release it.
357
+ */
358
+ async takeWarmupTurn(leaseMs, engineCount) {
359
+ if (leaseMs <= 0 || engineCount === 0) {
360
+ return false;
361
+ }
362
+ // The wait is deliberately LONGER than the lease: the lease's TTL is how long a dead holder
363
+ // blocks others, while the wait is how long a live one is given to finish. Tying them
364
+ // together (they were both `leaseMs`) meant every waiter gave up at the moment the holder
365
+ // renewed, so a warm-up slower than one TTL let the whole herd through at once. A holder
366
+ // that releases early is picked up on the next poll, so a longer bound costs nothing in the
367
+ // normal case.
368
+ const maxWaitMs = leaseMs * StartupManager.WarmupWaitLeaseMultiple;
369
+ const turn = await LocalCacheManager.Instance.WaitForSharedLease(STARTUP_WARMUP_LEASE, leaseMs, maxWaitMs);
370
+ if (turn.WaitedMs > 0) {
371
+ LogStatusEx({ message: `[StartupManager] waited ${turn.WaitedMs}ms for another server to warm the shared cache${turn.Acquired ? '' : ' (gave up waiting)'}`, verboseOnly: true });
372
+ }
373
+ return turn.Acquired;
374
+ }
299
375
  /**
300
376
  * Completes a 'task'-mode startup: no registered engines execute (sync or
301
377
  * deferred); each lazy-loads on first touch via its own Config()/EnsureLoaded().
@@ -1 +1 @@
1
- {"version":3,"file":"RegisterForStartup.js","sourceRoot":"","sources":["../../src/generic/RegisterForStartup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RegisterForStartup.js","sourceRoot":"","sources":["../../src/generic/RegisterForStartup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAmNnD,mFAAmF;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAiBtC,MAAM,aAAa,GAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/D;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAgC;IACtD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB;IAC1B,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAIlC;IACG,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,qCAAqC,oBAAoB,KAAK,MAAM,uBAAuB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzI,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,sBAAsB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,OAAO,sBAAsB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,IAAI,EAAE,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,mDAAmD,IAAI,CAAC,WAAW,mCAAmC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpJ,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,sBAAsB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,sBAAsB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,QAA6B;IACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC;IAClF,WAAW,CAAC,EAAE,OAAO,EAAE,4CAA4C,QAAQ,CAAC,IAAI,cAAc,QAAQ,CAAC,MAAM,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IACjI,OAAO,QAAQ,CAAC;AACpB,CAAC;AAWD;;GAEG;AACH,SAAS,oBAAoB,CACzB,WAAc,EACd,OAAkC;IAElC,+BAA+B;IAC/B,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,WAAW,EAAE,WAAkE;QAC/E,WAAW,EAAE,GAAG,EAAE;YACd,+DAA+D;YAC/D,MAAM,IAAI,GAAG,WAAoD,CAAC;YAClE,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACX,mDAAmD,WAAW,CAAC,IAAI,0CAA0C,CAChH,CAAC;YACN,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACvB,CAAC;AAuCD,MAAM,UAAU,kBAAkB,CAC9B,oBAAoD;IAEpD,4DAA4D;IAC5D,+DAA+D;IAC/D,IAAI,OAAO,oBAAoB,KAAK,UAAU,EAAE,CAAC;QAC7C,8CAA8C;QAC9C,OAAO,oBAAoB,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,oGAAoG;IACpG,4EAA4E;IAC5E,MAAM,OAAO,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAA8B,CAAC;IAC1E,OAAO,UAAS,WAAc;QAC1B,OAAO,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC,CAAC;AACN,CAAC;AAED,+EAA+E;AAC/E,+DAA+D;AAC/D,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,OAAO,cAAe,SAAQ,aAA6B;IAM7D;;OAEG;IACH;QACI,KAAK,EAAE,CAAC;QATJ,mBAAc,GAA0B,EAAE,CAAC;QAC3C,mBAAc,GAAY,KAAK,CAAC;QAChC,iBAAY,GAAkC,IAAI,CAAC;QACnD,gBAAW,GAAyB,IAAI,CAAC;IAOjD,CAAC;IAED;;OAEG;IACI,MAAM,KAAK,QAAQ;QACtB,OAAO,cAAc,CAAC,WAAW,EAAkB,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,YAAsE;QAClF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAmC,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACI,gBAAgB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,SAAS,GAAG,SAAS,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,CAAC,OAAO,CAChB,eAAwB,KAAK,EAC7B,WAAsB,EACtB,QAA4B,EAC5B,OAAwB;QAExB,qEAAqE;QACrE,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5B,CAAC;QAED,8EAA8E;QAC9E,mEAAmE;QACnE,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,YAAY,CAAC;QAC7B,CAAC;QAED,kCAAkC;QAClC,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;YAC3C,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACP,iFAAiF;YACjF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,WAAsB,EAAE,QAA4B,EAAE,OAAwB;QACpG,uEAAuE;QACvE,yDAAyD;QACzD,uEAAuE;QACvE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;QAC7E,MAAM,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAC1F,WAAW,CAAC,EAAE,OAAO,EAAE,oCAAoC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAI7G,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEjD,MAAM,IAAI,GAAgB,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC;QAClD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,mBAAmB,GAAG,OAAO,EAAE,YAAY;YAC7C,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YAC/C,CAAC,CAAC,gBAAgB,CAAC;QAEvB,0EAA0E;QAC1E,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,2BAA2B;QAC3B,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/E,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAElF,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,uBAAuB,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAClF,IAAI,MAAqD,CAAC;QAC1D,uFAAuF;QACvF,yFAAyF;QACzF,0FAA0F;QAC1F,0BAA0B;QAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvE,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACtE,CAAC;gBAAS,CAAC;YACP,IAAI,OAAO,EAAE,CAAC;gBACV,aAAa,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,OAAO;gBACP,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACvC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;aACjC,CAAC;QACN,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,4DAA4D;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACvC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACzB,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,UAAU,IAAI,CACjE,CAAC;QACF,WAAW,CAAC,EAAE,OAAO,EAAE,0CAA0C,OAAO,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzH,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,2DAA2D;QAC3D,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO;YACH,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;YAChE,OAAO;YACP,eAAe,EAAE,OAAO;SAC3B,CAAC;IACN,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,MAA+B,EAAE,WAAsB,EAAE,QAA4B;QAC9G,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5G,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;YAC3E,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,yEAAyE;IACjE,KAAK,CAAC,gBAAgB,CAAC,GAAwB,EAAE,WAAsB,EAAE,QAA4B;QACzG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACpD,GAAG,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;YAC1B,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC5C,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI;gBAC/B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAc;gBACrB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO;gBACzC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACrC,CAAC;QACN,CAAC;IACL,CAAC;IAED,uFAAuF;IAC/E,eAAe,CAAC,YAA0B;QAC9C,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,SAAS;YACb,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,kCAAkC,MAAM,CAAC,SAAS,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACvF,CAAC;iBAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,oCAAoC,MAAM,CAAC,SAAS,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACxF,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,kBAAkB,CAAC,OAAe;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC3B,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACtG,CAAC,EAAE,OAAO,CAAC,CAAC;QACZ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;YACjE,KAA2B,CAAC,KAAK,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;aACW,4BAAuB,GAAW,CAAC,AAAZ,CAAa;IAElD;;;;;;OAMG;IACK,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,WAAmB;QAC7D,IAAI,OAAO,IAAI,CAAC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,4FAA4F;QAC5F,sFAAsF;QACtF,0FAA0F;QAC1F,yFAAyF;QACzF,4FAA4F;QAC5F,eAAe;QACf,MAAM,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC,uBAAuB,CAAC;QACnE,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3G,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACpB,WAAW,CAAC,EAAE,OAAO,EAAE,2BAA2B,IAAI,CAAC,QAAQ,iDAAiD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACtL,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACK,oBAAoB,CAAC,aAAoC,EAAE,SAAiB;QAChF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,4EAA4E;QAC5E,SAAS,CAAC,oDAAoD,aAAa,CAAC,MAAM,mCAAmC,CAAC,CAAC;QACvH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzD,WAAW,CAAC,EAAE,OAAO,EAAE,gDAAgD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACrH,CAAC;QAED,OAAO;YACH,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SAC1C,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACK,sBAAsB,CAC1B,aAAoC,EACpC,WAAsB,EACtB,QAA4B;QAE5B,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,WAAW,CAAC,EAAE,OAAO,EAAE,gCAAgC,aAAa,CAAC,MAAM,uCAAuC,KAAK,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjJ,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;YAC7C,MAAM,GAAG,GAAG,GAAG,EAAE;gBACb,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,GAAG,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC7D,GAAG,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;oBAC1B,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAC5C,WAAW,CAAC,EAAE,OAAO,EAAE,gDAAgD,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,GAAG,CAAC,cAAc,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;oBACxB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;oBACjD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;wBACvB,OAAO,CAAC,KAAK,CAAC,4CAA4C,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC/G,CAAC;yBAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;wBAC7B,OAAO,CAAC,IAAI,CAAC,6CAA6C,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,UAAU,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC/G,CAAC;oBACD,qFAAqF;gBACzF,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;YAEF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,WAAW,CAAC,EAAE,OAAO,EAAE,wDAAwD,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,KAAK,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1I,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACJ,GAAG,EAAE,CAAC;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAkC;QACtD,OAAO,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;IACnC,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,aAAoC;QACxD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;QAExD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;;AAiBL;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC"}