@memberjunction/generic-database-provider 6.1.0-edge.5 → 6.1.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 (39) hide show
  1. package/README.md +25 -0
  2. package/dist/DatabaseWellKnownUserSource.d.ts +48 -0
  3. package/dist/DatabaseWellKnownUserSource.d.ts.map +1 -0
  4. package/dist/DatabaseWellKnownUserSource.js +101 -0
  5. package/dist/DatabaseWellKnownUserSource.js.map +1 -0
  6. package/dist/GenericDatabaseProvider.d.ts +215 -3
  7. package/dist/GenericDatabaseProvider.d.ts.map +1 -1
  8. package/dist/GenericDatabaseProvider.js +793 -136
  9. package/dist/GenericDatabaseProvider.js.map +1 -1
  10. package/dist/SqlLogger.d.ts +8 -0
  11. package/dist/SqlLogger.d.ts.map +1 -1
  12. package/dist/SqlLogger.js +31 -10
  13. package/dist/SqlLogger.js.map +1 -1
  14. package/dist/SystemUserFieldAccessCheck.d.ts +64 -0
  15. package/dist/SystemUserFieldAccessCheck.d.ts.map +1 -0
  16. package/dist/SystemUserFieldAccessCheck.js +137 -0
  17. package/dist/SystemUserFieldAccessCheck.js.map +1 -0
  18. package/dist/UserCache.d.ts.map +1 -1
  19. package/dist/UserCache.js +2 -2
  20. package/dist/UserCache.js.map +1 -1
  21. package/dist/index.d.ts +5 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +9 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/queryPagingEngine.d.ts +19 -0
  26. package/dist/queryPagingEngine.d.ts.map +1 -1
  27. package/dist/queryPagingEngine.js +45 -0
  28. package/dist/queryPagingEngine.js.map +1 -1
  29. package/dist/saveTypes.d.ts +3 -3
  30. package/dist/saveTypes.d.ts.map +1 -1
  31. package/dist/systemUser.d.ts +27 -0
  32. package/dist/systemUser.d.ts.map +1 -0
  33. package/dist/systemUser.js +29 -0
  34. package/dist/systemUser.js.map +1 -0
  35. package/dist/systemUserFieldAccess.d.ts +114 -0
  36. package/dist/systemUserFieldAccess.d.ts.map +1 -0
  37. package/dist/systemUserFieldAccess.js +198 -0
  38. package/dist/systemUserFieldAccess.js.map +1 -0
  39. package/package.json +14 -14
@@ -23,6 +23,7 @@ export declare class SqlLoggingSessionImpl implements SqlLoggingSession {
23
23
  private _statementCount;
24
24
  private _emittedStatementCount;
25
25
  private _currentBatchVariableCount;
26
+ private _currentBatchDeclaredNames;
26
27
  private _fileHandle;
27
28
  private _disposed;
28
29
  private _compiledPatterns;
@@ -86,6 +87,13 @@ export declare class SqlLoggingSessionImpl implements SqlLoggingSession {
86
87
  * Used by the `variableBatchThreshold` logic to decide when to emit a batch separator.
87
88
  */
88
89
  private _countVariableDeclarations;
90
+ /**
91
+ * Returns every variable name declared in `sql`, lower-cased (T-SQL variable names are
92
+ * case-insensitive), one entry per declaration so the length is the declaration count.
93
+ * Used by the threshold-mode separator logic both to count declarations and to detect a
94
+ * statement that would redeclare a name already declared in the current batch.
95
+ */
96
+ private _collectVariableDeclarations;
89
97
  /**
90
98
  * Escapes ${...} patterns within SQL string literals to prevent Flyway from interpreting them as placeholders.
91
99
  * The actual escape form is platform-specific and delegated to the configured `SQLDialect` — see
@@ -1 +1 @@
1
- {"version":3,"file":"SqlLogger.d.ts","sourceRoot":"","sources":["../src/SqlLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,UAAU,EAAoB,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,SAAS,EAAE,IAAI,CAAC;IAChC,SAAgB,OAAO,EAAE,iBAAiB,CAAC;IAC3C,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,0BAA0B,CAAa;IAC/C,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAa;IAE7B;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,EAAE,OAAO,GAAE,UAAmC;IAavH;;;OAGG;IACH,IAAW,cAAc,IAAI,MAAM,CAElC;IAED;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxC;;;;;;;;OAQG;IACU,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8K/J;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BrC,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAwDlC;;;;;;;;OAQG;IACH,OAAO,CAAC,0BAA0B;IASlC;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;CAIrC"}
1
+ {"version":3,"file":"SqlLogger.d.ts","sourceRoot":"","sources":["../src/SqlLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,UAAU,EAAoB,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElE;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,SAAS,EAAE,IAAI,CAAC;IAChC,SAAgB,OAAO,EAAE,iBAAiB,CAAC;IAC3C,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,0BAA0B,CAAa;IAC/C,OAAO,CAAC,0BAA0B,CAAqB;IACvD,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAa;IAE7B;;;;;OAKG;gBACS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,EAAE,OAAO,GAAE,UAAmC;IAavH;;;OAGG;IACH,IAAW,cAAc,IAAI,MAAM,CAElC;IAED;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxC;;;;;;;;OAQG;IACU,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsL/J;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BrC,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA+B5B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAwDlC;;;;;;;;OAQG;IACH,OAAO,CAAC,0BAA0B;IAIlC;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAapC;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;CAIrC"}
package/dist/SqlLogger.js CHANGED
@@ -29,6 +29,7 @@ export class SqlLoggingSessionImpl {
29
29
  this._statementCount = 0;
30
30
  this._emittedStatementCount = 0; // Track actually emitted statements
31
31
  this._currentBatchVariableCount = 0; // Running count of DECLARE @var declarations in current batch
32
+ this._currentBatchDeclaredNames = new Set(); // Lower-cased @names declared in the current batch (threshold mode)
32
33
  this._fileHandle = null;
33
34
  this._disposed = false;
34
35
  this.id = id;
@@ -187,21 +188,29 @@ export class SqlLoggingSessionImpl {
187
188
  }
188
189
  }
189
190
  // Batch separator logic:
190
- // - Threshold mode: emit separator when accumulated variable declarations reach the threshold.
191
+ // - Threshold mode: emit separator when accumulated variable declarations reach the threshold,
192
+ // OR when this statement would redeclare a name the current batch already declared. Save-call
193
+ // variable suffixes are deterministic per record (GenericDatabaseProvider.allocateSaveCallSuffix),
194
+ // so the same record saved twice in one window emits identical DECLARE lists; SQL Server rejects
195
+ // a redeclared variable inside one batch, so the capture would fail on replay without this guard.
191
196
  // The separator is prepended BEFORE the current statement (ending the previous batch).
192
197
  // - Legacy mode (no threshold): emit separator after every statement.
193
198
  const threshold = this.options.variableBatchThreshold;
194
199
  if (this.options.batchSeparator && threshold && threshold > 0) {
195
- const newVarCount = this._countVariableDeclarations(processedQuery);
196
- if (newVarCount > 0) {
197
- if (this._currentBatchVariableCount > 0 &&
198
- this._currentBatchVariableCount + newVarCount >= threshold) {
200
+ const declaredNames = this._collectVariableDeclarations(processedQuery);
201
+ if (declaredNames.length > 0) {
202
+ const redeclaresName = declaredNames.some((name) => this._currentBatchDeclaredNames.has(name));
203
+ if (this._currentBatchVariableCount > 0 && (redeclaresName || this._currentBatchVariableCount + declaredNames.length >= threshold)) {
199
204
  // End the previous batch before this statement
200
205
  logEntry = `${this.options.batchSeparator}\n\n` + logEntry;
201
- this._currentBatchVariableCount = newVarCount;
206
+ this._currentBatchVariableCount = declaredNames.length;
207
+ this._currentBatchDeclaredNames = new Set(declaredNames);
202
208
  }
203
209
  else {
204
- this._currentBatchVariableCount += newVarCount;
210
+ this._currentBatchVariableCount += declaredNames.length;
211
+ for (const name of declaredNames) {
212
+ this._currentBatchDeclaredNames.add(name);
213
+ }
205
214
  }
206
215
  }
207
216
  }
@@ -397,12 +406,24 @@ export class SqlLoggingSessionImpl {
397
406
  * Used by the `variableBatchThreshold` logic to decide when to emit a batch separator.
398
407
  */
399
408
  _countVariableDeclarations(sql) {
409
+ return this._collectVariableDeclarations(sql).length;
410
+ }
411
+ /**
412
+ * Returns every variable name declared in `sql`, lower-cased (T-SQL variable names are
413
+ * case-insensitive), one entry per declaration so the length is the declaration count.
414
+ * Used by the threshold-mode separator logic both to count declarations and to detect a
415
+ * statement that would redeclare a name already declared in the current batch.
416
+ */
417
+ _collectVariableDeclarations(sql) {
400
418
  // Matches @varName followed by a SQL Server type keyword.
401
419
  // This covers both DECLARE @v TYPE and continuation @v TYPE (comma-separated multi-var DECLAREs).
402
420
  // It does NOT match SET @v = ... or EXEC sp @p = @v because those don't have a type keyword.
403
- const varDeclRegex = /@\w+\s+(?:UNIQUEIDENTIFIER|N?VARCHAR|N?CHAR|INT|BIGINT|SMALLINT|TINYINT|BIT|FLOAT|REAL|DECIMAL|NUMERIC|DATETIME(?:2|OFFSET)?|DATE(?!TIME)\b|TIME\b|MONEY|SMALLMONEY|VARBINARY|XML|TABLE|N?TEXT|IMAGE|ROWVERSION|TIMESTAMP|GEOGRAPHY|GEOMETRY)\b/gi;
404
- const matches = sql.match(varDeclRegex);
405
- return matches ? matches.length : 0;
421
+ const varDeclRegex = /(@\w+)\s+(?:UNIQUEIDENTIFIER|N?VARCHAR|N?CHAR|INT|BIGINT|SMALLINT|TINYINT|BIT|FLOAT|REAL|DECIMAL|NUMERIC|DATETIME(?:2|OFFSET)?|DATE(?!TIME)\b|TIME\b|MONEY|SMALLMONEY|VARBINARY|XML|TABLE|N?TEXT|IMAGE|ROWVERSION|TIMESTAMP|GEOGRAPHY|GEOMETRY)\b/gi;
422
+ const names = [];
423
+ for (const match of sql.matchAll(varDeclRegex)) {
424
+ names.push(match[1].toLowerCase());
425
+ }
426
+ return names;
406
427
  }
407
428
  /**
408
429
  * Escapes ${...} patterns within SQL string literals to prevent Flyway from interpreting them as placeholders.
@@ -1 +1 @@
1
- {"version":3,"file":"SqlLogger.js","sourceRoot":"","sources":["../src/SqlLogger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlLogger.js","sourceRoot":"","sources":["../src/SqlLogger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @fileoverview Startup backstop for the system user's field-level access.
3
+ *
4
+ * The save-time guards in `MJEntityFieldPermissionEntityServer` refuse a change that would leave
5
+ * the system user short of its entity-level access — but they only see changes that go through the
6
+ * entity layer with a warm user cache. Direct SQL, a migration, a role removed from the account,
7
+ * or a save made during another process's bootstrap all reach the same state unobserved.
8
+ *
9
+ * Field security has no runtime exemption for the system user, so that state is not inert: the
10
+ * server's own background work silently loses a column, and because engine caches are process-wide
11
+ * the partially loaded record it caches is then served to everyone. This makes it loud at the one
12
+ * moment someone is watching.
13
+ *
14
+ * @module @memberjunction/generic-database-provider
15
+ */
16
+ import { IMetadataProvider, IStartupSink, UserInfo } from '@memberjunction/core';
17
+ import { BaseSingleton } from '@memberjunction/global';
18
+ /**
19
+ * Reports — loudly, but without blocking boot — any field on an FLS-enabled entity that the MJ
20
+ * system user can no longer fully use.
21
+ *
22
+ * **Warns rather than refuses to start.** The condition is bad configuration, not a broken build,
23
+ * and a server that will not boot is a worse failure than one that boots and says exactly what is
24
+ * wrong. It is also self-inflicted-recovery-hostile: the administrator's route to fixing the rows
25
+ * is usually the application that would refuse to start.
26
+ *
27
+ * Costs nothing when nothing is enabled: entities with `EnableFieldLevelSecurity = false` are
28
+ * skipped on a boolean read, and there are no queries at any point.
29
+ */
30
+ export declare class SystemUserFieldAccessCheck extends BaseSingleton<SystemUserFieldAccessCheck> implements IStartupSink {
31
+ protected constructor();
32
+ static get Instance(): SystemUserFieldAccessCheck;
33
+ HandleStartup(_contextUser?: UserInfo, provider?: IMetadataProvider): Promise<void>;
34
+ /**
35
+ * Reports field permission rows whose role holds no entity permission on the same entity.
36
+ *
37
+ * `MJEntityFieldPermissionEntityServer.Validate()` refuses to create such a row, and
38
+ * reconciliation deletes any it finds — but both only see writes that go through the entity
39
+ * layer. Direct SQL, a migration, or a `ReplayOnly` save can author one unobserved, and until
40
+ * the next reconciliation it is fully live: field-rule aggregation matches on role membership
41
+ * alone, so the rule applies to any user holding that role who reaches the entity through a
42
+ * different one. That makes it a real access change with no visible cause.
43
+ *
44
+ * Scoped to FLS-enabled entities, matching where reconciliation runs and where the rules
45
+ * actually decide anything — a rule on a disabled entity is dormant rather than wrong.
46
+ *
47
+ * Reads cached metadata only; no queries.
48
+ *
49
+ * @returns the number of orphaned rows found
50
+ */
51
+ RunOrphanedFieldRuleSweep(provider?: IMetadataProvider | null): number;
52
+ /**
53
+ * Runs the sweep and logs the outcome. Separate from {@link HandleStartup} so callers that
54
+ * already hold a provider — tests, a maintenance command — can invoke it directly.
55
+ *
56
+ * @returns the number of offending fields found
57
+ */
58
+ Run(provider?: IMetadataProvider | null): number;
59
+ }
60
+ /**
61
+ * Loader stub — keeps the class (and therefore its startup registration) from being tree-shaken.
62
+ */
63
+ export declare function LoadSystemUserFieldAccessCheck(): void;
64
+ //# sourceMappingURL=SystemUserFieldAccessCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SystemUserFieldAccessCheck.d.ts","sourceRoot":"","sources":["../src/SystemUserFieldAccessCheck.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAA2C,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAMvD;;;;;;;;;;;GAWG;AACH,qBAKa,0BAA2B,SAAQ,aAAa,CAAC,0BAA0B,CAAE,YAAW,YAAY;IAC7G,SAAS;IAIT,WAAkB,QAAQ,IAAI,0BAA0B,CAEvD;IAEY,aAAa,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhG;;;;;;;;;;;;;;;;OAgBG;IACI,yBAAyB,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG,MAAM;IAqC7E;;;;;OAKG;IACI,GAAG,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAAG,MAAM;CAoB1D;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
@@ -0,0 +1,137 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ /**
11
+ * @fileoverview Startup backstop for the system user's field-level access.
12
+ *
13
+ * The save-time guards in `MJEntityFieldPermissionEntityServer` refuse a change that would leave
14
+ * the system user short of its entity-level access — but they only see changes that go through the
15
+ * entity layer with a warm user cache. Direct SQL, a migration, a role removed from the account,
16
+ * or a save made during another process's bootstrap all reach the same state unobserved.
17
+ *
18
+ * Field security has no runtime exemption for the system user, so that state is not inert: the
19
+ * server's own background work silently loses a column, and because engine caches are process-wide
20
+ * the partially loaded record it caches is then served to everyone. This makes it loud at the one
21
+ * moment someone is watching.
22
+ *
23
+ * @module @memberjunction/generic-database-provider
24
+ */
25
+ import { LogError, RegisterForStartup } from '@memberjunction/core';
26
+ import { BaseSingleton } from '@memberjunction/global';
27
+ import { FindSystemUserFieldAccessViolations } from './systemUserFieldAccess.js';
28
+ /** How many offending fields to name before summarising the rest. */
29
+ const MAX_REPORTED = 10;
30
+ /**
31
+ * Reports — loudly, but without blocking boot — any field on an FLS-enabled entity that the MJ
32
+ * system user can no longer fully use.
33
+ *
34
+ * **Warns rather than refuses to start.** The condition is bad configuration, not a broken build,
35
+ * and a server that will not boot is a worse failure than one that boots and says exactly what is
36
+ * wrong. It is also self-inflicted-recovery-hostile: the administrator's route to fixing the rows
37
+ * is usually the application that would refuse to start.
38
+ *
39
+ * Costs nothing when nothing is enabled: entities with `EnableFieldLevelSecurity = false` are
40
+ * skipped on a boolean read, and there are no queries at any point.
41
+ */
42
+ let SystemUserFieldAccessCheck = class SystemUserFieldAccessCheck extends BaseSingleton {
43
+ constructor() {
44
+ super();
45
+ }
46
+ static get Instance() {
47
+ return super.getInstance();
48
+ }
49
+ async HandleStartup(_contextUser, provider) {
50
+ this.Run(provider);
51
+ this.RunOrphanedFieldRuleSweep(provider);
52
+ }
53
+ /**
54
+ * Reports field permission rows whose role holds no entity permission on the same entity.
55
+ *
56
+ * `MJEntityFieldPermissionEntityServer.Validate()` refuses to create such a row, and
57
+ * reconciliation deletes any it finds — but both only see writes that go through the entity
58
+ * layer. Direct SQL, a migration, or a `ReplayOnly` save can author one unobserved, and until
59
+ * the next reconciliation it is fully live: field-rule aggregation matches on role membership
60
+ * alone, so the rule applies to any user holding that role who reaches the entity through a
61
+ * different one. That makes it a real access change with no visible cause.
62
+ *
63
+ * Scoped to FLS-enabled entities, matching where reconciliation runs and where the rules
64
+ * actually decide anything — a rule on a disabled entity is dormant rather than wrong.
65
+ *
66
+ * Reads cached metadata only; no queries.
67
+ *
68
+ * @returns the number of orphaned rows found
69
+ */
70
+ RunOrphanedFieldRuleSweep(provider) {
71
+ const entities = provider?.Entities ?? [];
72
+ const offenders = [];
73
+ for (const entity of entities) {
74
+ if (!entity.EnableFieldLevelSecurity) {
75
+ continue; // rules here decide nothing, so an orphan is dormant rather than wrong
76
+ }
77
+ const rolesWithEntityPermission = new Set(entity.Permissions.map((p) => (p.RoleID ?? '').trim().toLowerCase()).filter(Boolean));
78
+ for (const field of entity.Fields) {
79
+ for (const rule of field.FieldPermissions) {
80
+ const roleID = (rule.RoleID ?? '').trim().toLowerCase();
81
+ if (roleID && !rolesWithEntityPermission.has(roleID)) {
82
+ offenders.push(` - ${entity.Name}.${field.Name} (role ${rule.RoleID})`);
83
+ }
84
+ }
85
+ }
86
+ }
87
+ if (offenders.length === 0) {
88
+ return 0;
89
+ }
90
+ const shown = offenders.slice(0, MAX_REPORTED).join('\n');
91
+ const more = offenders.length > MAX_REPORTED ? `\n ...and ${offenders.length - MAX_REPORTED} more` : '';
92
+ LogError(`[FieldSecurity] ${offenders.length} field permission row(s) name a role with no entity permission on the ` +
93
+ `same entity. A field rule refines an entity permission, so these refine nothing on their own — yet they ` +
94
+ `still apply to any user who holds the role and reaches the entity through another one. The next ` +
95
+ `reconciliation will delete them. Grant the role an entity permission if the rule is intended, or remove ` +
96
+ `the rule.\n${shown}${more}`);
97
+ return offenders.length;
98
+ }
99
+ /**
100
+ * Runs the sweep and logs the outcome. Separate from {@link HandleStartup} so callers that
101
+ * already hold a provider — tests, a maintenance command — can invoke it directly.
102
+ *
103
+ * @returns the number of offending fields found
104
+ */
105
+ Run(provider) {
106
+ const violations = FindSystemUserFieldAccessViolations(provider);
107
+ if (violations.length === 0) {
108
+ return 0;
109
+ }
110
+ const shown = violations
111
+ .slice(0, MAX_REPORTED)
112
+ .map(v => ` - ${v.EntityName}.${v.FieldName} (cannot ${v.Verb})`)
113
+ .join('\n');
114
+ const more = violations.length > MAX_REPORTED ? `\n ...and ${violations.length - MAX_REPORTED} more` : '';
115
+ LogError(`[FieldSecurity] The MJ system user has lost field-level access to ${violations.length} field(s). ` +
116
+ `The server runs background work as that account and engine caches are process-wide, so it may cache ` +
117
+ `partially loaded records that every user then reads. Field security has no exempt user — restore an ` +
118
+ `'Allow' on a role the system user holds, or take the offending role off that account.\n${shown}${more}`);
119
+ return violations.length;
120
+ }
121
+ };
122
+ SystemUserFieldAccessCheck = __decorate([
123
+ RegisterForStartup({
124
+ priority: 900,
125
+ severity: 'warn',
126
+ description: 'Verifies the MJ system user retains its field-level access on FLS-enabled entities',
127
+ }),
128
+ __metadata("design:paramtypes", [])
129
+ ], SystemUserFieldAccessCheck);
130
+ export { SystemUserFieldAccessCheck };
131
+ /**
132
+ * Loader stub — keeps the class (and therefore its startup registration) from being tree-shaken.
133
+ */
134
+ export function LoadSystemUserFieldAccessCheck() {
135
+ // no-op
136
+ }
137
+ //# sourceMappingURL=SystemUserFieldAccessCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SystemUserFieldAccessCheck.js","sourceRoot":"","sources":["../src/SystemUserFieldAccessCheck.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserCache.d.ts","sourceRoot":"","sources":["../src/UserCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAc,MAAM,wBAAwB,CAAC;AAenE;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAU,SAAQ,aAAa,CAAC,SAAS,CAAC;IACnD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAkB;IAEhC;;OAEG;;IAKH,IAAW,cAAc,IAAI,MAAM,CAElC;IAED;;;;;;;OAOG;IACI,aAAa,IAAI,QAAQ;IAIhC;;;;;OAKG;IACU,OAAO,CAAC,QAAQ,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnG;;;;;;;;;;;;;;;;;OAiBG;IACI,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAIxC;;OAEG;cACa,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC;IAa1F,WAAkB,QAAQ,IAAI,SAAS,CAEtC;IAED,IAAW,KAAK,IAAI,QAAQ,EAAE,CAE7B;IAED,MAAM,KAAK,KAAK,IAAI,QAAQ,EAAE,CAE7B;IAED;;;;;OAKG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,QAAQ,GAAG,SAAS;CAOxF"}
1
+ {"version":3,"file":"UserCache.d.ts","sourceRoot":"","sources":["../src/UserCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAc,MAAM,wBAAwB,CAAC;AAcnE;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAU,SAAQ,aAAa,CAAC,SAAS,CAAC;IACnD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAkB;IAEhC;;OAEG;;IAKH,IAAW,cAAc,IAAI,MAAM,CAElC;IAED;;;;;;;OAOG;IACI,aAAa,IAAI,QAAQ;IAIhC;;;;;OAKG;IACU,OAAO,CAAC,QAAQ,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnG;;;;;;;;;;;;;;;;;OAiBG;IACI,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAIxC;;OAEG;cACa,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC;IAa1F,WAAkB,QAAQ,IAAI,SAAS,CAEtC;IAED,IAAW,KAAK,IAAI,QAAQ,EAAE,CAE7B;IAED,MAAM,KAAK,KAAK,IAAI,QAAQ,EAAE,CAE7B;IAED;;;;;OAKG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,QAAQ,GAAG,SAAS;CAOxF"}
package/dist/UserCache.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { LogError, UserInfo } from '@memberjunction/core';
2
2
  import { BaseSingleton, UUIDsEqual } from '@memberjunction/global';
3
- const SYSTEM_USER_ID = 'ecafccec-6a37-ef11-86d4-000d3a4e707e';
3
+ import { SystemUserID } from './systemUser.js';
4
4
  /**
5
5
  * Server side cache of users and their roles.
6
6
  *
@@ -28,7 +28,7 @@ export class UserCache extends BaseSingleton {
28
28
  this._users = [];
29
29
  }
30
30
  get SYSTEM_USER_ID() {
31
- return SYSTEM_USER_ID;
31
+ return SystemUserID;
32
32
  }
33
33
  /**
34
34
  * Returns the system user, or `undefined` when the cache has not been refreshed or the row is
@@ -1 +1 @@
1
- {"version":3,"file":"UserCache.js","sourceRoot":"","sources":["../src/UserCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserCache.js","sourceRoot":"","sources":["../src/UserCache.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,12 @@
1
- export { GenericDatabaseProvider, ExecuteSQLBatchOptions } from './GenericDatabaseProvider.js';
1
+ export { GenericDatabaseProvider, DoomedTransactionError, ExecuteSQLBatchOptions } from './GenericDatabaseProvider.js';
2
+ export { DatabaseWellKnownUserSource } from './DatabaseWellKnownUserSource.js';
3
+ export { SystemUserID } from './systemUser.js';
2
4
  export type { SaveCoercedValue, SaveCallBinding, SaveSQLFragment, RecordChangePayload, } from './saveTypes.js';
3
5
  export { CRUDSprocType, shouldIncludeFieldInParams, needsClearCompanionBroadRule, projectedParamCount, useJsonArgShape, } from './crudSprocFieldRules.js';
4
6
  export { resolveDbPlatformFromEnv } from './dbPlatformEnv.js';
5
7
  export { UserCache } from './UserCache.js';
8
+ export { SystemUserFieldAccessLossReason, FindSystemUserFieldAccessViolations, SystemUserFieldAccessViolation, SystemUserHoldsRole, SystemUserFieldAccessSweepOptions, } from './systemUserFieldAccess.js';
9
+ export { SystemUserFieldAccessCheck, LoadSystemUserFieldAccessCheck } from './SystemUserFieldAccessCheck.js';
6
10
  export { SqlLoggingOptions, SqlLoggingSession } from './types.js';
7
11
  export { SqlLoggingSessionImpl } from './SqlLogger.js';
8
12
  export { QueryCompositionEngine, CompositionCTEInfo, CompositionResult } from './queryCompositionEngine.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC/F,YAAY,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,aAAa,EACb,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,eAAe,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC7H,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAGvH,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACR,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,aAAa,EACb,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,eAAe,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACH,+BAA+B,EAC/B,mCAAmC,EACnC,8BAA8B,EAC9B,mBAAmB,EACnB,iCAAiC,GACpC,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC7H,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,15 @@
1
- export { GenericDatabaseProvider } from './GenericDatabaseProvider.js';
1
+ export { GenericDatabaseProvider, DoomedTransactionError } from './GenericDatabaseProvider.js';
2
+ // Side-effect import: registers DatabaseWellKnownUserSource with the class factory so any
3
+ // process holding a database provider can resolve MJ's built-in accounts.
4
+ export { DatabaseWellKnownUserSource } from './DatabaseWellKnownUserSource.js';
5
+ export { SystemUserID } from './systemUser.js';
2
6
  export { shouldIncludeFieldInParams, needsClearCompanionBroadRule, projectedParamCount, useJsonArgShape, } from './crudSprocFieldRules.js';
3
7
  export { resolveDbPlatformFromEnv } from './dbPlatformEnv.js';
4
8
  export { UserCache } from './UserCache.js';
9
+ export { SystemUserFieldAccessLossReason, FindSystemUserFieldAccessViolations, SystemUserHoldsRole, } from './systemUserFieldAccess.js';
10
+ // Side-effect import: registers the startup sweep that reports a system user which has lost
11
+ // field-level access on an FLS-enabled entity.
12
+ export { SystemUserFieldAccessCheck, LoadSystemUserFieldAccessCheck } from './SystemUserFieldAccessCheck.js';
5
13
  export { SqlLoggingSessionImpl } from './SqlLogger.js';
6
14
  export { QueryCompositionEngine } from './queryCompositionEngine.js';
7
15
  export { QueryPagingEngine } from './queryPagingEngine.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA0B,MAAM,8BAA8B,CAAC;AAO/F,OAAO,EAEH,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,eAAe,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAyC,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAoB,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAmE,MAAM,qBAAqB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,uEAAuE;AACvE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAA0B,MAAM,8BAA8B,CAAC;AACvH,0FAA0F;AAC1F,0EAA0E;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAO/C,OAAO,EAEH,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,eAAe,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACH,+BAA+B,EAC/B,mCAAmC,EAEnC,mBAAmB,GAEtB,MAAM,4BAA4B,CAAC;AACpC,4FAA4F;AAC5F,+CAA+C;AAC/C,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAE7G,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAyC,MAAM,6BAA6B,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAoB,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAmE,MAAM,qBAAqB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,uEAAuE;AACvE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC"}
@@ -97,6 +97,25 @@ export declare class QueryPagingEngine {
97
97
  * this method contains no `node-sql-parser` field knowledge.
98
98
  */
99
99
  private static applyMaxRowsViaAST;
100
+ /**
101
+ * Clauses that must come AFTER `LIMIT` in PostgreSQL, so a bare append would be illegal.
102
+ *
103
+ * Matched loosely and deliberately: a false positive (the word inside a string literal, a
104
+ * column alias, or a nested subquery) costs only a fall-through to the AST path, which is
105
+ * the behaviour that shipped before. A false negative would emit invalid SQL, so the test
106
+ * errs heavily toward abstaining.
107
+ */
108
+ private static readonly CLAUSES_THAT_FOLLOW_LIMIT;
109
+ /**
110
+ * Returns `sql` with the row cap appended as a trailing clause, or `null` when that is not
111
+ * provably safe and the caller should fall back to AST injection.
112
+ *
113
+ * Applies only to dialects whose cap is a suffix (`LIMIT N`). SQL Server caps with a `TOP N`
114
+ * prefix that has to go between `SELECT` and the select list — a position no append can
115
+ * reach — so it is left to the AST path, where the round-trip is harmless anyway because
116
+ * T-SQL is not case-sensitive about the identifiers involved.
117
+ */
118
+ private static appendTrailingCap;
100
119
  /**
101
120
  * Determines whether the given params indicate paging should be applied.
102
121
  */
@@ -1 +1 @@
1
- {"version":3,"file":"queryPagingEngine.d.ts","sourceRoot":"","sources":["../src/queryPagingEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAiB;IAE1B;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,CACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,gBAAgB,GAC3B,gBAAgB;IAUnB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,eAAe,CAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,gBAAgB,GAC3B,MAAM;IAsCT;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAyBxB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAwCjC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAQrF,OAAO,CAAC,MAAM,CAAC,YAAY;IAyB3B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAoBrC;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAkB7B;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,UAAU,GAAG,MAA+B,GACtD;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAW5D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE;IAOxE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAe3B,OAAO,CAAC,MAAM,CAAC,UAAU;CAG5B"}
1
+ {"version":3,"file":"queryPagingEngine.d.ts","sourceRoot":"","sources":["../src/queryPagingEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAgC,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAiB;IAE1B;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,CACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,gBAAgB,GAC3B,gBAAgB;IAUnB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,eAAe,CAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,gBAAgB,GAC3B,MAAM;IAsCT;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAyBxB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA2DjC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CACgC;IAEjF;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAOhC;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAQrF,OAAO,CAAC,MAAM,CAAC,YAAY;IAyB3B;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAoBrC;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAkB7B;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,UAAU,GAAG,MAA+B,GACtD;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAW5D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE;IAOxE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAe3B,OAAO,CAAC,MAAM,CAAC,UAAU;CAG5B"}
@@ -167,6 +167,25 @@ export class QueryPagingEngine {
167
167
  // Existing numeric cap — only modify when the requested cap is tighter.
168
168
  if (existing && existing.value <= cap)
169
169
  return { outcome: 'capped', sql };
170
+ // No cap at all, on a dialect that caps with a trailing clause — append it as TEXT.
171
+ //
172
+ // `SetOuterCap` + `ToSQL()` below re-emits the WHOLE statement from the AST, and
173
+ // node-sql-parser normalizes as it generates: keywords come back upper-cased and
174
+ // identifiers re-quoted. Appending one clause should not rewrite the caller's SQL, and
175
+ // on PostgreSQL that rewrite is not cosmetic — it is a correctness bug, because the
176
+ // provider's identifier auto-quoter runs afterwards over an upper-cased statement and
177
+ // quotes any keyword its allowlist is missing. A query written `ORDER BY x ASC nulls
178
+ // last` came back `ASC NULLS LAST`, was quoted to `ASC "NULLS" "LAST"`, and failed with
179
+ // `syntax error at or near ""NULLS""` — SQL the caller never wrote.
180
+ //
181
+ // The append is only taken where it is provably equivalent to the AST injection; every
182
+ // other shape falls through to the existing path, so this can narrow the blast radius
183
+ // but never change a result.
184
+ if (!existing) {
185
+ const appended = QueryPagingEngine.appendTrailingCap(sql, cap, dialect);
186
+ if (appended)
187
+ return { outcome: 'capped', sql: appended };
188
+ }
170
189
  // No cap (or a looser one) — inject/replace.
171
190
  parsed.SetOuterCap(cap);
172
191
  try {
@@ -176,6 +195,32 @@ export class QueryPagingEngine {
176
195
  return { outcome: 'unparseable' };
177
196
  }
178
197
  }
198
+ /**
199
+ * Clauses that must come AFTER `LIMIT` in PostgreSQL, so a bare append would be illegal.
200
+ *
201
+ * Matched loosely and deliberately: a false positive (the word inside a string literal, a
202
+ * column alias, or a nested subquery) costs only a fall-through to the AST path, which is
203
+ * the behaviour that shipped before. A false negative would emit invalid SQL, so the test
204
+ * errs heavily toward abstaining.
205
+ */
206
+ static { this.CLAUSES_THAT_FOLLOW_LIMIT = /\b(?:OFFSET|FETCH|FOR\s+(?:UPDATE|SHARE|NO\s+KEY\s+UPDATE|KEY\s+SHARE))\b/i; }
207
+ /**
208
+ * Returns `sql` with the row cap appended as a trailing clause, or `null` when that is not
209
+ * provably safe and the caller should fall back to AST injection.
210
+ *
211
+ * Applies only to dialects whose cap is a suffix (`LIMIT N`). SQL Server caps with a `TOP N`
212
+ * prefix that has to go between `SELECT` and the select list — a position no append can
213
+ * reach — so it is left to the AST path, where the round-trip is harmless anyway because
214
+ * T-SQL is not case-sensitive about the identifiers involved.
215
+ */
216
+ static appendTrailingCap(sql, cap, dialect) {
217
+ const limit = dialect.LimitClause(cap);
218
+ if (!limit.suffix || limit.prefix)
219
+ return null;
220
+ if (QueryPagingEngine.CLAUSES_THAT_FOLLOW_LIMIT.test(sql))
221
+ return null;
222
+ return `${sql}\n${limit.suffix}`;
223
+ }
179
224
  /**
180
225
  * Determines whether the given params indicate paging should be applied.
181
226
  */
@@ -1 +1 @@
1
- {"version":3,"file":"queryPagingEngine.js","sourceRoot":"","sources":["../src/queryPagingEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryPagingEngine.js","sourceRoot":"","sources":["../src/queryPagingEngine.ts"],"names":[],"mappings":"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"}