@memberjunction/generic-database-provider 5.36.0 → 5.38.0

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.
@@ -1,7 +1,7 @@
1
1
  import { UUIDsEqual } from "@memberjunction/global";
2
2
  import { GetDialect } from "@memberjunction/sql-dialect";
3
3
  import { SQLParser, AnalyzeTopLevelOrderBy } from "@memberjunction/sql-parser";
4
- import { Metadata, QueryInfo } from "@memberjunction/core";
4
+ import { QueryEngine } from "@memberjunction/core-entities";
5
5
  import { SymbolTable } from "./symbolTable.js";
6
6
  /**
7
7
  * Maximum depth for recursive query composition resolution.
@@ -205,7 +205,7 @@ export class QueryCompositionEngine {
205
205
  if (inlineDependencies && inlineDependencies.length > 0) {
206
206
  const inlineMatch = this.findInlineDependency(token, inlineDependencies);
207
207
  if (inlineMatch) {
208
- const syntheticQuery = this.buildSyntheticQueryInfo(inlineMatch);
208
+ const syntheticQuery = this.buildSyntheticQuery(inlineMatch);
209
209
  return {
210
210
  Query: syntheticQuery,
211
211
  IsInline: true,
@@ -236,29 +236,38 @@ export class QueryCompositionEngine {
236
236
  return inlineDependencies.find(d => d.Name.toLowerCase() === queryName);
237
237
  }
238
238
  /**
239
- * Builds a synthetic QueryInfo from an inline dependency spec.
240
- * Sets flags so that GetPlatformSQL returns the inline SQL directly.
239
+ * Builds a synthetic IComposableQuery from an inline dependency spec.
240
+ * Returns a plain object (not a BaseEntity) since we cannot construct
241
+ * MJQueryEntityExtended directly. Inline queries skip governance
242
+ * validation, so only the fields needed for composition resolution
243
+ * (ID, Name, SQL, UsesTemplate, GetPlatformSQL) are meaningful.
241
244
  */
242
- buildSyntheticQueryInfo(dep) {
243
- const synthetic = new QueryInfo();
244
- // Use a deterministic synthetic ID based on name+path to support cycle detection and deduplication
245
- synthetic.ID = `__inline__${dep.CategoryPath}${dep.Name}`.toLowerCase();
246
- synthetic.Name = dep.Name;
247
- synthetic.SQL = dep.SQL;
248
- synthetic.UsesTemplate = dep.UsesTemplate ?? false;
249
- synthetic.Reusable = true;
250
- synthetic.Status = 'Approved';
251
- return synthetic;
245
+ buildSyntheticQuery(dep) {
246
+ const sql = dep.SQL;
247
+ return {
248
+ // Use a deterministic synthetic ID based on name+path to support cycle detection and deduplication
249
+ ID: `__inline__${dep.CategoryPath}${dep.Name}`.toLowerCase(),
250
+ Name: dep.Name,
251
+ SQL: sql,
252
+ UsesTemplate: dep.UsesTemplate ?? false,
253
+ Reusable: true,
254
+ Status: 'Approved',
255
+ get IsApproved() { return true; },
256
+ UserCanRun() { return true; },
257
+ GetPlatformSQL() { return sql; },
258
+ };
252
259
  }
253
260
  /**
254
- * Looks up a query by category path + name from the metadata provider only.
261
+ * Looks up a query by category path + name from QueryEngine.
255
262
  */
256
263
  lookupQueryFromMetadata(token) {
257
- const allQueries = Metadata.Provider.Queries; // global-provider-ok: data provider implementation, owns its provider context
264
+ const allQueries = QueryEngine.Instance.Queries;
258
265
  const queryName = token.QueryName.toLowerCase();
259
- // If category segments provided, build expected category path
266
+ // If category segments provided, build expected category path.
267
+ // MJQueryEntityExtended.CategoryPath uses slash-separated segments
268
+ // without leading/trailing slashes (e.g. "Sales/Reports").
260
269
  if (token.CategorySegments.length > 0) {
261
- const expectedPath = `/${token.CategorySegments.join('/')}/`;
270
+ const expectedPath = token.CategorySegments.join('/');
262
271
  const match = allQueries.find(q => q.Name.toLowerCase() === queryName &&
263
272
  q.CategoryPath.toLowerCase() === expectedPath.toLowerCase());
264
273
  if (match)
@@ -1 +1 @@
1
- {"version":3,"file":"queryCompositionEngine.js","sourceRoot":"","sources":["../src/queryCompositionEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryCompositionEngine.js","sourceRoot":"","sources":["../src/queryCompositionEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAmB,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,EAAyB,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAmB/C;;;GAGG;AACH,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAiGjC;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,sBAAsB;IAC/B;;;;OAIG;IACI,oBAAoB,CAAC,GAAW;QACnC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;OAUG;IACI,sBAAsB,CAAC,GAAW;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAC;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClB,MAAM,gBAAgB,GAAG,GAAG,CAAC,YAAY;gBACrC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC9F,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEhE,OAAO;gBACH,SAAS,EAAE,GAAG,CAAC,GAAG;gBAClB,gBAAgB,EAAE,gBAAgB;gBAClC,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACjC,IAAI,EAAE,CAAC,CAAC,GAAG;oBACX,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;oBAC7C,eAAe,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;iBACpD,CAAC,CAAC;aACN,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,kBAAkB,CACrB,GAAW,EACX,QAA0B,EAC1B,WAAqB,EACrB,WAAoC,EACpC,kBAA0C;QAE1C,MAAM,UAAU,GAAe,EAAE,CAAC;QAClC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAoB,CAAC;QACpD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,gFAAgF;QAChF,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAEtC,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAC3C,GAAG,EACH,QAAQ,EACR,WAAW,EACX,WAAW,IAAI,EAAE,EACjB,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,CAAC,EACD,kBAAkB,CACrB,CAAC;QAEF,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,IAAI,QAAQ,GAAG,WAAW,CAAC;QAE3B,IAAI,eAAe,EAAE,CAAC;YAClB,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACpE,CAAC;QAED,uEAAuE;QACvE,qEAAqE;QACrE,6DAA6D;QAE7D,OAAO;YACH,WAAW,EAAE,QAAQ;YACrB,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACjC,eAAe,EAAE,eAAe;YAChC,eAAe,EAAE,eAAe;YAChC,0BAA0B,EAAE,YAAY,CAAC,KAAK;SACjD,CAAC;IACN,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC1B,GAAW,EACX,QAA0B,EAC1B,WAAqB,EACrB,WAAmC,EACnC,UAAsB,EACtB,eAAsC,EACtC,aAA0B,EAC1B,YAAgC,EAChC,KAAa,EACb,kBAA0C;QAE1C,IAAI,KAAK,GAAG,qBAAqB,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACX,8CAA8C,qBAAqB,IAAI;gBACvE,qDAAqD,CACxD,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAEpC,IAAI,WAAW,GAAG,GAAG,CAAC;QAEtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;YAC3E,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC;YAE3C,4FAA4F;YAC5F,+DAA+D;YAC/D,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YACtE,CAAC;YAED,sEAAsE;YACtE,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,eAAe,CAAC,YAAY,EAAE,CAAC;gBACtD,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;YAC9B,CAAC;YAED,kBAAkB;YAClB,IAAI,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAG,CAAC,GAAG,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrE,MAAM,IAAI,KAAK,CACX,uCAAuC,SAAS,IAAI;oBACpD,UAAU,eAAe,CAAC,IAAI,8BAA8B,CAC/D,CAAC;YACN,CAAC;YAED,2BAA2B;YAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAE7E,0BAA0B;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAEjF,0CAA0C;YAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC;YAC3E,IAAI,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;gBACxE,SAAS;YACb,CAAC;YAED,sDAAsD;YACtD,qEAAqE;YACrE,kEAAkE;YAClE,qEAAqE;YACrE,gEAAgE;YAChE,2DAA2D;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;YAE/E,8EAA8E;YAC9E,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAEhF,wCAAwC;YACxC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAEtC,2EAA2E;YAC3E,+EAA+E;YAC/E,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAQ;gBAC1C,CAAC,CAAC,YAAY,CAAC,kBAAkB;gBACjC,CAAC,CAAC,kBAAkB,CAAC;YAEzB,4EAA4E;YAC5E,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CACjD,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,KAAK,GAAG,CAAC,EACT,gBAAgB,CACnB,CAAC;YAEF,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAEzC,mBAAmB;YACnB,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC7D,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;gBACpC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACnD,CAAC;YAED,oFAAoF;YACpF,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;YAEhF,MAAM,QAAQ,GAAa;gBACvB,gBAAgB,EAAE,SAAS;gBAC3B,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,iBAAiB;gBACtB,IAAI,EAAE;oBACF,OAAO,EAAE,eAAe,CAAC,EAAE;oBAC3B,SAAS,EAAE,eAAe,CAAC,IAAI;oBAC/B,YAAY,EAAE,KAAK,CAAC,QAAQ;oBAC5B,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,MAAM;oBACnB,WAAW,EAAE,iBAAiB;oBAC9B,UAAU,EAAE,cAAc;iBAC7B;aACJ,CAAC;YAEF,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,wEAAwE;IACxE,mEAAmE;IAEnE;;;;;;;OAOG;IACK,qBAAqB,CACzB,KAA6B,EAC7B,kBAA0C;QAE1C,kCAAkC;QAClC,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACzE,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBAC7D,OAAO;oBACH,KAAK,EAAE,cAAc;oBACrB,QAAQ,EAAE,IAAI;oBACd,kBAAkB,EAAE,WAAW,CAAC,YAAY;iBAC/C,CAAC;YACN,CAAC;QACL,CAAC;QAED,iCAAiC;QACjC,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;YAC1C,QAAQ,EAAE,KAAK;SAClB,CAAC;IACN,CAAC;IAED;;OAEG;IACK,oBAAoB,CACxB,KAA6B,EAC7B,kBAAyC;QAEzC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAEhD,uCAAuC;QACvC,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAC7D,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACtC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS;gBAClC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,CAC9D,CAAC;YACF,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC5B,CAAC;QAED,+BAA+B;QAC/B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;OAMG;IACK,mBAAmB,CAAC,GAAwB;QAChD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,OAAO;YACH,mGAAmG;YACnG,EAAE,EAAE,aAAa,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5D,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,GAAG;YACR,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,KAAK;YACvC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,UAAU;YAClB,IAAI,UAAU,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;YAC1C,UAAU,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;YACtC,cAAc,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;SAC3C,CAAC;IACN,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,KAA6B;QACzD,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAEhD,+DAA+D;QAC/D,mEAAmE;QACnE,2DAA2D;QAC3D,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC9B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS;gBAClC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,CAC9D,CAAC;YAEF,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC5B,CAAC;QAED,+BAA+B;QAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC;QAE3E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACX,gCAAgC,KAAK,CAAC,QAAQ,KAAK;gBACnD,2DAA2D,CAC9D,CAAC;QACN,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACX,+BAA+B,KAAK,CAAC,QAAQ,aAAa,OAAO,CAAC,MAAM,YAAY;gBACpF,6CAA6C,CAChD,CAAC;QACN,CAAC;QAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC3B,KAAuB,EACvB,KAA6B,EAC7B,WAAqB;QAErB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACX,UAAU,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,IAAI,+BAA+B;gBACvE,sDAAsD,CACzD,CAAC;QACN,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACX,UAAU,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,IAAI,8BAA8B,KAAK,CAAC,MAAM,KAAK;gBACvF,wCAAwC,CAC3C,CAAC;QACN,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACX,0DAA0D,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,IAAI,IAAI,CAC/F,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,iBAAiB,CACrB,MAAyB,EACzB,WAAmC;QAEnC,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAE5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC7B,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;YAC7C,CAAC;iBAAM,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;gBACxC,kEAAkE;gBAClE,gEAAgE;gBAChE,oEAAoE;gBACpE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,eAAe,IAAI,CAAC;YAC1D,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH;;;;;;;OAOG;IACK,sBAAsB,CAAC,GAAW,EAAE,MAA8B;QACtE,IAAI,MAAM,GAAG,GAAG,CAAC;QAEjB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,mEAAmE;gBACnE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/C,MAAM,GAAG,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACJ,gEAAgE;gBAChE,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;oBACzC,CAAC,CAAC,KAAK,CAAC,wBAAwB;oBAChC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,yBAAyB;gBACjE,MAAM,GAAG,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACzE,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,OAAe,EAAE,MAA8B;QACzE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACtC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;QAEf,OAAO,GAAG,OAAO,IAAI,YAAY,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAAuB,EAAE,MAA8B,EAAE,QAA0B;QACvG,sFAAsF;QACtF,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI;aACvB,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;aAC9B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEtB,mEAAmE;QACnE,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAExC,MAAM,UAAU,GAAG,SAAS,SAAS,IAAI,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,QAA0B;QACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,KAAa;QAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YACnC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,2BAA2B;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,YAAY,CAAC,UAAsB,EAAE,OAAe,EAAE,QAA0B;QACpF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAE5C,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE1C,mEAAmE;QACnE,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1C,uEAAuE;QACvE,sDAAsD;QACtD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAClE,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,CAAC;YAE1E,IAAI,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACtC,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;gBAE7F,uDAAuD;gBACvD,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,GACtC,IAAI,CAAC,iCAAiC,CAAC,mBAAmB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAEtF,cAAc,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;gBACpC,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,UAAU,mBAAmB,KAAK,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACJ,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,UAAU,WAAW,KAAK,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC9B,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACjB,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC7D,OAAO,QAAQ,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,eAAe,EAAE,CAAC;QACrE,CAAC;QAED,OAAO,QAAQ,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CACrB,cAAwB,EACxB,UAAsB,EACtB,OAAmB;QAEnB,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YAC/B,8DAA8D;YAC9D,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACvE,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEvD,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;gBAC1D,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;gBACjD,MAAM,YAAY,GAAG,KAAK,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEnE,MAAM,IAAI,KAAK,CACX,kCAAkC,OAAO,GAAG;oBAC5C,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1C,wCAAwC,QAAQ,+BAA+B;oBAC/E,8EAA8E;oBAC9E,oEAAoE,CACvE,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,gBAAgB,CAAC,OAAe;QACpC,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;OAQG;IACK,iCAAiC,CACrC,mBAA6B,EAC7B,UAAkB,EAClB,QAAqB;QAErB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,MAAM,sBAAsB,GAA8C,EAAE,CAAC;QAE7E,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;YACpC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,sBAAsB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/D,SAAS;YACb,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEjD,uEAAuE;YACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAE5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC/B,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACpF,sBAAsB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACJ,sBAAsB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,WAAW,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;QAC1G,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,GAAW,EAAU,EAAE;YACvC,IAAI,MAAM,GAAG,GAAG,CAAC;YACjB,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;gBACvC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,MAAM,mBAAmB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACnD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IAChD,CAAC;IAED;;;;;;;OAOG;IACK,mBAAmB,CAAC,GAAW,EAAE,OAAe,EAAE,OAAe;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC/D,oEAAoE;QACpE,MAAM,OAAO,GAAG,IAAI,MAAM,CACtB,MAAM,OAAO,QAAQ,OAAO,QAAQ,OAAO,KAAK,EAChD,IAAI,CACP,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;OASG;IACK,cAAc,CAAC,GAAW,EAAE,OAAmB;QACnD,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,+DAA+D;YAC/D,qEAAqE;YACrE,OAAO,EAAE,mBAAmB,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QACxD,CAAC;QAED,OAAO;YACH,mBAAmB,EAAE,UAAU,CAAC,cAAc;YAC9C,UAAU,EAAE,UAAU,CAAC,aAAa;SACvC,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,oBAAoB,CAAC,GAAW,EAAE,OAAmB;QACzD,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC;QAErB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,GAAG,CAAC;QACxC,IAAI,OAAO,CAAC,kBAAkB;YAAE,OAAO,GAAG,CAAC;QAE3C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE1D,iDAAiD;QACjD,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAEhD,6DAA6D;QAC7D,IAAI,QAAQ,CAAC,YAAY;YAAE,OAAO,GAAG,CAAC;QAEtC,6CAA6C;QAC7C,IAAI,QAAQ,CAAC,iBAAiB,KAAK,OAAO;YAAE,OAAO,QAAQ,CAAC,iBAAiB,CAAC;QAE9E,uCAAuC;QACvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,GAAW;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,GAAG,gBAAgB,gBAAgB,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,GAAW;QAChC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACpB,gDAAgD;YAChD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;oBACpB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC7D,8BAA8B;wBAC9B,MAAM,IAAI,IAAI,CAAC;wBACf,CAAC,IAAI,CAAC,CAAC;oBACX,CAAC;yBAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBACxB,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;wBACnB,MAAM;oBACV,CAAC;yBAAM,CAAC;wBACJ,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvB,CAAC;gBACL,CAAC;YACL,CAAC;YACD,yCAAyC;iBACpC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAClE,sBAAsB;gBACtB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACvC,CAAC,EAAE,CAAC;gBACR,CAAC;YACL,CAAC;YACD,2BAA2B;iBACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAClE,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;gBAClB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;oBACpB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC7D,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;wBAClB,MAAM;oBACV,CAAC;oBACD,CAAC,EAAE,CAAC;gBACR,CAAC;YACL,CAAC;YACD,mBAAmB;iBACd,CAAC;gBACF,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CAEJ"}
@@ -41,6 +41,56 @@ export declare class QueryPagingEngine {
41
41
  * @returns DataSQL for paged results and CountSQL for total row count
42
42
  */
43
43
  static WrapWithPaging(resolvedSQL: string, startRow: number, maxRows: number, platform: DatabasePlatform): PagingWrappedSQL;
44
+ /**
45
+ * Applies a row cap to the outermost SELECT.
46
+ *
47
+ * `maxRows` is treated as a hard ceiling: the result is guaranteed to
48
+ * return at most `maxRows` rows whenever the SQL shape can be capped
49
+ * without corrupting the query.
50
+ *
51
+ * Strategy:
52
+ * 1. Parse via AST. If the outermost SELECT has no existing cap,
53
+ * inject `TOP N` (SQL Server) or `LIMIT N` (PostgreSQL).
54
+ * 2. If an existing numeric `TOP`/`LIMIT` is present, reduce it to
55
+ * `min(existing, maxRows)`. The tighter cap wins.
56
+ * 3. If the AST recognizes the shape but can't inject (`TOP PERCENT`,
57
+ * non-numeric `TOP`, `UNION`, `WITH TIES`, etc.), wrap with an
58
+ * outer `SELECT TOP N * FROM (…) AS _mj_capped` (or LIMIT on PG).
59
+ * 4. If the parser can't handle the input but the SQL is CTE-headed,
60
+ * append `OFFSET 0 ROWS FETCH NEXT N ROWS ONLY` via {@link buildDataSQL}.
61
+ * 5. Shapes that can't legally appear inside a derived table
62
+ * (`FOR JSON`, `FOR XML`, `OPTION (...)`, `SELECT INTO`,
63
+ * mutations) are returned unchanged — the cap is moot
64
+ * (FOR JSON/XML return one row) or the validator should have
65
+ * rejected them earlier (mutations, SELECT INTO).
66
+ *
67
+ * Non-positive, non-finite, or fractional `maxRows` are sanitized
68
+ * (`<= 0` and non-finite are no-ops; fractional values are floored).
69
+ */
70
+ static WrapWithMaxRows(resolvedSQL: string, maxRows: number, platform: DatabasePlatform): string;
71
+ /**
72
+ * Wraps `sql` in an outer SELECT that enforces the row cap.
73
+ * Used when the AST recognises the shape but cannot inject the cap
74
+ * cleanly, or when the AST can't parse the input but the SQL is known
75
+ * to be wrap-safe (no FOR JSON/FOR XML/OPTION at top level).
76
+ */
77
+ private static outerWrap;
78
+ /**
79
+ * AST-based row-cap injection.
80
+ * `capped` — `sql` contains the input with TOP/LIMIT injected
81
+ * or reduced to `min(existing, cap)`.
82
+ * `wrap` — AST recognized the shape but the cap can't be
83
+ * safely injected inline (`TOP PERCENT`, non-numeric
84
+ * `TOP`/`LIMIT`); caller should outer-wrap.
85
+ * `pass-through` — shape can't be capped at all without corrupting
86
+ * the query (SELECT INTO, mutation).
87
+ * `unparseable` — parser could not handle the input; caller may
88
+ * attempt a CTE-fallback or outer wrap.
89
+ *
90
+ * All AST shape inspection is delegated to {@link SQLParser} primitives —
91
+ * this method contains no `node-sql-parser` field knowledge.
92
+ */
93
+ private static applyMaxRowsViaAST;
44
94
  /**
45
95
  * Determines whether the given params indicate paging should be applied.
46
96
  */
@@ -52,11 +102,26 @@ export declare class QueryPagingEngine {
52
102
  * Does not affect TOP in subqueries or CTEs.
53
103
  */
54
104
  private static stripTopFromMainSelect;
105
+ /**
106
+ * Builds count SQL that wraps the (cap-free, ORDER-BY-free) query in a
107
+ * `[__count]` CTE and selects `COUNT(*)`. A single instance-API path:
108
+ * 1. `ExtractCTEs` hoists any user CTEs as siblings (a CTE body can't
109
+ * contain its own WITH) — AST parse first, paren-depth regex fallback.
110
+ * 2. `stripCountBody` removes the top-level ORDER BY (irrelevant for a
111
+ * count, and illegal in a SQL Server CTE without TOP) and any outer
112
+ * TOP / LIMIT (so the count reflects the full set, consistent with the
113
+ * paged data query).
114
+ */
55
115
  private static buildCountSQL;
56
- private static buildCountSQLViaAST;
57
- private static extractCTEsFromAST;
58
- private static buildCountSQLViaRegex;
59
- private static findOrderByStatement;
116
+ /**
117
+ * Strips the ORDER BY and any outer row cap (TOP on SQL Server, LIMIT on
118
+ * PostgreSQL) from the statement being counted, via a single parser
119
+ * round-trip — so the count reflects the full set rather than the capped
120
+ * subset. Falls back to a string-based ORDER BY strip when the statement
121
+ * can't be parsed (e.g. TRY_CAST, unresolved templates); the cap can't be
122
+ * reliably removed without a parse, matching the prior regex behavior.
123
+ */
124
+ private static stripCountBody;
60
125
  /**
61
126
  * Extracts the top-level ORDER BY clause from SQL, ignoring ORDER BY
62
127
  * inside subqueries, block comments, line comments, single-quoted strings,
@@ -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;;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,OAAO,CAAC,MAAM,CAAC,aAAa;IAO5B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA8BlC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAajC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAsBpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAQnC;;;;;;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;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IASxB;;;;;;;;;;;;;;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,4 +1,4 @@
1
- import { SQLParser, AnalyzeTopLevelOrderBy, findOrderByStatement as sharedFindOrderByStatement } from '@memberjunction/sql-parser';
1
+ import { SQLParser, AnalyzeTopLevelOrderBy } from '@memberjunction/sql-parser';
2
2
  import { GetDialect, SQLServerDialect } from '@memberjunction/sql-dialect';
3
3
  /**
4
4
  * Handles server-side pagination for query SQL by applying platform-specific
@@ -34,6 +34,129 @@ export class QueryPagingEngine {
34
34
  const countSQL = QueryPagingEngine.buildCountSQL(cleanedSQL, dialect);
35
35
  return { DataSQL: dataSQL, CountSQL: countSQL, Offset: startRow, PageSize: maxRows };
36
36
  }
37
+ /**
38
+ * Applies a row cap to the outermost SELECT.
39
+ *
40
+ * `maxRows` is treated as a hard ceiling: the result is guaranteed to
41
+ * return at most `maxRows` rows whenever the SQL shape can be capped
42
+ * without corrupting the query.
43
+ *
44
+ * Strategy:
45
+ * 1. Parse via AST. If the outermost SELECT has no existing cap,
46
+ * inject `TOP N` (SQL Server) or `LIMIT N` (PostgreSQL).
47
+ * 2. If an existing numeric `TOP`/`LIMIT` is present, reduce it to
48
+ * `min(existing, maxRows)`. The tighter cap wins.
49
+ * 3. If the AST recognizes the shape but can't inject (`TOP PERCENT`,
50
+ * non-numeric `TOP`, `UNION`, `WITH TIES`, etc.), wrap with an
51
+ * outer `SELECT TOP N * FROM (…) AS _mj_capped` (or LIMIT on PG).
52
+ * 4. If the parser can't handle the input but the SQL is CTE-headed,
53
+ * append `OFFSET 0 ROWS FETCH NEXT N ROWS ONLY` via {@link buildDataSQL}.
54
+ * 5. Shapes that can't legally appear inside a derived table
55
+ * (`FOR JSON`, `FOR XML`, `OPTION (...)`, `SELECT INTO`,
56
+ * mutations) are returned unchanged — the cap is moot
57
+ * (FOR JSON/XML return one row) or the validator should have
58
+ * rejected them earlier (mutations, SELECT INTO).
59
+ *
60
+ * Non-positive, non-finite, or fractional `maxRows` are sanitized
61
+ * (`<= 0` and non-finite are no-ops; fractional values are floored).
62
+ */
63
+ static WrapWithMaxRows(resolvedSQL, maxRows, platform) {
64
+ const cleanedSQL = resolvedSQL.trimEnd().replace(/;\s*$/, '');
65
+ if (!Number.isFinite(maxRows) || maxRows <= 0)
66
+ return cleanedSQL;
67
+ if (cleanedSQL.trim().length === 0)
68
+ return cleanedSQL;
69
+ const cap = Math.floor(maxRows);
70
+ const dialect = QueryPagingEngine.getDialect(platform);
71
+ const astResult = QueryPagingEngine.applyMaxRowsViaAST(cleanedSQL, cap, dialect);
72
+ if (astResult.outcome === 'capped')
73
+ return astResult.sql;
74
+ if (astResult.outcome === 'pass-through')
75
+ return cleanedSQL;
76
+ // Both `wrap` and `unparseable` outcomes may try the outer-wrap path.
77
+ // First, check for clauses that cannot legally appear inside a derived
78
+ // table — wrapping such queries would produce invalid SQL.
79
+ const unwrappable = SQLParser.HasUnwrappableTrailingClause(cleanedSQL, dialect);
80
+ if (astResult.outcome === 'wrap') {
81
+ if (unwrappable)
82
+ return cleanedSQL;
83
+ return QueryPagingEngine.outerWrap(cleanedSQL, cap, dialect);
84
+ }
85
+ // unparseable — try the CTE-fallback path first.
86
+ const isCTE = SQLParser.ExtractCTEs(cleanedSQL, dialect) !== null;
87
+ if (isCTE) {
88
+ try {
89
+ return QueryPagingEngine.buildDataSQL(cleanedSQL, 0, cap, dialect);
90
+ }
91
+ catch {
92
+ return cleanedSQL;
93
+ }
94
+ }
95
+ if (unwrappable)
96
+ return cleanedSQL;
97
+ return QueryPagingEngine.outerWrap(cleanedSQL, cap, dialect);
98
+ }
99
+ /**
100
+ * Wraps `sql` in an outer SELECT that enforces the row cap.
101
+ * Used when the AST recognises the shape but cannot inject the cap
102
+ * cleanly, or when the AST can't parse the input but the SQL is known
103
+ * to be wrap-safe (no FOR JSON/FOR XML/OPTION at top level).
104
+ */
105
+ static outerWrap(sql, cap, dialect) {
106
+ // Route the cap form through the dialect's LimitClause so there is a
107
+ // single source of truth for "TOP vs LIMIT" — no PlatformKey probe here.
108
+ const lc = dialect.LimitClause(cap);
109
+ const prefix = lc.prefix ? `${lc.prefix} ` : ''; // 'TOP N ' (SQL Server) or ''
110
+ const suffix = lc.suffix ? ` ${lc.suffix}` : ''; // ' LIMIT N' (PostgreSQL) or ''
111
+ return `SELECT ${prefix}* FROM (\n${sql}\n) AS _mj_capped${suffix}`;
112
+ }
113
+ /**
114
+ * AST-based row-cap injection.
115
+ * `capped` — `sql` contains the input with TOP/LIMIT injected
116
+ * or reduced to `min(existing, cap)`.
117
+ * `wrap` — AST recognized the shape but the cap can't be
118
+ * safely injected inline (`TOP PERCENT`, non-numeric
119
+ * `TOP`/`LIMIT`); caller should outer-wrap.
120
+ * `pass-through` — shape can't be capped at all without corrupting
121
+ * the query (SELECT INTO, mutation).
122
+ * `unparseable` — parser could not handle the input; caller may
123
+ * attempt a CTE-fallback or outer wrap.
124
+ *
125
+ * All AST shape inspection is delegated to {@link SQLParser} primitives —
126
+ * this method contains no `node-sql-parser` field knowledge.
127
+ */
128
+ static applyMaxRowsViaAST(sql, cap, dialect) {
129
+ // The instance parser applies preprocessing fallbacks on a direct-parse
130
+ // failure (bracket-identifier aliasing for Skip-style CTE names, trailing
131
+ // OPTION splitting); ToSQL restores them. This widens the set of shapes
132
+ // that reach the precise AST-inject path instead of the outer-wrap path.
133
+ const parsed = new SQLParser(sql, dialect);
134
+ if (!parsed.IsValid)
135
+ return { outcome: 'unparseable' };
136
+ const kind = parsed.StatementKind;
137
+ if (kind === 'mutation' || kind === 'select-into')
138
+ return { outcome: 'pass-through' };
139
+ if (kind === 'set-op')
140
+ return { outcome: 'unparseable' };
141
+ if (kind !== 'select')
142
+ return { outcome: 'pass-through' };
143
+ const existing = parsed.OuterCap;
144
+ // PERCENT and non-numeric (opaque) caps can't be reasoned about as row
145
+ // counts; let the caller outer-wrap them.
146
+ if (existing && existing.form !== 'numeric')
147
+ return { outcome: 'wrap' };
148
+ // Existing numeric cap — only modify when the requested cap is tighter.
149
+ if (existing && existing.value <= cap)
150
+ return { outcome: 'capped', sql };
151
+ // No cap (or a looser one) — inject/replace.
152
+ parsed.SetOuterCap(cap);
153
+ try {
154
+ return { outcome: 'capped', sql: parsed.ToSQL() };
155
+ }
156
+ catch {
157
+ return { outcome: 'unparseable' };
158
+ }
159
+ }
37
160
  /**
38
161
  * Determines whether the given params indicate paging should be applied.
39
162
  */
@@ -80,64 +203,48 @@ export class QueryPagingEngine {
80
203
  // ════════════════════════════════════════════════════════════════════
81
204
  // Count SQL — wrap in CTE, strip ORDER BY, SELECT COUNT(*)
82
205
  // ════════════════════════════════════════════════════════════════════
206
+ /**
207
+ * Builds count SQL that wraps the (cap-free, ORDER-BY-free) query in a
208
+ * `[__count]` CTE and selects `COUNT(*)`. A single instance-API path:
209
+ * 1. `ExtractCTEs` hoists any user CTEs as siblings (a CTE body can't
210
+ * contain its own WITH) — AST parse first, paren-depth regex fallback.
211
+ * 2. `stripCountBody` removes the top-level ORDER BY (irrelevant for a
212
+ * count, and illegal in a SQL Server CTE without TOP) and any outer
213
+ * TOP / LIMIT (so the count reflects the full set, consistent with the
214
+ * paged data query).
215
+ */
83
216
  static buildCountSQL(sql, dialect) {
84
- const astResult = QueryPagingEngine.buildCountSQLViaAST(sql, dialect);
85
- if (astResult)
86
- return astResult;
87
- return QueryPagingEngine.buildCountSQLViaRegex(sql, dialect);
217
+ const countCTEName = dialect.QuoteIdentifier('__count');
218
+ const extraction = SQLParser.ExtractCTEs(sql, dialect);
219
+ const mainStatement = extraction ? extraction.MainStatement : sql;
220
+ const cteDefs = extraction
221
+ ? extraction.CTEDefinitions.map(def => QueryPagingEngine.quoteCteName(def, dialect))
222
+ : [];
223
+ const countBody = QueryPagingEngine.stripCountBody(mainStatement, dialect);
224
+ const allCTEs = [...cteDefs, `${countCTEName} AS (\n${countBody}\n)`];
225
+ return `WITH ${allCTEs.join(',\n')}\nSELECT COUNT(*) AS TotalRowCount FROM ${countCTEName}`;
88
226
  }
89
- static buildCountSQLViaAST(sql, dialect) {
90
- try {
91
- const ast = SQLParser.ParseSQL(sql, dialect);
92
- if (!ast)
93
- return null;
94
- const stmt = (Array.isArray(ast) ? ast[0] : ast);
95
- if (!stmt)
96
- return null;
97
- const existingCTEDefs = QueryPagingEngine.extractCTEsFromAST(stmt, dialect);
98
- const orderByStmt = QueryPagingEngine.findOrderByStatement(stmt);
99
- if (orderByStmt?.orderby) {
100
- orderByStmt.orderby = null;
227
+ /**
228
+ * Strips the ORDER BY and any outer row cap (TOP on SQL Server, LIMIT on
229
+ * PostgreSQL) from the statement being counted, via a single parser
230
+ * round-trip — so the count reflects the full set rather than the capped
231
+ * subset. Falls back to a string-based ORDER BY strip when the statement
232
+ * can't be parsed (e.g. TRY_CAST, unresolved templates); the cap can't be
233
+ * reliably removed without a parse, matching the prior regex behavior.
234
+ */
235
+ static stripCountBody(sql, dialect) {
236
+ const parser = new SQLParser(sql, dialect);
237
+ if (parser.IsValid) {
238
+ parser.ClearOuterCap();
239
+ parser.ClearOrderBy();
240
+ try {
241
+ return parser.ToSQL();
242
+ }
243
+ catch {
244
+ // fall through to the string-based fallback
101
245
  }
102
- if (stmt.top)
103
- stmt.top = null;
104
- stmt.with = null;
105
- const mainSelectSQL = SQLParser.SqlifyAST(stmt, dialect);
106
- const countCTEName = dialect.QuoteIdentifier('__count');
107
- const allCTEs = [...existingCTEDefs, `${countCTEName} AS (\n${mainSelectSQL}\n)`];
108
- return `WITH ${allCTEs.join(',\n')}\nSELECT COUNT(*) AS TotalRowCount FROM ${countCTEName}`;
109
- }
110
- catch {
111
- return null;
112
- }
113
- }
114
- static extractCTEsFromAST(stmt, dialect) {
115
- const ctes = stmt.with || [];
116
- return ctes.map(cte => {
117
- const cteRecord = cte;
118
- const quotedName = dialect.QuoteIdentifier(cteRecord.name.value);
119
- const bodySQL = SQLParser.SqlifyAST(cteRecord.stmt.ast, dialect);
120
- return `${quotedName} AS (\n${bodySQL}\n)`;
121
- });
122
- }
123
- static buildCountSQLViaRegex(sql, dialect) {
124
- const extraction = SQLParser.ExtractCTEs(sql, dialect);
125
- if (extraction) {
126
- const { sqlWithoutOrder } = QueryPagingEngine.extractOrderBy(extraction.MainStatement, dialect);
127
- const quotedCTEDefs = extraction.CTEDefinitions.map(def => QueryPagingEngine.quoteCteName(def, dialect));
128
- const countCTEName = dialect.QuoteIdentifier('__count');
129
- const allCTEs = [...quotedCTEDefs, `${countCTEName} AS (\n${sqlWithoutOrder}\n)`];
130
- return `WITH ${allCTEs.join(',\n')}\nSELECT COUNT(*) AS TotalRowCount FROM ${countCTEName}`;
131
246
  }
132
- const { sqlWithoutOrder } = QueryPagingEngine.extractOrderBy(sql, dialect);
133
- const countCTEName = dialect.QuoteIdentifier('__count');
134
- return `WITH ${countCTEName} AS (\n${sqlWithoutOrder}\n)\nSELECT COUNT(*) AS TotalRowCount FROM ${countCTEName}`;
135
- }
136
- // ════════════════════════════════════════════════════════════════════
137
- // AST helpers — delegate to shared orderByAnalyzer
138
- // ════════════════════════════════════════════════════════════════════
139
- static findOrderByStatement(stmt) {
140
- return sharedFindOrderByStatement(stmt);
247
+ return QueryPagingEngine.extractOrderBy(sql, dialect).sqlWithoutOrder;
141
248
  }
142
249
  // ════════════════════════════════════════════════════════════════════
143
250
  // SQL analysis helpers — delegate to shared orderByAnalyzer
@@ -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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"}