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

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 (148) hide show
  1. package/dist/generic/BaseEntitySaveQueue.d.ts +15 -0
  2. package/dist/generic/BaseEntitySaveQueue.d.ts.map +1 -1
  3. package/dist/generic/BaseEntitySaveQueue.js +21 -0
  4. package/dist/generic/BaseEntitySaveQueue.js.map +1 -1
  5. package/dist/generic/EntityFieldRules.d.ts.map +1 -1
  6. package/dist/generic/EntityFieldRules.js +1 -0
  7. package/dist/generic/EntityFieldRules.js.map +1 -1
  8. package/dist/generic/alternateBaseViews.d.ts +119 -0
  9. package/dist/generic/alternateBaseViews.d.ts.map +1 -0
  10. package/dist/generic/alternateBaseViews.js +223 -0
  11. package/dist/generic/alternateBaseViews.js.map +1 -0
  12. package/dist/generic/baseEngine.d.ts +171 -17
  13. package/dist/generic/baseEngine.d.ts.map +1 -1
  14. package/dist/generic/baseEngine.js +722 -117
  15. package/dist/generic/baseEngine.js.map +1 -1
  16. package/dist/generic/baseEngineRegistry.d.ts.map +1 -1
  17. package/dist/generic/baseEngineRegistry.js +2 -1
  18. package/dist/generic/baseEngineRegistry.js.map +1 -1
  19. package/dist/generic/baseEntity.d.ts +216 -21
  20. package/dist/generic/baseEntity.d.ts.map +1 -1
  21. package/dist/generic/baseEntity.js +969 -100
  22. package/dist/generic/baseEntity.js.map +1 -1
  23. package/dist/generic/baseRemotableOperation.d.ts +95 -6
  24. package/dist/generic/baseRemotableOperation.d.ts.map +1 -1
  25. package/dist/generic/baseRemotableOperation.js +112 -8
  26. package/dist/generic/baseRemotableOperation.js.map +1 -1
  27. package/dist/generic/contextTokens.d.ts +136 -0
  28. package/dist/generic/contextTokens.d.ts.map +1 -0
  29. package/dist/generic/contextTokens.js +319 -0
  30. package/dist/generic/contextTokens.js.map +1 -0
  31. package/dist/generic/databaseProviderBase.d.ts +103 -5
  32. package/dist/generic/databaseProviderBase.d.ts.map +1 -1
  33. package/dist/generic/databaseProviderBase.js +381 -52
  34. package/dist/generic/databaseProviderBase.js.map +1 -1
  35. package/dist/generic/embeddedRecord.d.ts +6 -0
  36. package/dist/generic/embeddedRecord.d.ts.map +1 -1
  37. package/dist/generic/embeddedRecord.js +15 -1
  38. package/dist/generic/embeddedRecord.js.map +1 -1
  39. package/dist/generic/entityCompanion.d.ts +7 -0
  40. package/dist/generic/entityCompanion.d.ts.map +1 -1
  41. package/dist/generic/entityCompanion.js +8 -0
  42. package/dist/generic/entityCompanion.js.map +1 -1
  43. package/dist/generic/entityInfo.d.ts +234 -9
  44. package/dist/generic/entityInfo.d.ts.map +1 -1
  45. package/dist/generic/entityInfo.js +592 -77
  46. package/dist/generic/entityInfo.js.map +1 -1
  47. package/dist/generic/entityValueFieldSecurity.d.ts +139 -0
  48. package/dist/generic/entityValueFieldSecurity.d.ts.map +1 -0
  49. package/dist/generic/entityValueFieldSecurity.js +250 -0
  50. package/dist/generic/entityValueFieldSecurity.js.map +1 -0
  51. package/dist/generic/externalDataSourceReadRouter.d.ts +10 -0
  52. package/dist/generic/externalDataSourceReadRouter.d.ts.map +1 -1
  53. package/dist/generic/externalDataSourceReadRouter.js +12 -0
  54. package/dist/generic/externalDataSourceReadRouter.js.map +1 -1
  55. package/dist/generic/fieldSecuritySQLGate.d.ts +359 -0
  56. package/dist/generic/fieldSecuritySQLGate.d.ts.map +1 -0
  57. package/dist/generic/fieldSecuritySQLGate.js +902 -0
  58. package/dist/generic/fieldSecuritySQLGate.js.map +1 -0
  59. package/dist/generic/indexRestrictedFields.d.ts +47 -0
  60. package/dist/generic/indexRestrictedFields.d.ts.map +1 -0
  61. package/dist/generic/indexRestrictedFields.js +129 -0
  62. package/dist/generic/indexRestrictedFields.js.map +1 -0
  63. package/dist/generic/interfaces.d.ts +64 -2
  64. package/dist/generic/interfaces.d.ts.map +1 -1
  65. package/dist/generic/interfaces.js.map +1 -1
  66. package/dist/generic/listMembershipFilter.d.ts +5 -0
  67. package/dist/generic/listMembershipFilter.d.ts.map +1 -0
  68. package/dist/generic/listMembershipFilter.js +23 -0
  69. package/dist/generic/listMembershipFilter.js.map +1 -0
  70. package/dist/generic/localCacheManager.d.ts +126 -14
  71. package/dist/generic/localCacheManager.d.ts.map +1 -1
  72. package/dist/generic/localCacheManager.js +348 -48
  73. package/dist/generic/localCacheManager.js.map +1 -1
  74. package/dist/generic/logging.d.ts.map +1 -1
  75. package/dist/generic/logging.js +7 -1
  76. package/dist/generic/logging.js.map +1 -1
  77. package/dist/generic/metadata.d.ts +3 -2
  78. package/dist/generic/metadata.d.ts.map +1 -1
  79. package/dist/generic/metadata.js +5 -2
  80. package/dist/generic/metadata.js.map +1 -1
  81. package/dist/generic/platformSQL.d.ts +54 -0
  82. package/dist/generic/platformSQL.d.ts.map +1 -1
  83. package/dist/generic/platformSQL.js +55 -0
  84. package/dist/generic/platformSQL.js.map +1 -1
  85. package/dist/generic/providerBase.d.ts +408 -57
  86. package/dist/generic/providerBase.d.ts.map +1 -1
  87. package/dist/generic/providerBase.js +1051 -310
  88. package/dist/generic/providerBase.js.map +1 -1
  89. package/dist/generic/queryInfo.d.ts +13 -0
  90. package/dist/generic/queryInfo.d.ts.map +1 -1
  91. package/dist/generic/queryInfo.js +13 -0
  92. package/dist/generic/queryInfo.js.map +1 -1
  93. package/dist/generic/queryInfoInterfaces.d.ts +8 -0
  94. package/dist/generic/queryInfoInterfaces.d.ts.map +1 -1
  95. package/dist/generic/queryTemplateContext.d.ts +49 -0
  96. package/dist/generic/queryTemplateContext.d.ts.map +1 -0
  97. package/dist/generic/queryTemplateContext.js +113 -0
  98. package/dist/generic/queryTemplateContext.js.map +1 -0
  99. package/dist/generic/recordChangeFieldSecurity.d.ts.map +1 -1
  100. package/dist/generic/recordChangeFieldSecurity.js +13 -2
  101. package/dist/generic/recordChangeFieldSecurity.js.map +1 -1
  102. package/dist/generic/relatedRecordCollection.d.ts +18 -0
  103. package/dist/generic/relatedRecordCollection.d.ts.map +1 -1
  104. package/dist/generic/relatedRecordCollection.js +55 -7
  105. package/dist/generic/relatedRecordCollection.js.map +1 -1
  106. package/dist/generic/remoteOperationDispatch.d.ts.map +1 -1
  107. package/dist/generic/remoteOperationDispatch.js +14 -2
  108. package/dist/generic/remoteOperationDispatch.js.map +1 -1
  109. package/dist/generic/runQuery.d.ts +42 -0
  110. package/dist/generic/runQuery.d.ts.map +1 -1
  111. package/dist/generic/runQuery.js +14 -0
  112. package/dist/generic/runQuery.js.map +1 -1
  113. package/dist/generic/runQuerySQLFilterImplementations.d.ts +33 -6
  114. package/dist/generic/runQuerySQLFilterImplementations.d.ts.map +1 -1
  115. package/dist/generic/runQuerySQLFilterImplementations.js +119 -29
  116. package/dist/generic/runQuerySQLFilterImplementations.js.map +1 -1
  117. package/dist/generic/saveEntityGraphOperation.d.ts.map +1 -1
  118. package/dist/generic/saveEntityGraphOperation.js +3 -0
  119. package/dist/generic/saveEntityGraphOperation.js.map +1 -1
  120. package/dist/generic/securityInfo.d.ts +11 -0
  121. package/dist/generic/securityInfo.d.ts.map +1 -1
  122. package/dist/generic/securityInfo.js +15 -0
  123. package/dist/generic/securityInfo.js.map +1 -1
  124. package/dist/generic/telemetryManager.d.ts +9 -0
  125. package/dist/generic/telemetryManager.d.ts.map +1 -1
  126. package/dist/generic/telemetryManager.js +5 -1
  127. package/dist/generic/telemetryManager.js.map +1 -1
  128. package/dist/generic/transportError.d.ts +41 -0
  129. package/dist/generic/transportError.d.ts.map +1 -0
  130. package/dist/generic/transportError.js +167 -0
  131. package/dist/generic/transportError.js.map +1 -0
  132. package/dist/generic/util.d.ts +12 -0
  133. package/dist/generic/util.d.ts.map +1 -1
  134. package/dist/generic/util.js +52 -3
  135. package/dist/generic/util.js.map +1 -1
  136. package/dist/index.d.ts +9 -0
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/index.js +9 -0
  139. package/dist/index.js.map +1 -1
  140. package/dist/views/runView.d.ts +102 -0
  141. package/dist/views/runView.d.ts.map +1 -1
  142. package/dist/views/runView.js +40 -0
  143. package/dist/views/runView.js.map +1 -1
  144. package/dist/views/viewProperties.d.ts +55 -0
  145. package/dist/views/viewProperties.d.ts.map +1 -0
  146. package/dist/views/viewProperties.js +258 -0
  147. package/dist/views/viewProperties.js.map +1 -0
  148. package/package.json +3 -3
@@ -43,6 +43,14 @@ export declare class BaseEntitySaveQueue {
43
43
  * until the dependency's own INSERT has landed in the database.
44
44
  */
45
45
  InsertAfter(entity: BaseEntity, dependency: BaseEntity): void;
46
+ /**
47
+ * Fire-and-forget INSERT that runs only after `ready` resolves. Use this when the row has a foreign
48
+ * key to a row that **another** queue is still writing: pass that queue's {@link Settled} for the
49
+ * parent. The INSERT is queued at once (so {@link Flush} waits for it) and the caller never waits;
50
+ * only the save itself is held back. ({@link InsertAfter} is the same wait when both rows share this
51
+ * queue.)
52
+ */
53
+ InsertWhen(entity: BaseEntity, ready: Promise<void>): void;
46
54
  /**
47
55
  * Fire-and-forget UPDATE chained after the entity's INSERT. `applyMutation` (if given) runs INSIDE
48
56
  * the post-INSERT task — after `finalizeSave`'s reload — so its values always survive; the save is
@@ -51,6 +59,13 @@ export declare class BaseEntitySaveQueue {
51
59
  */
52
60
  Update(entity: BaseEntity, applyMutation?: (entity: BaseEntity) => void): void;
53
61
  private buildSaveOptions;
62
+ /**
63
+ * Resolves once every save queued so far for `entity` has settled (at once when none is pending);
64
+ * never rejects — a failed save is already logged here. For a caller that holds the entity's ID and
65
+ * must write a dependent row (a foreign key to it) from a *different* queue: `InsertAfter` only
66
+ * orders writes within this queue.
67
+ */
68
+ Settled(entity: BaseEntity): Promise<void>;
54
69
  /** Awaits all pending saves and returns failure diagnostics. Call at the run/goal finalize boundary. */
55
70
  Flush(): Promise<SerialTaskFlushResult>;
56
71
  /**
@@ -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;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"}
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;;;;;;OAMG;IACI,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAMjE;;;;;OAKG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAMrF,OAAO,CAAC,gBAAgB;IAcxB;;;;;OAKG;IACI,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,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"}
@@ -49,6 +49,18 @@ export class BaseEntitySaveQueue {
49
49
  const options = this.buildSaveOptions(false);
50
50
  void this.queue.enqueue(entity, () => this.runSave(entity, label, options), { isOk: (ok) => ok === true, label, after: dependency });
51
51
  }
52
+ /**
53
+ * Fire-and-forget INSERT that runs only after `ready` resolves. Use this when the row has a foreign
54
+ * key to a row that **another** queue is still writing: pass that queue's {@link Settled} for the
55
+ * parent. The INSERT is queued at once (so {@link Flush} waits for it) and the caller never waits;
56
+ * only the save itself is held back. ({@link InsertAfter} is the same wait when both rows share this
57
+ * queue.)
58
+ */
59
+ InsertWhen(entity, ready) {
60
+ const label = this.labelFor('Insert', entity);
61
+ const options = this.buildSaveOptions(false);
62
+ void this.queue.Enqueue(entity, () => this.runSave(entity, label, options), { isOk: (ok) => ok === true, label, ready });
63
+ }
52
64
  /**
53
65
  * Fire-and-forget UPDATE chained after the entity's INSERT. `applyMutation` (if given) runs INSIDE
54
66
  * the post-INSERT task — after `finalizeSave`'s reload — so its values always survive; the save is
@@ -73,6 +85,15 @@ export class BaseEntitySaveQueue {
73
85
  }
74
86
  return options;
75
87
  }
88
+ /**
89
+ * Resolves once every save queued so far for `entity` has settled (at once when none is pending);
90
+ * never rejects — a failed save is already logged here. For a caller that holds the entity's ID and
91
+ * must write a dependent row (a foreign key to it) from a *different* queue: `InsertAfter` only
92
+ * orders writes within this queue.
93
+ */
94
+ Settled(entity) {
95
+ return this.queue.Settled(entity);
96
+ }
76
97
  /** Awaits all pending saves and returns failure diagnostics. Call at the run/goal finalize boundary. */
77
98
  Flush() {
78
99
  return this.queue.flush();
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"BaseEntitySaveQueue.js","sourceRoot":"","sources":["../../src/generic/BaseEntitySaveQueue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFieldRules.d.ts","sourceRoot":"","sources":["../../src/generic/EntityFieldRules.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,YAAY,EAAkB,cAAc,EAAkB,MAAM,wBAAwB,CAAC;AAChJ,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,8GAA8G;AAC9G,MAAM,WAAW,0BAA0B;IACvC,wGAAwG;IACxG,KAAK,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,2FAA2F;IAC3F,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,yDAAyD;AACzD,MAAM,WAAW,sBAAsB;IACnC,kGAAkG;IAClG,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,wEAAwE;IACxE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mGAAmG;IACnG,KAAK,EAAE,OAAO,CAAC;IACf,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;IAChB,sGAAsG;IACtG,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IAab,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAZzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAEhD;;;;;;;;;OASG;gBAC0B,WAAW,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,cAAc,EAAE,sBAAsB,CAAC,EAAE,sBAAsB;IAQrI;;;;;;;;;OASG;WACW,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,0BAA0B;IAwB3H;;;;;;;OAOG;IACU,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAMnI;;;;;;;;OAQG;IACU,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmBzI,yGAAyG;IACzG,OAAO,CAAC,YAAY;IAYpB,yGAAyG;IACzG,OAAO,CAAC,MAAM,CAAC,YAAY;IAyB3B,OAAO,CAAC,MAAM,CAAC,KAAK;IAMpB,+FAA+F;IAC/F,OAAO,CAAC,mBAAmB;IAmB3B,yGAAyG;IACzG,OAAO,CAAC,MAAM,CAAC,UAAU;CAM5B"}
1
+ {"version":3,"file":"EntityFieldRules.d.ts","sourceRoot":"","sources":["../../src/generic/EntityFieldRules.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,YAAY,EAAkB,cAAc,EAAkB,MAAM,wBAAwB,CAAC;AAChJ,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,8GAA8G;AAC9G,MAAM,WAAW,0BAA0B;IACvC,wGAAwG;IACxG,KAAK,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,2FAA2F;IAC3F,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,yDAAyD;AACzD,MAAM,WAAW,sBAAsB;IACnC,kGAAkG;IAClG,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,wEAAwE;IACxE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mGAAmG;IACnG,KAAK,EAAE,OAAO,CAAC;IACf,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;IAChB,sGAAsG;IACtG,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IAab,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAZzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAEhD;;;;;;;;;OASG;gBAC0B,WAAW,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,cAAc,EAAE,sBAAsB,CAAC,EAAE,sBAAsB;IAQrI;;;;;;;;;OASG;WACW,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,0BAA0B;IAwB3H;;;;;;;OAOG;IACU,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAMnI;;;;;;;;OAQG;IACU,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAmBzI,yGAAyG;IACzG,OAAO,CAAC,YAAY;IAYpB,yGAAyG;IACzG,OAAO,CAAC,MAAM,CAAC,YAAY;IAyB3B,OAAO,CAAC,MAAM,CAAC,KAAK;IAMpB,+FAA+F;IAC/F,OAAO,CAAC,mBAAmB;IAoB3B,yGAAyG;IACzG,OAAO,CAAC,MAAM,CAAC,UAAU;CAM5B"}
@@ -179,6 +179,7 @@ export class EntityFieldRules {
179
179
  ExtraFilter: `[${lookup.MatchField}] = ${EntityFieldRules.sqlLiteral(lookup.MatchValue)}`,
180
180
  Fields: [lookup.ReturnField],
181
181
  MaxRows: 1,
182
+ SkipTotalRowCount: true,
182
183
  ResultType: 'simple',
183
184
  }, this.contextUser);
184
185
  if (!result.Success || !result.Results?.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFieldRules.js","sourceRoot":"","sources":["../../src/generic/EntityFieldRules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityFieldRules.js","sourceRoot":"","sources":["../../src/generic/EntityFieldRules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import { BaseEntity } from './baseEntity.js';
2
+ import { EntityAlternateBaseViewInfo, EntityInfo } from './entityInfo.js';
3
+ import { UserInfo } from './securityInfo.js';
4
+ import { RunViewParams } from '../views/runView.js';
5
+ /**
6
+ * Validates that `name` is a safe, unquoted SQL identifier (`1..128` characters, starting
7
+ * with an ASCII letter or underscore and containing only ASCII letters, digits, or underscores).
8
+ *
9
+ * Lives in `@memberjunction/core` so both client/server metadata validation (`ProviderBase`,
10
+ * `MJEntityAlternateBaseViewEntityServer`) and SQL generators can validate `ViewName` and
11
+ * `SchemaName` without introducing a dependency on `@memberjunction/schema-engine`.
12
+ */
13
+ export declare function IsValidSQLIdentifier(name: string | null | undefined): boolean;
14
+ /**
15
+ * Validates that `name` is a valid semantic `EntityAlternateBaseView.Name`:
16
+ * non-empty after trimming, at most 100 characters, not starting with `//` (so `abv:` + `Name`
17
+ * can never form `abv://...`), and containing neither `|` nor `:` (the cache-fingerprint segment
18
+ * and prefix delimiters used by `LocalCacheManager` and `GenericDatabaseProvider`). Mirrors
19
+ * `CK_EntityAlternateBaseView_Name` in SQL.
20
+ */
21
+ export declare function IsValidAlternateBaseViewName(name: string | null | undefined): boolean;
22
+ /**
23
+ * Options for resolving and authorizing an alternate base view on an entity.
24
+ */
25
+ export interface ResolveAlternateBaseViewOptions {
26
+ /** The parent entity on which the alternate base view is registered. */
27
+ entity: EntityInfo;
28
+ /** The semantic `Name` of the alternate base view (for example, `'Active'`). */
29
+ alternateBaseViewName: string;
30
+ /** Optional user context for entity `CanRead` permission checks. */
31
+ contextUser?: UserInfo;
32
+ /**
33
+ * When `true` (the default whenever `contextUser` is provided), enforces
34
+ * `entity.CanRead` for `contextUser` when `entity.Permissions` is populated.
35
+ */
36
+ enforcePermissions?: boolean;
37
+ /**
38
+ * When `false`, throws if the alternate base view (or any ancestor in its `ParentID` chain)
39
+ * has `Status === 'Deprecated'`. Defaults to `true` (allows deprecated views with a log warning).
40
+ */
41
+ allowDeprecated?: boolean;
42
+ /**
43
+ * When `true`, suppresses the `[Deprecated]` log warning while still honoring `allowDeprecated`.
44
+ * Used by internal call sites that delegate after a caller has already logged deprecation.
45
+ */
46
+ suppressDeprecationWarning?: boolean;
47
+ /** Optional caller label included in deprecation warnings and error messages. */
48
+ callerName?: string;
49
+ }
50
+ /**
51
+ * Resolved alternate base view metadata ready for SQL generation or cache routing.
52
+ */
53
+ export interface AlternateBaseViewResolution {
54
+ /** The resolved alternate base view metadata object. */
55
+ view: EntityAlternateBaseViewInfo;
56
+ /** The owning entity metadata object. */
57
+ entity: EntityInfo;
58
+ /** Physical SQL view name (`view.ViewName`). */
59
+ effectiveViewName: string;
60
+ /** Physical database schema name (`view.EffectiveSchemaName`). */
61
+ effectiveSchemaName: string;
62
+ }
63
+ /**
64
+ * Resolves a semantic `AlternateBaseView` name against `entity`, validates that it is
65
+ * registered and usable (`Status` is `'Active'` or `'Deprecated'`, including all ancestors
66
+ * in any `ParentID` chain), emits a warning when deprecated, and enforces entity `CanRead`
67
+ * when `contextUser` is provided.
68
+ *
69
+ * Throws a descriptive `Error` on unknown, disabled, or unauthorized alternate base views
70
+ * (never silently falls back to `entity.BaseView`, preventing filtered-row disclosure).
71
+ */
72
+ export declare function ResolveAlternateBaseView(options: ResolveAlternateBaseViewOptions): AlternateBaseViewResolution;
73
+ /**
74
+ * Searches across `entities` for an entity that registers a physical SQL view matching
75
+ * `viewName` (and optional `schemaName`) as an `EntityAlternateBaseView`.
76
+ *
77
+ * Used by SQL AST extractors (Query entity extraction, `ClientClauseScreen`, and ad-hoc SQL
78
+ * read authorization) so queries referencing an alternate base view resolve to its parent
79
+ * entity alongside the matched `EntityAlternateBaseViewInfo`.
80
+ */
81
+ export declare function FindAlternateBaseViewByPhysicalName(entities: readonly EntityInfo[], viewName: string | undefined | null, schemaName?: string | null): {
82
+ entity: EntityInfo;
83
+ alternateView: EntityAlternateBaseViewInfo;
84
+ } | undefined;
85
+ /**
86
+ * Extracts a pinned `alternateBaseView` semantic name from a loaded User View `BaseEntity`
87
+ * (`DisplayState` JSON column) without introducing a dependency from `@memberjunction/core`
88
+ * to `@memberjunction/core-entities`.
89
+ *
90
+ * Memoizes the parsed result per `(viewEntity, rawDisplayState)` in a `WeakMap` so hot paths
91
+ * (`GetEffectiveAlternateBaseViewName` across cache eligibility, fingerprinting, dedup, and
92
+ * telemetry) do not `JSON.parse(DisplayState)` on every call.
93
+ *
94
+ * Mirrors the `ViewEntity.Get('EntityID')` / `ViewEntity.Get('WhereClause')` access pattern
95
+ * in `RunView.GetEntityNameFromRunViewParams` and `ProviderBase.ResolveRunViewEntitySync`.
96
+ */
97
+ export declare function GetPinnedAlternateBaseViewFromViewEntity(viewEntity: BaseEntity | undefined | null): string | undefined;
98
+ /**
99
+ * Extracts `alternateBaseView` (or `AlternateBaseView`) from a raw `DisplayState` JSON string
100
+ * or parsed object. Returns `undefined` when absent or blank.
101
+ */
102
+ export declare function ExtractAlternateBaseViewFromDisplayState(rawDisplayState: unknown): string | undefined;
103
+ /**
104
+ * True when `params.AlternateBaseView` is explicitly set to `""` (or whitespace-only),
105
+ * meaning the caller is explicitly overriding any saved User View `DisplayState.alternateBaseView`
106
+ * pin back to the entity's canonical `BaseView`.
107
+ */
108
+ export declare function IsExplicitBaseViewOverride(params: RunViewParams | undefined | null): boolean;
109
+ /**
110
+ * Returns the effective semantic `AlternateBaseView` name for a `RunViewParams` object:
111
+ * - An explicit non-empty `params.AlternateBaseView` takes precedence over a saved User View's
112
+ * pinned `DisplayState.alternateBaseView` on `params.ViewEntity`.
113
+ * - An explicit empty `params.AlternateBaseView: ""` overrides a saved User View's pin back to
114
+ * `BaseView` (returns `undefined` without falling back to `params.ViewEntity`).
115
+ * - When `params.AlternateBaseView` is `undefined`, falls back to `params.ViewEntity`'s pinned
116
+ * `DisplayState.alternateBaseView`.
117
+ */
118
+ export declare function GetEffectiveAlternateBaseViewName(params: RunViewParams | undefined | null, viewEntity?: BaseEntity | undefined | null): string | undefined;
119
+ //# sourceMappingURL=alternateBaseViews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alternateBaseViews.d.ts","sourceRoot":"","sources":["../../src/generic/alternateBaseViews.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAK7E;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAYrF;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC5C,wEAAwE;IACxE,MAAM,EAAE,UAAU,CAAC;IACnB,gFAAgF;IAChF,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IACxC,wDAAwD;IACxD,IAAI,EAAE,2BAA2B,CAAC;IAClC,yCAAyC;IACzC,MAAM,EAAE,UAAU,CAAC;IACnB,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,GAAG,2BAA2B,CAyB9G;AAyED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CAC/C,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACnC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,2BAA2B,CAAA;CAAE,GAAG,SAAS,CAYhF;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,wCAAwC,CACpD,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAC1C,MAAM,GAAG,SAAS,CAepB;AAED;;;GAGG;AACH,wBAAgB,wCAAwC,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAoBrG;AAkBD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAE5F;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAC7C,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,EACxC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAC3C,MAAM,GAAG,SAAS,CASpB"}
@@ -0,0 +1,223 @@
1
+ import { LogStatusEx } from './logging.js';
2
+ /**
3
+ * Validates that `name` is a safe, unquoted SQL identifier (`1..128` characters, starting
4
+ * with an ASCII letter or underscore and containing only ASCII letters, digits, or underscores).
5
+ *
6
+ * Lives in `@memberjunction/core` so both client/server metadata validation (`ProviderBase`,
7
+ * `MJEntityAlternateBaseViewEntityServer`) and SQL generators can validate `ViewName` and
8
+ * `SchemaName` without introducing a dependency on `@memberjunction/schema-engine`.
9
+ */
10
+ export function IsValidSQLIdentifier(name) {
11
+ if (typeof name !== 'string') {
12
+ return false;
13
+ }
14
+ return name.length > 0 && name.length <= 128 && /^[A-Za-z_][A-Za-z0-9_]*$/.test(name);
15
+ }
16
+ /**
17
+ * Validates that `name` is a valid semantic `EntityAlternateBaseView.Name`:
18
+ * non-empty after trimming, at most 100 characters, not starting with `//` (so `abv:` + `Name`
19
+ * can never form `abv://...`), and containing neither `|` nor `:` (the cache-fingerprint segment
20
+ * and prefix delimiters used by `LocalCacheManager` and `GenericDatabaseProvider`). Mirrors
21
+ * `CK_EntityAlternateBaseView_Name` in SQL.
22
+ */
23
+ export function IsValidAlternateBaseViewName(name) {
24
+ if (typeof name !== 'string') {
25
+ return false;
26
+ }
27
+ const trimmed = name.trim();
28
+ return (trimmed.length > 0 &&
29
+ trimmed.length <= 100 &&
30
+ !trimmed.startsWith('//') &&
31
+ !name.includes('|') &&
32
+ !name.includes(':'));
33
+ }
34
+ /**
35
+ * Resolves a semantic `AlternateBaseView` name against `entity`, validates that it is
36
+ * registered and usable (`Status` is `'Active'` or `'Deprecated'`, including all ancestors
37
+ * in any `ParentID` chain), emits a warning when deprecated, and enforces entity `CanRead`
38
+ * when `contextUser` is provided.
39
+ *
40
+ * Throws a descriptive `Error` on unknown, disabled, or unauthorized alternate base views
41
+ * (never silently falls back to `entity.BaseView`, preventing filtered-row disclosure).
42
+ */
43
+ export function ResolveAlternateBaseView(options) {
44
+ const { entity, contextUser, enforcePermissions = true, allowDeprecated = true, suppressDeprecationWarning = false, callerName, } = options;
45
+ const rawName = typeof options.alternateBaseViewName === 'string' ? options.alternateBaseViewName.trim() : '';
46
+ if (!rawName) {
47
+ throw new Error(`AlternateBaseView name cannot be empty on entity '${entity.Name}'.`);
48
+ }
49
+ const view = findRegisteredAlternateBaseViewOrThrow(entity, rawName);
50
+ assertAlternateBaseViewUsableAndIdentifiersValid(entity, view);
51
+ checkAlternateBaseViewDeprecation(entity, view, allowDeprecated, suppressDeprecationWarning, callerName);
52
+ assertAlternateBaseViewReadPermission(entity, contextUser, enforcePermissions);
53
+ return {
54
+ view,
55
+ entity,
56
+ effectiveViewName: view.ViewName,
57
+ effectiveSchemaName: view.EffectiveSchemaName,
58
+ };
59
+ }
60
+ function findRegisteredAlternateBaseViewOrThrow(entity, rawName) {
61
+ const view = entity.GetAlternateBaseView(rawName);
62
+ if (!view) {
63
+ const available = entity.AlternateBaseViews
64
+ .filter(v => v.IsUsable)
65
+ .map(v => v.Name)
66
+ .join(', ');
67
+ throw new Error(`AlternateBaseView '${rawName}' is not registered on entity '${entity.Name}'. ` +
68
+ `Available alternate base views: ${available || '(none)'}`);
69
+ }
70
+ return view;
71
+ }
72
+ function assertAlternateBaseViewUsableAndIdentifiersValid(entity, view) {
73
+ if (!view.IsUsable) {
74
+ throw new Error(`AlternateBaseView '${view.Name}' on entity '${entity.Name}' is disabled and cannot be used.`);
75
+ }
76
+ if (!IsValidSQLIdentifier(view.ViewName)) {
77
+ throw new Error(`AlternateBaseView '${view.Name}' on entity '${entity.Name}' has an invalid SQL ViewName '${view.ViewName}'.`);
78
+ }
79
+ if (view.EffectiveSchemaName && !IsValidSQLIdentifier(view.EffectiveSchemaName)) {
80
+ throw new Error(`AlternateBaseView '${view.Name}' on entity '${entity.Name}' has an invalid SQL SchemaName '${view.EffectiveSchemaName}'.`);
81
+ }
82
+ }
83
+ function checkAlternateBaseViewDeprecation(entity, view, allowDeprecated, suppressDeprecationWarning, callerName) {
84
+ if (!view.IsDeprecated) {
85
+ return;
86
+ }
87
+ if (!allowDeprecated) {
88
+ throw new Error(`AlternateBaseView '${view.Name}' on entity '${entity.Name}' is deprecated and cannot be used.`);
89
+ }
90
+ if (!suppressDeprecationWarning) {
91
+ LogStatusEx({
92
+ message: `[Deprecated] AlternateBaseView '${view.Name}' on entity '${entity.Name}' is deprecated${callerName ? ` (called from ${callerName})` : ''}.`,
93
+ verboseOnly: false,
94
+ });
95
+ }
96
+ }
97
+ function assertAlternateBaseViewReadPermission(entity, contextUser, enforcePermissions) {
98
+ if (enforcePermissions && contextUser && entity.Permissions && entity.Permissions.length > 0) {
99
+ const entityPerms = entity.GetUserPermisions(contextUser);
100
+ if (!entityPerms?.CanRead) {
101
+ throw new Error(`User '${contextUser.Email}' does not have permission to read entity '${entity.Name}'.`);
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * Searches across `entities` for an entity that registers a physical SQL view matching
107
+ * `viewName` (and optional `schemaName`) as an `EntityAlternateBaseView`.
108
+ *
109
+ * Used by SQL AST extractors (Query entity extraction, `ClientClauseScreen`, and ad-hoc SQL
110
+ * read authorization) so queries referencing an alternate base view resolve to its parent
111
+ * entity alongside the matched `EntityAlternateBaseViewInfo`.
112
+ */
113
+ export function FindAlternateBaseViewByPhysicalName(entities, viewName, schemaName) {
114
+ const normalizedView = viewName?.trim();
115
+ if (!normalizedView) {
116
+ return undefined;
117
+ }
118
+ for (const entity of entities) {
119
+ const match = entity.GetAlternateBaseViewByViewName(normalizedView, schemaName);
120
+ if (match) {
121
+ return { entity, alternateView: match };
122
+ }
123
+ }
124
+ return undefined;
125
+ }
126
+ const _viewEntityPinnedAbvCache = new WeakMap();
127
+ /**
128
+ * Extracts a pinned `alternateBaseView` semantic name from a loaded User View `BaseEntity`
129
+ * (`DisplayState` JSON column) without introducing a dependency from `@memberjunction/core`
130
+ * to `@memberjunction/core-entities`.
131
+ *
132
+ * Memoizes the parsed result per `(viewEntity, rawDisplayState)` in a `WeakMap` so hot paths
133
+ * (`GetEffectiveAlternateBaseViewName` across cache eligibility, fingerprinting, dedup, and
134
+ * telemetry) do not `JSON.parse(DisplayState)` on every call.
135
+ *
136
+ * Mirrors the `ViewEntity.Get('EntityID')` / `ViewEntity.Get('WhereClause')` access pattern
137
+ * in `RunView.GetEntityNameFromRunViewParams` and `ProviderBase.ResolveRunViewEntitySync`.
138
+ */
139
+ export function GetPinnedAlternateBaseViewFromViewEntity(viewEntity) {
140
+ if (!viewEntity || typeof viewEntity.Get !== 'function') {
141
+ return undefined;
142
+ }
143
+ // Weak-typing accessor on ViewEntity is deliberate in MJCore to avoid circular dependency on core-entities
144
+ const rawDisplayState = viewEntity.Get('DisplayState');
145
+ const cached = _viewEntityPinnedAbvCache.get(viewEntity);
146
+ if (cached && cached.raw === rawDisplayState) {
147
+ return cached.value;
148
+ }
149
+ const value = ExtractAlternateBaseViewFromDisplayState(rawDisplayState);
150
+ if (typeof viewEntity === 'object') {
151
+ _viewEntityPinnedAbvCache.set(viewEntity, { raw: rawDisplayState, value });
152
+ }
153
+ return value;
154
+ }
155
+ /**
156
+ * Extracts `alternateBaseView` (or `AlternateBaseView`) from a raw `DisplayState` JSON string
157
+ * or parsed object. Returns `undefined` when absent or blank.
158
+ */
159
+ export function ExtractAlternateBaseViewFromDisplayState(rawDisplayState) {
160
+ if (!rawDisplayState) {
161
+ return undefined;
162
+ }
163
+ if (typeof rawDisplayState === 'string') {
164
+ const trimmed = rawDisplayState.trim();
165
+ if (!trimmed.startsWith('{')) {
166
+ return undefined;
167
+ }
168
+ try {
169
+ const parsed = JSON.parse(trimmed);
170
+ return extractFromDisplayStateObject(parsed);
171
+ }
172
+ catch {
173
+ return undefined;
174
+ }
175
+ }
176
+ if (typeof rawDisplayState === 'object') {
177
+ return extractFromDisplayStateObject(rawDisplayState);
178
+ }
179
+ return undefined;
180
+ }
181
+ function extractFromDisplayStateObject(record) {
182
+ if (!record || typeof record !== 'object') {
183
+ return undefined;
184
+ }
185
+ const candidate = typeof record.alternateBaseView === 'string'
186
+ ? record.alternateBaseView
187
+ : typeof record.AlternateBaseView === 'string'
188
+ ? record.AlternateBaseView
189
+ : undefined;
190
+ if (!candidate) {
191
+ return undefined;
192
+ }
193
+ const trimmed = candidate.trim();
194
+ return trimmed.length > 0 ? trimmed : undefined;
195
+ }
196
+ /**
197
+ * True when `params.AlternateBaseView` is explicitly set to `""` (or whitespace-only),
198
+ * meaning the caller is explicitly overriding any saved User View `DisplayState.alternateBaseView`
199
+ * pin back to the entity's canonical `BaseView`.
200
+ */
201
+ export function IsExplicitBaseViewOverride(params) {
202
+ return typeof params?.AlternateBaseView === 'string' && params.AlternateBaseView.trim().length === 0;
203
+ }
204
+ /**
205
+ * Returns the effective semantic `AlternateBaseView` name for a `RunViewParams` object:
206
+ * - An explicit non-empty `params.AlternateBaseView` takes precedence over a saved User View's
207
+ * pinned `DisplayState.alternateBaseView` on `params.ViewEntity`.
208
+ * - An explicit empty `params.AlternateBaseView: ""` overrides a saved User View's pin back to
209
+ * `BaseView` (returns `undefined` without falling back to `params.ViewEntity`).
210
+ * - When `params.AlternateBaseView` is `undefined`, falls back to `params.ViewEntity`'s pinned
211
+ * `DisplayState.alternateBaseView`.
212
+ */
213
+ export function GetEffectiveAlternateBaseViewName(params, viewEntity) {
214
+ if (!params && !viewEntity) {
215
+ return undefined;
216
+ }
217
+ if (typeof params?.AlternateBaseView === 'string') {
218
+ const trimmed = params.AlternateBaseView.trim();
219
+ return trimmed.length > 0 ? trimmed : undefined;
220
+ }
221
+ return GetPinnedAlternateBaseViewFromViewEntity(viewEntity ?? params?.ViewEntity);
222
+ }
223
+ //# sourceMappingURL=alternateBaseViews.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alternateBaseViews.js","sourceRoot":"","sources":["../../src/generic/alternateBaseViews.ts"],"names":[],"mappings":"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"}