@proteinjs/db-query 1.3.0 → 1.3.1

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.
@@ -0,0 +1,6 @@
1
+ /** Load Dependency Source Graphs */
2
+ import '@proteinjs/logger';
3
+ import '@proteinjs/reflection';
4
+ import '@proteinjs/serializer';
5
+ import '@proteinjs/util';
6
+ export * from '../index';
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /** Load Dependency Source Graphs */
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ require("@proteinjs/logger");
19
+ require("@proteinjs/reflection");
20
+ require("@proteinjs/serializer");
21
+ require("@proteinjs/util");
22
+ /** Generate Source Graph */
23
+ var sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"/'AND' | 'OR'\"},{\"v\":\"/| '='\\n | '\"},{\"v\":\"/'COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX'\"},{\"v\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"value\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"QueryBuilderSerializer\",\"filePath\":\"/Users/brentbahry/repos/n3xa/packages/proteinjs/packages/db/packages/query/src/serializers/QueryBuilderSerializer.ts\",\"qualifiedName\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"id\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"serialize\",\"returnType\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"SerializedQueryBuilder\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-query/SerializedQueryBuilder\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"qb\",\"type\":{\"packageName\":\"\",\"name\":\"QueryBuilder<any>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<any>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"deserialize\",\"returnType\":{\"packageName\":\"\",\"name\":\"QueryBuilder<any>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"serializedQb\",\"type\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"SerializedQueryBuilder\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-query/SerializedQueryBuilder\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializer\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializer\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/serializer/CustomSerializer\"}],\"edges\":[{\"v\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"w\":\"@proteinjs/serializer/CustomSerializer\",\"value\":\"implements interface\"}]}";
24
+ /** Generate Source Links */
25
+ var QueryBuilderSerializer_1 = require("../src/serializers/QueryBuilderSerializer");
26
+ var sourceLinks = {
27
+ '@proteinjs/db-query/QueryBuilderSerializer': QueryBuilderSerializer_1.QueryBuilderSerializer,
28
+ };
29
+ /** Load Source Graph and Links */
30
+ var reflection_1 = require("@proteinjs/reflection");
31
+ reflection_1.SourceRepository.merge(sourceGraph, sourceLinks);
32
+ __exportStar(require("../index"), exports);
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../generated/index.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;AAEpC,6BAA2B;AAC3B,iCAA+B;AAC/B,iCAA+B;AAC/B,2BAAyB;AAGzB,4BAA4B;AAE5B,IAAM,WAAW,GAAG,m2EAAm2E,CAAC;AAGx3E,4BAA4B;AAE5B,oFAAmF;AAEnF,IAAM,WAAW,GAAG;IACnB,4CAA4C,EAAE,+CAAsB;CACpE,CAAC;AAGF,kCAAkC;AAElC,oDAAyD;AACzD,6BAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAGjD,2CAAyB"}
@@ -13,7 +13,7 @@ export interface LogicalGroup<T> {
13
13
  export interface Condition<T> {
14
14
  field: keyof T;
15
15
  operator: Operator;
16
- value?: T[keyof T] | T[keyof T][] | QueryBuilder<T> | null;
16
+ value?: T[keyof T] | T[keyof T][] | QueryBuilder | null;
17
17
  }
18
18
  export interface Aggregate<T> {
19
19
  function: AggregateFunction;
@@ -10,19 +10,11 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
- if (ar || !(i in from)) {
16
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
- ar[i] = from[i];
18
- }
19
- }
20
- return to.concat(ar || Array.prototype.slice.call(from));
21
- };
22
13
  Object.defineProperty(exports, "__esModule", { value: true });
23
14
  exports.QueryBuilder = void 0;
24
15
  var logger_1 = require("@proteinjs/logger");
25
16
  var util_1 = require("@proteinjs/util");
17
+ var serializer_1 = require("@proteinjs/serializer");
26
18
  var StatementFactory_1 = require("./StatementFactory");
27
19
  var QueryBuilder = /** @class */ (function () {
28
20
  function QueryBuilder(tableName) {
@@ -84,28 +76,7 @@ var QueryBuilder = /** @class */ (function () {
84
76
  * @returns a new QueryBuilder instance
85
77
  */
86
78
  QueryBuilder.fromQueryBuilder = function (qb, tableName) {
87
- var newQb = new QueryBuilder(tableName);
88
- var clonedGraph = util_1.graphSerializer.deserialize(util_1.graphSerializer.serialize(qb.graph));
89
- var subQueries = [];
90
- qb.graph.nodes().forEach(function (nodeId) {
91
- var nodeValue = qb.graph.node(nodeId).value;
92
- if (nodeValue instanceof QueryBuilder) {
93
- subQueries.push([nodeId, QueryBuilder.fromQueryBuilder(qb.graph.node(nodeId).value, nodeValue.tableName)]);
94
- }
95
- });
96
- subQueries.forEach(function (_a) {
97
- var nodeId = _a[0], subQuery = _a[1];
98
- var node = clonedGraph.node(nodeId);
99
- clonedGraph.setNode(nodeId, __assign(__assign({}, node), { value: subQuery }));
100
- });
101
- newQb.graph = clonedGraph;
102
- newQb.__serializerId = qb.__serializerId;
103
- newQb.idCounter = qb.idCounter;
104
- newQb.rootId = qb.rootId;
105
- newQb.currentContextIds = __spreadArray([], qb.currentContextIds, true);
106
- newQb.paginationNodeId = qb.paginationNodeId;
107
- newQb.debugLogicalGrouping = qb.debugLogicalGrouping;
108
- return newQb;
79
+ return serializer_1.Serializer.deserialize(serializer_1.Serializer.serialize(qb));
109
80
  };
110
81
  QueryBuilder.prototype.generateId = function () {
111
82
  return "node_".concat(this.idCounter++);
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../src/QueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../src/QueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -138,8 +138,10 @@ var StatementParamManager = /** @class */ (function () {
138
138
  // Namespace subquery param names to avoid collisions and update SQL accordingly
139
139
  var prefix = "sq".concat(this.subQueryCounter++, "_");
140
140
  var subSql = subQuery.sql.slice(0, -1); // Remove trailing semicolon
141
- for (var _i = 0, _b = Object.keys(subQuery.namedParams.params); _i < _b.length; _i++) {
142
- var key = _b[_i];
141
+ // Replace longer keys first to avoid double-replacement
142
+ var keys = Object.keys(subQuery.namedParams.params).sort(function (a, b) { return b.length - a.length; });
143
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
144
+ var key = keys_1[_i];
143
145
  var newName = "".concat(prefix).concat(key);
144
146
  this.paramNames[newName] = subQuery.namedParams.params[key];
145
147
  this.paramTypes[newName] = subQuery.namedParams.types[key];
@@ -1 +1 @@
1
- {"version":3,"file":"StatementFactory.js","sourceRoot":"","sources":["../../src/StatementFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatementFactory.js","sourceRoot":"","sources":["../../src/StatementFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { CustomSerializer } from '@proteinjs/serializer';
2
+ import { Graph } from '@proteinjs/util';
3
+ import { QueryBuilder } from '../QueryBuilder';
4
+ type SerializedQueryBuilder = {
5
+ tableName: string;
6
+ graph: Graph;
7
+ idCounter: number;
8
+ rootId: string;
9
+ currentContextIds: string[];
10
+ paginationNodeId?: string;
11
+ };
12
+ export declare const QueryBuilderSerializerId = "@proteinjs/db/QueryBuilderSerializer";
13
+ export declare class QueryBuilderSerializer implements CustomSerializer {
14
+ id: string;
15
+ serialize(qb: QueryBuilder<any>): SerializedQueryBuilder;
16
+ deserialize(serializedQb: SerializedQueryBuilder): QueryBuilder<any>;
17
+ }
18
+ export {};
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryBuilderSerializer = exports.QueryBuilderSerializerId = void 0;
4
+ var QueryBuilder_1 = require("../QueryBuilder");
5
+ exports.QueryBuilderSerializerId = '@proteinjs/db/QueryBuilderSerializer';
6
+ var QueryBuilderSerializer = /** @class */ (function () {
7
+ function QueryBuilderSerializer() {
8
+ this.id = exports.QueryBuilderSerializerId;
9
+ }
10
+ QueryBuilderSerializer.prototype.serialize = function (qb) {
11
+ return {
12
+ tableName: qb.tableName,
13
+ graph: qb.graph,
14
+ idCounter: qb.idCounter,
15
+ rootId: qb.rootId,
16
+ currentContextIds: qb.currentContextIds,
17
+ paginationNodeId: qb.paginationNodeId,
18
+ };
19
+ };
20
+ QueryBuilderSerializer.prototype.deserialize = function (serializedQb) {
21
+ var qb = new QueryBuilder_1.QueryBuilder(serializedQb.tableName);
22
+ qb.graph = serializedQb.graph;
23
+ qb.idCounter = serializedQb.idCounter;
24
+ qb.rootId = serializedQb.rootId;
25
+ qb.currentContextIds = serializedQb.currentContextIds;
26
+ qb.paginationNodeId = serializedQb.paginationNodeId;
27
+ return qb;
28
+ };
29
+ return QueryBuilderSerializer;
30
+ }());
31
+ exports.QueryBuilderSerializer = QueryBuilderSerializer;
32
+ //# sourceMappingURL=QueryBuilderSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBuilderSerializer.js","sourceRoot":"","sources":["../../../src/serializers/QueryBuilderSerializer.ts"],"names":[],"mappings":";;;AAEA,gDAA+C;AAWlC,QAAA,wBAAwB,GAAG,sCAAsC,CAAC;AAE/E;IAAA;QACE,OAAE,GAAG,gCAAwB,CAAC;IAsBhC,CAAC;IApBC,0CAAS,GAAT,UAAU,EAAqB;QAC7B,OAAO;YACL,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;YACvC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;SACtC,CAAC;IACJ,CAAC;IAED,4CAAW,GAAX,UAAY,YAAoC;QAC9C,IAAM,EAAE,GAAG,IAAI,2BAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACpD,EAAE,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAC9B,EAAE,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;QACtC,EAAE,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QAChC,EAAE,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAC;QACtD,EAAE,CAAC,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;QACpD,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,6BAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,wDAAsB"}
@@ -0,0 +1 @@
1
+ import '../generated/index';
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("../generated/index");
4
+ var serializer_1 = require("@proteinjs/serializer");
5
+ var QueryBuilder_1 = require("../src/QueryBuilder");
6
+ describe('QueryBuilder - Serialization', function () {
7
+ var dbName = 'test';
8
+ var tableName = 'Employee';
9
+ test('should serialize/deserialize a triple-nested subquery: query -> subquery -> sub-subquery', function () {
10
+ var _a, _b;
11
+ // Innermost sub-subquery: high-paid Support employees
12
+ var subSubQb = new QueryBuilder_1.QueryBuilder(tableName).and([
13
+ { field: 'department', operator: '=', value: 'Support' },
14
+ { field: 'salary', operator: '>', value: 70000 },
15
+ ]);
16
+ // Middle subquery: employees with ≥2 years AND whose id is in subSubQb
17
+ var subQb = new QueryBuilder_1.QueryBuilder(tableName).and([
18
+ { field: 'yearsOfExperience', operator: '>=', value: 2 },
19
+ { field: 'id', operator: 'IN', value: subSubQb },
20
+ ]);
21
+ // Outer (main) query: Engineering employees whose id is in subQb
22
+ var qb = new QueryBuilder_1.QueryBuilder(tableName).and([
23
+ { field: 'department', operator: '=', value: 'Engineering' },
24
+ { field: 'id', operator: 'IN', value: subQb },
25
+ ]);
26
+ var qbClone = serializer_1.Serializer.deserialize(serializer_1.Serializer.serialize(qb));
27
+ // Standard SQL
28
+ var result = qbClone.toSql({ dbName: dbName });
29
+ var expectedSql = "SELECT * FROM `test`.`Employee` WHERE (`department` = 'Engineering' AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= 2 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = 'Support' AND `salary` > 70000)))));";
30
+ expect(result.sql).toBe(expectedSql);
31
+ // Positional params
32
+ result = qbClone.toSql({ dbName: dbName, useParams: true });
33
+ expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `salary` > ?)))));');
34
+ expect(result.params).toEqual(['Engineering', 2, 'Support', 70000]);
35
+ // Named params with types — align to your nested prefixing scheme (sq0 for middle, sq0_sq0 for inner)
36
+ result = qbClone.toSql({ dbName: dbName, useParams: true, useNamedParams: true });
37
+ expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= @sq0_param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @sq0_sq0_param0 AND `salary` > @sq0_sq0_param1)))));');
38
+ expect((_a = result.namedParams) === null || _a === void 0 ? void 0 : _a.params).toEqual({
39
+ param0: 'Engineering',
40
+ sq0_param0: 2,
41
+ sq0_sq0_param0: 'Support',
42
+ sq0_sq0_param1: 70000, // inner (salary)
43
+ });
44
+ expect((_b = result.namedParams) === null || _b === void 0 ? void 0 : _b.types).toEqual({
45
+ param0: 'string',
46
+ sq0_param0: 'number',
47
+ sq0_sq0_param0: 'string',
48
+ sq0_sq0_param1: 'number',
49
+ });
50
+ });
51
+ });
52
+ //# sourceMappingURL=Serialization.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Serialization.test.js","sourceRoot":"","sources":["../../test/Serialization.test.ts"],"names":[],"mappings":";;AAAA,8BAA4B;AAC5B,oDAAmD;AACnD,oDAAmD;AAEnD,QAAQ,CAAC,8BAA8B,EAAE;IAQvC,IAAM,MAAM,GAAG,MAAM,CAAC;IACtB,IAAM,SAAS,GAAG,UAAU,CAAC;IAE7B,IAAI,CAAC,0FAA0F,EAAE;;QAC/F,sDAAsD;QACtD,IAAM,QAAQ,GAAG,IAAI,2BAAY,CAAW,SAAS,CAAC,CAAC,GAAG,CAAC;YACzD,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;YACxD,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;SACjD,CAAC,CAAC;QAEH,uEAAuE;QACvE,IAAM,KAAK,GAAG,IAAI,2BAAY,CAAW,SAAS,CAAC,CAAC,GAAG,CAAC;YACtD,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;YACxD,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;SACjD,CAAC,CAAC;QAEH,iEAAiE;QACjE,IAAM,EAAE,GAAG,IAAI,2BAAY,CAAW,SAAS,CAAC,CAAC,GAAG,CAAC;YACnD,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE;YAC5D,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;SAC9C,CAAC,CAAC;QAEH,IAAM,OAAO,GAAG,uBAAU,CAAC,WAAW,CAAC,uBAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,eAAe;QACf,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;QACvC,IAAM,WAAW,GACf,0PAA0P,CAAC;QAC7P,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErC,oBAAoB;QACpB,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAC1B,kOAAkO,CACnO,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QAEpE,sGAAsG;QACtG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAC1B,8QAA8Q,CAC/Q,CAAC;QACF,MAAM,CAAC,MAAA,MAAM,CAAC,WAAW,0CAAE,MAAM,CAAC,CAAC,OAAO,CAAC;YACzC,MAAM,EAAE,aAAa;YACrB,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,SAAS;YACzB,cAAc,EAAE,KAAK,EAAE,iBAAiB;SACzC,CAAC,CAAC;QACH,MAAM,CAAC,MAAA,MAAM,CAAC,WAAW,0CAAE,KAAK,CAAC,CAAC,OAAO,CAAC;YACxC,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,cAAc,EAAE,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -93,6 +93,47 @@ describe('QueryBuilder - Sub Query Support', function () {
93
93
  sq0_param4: 'number',
94
94
  });
95
95
  });
96
+ test('Triple-nested subquery: query -> subquery -> sub-subquery', function () {
97
+ var _a, _b;
98
+ // Innermost sub-subquery: high-paid Support employees
99
+ var subSubQb = new QueryBuilder_1.QueryBuilder(tableName).and([
100
+ { field: 'department', operator: '=', value: 'Support' },
101
+ { field: 'salary', operator: '>', value: 70000 },
102
+ ]);
103
+ // Middle subquery: employees with ≥2 years AND whose id is in subSubQb
104
+ var subQb = new QueryBuilder_1.QueryBuilder(tableName).and([
105
+ { field: 'yearsOfExperience', operator: '>=', value: 2 },
106
+ { field: 'id', operator: 'IN', value: subSubQb },
107
+ ]);
108
+ // Outer (main) query: Engineering employees whose id is in subQb
109
+ var qb = new QueryBuilder_1.QueryBuilder(tableName).and([
110
+ { field: 'department', operator: '=', value: 'Engineering' },
111
+ { field: 'id', operator: 'IN', value: subQb },
112
+ ]);
113
+ // Standard SQL
114
+ var result = qb.toSql({ dbName: dbName });
115
+ var expectedSql = "SELECT * FROM `test`.`Employee` WHERE (`department` = 'Engineering' AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= 2 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = 'Support' AND `salary` > 70000)))));";
116
+ expect(result.sql).toBe(expectedSql);
117
+ // Positional params
118
+ result = qb.toSql({ dbName: dbName, useParams: true });
119
+ expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `salary` > ?)))));');
120
+ expect(result.params).toEqual(['Engineering', 2, 'Support', 70000]);
121
+ // Named params with types — align to your nested prefixing scheme (sq0 for middle, sq0_sq0 for inner)
122
+ result = qb.toSql({ dbName: dbName, useParams: true, useNamedParams: true });
123
+ expect(result.sql).toContain('SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= @sq0_param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @sq0_sq0_param0 AND `salary` > @sq0_sq0_param1)))));');
124
+ expect((_a = result.namedParams) === null || _a === void 0 ? void 0 : _a.params).toEqual({
125
+ param0: 'Engineering',
126
+ sq0_param0: 2,
127
+ sq0_sq0_param0: 'Support',
128
+ sq0_sq0_param1: 70000, // inner (salary)
129
+ });
130
+ expect((_b = result.namedParams) === null || _b === void 0 ? void 0 : _b.types).toEqual({
131
+ param0: 'string',
132
+ sq0_param0: 'number',
133
+ sq0_sq0_param0: 'string',
134
+ sq0_sq0_param1: 'number',
135
+ });
136
+ });
96
137
  test('Throws error when using same QueryBuilder instance for subquery', function () {
97
138
  var qb = new QueryBuilder_1.QueryBuilder(tableName);
98
139
  var invalidCondition = {
@@ -1 +1 @@
1
- {"version":3,"file":"SubQueries.test.js","sourceRoot":"","sources":["../../test/SubQueries.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubQueries.test.js","sourceRoot":"","sources":["../../test/SubQueries.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /** Load Dependency Source Graphs */
2
+
3
+ import '@proteinjs/logger';
4
+ import '@proteinjs/reflection';
5
+ import '@proteinjs/serializer';
6
+ import '@proteinjs/util';
7
+
8
+
9
+ /** Generate Source Graph */
10
+
11
+ const sourceGraph = "{\"options\":{\"directed\":true,\"multigraph\":false,\"compound\":false},\"nodes\":[{\"v\":\"/'AND' | 'OR'\"},{\"v\":\"/| '='\\n | '\"},{\"v\":\"/'COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX'\"},{\"v\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"value\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"QueryBuilderSerializer\",\"filePath\":\"/Users/brentbahry/repos/n3xa/packages/proteinjs/packages/db/packages/query/src/serializers/QueryBuilderSerializer.ts\",\"qualifiedName\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"properties\":[{\"name\":\"id\",\"type\":null,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\"}],\"methods\":[{\"name\":\"serialize\",\"returnType\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"SerializedQueryBuilder\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-query/SerializedQueryBuilder\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"qb\",\"type\":{\"packageName\":\"\",\"name\":\"QueryBuilder<any>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<any>\",\"typeParameters\":null,\"directParents\":null}}]},{\"name\":\"deserialize\",\"returnType\":{\"packageName\":\"\",\"name\":\"QueryBuilder<any>\",\"filePath\":null,\"qualifiedName\":\"/QueryBuilder<any>\",\"typeParameters\":null,\"directParents\":null},\"isAsync\":false,\"isOptional\":false,\"isAbstract\":false,\"isStatic\":false,\"visibility\":\"public\",\"parameters\":[{\"name\":\"serializedQb\",\"type\":{\"packageName\":\"@proteinjs/db-query\",\"name\":\"SerializedQueryBuilder\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/db-query/SerializedQueryBuilder\",\"typeParameters\":null,\"directParents\":null}}]}],\"typeParameters\":[],\"directParentInterfaces\":[{\"packageName\":\"@proteinjs/serializer\",\"name\":\"CustomSerializer\",\"filePath\":null,\"qualifiedName\":\"@proteinjs/serializer/CustomSerializer\",\"properties\":[],\"methods\":[],\"typeParameters\":[],\"directParents\":[]}],\"directParentClasses\":[],\"sourceType\":2}},{\"v\":\"@proteinjs/serializer/CustomSerializer\"}],\"edges\":[{\"v\":\"@proteinjs/db-query/QueryBuilderSerializer\",\"w\":\"@proteinjs/serializer/CustomSerializer\",\"value\":\"implements interface\"}]}";
12
+
13
+
14
+ /** Generate Source Links */
15
+
16
+ import { QueryBuilderSerializer } from '../src/serializers/QueryBuilderSerializer';
17
+
18
+ const sourceLinks = {
19
+ '@proteinjs/db-query/QueryBuilderSerializer': QueryBuilderSerializer,
20
+ };
21
+
22
+
23
+ /** Load Source Graph and Links */
24
+
25
+ import { SourceRepository } from '@proteinjs/reflection';
26
+ SourceRepository.merge(sourceGraph, sourceLinks);
27
+
28
+
29
+ export * from '../index';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/db-query",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "A sql query builder",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -17,16 +17,18 @@
17
17
  "license": "ISC",
18
18
  "scripts": {
19
19
  "clean": "rm -rf dist/ node_modules/ generated/",
20
- "watch": "tsc -w -p .",
21
- "build": "tsc",
20
+ "build": "reflection-build && tsc",
21
+ "watch": "reflection-watch",
22
22
  "test": "jest"
23
23
  },
24
24
  "dependencies": {
25
25
  "@proteinjs/logger": "1.0.10",
26
- "@proteinjs/serializer": "1.0.19",
26
+ "@proteinjs/reflection": "1.1.10",
27
+ "@proteinjs/serializer": "1.1.0",
27
28
  "@proteinjs/util": "1.5.0"
28
29
  },
29
30
  "devDependencies": {
31
+ "@proteinjs/reflection-build": "1.2.0",
30
32
  "@types/jest": "29.5.5",
31
33
  "@types/node": "14.0.27",
32
34
  "@typescript-eslint/eslint-plugin": "7.8.0",
@@ -38,7 +40,6 @@
38
40
  "ts-jest": "29.1.1",
39
41
  "typescript": "5.2.2"
40
42
  },
41
- "main": "./dist/index.js",
42
- "types": "./dist/index.d.ts",
43
- "gitHead": "fd8bc8a83b75ca63e7ee976a783947e972b8408e"
43
+ "main": "./dist/generated/index.js",
44
+ "types": "./dist/generated/index.d.ts"
44
45
  }
@@ -1,5 +1,6 @@
1
1
  import { Logger } from '@proteinjs/logger';
2
- import { Graph, isInstanceOf, graphSerializer } from '@proteinjs/util';
2
+ import { Graph, isInstanceOf } from '@proteinjs/util';
3
+ import { Serializer } from '@proteinjs/serializer';
3
4
  import { Statement, StatementConfig, StatementParamManager } from './StatementFactory';
4
5
 
5
6
  export interface Select<T> {
@@ -33,7 +34,7 @@ export interface LogicalGroup<T> {
33
34
  export interface Condition<T> {
34
35
  field: keyof T;
35
36
  operator: Operator;
36
- value?: T[keyof T] | T[keyof T][] | QueryBuilder<T> | null;
37
+ value?: T[keyof T] | T[keyof T][] | QueryBuilder | null;
37
38
  }
38
39
 
39
40
  interface InternalCondition<T> extends Condition<T> {
@@ -94,33 +95,7 @@ export class QueryBuilder<T = any> {
94
95
  * @returns a new QueryBuilder instance
95
96
  */
96
97
  static fromQueryBuilder<T = any>(qb: QueryBuilder<T>, tableName: string): QueryBuilder<T> {
97
- const newQb = new QueryBuilder<T>(tableName);
98
-
99
- const clonedGraph: Graph = graphSerializer.deserialize(graphSerializer.serialize(qb.graph));
100
-
101
- const subQueries: Array<[string, QueryBuilder]> = [];
102
- (qb.graph.nodes() as string[]).forEach((nodeId: string) => {
103
- const nodeValue = (qb.graph as any).node(nodeId).value;
104
- if (nodeValue instanceof QueryBuilder) {
105
- subQueries.push([nodeId, QueryBuilder.fromQueryBuilder(qb.graph.node(nodeId).value, nodeValue.tableName)]);
106
- }
107
- });
108
-
109
- subQueries.forEach(([nodeId, subQuery]) => {
110
- const node = clonedGraph.node(nodeId);
111
- clonedGraph.setNode(nodeId, { ...node, value: subQuery });
112
- });
113
-
114
- newQb.graph = clonedGraph;
115
-
116
- newQb.__serializerId = qb.__serializerId;
117
- newQb.idCounter = qb.idCounter;
118
- newQb.rootId = qb.rootId;
119
- newQb.currentContextIds = [...qb.currentContextIds];
120
- newQb.paginationNodeId = qb.paginationNodeId;
121
- newQb.debugLogicalGrouping = qb.debugLogicalGrouping;
122
-
123
- return newQb;
98
+ return Serializer.deserialize(Serializer.serialize(qb));
124
99
  }
125
100
 
126
101
  private generateId(): string {
@@ -197,7 +197,10 @@ export class StatementParamManager {
197
197
  const prefix = `sq${this.subQueryCounter++}_`;
198
198
  let subSql = subQuery.sql.slice(0, -1); // Remove trailing semicolon
199
199
 
200
- for (const key of Object.keys(subQuery.namedParams.params)) {
200
+ // Replace longer keys first to avoid double-replacement
201
+ const keys = Object.keys(subQuery.namedParams.params).sort((a, b) => b.length - a.length);
202
+
203
+ for (const key of keys) {
201
204
  const newName = `${prefix}${key}`;
202
205
  this.paramNames[newName] = subQuery.namedParams.params[key];
203
206
  this.paramTypes[newName] = subQuery.namedParams.types[key];
@@ -0,0 +1,39 @@
1
+ import { CustomSerializer } from '@proteinjs/serializer';
2
+ import { Graph } from '@proteinjs/util';
3
+ import { QueryBuilder } from '../QueryBuilder';
4
+
5
+ type SerializedQueryBuilder = {
6
+ tableName: string;
7
+ graph: Graph;
8
+ idCounter: number;
9
+ rootId: string;
10
+ currentContextIds: string[];
11
+ paginationNodeId?: string;
12
+ };
13
+
14
+ export const QueryBuilderSerializerId = '@proteinjs/db/QueryBuilderSerializer';
15
+
16
+ export class QueryBuilderSerializer implements CustomSerializer {
17
+ id = QueryBuilderSerializerId;
18
+
19
+ serialize(qb: QueryBuilder<any>): SerializedQueryBuilder {
20
+ return {
21
+ tableName: qb.tableName,
22
+ graph: qb.graph,
23
+ idCounter: qb.idCounter,
24
+ rootId: qb.rootId,
25
+ currentContextIds: qb.currentContextIds,
26
+ paginationNodeId: qb.paginationNodeId,
27
+ };
28
+ }
29
+
30
+ deserialize(serializedQb: SerializedQueryBuilder): QueryBuilder<any> {
31
+ const qb = new QueryBuilder(serializedQb.tableName);
32
+ qb.graph = serializedQb.graph;
33
+ qb.idCounter = serializedQb.idCounter;
34
+ qb.rootId = serializedQb.rootId;
35
+ qb.currentContextIds = serializedQb.currentContextIds;
36
+ qb.paginationNodeId = serializedQb.paginationNodeId;
37
+ return qb;
38
+ }
39
+ }
@@ -0,0 +1,68 @@
1
+ import '../generated/index';
2
+ import { Serializer } from '@proteinjs/serializer';
3
+ import { QueryBuilder } from '../src/QueryBuilder';
4
+
5
+ describe('QueryBuilder - Serialization', () => {
6
+ interface Employee {
7
+ id: number;
8
+ department: string;
9
+ salary: number;
10
+ yearsOfExperience: number;
11
+ }
12
+
13
+ const dbName = 'test';
14
+ const tableName = 'Employee';
15
+
16
+ test('should serialize/deserialize a triple-nested subquery: query -> subquery -> sub-subquery', () => {
17
+ // Innermost sub-subquery: high-paid Support employees
18
+ const subSubQb = new QueryBuilder<Employee>(tableName).and([
19
+ { field: 'department', operator: '=', value: 'Support' },
20
+ { field: 'salary', operator: '>', value: 70000 },
21
+ ]);
22
+
23
+ // Middle subquery: employees with ≥2 years AND whose id is in subSubQb
24
+ const subQb = new QueryBuilder<Employee>(tableName).and([
25
+ { field: 'yearsOfExperience', operator: '>=', value: 2 },
26
+ { field: 'id', operator: 'IN', value: subSubQb },
27
+ ]);
28
+
29
+ // Outer (main) query: Engineering employees whose id is in subQb
30
+ const qb = new QueryBuilder<Employee>(tableName).and([
31
+ { field: 'department', operator: '=', value: 'Engineering' },
32
+ { field: 'id', operator: 'IN', value: subQb },
33
+ ]);
34
+
35
+ const qbClone = Serializer.deserialize(Serializer.serialize(qb));
36
+
37
+ // Standard SQL
38
+ let result = qbClone.toSql({ dbName });
39
+ const expectedSql =
40
+ "SELECT * FROM `test`.`Employee` WHERE (`department` = 'Engineering' AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= 2 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = 'Support' AND `salary` > 70000)))));";
41
+ expect(result.sql).toBe(expectedSql);
42
+
43
+ // Positional params
44
+ result = qbClone.toSql({ dbName, useParams: true });
45
+ expect(result.sql).toContain(
46
+ 'SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `salary` > ?)))));'
47
+ );
48
+ expect(result.params).toEqual(['Engineering', 2, 'Support', 70000]);
49
+
50
+ // Named params with types — align to your nested prefixing scheme (sq0 for middle, sq0_sq0 for inner)
51
+ result = qbClone.toSql({ dbName, useParams: true, useNamedParams: true });
52
+ expect(result.sql).toContain(
53
+ 'SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= @sq0_param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @sq0_sq0_param0 AND `salary` > @sq0_sq0_param1)))));'
54
+ );
55
+ expect(result.namedParams?.params).toEqual({
56
+ param0: 'Engineering', // outer
57
+ sq0_param0: 2, // middle (yearsOfExperience)
58
+ sq0_sq0_param0: 'Support', // inner (department)
59
+ sq0_sq0_param1: 70000, // inner (salary)
60
+ });
61
+ expect(result.namedParams?.types).toEqual({
62
+ param0: 'string',
63
+ sq0_param0: 'number',
64
+ sq0_sq0_param0: 'string',
65
+ sq0_sq0_param1: 'number',
66
+ });
67
+ });
68
+ });
@@ -118,6 +118,57 @@ describe('QueryBuilder - Sub Query Support', () => {
118
118
  });
119
119
  });
120
120
 
121
+ test('Triple-nested subquery: query -> subquery -> sub-subquery', () => {
122
+ // Innermost sub-subquery: high-paid Support employees
123
+ const subSubQb = new QueryBuilder<Employee>(tableName).and([
124
+ { field: 'department', operator: '=', value: 'Support' },
125
+ { field: 'salary', operator: '>', value: 70000 },
126
+ ]);
127
+
128
+ // Middle subquery: employees with ≥2 years AND whose id is in subSubQb
129
+ const subQb = new QueryBuilder<Employee>(tableName).and([
130
+ { field: 'yearsOfExperience', operator: '>=', value: 2 },
131
+ { field: 'id', operator: 'IN', value: subSubQb },
132
+ ]);
133
+
134
+ // Outer (main) query: Engineering employees whose id is in subQb
135
+ const qb = new QueryBuilder<Employee>(tableName).and([
136
+ { field: 'department', operator: '=', value: 'Engineering' },
137
+ { field: 'id', operator: 'IN', value: subQb },
138
+ ]);
139
+
140
+ // Standard SQL
141
+ let result = qb.toSql({ dbName });
142
+ const expectedSql =
143
+ "SELECT * FROM `test`.`Employee` WHERE (`department` = 'Engineering' AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= 2 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = 'Support' AND `salary` > 70000)))));";
144
+ expect(result.sql).toBe(expectedSql);
145
+
146
+ // Positional params
147
+ result = qb.toSql({ dbName, useParams: true });
148
+ expect(result.sql).toContain(
149
+ 'SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= ? AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = ? AND `salary` > ?)))));'
150
+ );
151
+ expect(result.params).toEqual(['Engineering', 2, 'Support', 70000]);
152
+
153
+ // Named params with types — align to your nested prefixing scheme (sq0 for middle, sq0_sq0 for inner)
154
+ result = qb.toSql({ dbName, useParams: true, useNamedParams: true });
155
+ expect(result.sql).toContain(
156
+ 'SELECT * FROM `test`.`Employee` WHERE (`department` = @param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`yearsOfExperience` >= @sq0_param0 AND `id` IN (SELECT * FROM `test`.`Employee` WHERE (`department` = @sq0_sq0_param0 AND `salary` > @sq0_sq0_param1)))));'
157
+ );
158
+ expect(result.namedParams?.params).toEqual({
159
+ param0: 'Engineering', // outer
160
+ sq0_param0: 2, // middle (yearsOfExperience)
161
+ sq0_sq0_param0: 'Support', // inner (department)
162
+ sq0_sq0_param1: 70000, // inner (salary)
163
+ });
164
+ expect(result.namedParams?.types).toEqual({
165
+ param0: 'string',
166
+ sq0_param0: 'number',
167
+ sq0_sq0_param0: 'string',
168
+ sq0_sq0_param1: 'number',
169
+ });
170
+ });
171
+
121
172
  test('Throws error when using same QueryBuilder instance for subquery', () => {
122
173
  const qb = new QueryBuilder<Employee>(tableName);
123
174
  const invalidCondition: any = {
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2023 Brent Bahry
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.