grafeo-ogm 2.5.1 → 2.5.3
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.
- package/CHANGELOG.md +52 -0
- package/dist/cjs/compilers/mutation.compiler.d.ts +11 -0
- package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/mutation.compiler.js +20 -1
- package/dist/cjs/compilers/mutation.compiler.js.map +1 -1
- package/dist/cjs/compilers/select-normalizer.d.ts +5 -0
- package/dist/cjs/compilers/select-normalizer.d.ts.map +1 -1
- package/dist/cjs/compilers/select-normalizer.js +54 -3
- package/dist/cjs/compilers/select-normalizer.js.map +1 -1
- package/dist/cjs/compilers/selection.compiler.d.ts +33 -0
- package/dist/cjs/compilers/selection.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/selection.compiler.js +220 -53
- package/dist/cjs/compilers/selection.compiler.js.map +1 -1
- package/dist/cjs/compilers/where.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/where.compiler.js +21 -0
- package/dist/cjs/compilers/where.compiler.js.map +1 -1
- package/dist/cjs/execution/executor.d.ts +7 -2
- package/dist/cjs/execution/executor.d.ts.map +1 -1
- package/dist/cjs/execution/executor.js +22 -5
- package/dist/cjs/execution/executor.js.map +1 -1
- package/dist/cjs/generator/generate-types.d.ts.map +1 -1
- package/dist/cjs/generator/generate-types.js +19 -2
- package/dist/cjs/generator/generate-types.js.map +1 -1
- package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts +2 -1
- package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts.map +1 -1
- package/dist/cjs/generator/type-emitters/model-map-emitter.js +9 -7
- package/dist/cjs/generator/type-emitters/model-map-emitter.js.map +1 -1
- package/dist/cjs/generator/type-emitters/utility-types.d.ts +13 -1
- package/dist/cjs/generator/type-emitters/utility-types.d.ts.map +1 -1
- package/dist/cjs/generator/type-emitters/utility-types.js +21 -3
- package/dist/cjs/generator/type-emitters/utility-types.js.map +1 -1
- package/dist/cjs/interface-model.d.ts.map +1 -1
- package/dist/cjs/interface-model.js +5 -1
- package/dist/cjs/interface-model.js.map +1 -1
- package/dist/cjs/schema/parser.d.ts.map +1 -1
- package/dist/cjs/schema/parser.js +7 -2
- package/dist/cjs/schema/parser.js.map +1 -1
- package/dist/cjs/testing/cypher-assert.d.ts +2 -2
- package/dist/cjs/testing/cypher-assert.d.ts.map +1 -1
- package/dist/cjs/testing/cypher-assert.js +54 -6
- package/dist/cjs/testing/cypher-assert.js.map +1 -1
- package/dist/cjs/testing/neo4j-record-factory.d.ts +5 -0
- package/dist/cjs/testing/neo4j-record-factory.d.ts.map +1 -1
- package/dist/cjs/testing/neo4j-record-factory.js +82 -27
- package/dist/cjs/testing/neo4j-record-factory.js.map +1 -1
- package/dist/cjs/utils/cypher-field-projection.d.ts +9 -1
- package/dist/cjs/utils/cypher-field-projection.d.ts.map +1 -1
- package/dist/cjs/utils/cypher-field-projection.js +39 -9
- package/dist/cjs/utils/cypher-field-projection.js.map +1 -1
- package/dist/cjs/utils/cypher-sort-projection.d.ts +6 -4
- package/dist/cjs/utils/cypher-sort-projection.d.ts.map +1 -1
- package/dist/cjs/utils/cypher-sort-projection.js +9 -7
- package/dist/cjs/utils/cypher-sort-projection.js.map +1 -1
- package/dist/cjs/utils/write-coercion.d.ts.map +1 -1
- package/dist/cjs/utils/write-coercion.js +12 -1
- package/dist/cjs/utils/write-coercion.js.map +1 -1
- package/dist/esm/compilers/mutation.compiler.d.ts +11 -0
- package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/mutation.compiler.js +20 -1
- package/dist/esm/compilers/mutation.compiler.js.map +1 -1
- package/dist/esm/compilers/select-normalizer.d.ts +5 -0
- package/dist/esm/compilers/select-normalizer.d.ts.map +1 -1
- package/dist/esm/compilers/select-normalizer.js +54 -3
- package/dist/esm/compilers/select-normalizer.js.map +1 -1
- package/dist/esm/compilers/selection.compiler.d.ts +33 -0
- package/dist/esm/compilers/selection.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/selection.compiler.js +221 -54
- package/dist/esm/compilers/selection.compiler.js.map +1 -1
- package/dist/esm/compilers/where.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/where.compiler.js +21 -0
- package/dist/esm/compilers/where.compiler.js.map +1 -1
- package/dist/esm/execution/executor.d.ts +7 -2
- package/dist/esm/execution/executor.d.ts.map +1 -1
- package/dist/esm/execution/executor.js +22 -5
- package/dist/esm/execution/executor.js.map +1 -1
- package/dist/esm/generator/generate-types.d.ts.map +1 -1
- package/dist/esm/generator/generate-types.js +20 -3
- package/dist/esm/generator/generate-types.js.map +1 -1
- package/dist/esm/generator/type-emitters/model-map-emitter.d.ts +2 -1
- package/dist/esm/generator/type-emitters/model-map-emitter.d.ts.map +1 -1
- package/dist/esm/generator/type-emitters/model-map-emitter.js +9 -7
- package/dist/esm/generator/type-emitters/model-map-emitter.js.map +1 -1
- package/dist/esm/generator/type-emitters/utility-types.d.ts +13 -1
- package/dist/esm/generator/type-emitters/utility-types.d.ts.map +1 -1
- package/dist/esm/generator/type-emitters/utility-types.js +19 -3
- package/dist/esm/generator/type-emitters/utility-types.js.map +1 -1
- package/dist/esm/interface-model.d.ts.map +1 -1
- package/dist/esm/interface-model.js +5 -1
- package/dist/esm/interface-model.js.map +1 -1
- package/dist/esm/schema/parser.d.ts.map +1 -1
- package/dist/esm/schema/parser.js +7 -2
- package/dist/esm/schema/parser.js.map +1 -1
- package/dist/esm/testing/cypher-assert.d.ts +2 -2
- package/dist/esm/testing/cypher-assert.d.ts.map +1 -1
- package/dist/esm/testing/cypher-assert.js +54 -6
- package/dist/esm/testing/cypher-assert.js.map +1 -1
- package/dist/esm/testing/neo4j-record-factory.d.ts +5 -0
- package/dist/esm/testing/neo4j-record-factory.d.ts.map +1 -1
- package/dist/esm/testing/neo4j-record-factory.js +82 -27
- package/dist/esm/testing/neo4j-record-factory.js.map +1 -1
- package/dist/esm/utils/cypher-field-projection.d.ts +9 -1
- package/dist/esm/utils/cypher-field-projection.d.ts.map +1 -1
- package/dist/esm/utils/cypher-field-projection.js +39 -9
- package/dist/esm/utils/cypher-field-projection.js.map +1 -1
- package/dist/esm/utils/cypher-sort-projection.d.ts +6 -4
- package/dist/esm/utils/cypher-sort-projection.d.ts.map +1 -1
- package/dist/esm/utils/cypher-sort-projection.js +9 -7
- package/dist/esm/utils/cypher-sort-projection.js.map +1 -1
- package/dist/esm/utils/write-coercion.d.ts.map +1 -1
- package/dist/esm/utils/write-coercion.js +12 -1
- package/dist/esm/utils/write-coercion.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-normalizer.js","sourceRoot":"","sources":["../../../src/compilers/select-normalizer.ts"],"names":[],"mappings":";;;AAAA,sCAAqC;AAMrC,2CAAmD;AACnD,oDAK6B;AAG7B;;;;;;;;;;GAUG;AACH,MAAa,gBAAgB;IAO3B,YAAoB,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;QAN1C;;;WAGG;QACK,sBAAiB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAElB,CAAC;IAE9C,sFAAsF;IACtF,UAAU;QACR,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CACP,MAA+B,EAC/B,OAAuB;QAEvB,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK;gBAAE,SAAS;YAE/C,IAAA,0BAAa,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YAEzC,kEAAkE;YAClE,iEAAiE;YACjE,8DAA8D;YAC9D,gCAAgC;YAChC,MAAM,YAAY,GAChB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAChC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YAEtE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAC7C,SAAS,EACT,KAAK,EACL,OAAO,CACR,CAAC;gBACF,IAAI,cAAc;oBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAE/C,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEpD,IAAI,MAAM,EAAE,CAAC;gBACX,4BAA4B;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACrE,IAAI,OAAO;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEjC,SAAS;YACX,CAAC;YAED,iCAAiC;YACjC,IAAI,KAAK,KAAK,IAAI;gBAChB,KAAK,CAAC,IAAI,CAAC;oBACT,SAAS;oBACT,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE,KAAK;oBACrB,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;QACP,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,SAAiB,EACjB,KAAc,EACd,MAA4C;QAE5C,qFAAqF;QACrF,MAAM,SAAS,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,2DAA2D;QAC3D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;YACtD,OAAO;gBACL,SAAS;gBACT,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,KAAK;gBACnB,QAAQ;aACT,CAAC;QACJ,CAAC;QAED,sFAAsF;QACtF,IAAI,IAAA,0BAAa,EAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,KAAK,CAAC;YAClB,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC3B,GAAG,CAAC,MAAiC,EACrC,SAAS,CACV,CAAC;gBACF,wDAAwD;gBACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;oBACvB,QAAQ,GAAG;wBACT;4BACE,SAAS,EAAE,IAAI;4BACf,QAAQ,EAAE,IAAI;4BACd,cAAc,EAAE,KAAK;4BACrB,YAAY,EAAE,KAAK;yBACpB;qBACF,CAAC;gBAEJ,MAAM,IAAI,GAAkB;oBAC1B,SAAS;oBACT,QAAQ,EAAE,KAAK;oBACf,cAAc,EAAE,IAAI;oBACpB,YAAY,EAAE,KAAK;oBACnB,QAAQ;iBACT,CAAC;gBAEF,kDAAkD;gBAClD,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;oBAC5C,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,KAAgC,CAAC;gBAEhE,qCAAqC;gBACrC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;oBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAClC,GAAG,CAAC,OAAO,EACX,SAAS,EACT,SAAS,EACT,MAAM,CAAC,OAAO,CACf,CAAC;gBAEJ,OAAO,IAAI,CAAC;YACd,CAAC;YAED,mGAAmG;YACnG,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;gBACtD,MAAM,IAAI,GAAkB;oBAC1B,SAAS;oBACT,QAAQ,EAAE,KAAK;oBACf,cAAc,EAAE,IAAI;oBACpB,YAAY,EAAE,KAAK;oBACnB,QAAQ;oBACR,iBAAiB,EAAE,GAAG,CAAC,KAAgC;iBACxD,CAAC;gBAEF,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;oBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAClC,GAAG,CAAC,OAAO,EACX,SAAS,EACT,SAAS,EACT,MAAM,CAAC,OAAO,CACf,CAAC;gBAEJ,OAAO,IAAI,CAAC;YACd,CAAC;YAED,sEAAsE;YACtE,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;gBACtD,OAAO;oBACL,SAAS;oBACT,QAAQ,EAAE,KAAK;oBACf,cAAc,EAAE,IAAI;oBACpB,YAAY,EAAE,KAAK;oBACnB,QAAQ;oBACR,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAC5B,GAAG,CAAC,OAAO,EACX,SAAS,EACT,SAAS,EACT,MAAM,CAAC,OAAO,CACf;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,gBAAgB,CACtB,YAAqB,EACrB,SAAyB,EACzB,SAAiB,EACjB,OAAgB;QAEhB,IAAI,CAAC,OAAO;YACV,MAAM,IAAI,iBAAQ,CAChB,sDAAsD,SAAS,KAAK;gBAClE,gDAAgD,CACnD,CAAC;QAEJ,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAwD,EAAE,CAAC;QAEvE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;gBAC3C,MAAM,IAAI,iBAAQ,CAChB,0CAA0C,SAAS,KAAK;oBACtD,qDAAqD,CACxD,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,CAAC;YAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEnC,KAAK,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,OAAO,EAAE,CAAC;gBAChD,IAAA,0BAAa,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBAC1C,IAAA,iCAAoB,EAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBAEjD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;oBACtC,MAAM,IAAI,iBAAQ,CAChB,0BAA0B,SAAS,sBAAsB,SAAS,KAAK;wBACrE,sCAAsC,SAAS,CAAC,QAAQ,GAAG,CAC9D,CAAC;gBAEJ,MAAM,SAAS,GAAG,IAAA,gCAAmB,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,SAAiB,EACjB,KAAc,EACd,OAAuB;QAEvB,qDAAqD;QACrD,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,yDAAyD;QACzD,MAAM,SAAS,GAAG,IAAA,wBAAgB,EAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,IAAI,GAAkB;YAC1B,SAAS;YACT,QAAQ,EAAE,KAAK;YACf,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,IAAI;SACnB,CAAC;QAEF,IAAI,CAAC,IAAA,0BAAa,EAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEvC,MAAM,GAAG,GAAG,KAAK,CAAC;QAElB,uBAAuB;QACvB,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;YAC5C,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,KAAgC,CAAC;QAE9D,sDAAsD;QACtD,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;YAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,0BAA0B,CACtD,GAAG,CAAC,OAAO,EACX,SAAS,EACT,MAAM,EACN,SAAS,CACV,CAAC;QAEJ,4DAA4D;QAC5D,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAiC,CAAC;YAExD,0DAA0D;YAC1D,IAAI,SAAS,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK;oBACtD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC/B,CAAC;YAED,IAAI,SAAS,CAAC,KAAK,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAgC,CAAC;gBAE5D,gCAAgC;gBAChC,IAAI,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAA+B,CAAC;oBACzD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC7B,OAAO,CAAC,MAAiC,EACzC,SAAS,CACV,CAAC;wBACF,wDAAwD;wBACxD,IAAI,CAAC,QAAQ;4BACX,QAAQ,CAAC,MAAM,KAAK,CAAC;gCACnB,CAAC,CAAC;oCACE;wCACE,SAAS,EAAE,IAAI;wCACf,QAAQ,EAAE,IAAI;wCACd,cAAc,EAAE,KAAK;wCACrB,YAAY,EAAE,KAAK;qCACpB;iCACF;gCACH,CAAC,CAAC,QAAQ,CAAC;oBACjB,CAAC;gBACH,CAAC;gBAED,0CAA0C;gBAC1C,IAAI,QAAQ,CAAC,UAAU,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAqC,CAAC;oBAChE,IAAI,QAAQ,CAAC,MAAM,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;wBACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAC9C,QAAQ,CAAC,MAAiC,CAC3C,CAAC;gBACN,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,0BAA0B,CAChC,YAAqB,EACrB,SAAyB,EACzB,MAA8B,EAC9B,SAAiB;QAMjB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAC1E,MAAM,MAAM,GAIP,EAAE,CAAC;QAER,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;gBAC3C,MAAM,IAAI,iBAAQ,CAChB,wCAAwC,SAAS,KAAK;oBACpD,8FAA8F,CACjG,CAAC;YAEJ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC,CAAC;YAChE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACnC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBACpB,MAAM,IAAI,iBAAQ,CAChB,wCAAwC,SAAS,KAAK;oBACpD,oEAAoE,OAAO;yBACxE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;yBACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CACnB,CAAC;YAEJ,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM;gBAC5C,MAAM,IAAI,iBAAQ,CAChB,0BAA0B,QAAQ,oBAAoB,SAAS,KAAK;oBAClE,iGAAiG,CACpG,CAAC;YAEJ,IAAI,CAAC,IAAA,0BAAa,EAAC,UAAU,CAAC;gBAC5B,MAAM,IAAI,iBAAQ,CAChB,oBAAoB,QAAQ,0BAA0B,SAAS,KAAK;oBAClE,2CAA2C,CAC9C,CAAC;YAEJ,MAAM,KAAK,GAAG,QAA2B,CAAC;YAC1C,IAAI,YAES,CAAC;YACd,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,UAAU;oBACpB,MAAM,IAAI,iBAAQ,CAChB,kCAAkC,SAAS,kDAAkD;wBAC3F,uEAAuE,CAC1E,CAAC;gBACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,GAAG,CACrD,MAAM,CAAC,UAAU,CAClB,CAAC;gBACF,IAAI,CAAC,QAAQ;oBACX,MAAM,IAAI,iBAAQ,CAChB,kCAAkC,SAAS,kCAAkC;wBAC3E,IAAI,MAAM,CAAC,UAAU,iCAAiC,CACzD,CAAC;gBACJ,YAAY,GAAG,QAAQ,CAAC;YAC1B,CAAC;YAED,KAAK,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnE,IAAA,0BAAa,EAAC,SAAS,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC;gBACnD,IAAA,iCAAoB,EAAC,SAAS,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC;gBAE1D,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oBACrB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;wBACtC,MAAM,IAAI,iBAAQ,CAChB,+BAA+B,SAAS,oBAAoB,SAAS,KAAK;4BACxE,sCAAsC,SAAS,CAAC,QAAQ,GAAG,CAC9D,CAAC;gBACN,CAAC;qBAAM,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;oBACjD,MAAM,IAAI,iBAAQ,CAChB,+BAA+B,SAAS,oBAAoB,SAAS,KAAK;wBACxE,yDAAyD,MAAM,CAAC,UAAU,IAAI,CACjF,CAAC;gBAEJ,MAAM,SAAS,GAAG,IAAA,gCAAmB,EAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,uBAAuB,CAC7B,MAA+B;QAE/B,MAAM,KAAK,GAAoB,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,IAAA,0BAAa,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;YAC9C,IAAI,KAAK,KAAK,IAAI;gBAChB,KAAK,CAAC,IAAI,CAAC;oBACT,SAAS;oBACT,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE,KAAK;oBACrB,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;QACP,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAuB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,KAAK,GAAoB,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACT,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,KAAK;gBACrB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAjdD,4CAidC"}
|
|
1
|
+
{"version":3,"file":"select-normalizer.js","sourceRoot":"","sources":["../../../src/compilers/select-normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,23 @@ export interface SelectionNode {
|
|
|
58
58
|
* can't honour them throw instead of dropping them.
|
|
59
59
|
*/
|
|
60
60
|
hasArguments?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* v2.5.3 — the same response key selected on DIFFERENT fields by sibling
|
|
63
|
+
* inline fragments (`... on A { x: title } ... on B { x: body }`): the
|
|
64
|
+
* field each fragment type selected. Projected as a per-type CASE.
|
|
65
|
+
*/
|
|
66
|
+
fieldByType?: Record<string, string>;
|
|
67
|
+
/**
|
|
68
|
+
* Connection only (v2.5.3): selectionSet aliases of the connection's own
|
|
69
|
+
* keys. Pre-2.5.3 they were ignored and the keys always came back as
|
|
70
|
+
* `edges`, `node`, `properties` and `totalCount`.
|
|
71
|
+
*/
|
|
72
|
+
connectionAliases?: {
|
|
73
|
+
totalCount?: string;
|
|
74
|
+
edges?: string;
|
|
75
|
+
node?: string;
|
|
76
|
+
properties?: string;
|
|
77
|
+
};
|
|
61
78
|
}
|
|
62
79
|
/**
|
|
63
80
|
* Compiles a selection set (parsed SelectionNode[]) into a Cypher RETURN map projection.
|
|
@@ -149,6 +166,22 @@ export declare class SelectionCompiler {
|
|
|
149
166
|
* Parse the children of a connection field, extracting node and edge children.
|
|
150
167
|
*/
|
|
151
168
|
private parseConnectionChildren;
|
|
169
|
+
/**
|
|
170
|
+
* Keep the selectionSet alias of a connection key (v2.5.3). The first
|
|
171
|
+
* alias given for a key wins.
|
|
172
|
+
*/
|
|
173
|
+
private recordConnectionAlias;
|
|
174
|
+
/**
|
|
175
|
+
* Compile a relationship or connection field selected through inline
|
|
176
|
+
* fragments on an abstract type that does not declare it (v2.5.3):
|
|
177
|
+
* `CASE WHEN n:D THEN <D's projection> … END`, each branch compiled
|
|
178
|
+
* against the implementer — with its arguments and the target type's
|
|
179
|
+
* read policy. Pre-2.5.3 the field was looked up on the abstract type,
|
|
180
|
+
* not found, and silently dropped together with its arguments.
|
|
181
|
+
*
|
|
182
|
+
* Returns `null` (unchanged behaviour) when no fragment type declares it.
|
|
183
|
+
*/
|
|
184
|
+
private compileFragmentRelationship;
|
|
152
185
|
/**
|
|
153
186
|
* Compile a relationship field into a Cypher pattern comprehension.
|
|
154
187
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/selection.compiler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"selection.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/selection.compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,92 @@ const utils_1 = require("../schema/utils");
|
|
|
8
8
|
const cypher_field_projection_1 = require("../utils/cypher-field-projection");
|
|
9
9
|
const validation_1 = require("../utils/validation");
|
|
10
10
|
const where_compiler_1 = require("./where.compiler");
|
|
11
|
+
/**
|
|
12
|
+
* v2.5.3 — the printed arguments of a parsed selectionSet field, so a
|
|
13
|
+
* response key selected twice merges its sub-selections only when both
|
|
14
|
+
* selections carry the same arguments.
|
|
15
|
+
*/
|
|
16
|
+
const argumentKeys = new WeakMap();
|
|
17
|
+
function sameArguments(a, b) {
|
|
18
|
+
return (argumentKeys.get(a) ?? '') === (argumentKeys.get(b) ?? '');
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Merge `incoming` into `list` by response key (v2.5.3), as GraphQL merges
|
|
22
|
+
* a field selected more than once: sub-selections are unioned. Pre-2.5.3
|
|
23
|
+
* the second selection of a key was dropped with its sub-fields.
|
|
24
|
+
*
|
|
25
|
+
* - Same field, same arguments: children, edge children and `totalCount`
|
|
26
|
+
* merge recursively.
|
|
27
|
+
* - Same field, different arguments: the first selection wins (unchanged).
|
|
28
|
+
* - Different fields under one key, each selected by inline fragments on
|
|
29
|
+
* different types: recorded in `fieldByType` for a per-type projection.
|
|
30
|
+
* - A selection outside any fragment makes the field unconditional.
|
|
31
|
+
*/
|
|
32
|
+
function mergeSelection(list, seen, incoming) {
|
|
33
|
+
const key = incoming.alias ?? incoming.fieldName;
|
|
34
|
+
const existing = seen.get(key);
|
|
35
|
+
if (!existing) {
|
|
36
|
+
seen.set(key, incoming);
|
|
37
|
+
list.push(incoming);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (existing.fieldName !== incoming.fieldName || existing.fieldByType) {
|
|
41
|
+
mergeFragmentField(existing, incoming);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (existing.typeConditions && incoming.typeConditions)
|
|
45
|
+
existing.typeConditions = [
|
|
46
|
+
...new Set([...existing.typeConditions, ...incoming.typeConditions]),
|
|
47
|
+
];
|
|
48
|
+
// Also selected outside any fragment → unconditional.
|
|
49
|
+
else
|
|
50
|
+
delete existing.typeConditions;
|
|
51
|
+
if (!sameArguments(existing, incoming))
|
|
52
|
+
return;
|
|
53
|
+
if (incoming.children)
|
|
54
|
+
existing.children = mergeSelectionLists(existing.children, incoming.children);
|
|
55
|
+
if (incoming.edgeChildren)
|
|
56
|
+
existing.edgeChildren = mergeSelectionLists(existing.edgeChildren, incoming.edgeChildren);
|
|
57
|
+
if (existing.isConnection) {
|
|
58
|
+
if (incoming.totalCount)
|
|
59
|
+
existing.totalCount = true;
|
|
60
|
+
if (existing.totalCountOnly && !incoming.totalCountOnly)
|
|
61
|
+
delete existing.totalCountOnly;
|
|
62
|
+
if (incoming.connectionAliases)
|
|
63
|
+
existing.connectionAliases = {
|
|
64
|
+
...incoming.connectionAliases,
|
|
65
|
+
...existing.connectionAliases,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Two scalars under one key, from fragments on different types (v2.5.3). */
|
|
70
|
+
function mergeFragmentField(existing, incoming) {
|
|
71
|
+
// Only scalars selected by inline fragments can differ per type; any
|
|
72
|
+
// other clash keeps the first selection (unchanged).
|
|
73
|
+
if (!existing.isScalar ||
|
|
74
|
+
!incoming.isScalar ||
|
|
75
|
+
!existing.typeConditions ||
|
|
76
|
+
!incoming.typeConditions)
|
|
77
|
+
return;
|
|
78
|
+
const byType = existing.fieldByType ?? {};
|
|
79
|
+
if (!existing.fieldByType)
|
|
80
|
+
for (const t of existing.typeConditions)
|
|
81
|
+
byType[t] = existing.fieldName;
|
|
82
|
+
for (const t of incoming.typeConditions)
|
|
83
|
+
if (byType[t] === undefined)
|
|
84
|
+
byType[t] = incoming.fieldName;
|
|
85
|
+
existing.fieldByType = byType;
|
|
86
|
+
existing.typeConditions = [
|
|
87
|
+
...new Set([...existing.typeConditions, ...incoming.typeConditions]),
|
|
88
|
+
];
|
|
89
|
+
}
|
|
90
|
+
function mergeSelectionLists(base, extra) {
|
|
91
|
+
const list = [];
|
|
92
|
+
const seen = new Map();
|
|
93
|
+
for (const node of [...(base ?? []), ...extra])
|
|
94
|
+
mergeSelection(list, seen, node);
|
|
95
|
+
return list;
|
|
96
|
+
}
|
|
11
97
|
/** selectionSet field arguments the OGM honours, by field kind (v2.5.0). */
|
|
12
98
|
const RELATIONSHIP_ARGUMENTS = new Set(['where', 'options']);
|
|
13
99
|
const CONNECTION_ARGUMENTS = new Set(['where']);
|
|
@@ -229,6 +315,21 @@ class SelectionCompiler {
|
|
|
229
315
|
: `.${(0, validation_1.escapeIdentifier)(node.fieldName)}`);
|
|
230
316
|
continue;
|
|
231
317
|
}
|
|
318
|
+
// v2.5.3 — a relationship / connection field selected through an
|
|
319
|
+
// inline fragment on an abstract type that doesn't declare it.
|
|
320
|
+
// (Union relationship fields keep their per-member CASE below.)
|
|
321
|
+
if (isAbstract &&
|
|
322
|
+
node.typeConditions &&
|
|
323
|
+
(node.isConnection || !(unionMembers && unionMembers.length > 0)) &&
|
|
324
|
+
!nodeDef.relationships.has(node.isConnection
|
|
325
|
+
? node.fieldName.replace(/Connection$/, '')
|
|
326
|
+
: node.fieldName)) {
|
|
327
|
+
const fragmentCypher = this.compileFragmentRelationship(node, nodeVar, maxDepth, currentDepth, params, paramCounter, policyContext);
|
|
328
|
+
if (fragmentCypher) {
|
|
329
|
+
parts.push(`${key}: ${fragmentCypher}`);
|
|
330
|
+
continue;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
232
333
|
if (node.isConnection) {
|
|
233
334
|
const connectionCypher = this.compileConnection(node, nodeVar, nodeDef, maxDepth, currentDepth, params, paramCounter, policyContext);
|
|
234
335
|
if (connectionCypher)
|
|
@@ -265,27 +366,33 @@ class SelectionCompiler {
|
|
|
265
366
|
* as `@cypher`.
|
|
266
367
|
*/
|
|
267
368
|
compileFragmentScalar(node, key, nodeVar, nodeDef, cypherScope) {
|
|
268
|
-
|
|
369
|
+
// v2.5.3 — `fieldByType`: sibling fragments selected different fields
|
|
370
|
+
// under this key, so each type projects its own field.
|
|
371
|
+
const perType = node.fieldByType;
|
|
372
|
+
if (!perType && nodeDef.properties.get(node.fieldName)?.isCypher)
|
|
269
373
|
return null;
|
|
270
374
|
const members = [];
|
|
271
375
|
for (const typeName of node.typeConditions ?? []) {
|
|
272
376
|
const def = this.schema.nodes.get(typeName);
|
|
273
377
|
if (!def)
|
|
274
378
|
return null;
|
|
275
|
-
const
|
|
379
|
+
const field = perType?.[typeName] ?? node.fieldName;
|
|
380
|
+
(0, validation_1.assertSafeIdentifier)(field, 'selection field');
|
|
381
|
+
const prop = def.properties.get(field);
|
|
276
382
|
if (prop)
|
|
277
|
-
members.push({ def, prop });
|
|
383
|
+
members.push({ def, prop, field });
|
|
278
384
|
}
|
|
279
|
-
if (!
|
|
385
|
+
if (!perType &&
|
|
386
|
+
!members.some((m) => m.prop.isCypher && m.prop.cypherStatement))
|
|
280
387
|
return null;
|
|
281
|
-
const branches = members.map(({ def, prop }) => {
|
|
388
|
+
const branches = members.map(({ def, prop, field }) => {
|
|
282
389
|
let expr;
|
|
283
390
|
if (prop.isCypher && prop.cypherStatement)
|
|
284
391
|
expr = cypherScope
|
|
285
|
-
? cypherScope.register(
|
|
286
|
-
: (0, cypher_field_projection_1.buildInlineCypherFieldExpr)(prop.cypherStatement, nodeVar, `${def.typeName}.${
|
|
392
|
+
? cypherScope.register(field, prop, def.label)
|
|
393
|
+
: (0, cypher_field_projection_1.buildInlineCypherFieldExpr)(prop.cypherStatement, nodeVar, `${def.typeName}.${field}`);
|
|
287
394
|
else
|
|
288
|
-
expr = `${nodeVar}.${(0, validation_1.escapeIdentifier)(
|
|
395
|
+
expr = `${nodeVar}.${(0, validation_1.escapeIdentifier)(field)}`;
|
|
289
396
|
return `WHEN ${nodeVar}:${(0, validation_1.escapeIdentifier)(def.label)} THEN ${expr}`;
|
|
290
397
|
});
|
|
291
398
|
return `${(0, validation_1.escapeIdentifier)(key)}: CASE ${branches.join(' ')} END`;
|
|
@@ -351,23 +458,8 @@ class SelectionCompiler {
|
|
|
351
458
|
const fragment = sel;
|
|
352
459
|
const condition = fragment.typeCondition?.name.value ?? typeCondition;
|
|
353
460
|
if (fragment.selectionSet)
|
|
354
|
-
for (const merged of this.convertSelectionSet(fragment.selectionSet, condition))
|
|
355
|
-
|
|
356
|
-
const existing = seen.get(mergedKey);
|
|
357
|
-
if (!existing) {
|
|
358
|
-
seen.set(mergedKey, merged);
|
|
359
|
-
nodes.push(merged);
|
|
360
|
-
}
|
|
361
|
-
else if (existing.typeConditions)
|
|
362
|
-
existing.typeConditions = merged.typeConditions
|
|
363
|
-
? [
|
|
364
|
-
...new Set([
|
|
365
|
-
...existing.typeConditions,
|
|
366
|
-
...merged.typeConditions,
|
|
367
|
-
]),
|
|
368
|
-
]
|
|
369
|
-
: undefined;
|
|
370
|
-
}
|
|
461
|
+
for (const merged of this.convertSelectionSet(fragment.selectionSet, condition))
|
|
462
|
+
mergeSelection(nodes, seen, merged);
|
|
371
463
|
continue;
|
|
372
464
|
}
|
|
373
465
|
if (sel.kind !== graphql_1.Kind.FIELD)
|
|
@@ -377,14 +469,9 @@ class SelectionCompiler {
|
|
|
377
469
|
// v2.5.0 — fields are keyed by their OUTPUT name, so the same field
|
|
378
470
|
// under two aliases (`a: kids { .. } b: kids { .. }`) stays two
|
|
379
471
|
// selections. Pre-2.5.0 they collapsed into one.
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
// Also selected outside any fragment → unconditional.
|
|
384
|
-
if (typeCondition === undefined)
|
|
385
|
-
delete existing.typeConditions;
|
|
386
|
-
continue;
|
|
387
|
-
}
|
|
472
|
+
// v2.5.3 — a key selected twice is merged (see `mergeSelection`);
|
|
473
|
+
// the repeat's arguments are compared, not re-validated.
|
|
474
|
+
const existing = seen.get(field.alias?.value ?? fieldName);
|
|
388
475
|
const hasChildren = !!field.selectionSet;
|
|
389
476
|
const isConnection = fieldName.endsWith('Connection');
|
|
390
477
|
const node = {
|
|
@@ -396,16 +483,18 @@ class SelectionCompiler {
|
|
|
396
483
|
};
|
|
397
484
|
if (typeCondition !== undefined)
|
|
398
485
|
node.typeConditions = [typeCondition];
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
486
|
+
if (field.arguments && field.arguments.length > 0) {
|
|
487
|
+
argumentKeys.set(node, field.arguments.map((a) => (0, graphql_1.print)(a)).join(','));
|
|
488
|
+
if (!existing)
|
|
489
|
+
applyFieldArguments(field, node);
|
|
490
|
+
}
|
|
402
491
|
if (hasChildren && field.selectionSet)
|
|
403
492
|
if (isConnection)
|
|
404
493
|
// For connections, parse edges -> node and edges -> properties
|
|
405
494
|
this.parseConnectionChildren(field.selectionSet, node);
|
|
406
495
|
else
|
|
407
496
|
node.children = this.convertSelectionSet(field.selectionSet);
|
|
408
|
-
nodes
|
|
497
|
+
mergeSelection(nodes, seen, node);
|
|
409
498
|
}
|
|
410
499
|
return nodes;
|
|
411
500
|
}
|
|
@@ -419,25 +508,81 @@ class SelectionCompiler {
|
|
|
419
508
|
continue;
|
|
420
509
|
const field = sel;
|
|
421
510
|
assertNoArguments(field, `${parentNode.fieldName}.${field.name.value}`);
|
|
422
|
-
if (field.name.value === 'totalCount')
|
|
511
|
+
if (field.name.value === 'totalCount') {
|
|
423
512
|
parentNode.totalCount = true;
|
|
424
|
-
|
|
513
|
+
this.recordConnectionAlias(parentNode, 'totalCount', field);
|
|
514
|
+
}
|
|
515
|
+
if (field.name.value === 'edges') {
|
|
425
516
|
selectsEdges = true;
|
|
517
|
+
this.recordConnectionAlias(parentNode, 'edges', field);
|
|
518
|
+
}
|
|
426
519
|
if (field.name.value === 'edges' && field.selectionSet)
|
|
427
520
|
for (const edgeSel of field.selectionSet.selections) {
|
|
428
521
|
if (edgeSel.kind !== graphql_1.Kind.FIELD)
|
|
429
522
|
continue;
|
|
430
523
|
const edgeField = edgeSel;
|
|
431
524
|
assertNoArguments(edgeField, `${parentNode.fieldName}.edges.${edgeField.name.value}`);
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
if (edgeField.name.value === '
|
|
435
|
-
parentNode
|
|
525
|
+
// v2.5.3 — a repeated `edges { node { … } }` merges its
|
|
526
|
+
// sub-selections; pre-2.5.3 the last one replaced the others.
|
|
527
|
+
if (edgeField.name.value === 'node' && edgeField.selectionSet) {
|
|
528
|
+
this.recordConnectionAlias(parentNode, 'node', edgeField);
|
|
529
|
+
parentNode.children = mergeSelectionLists(parentNode.children, this.convertSelectionSet(edgeField.selectionSet));
|
|
530
|
+
}
|
|
531
|
+
if (edgeField.name.value === 'properties' && edgeField.selectionSet) {
|
|
532
|
+
this.recordConnectionAlias(parentNode, 'properties', edgeField);
|
|
533
|
+
parentNode.edgeChildren = mergeSelectionLists(parentNode.edgeChildren, this.convertSelectionSet(edgeField.selectionSet));
|
|
534
|
+
}
|
|
436
535
|
}
|
|
437
536
|
}
|
|
438
537
|
if (parentNode.totalCount && !selectsEdges)
|
|
439
538
|
parentNode.totalCountOnly = true;
|
|
440
539
|
}
|
|
540
|
+
/**
|
|
541
|
+
* Keep the selectionSet alias of a connection key (v2.5.3). The first
|
|
542
|
+
* alias given for a key wins.
|
|
543
|
+
*/
|
|
544
|
+
recordConnectionAlias(node, key, field) {
|
|
545
|
+
var _a;
|
|
546
|
+
const alias = field.alias?.value;
|
|
547
|
+
if (alias === undefined || alias === key)
|
|
548
|
+
return;
|
|
549
|
+
(0, validation_1.assertSafeIdentifier)(alias, 'selection alias');
|
|
550
|
+
node.connectionAliases ?? (node.connectionAliases = {});
|
|
551
|
+
(_a = node.connectionAliases)[key] ?? (_a[key] = alias);
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Compile a relationship or connection field selected through inline
|
|
555
|
+
* fragments on an abstract type that does not declare it (v2.5.3):
|
|
556
|
+
* `CASE WHEN n:D THEN <D's projection> … END`, each branch compiled
|
|
557
|
+
* against the implementer — with its arguments and the target type's
|
|
558
|
+
* read policy. Pre-2.5.3 the field was looked up on the abstract type,
|
|
559
|
+
* not found, and silently dropped together with its arguments.
|
|
560
|
+
*
|
|
561
|
+
* Returns `null` (unchanged behaviour) when no fragment type declares it.
|
|
562
|
+
*/
|
|
563
|
+
compileFragmentRelationship(node, nodeVar, maxDepth, currentDepth, params, paramCounter, policyContext = null) {
|
|
564
|
+
const relField = node.isConnection
|
|
565
|
+
? node.fieldName.replace(/Connection$/, '')
|
|
566
|
+
: node.fieldName;
|
|
567
|
+
const branches = [];
|
|
568
|
+
let singular = node.isConnection;
|
|
569
|
+
for (const typeName of node.typeConditions ?? []) {
|
|
570
|
+
const def = this.schema.nodes.get(typeName);
|
|
571
|
+
const relDef = def?.relationships.get(relField);
|
|
572
|
+
if (!def || !relDef)
|
|
573
|
+
continue;
|
|
574
|
+
if (!relDef.isArray)
|
|
575
|
+
singular = true;
|
|
576
|
+
const expr = node.isConnection
|
|
577
|
+
? this.compileConnection(node, nodeVar, def, maxDepth, currentDepth, params, paramCounter, policyContext)
|
|
578
|
+
: this.compileRelationship(node, nodeVar, def, maxDepth, currentDepth, params, paramCounter, policyContext);
|
|
579
|
+
if (expr)
|
|
580
|
+
branches.push(`WHEN ${nodeVar}:${(0, validation_1.escapeIdentifier)(def.label)} THEN ${expr}`);
|
|
581
|
+
}
|
|
582
|
+
if (branches.length === 0)
|
|
583
|
+
return null;
|
|
584
|
+
return `CASE ${branches.join(' ')} ELSE ${singular ? 'null' : '[]'} END`;
|
|
585
|
+
}
|
|
441
586
|
/**
|
|
442
587
|
* Compile a relationship field into a Cypher pattern comprehension.
|
|
443
588
|
*/
|
|
@@ -502,9 +647,15 @@ class SelectionCompiler {
|
|
|
502
647
|
params[name] = (0, neo4j_driver_1.int)(value);
|
|
503
648
|
return `$${name}`;
|
|
504
649
|
};
|
|
505
|
-
|
|
650
|
+
// v2.5.3 — a list slice bound must fit in 32 bits (and a JS number
|
|
651
|
+
// past 2^63 overflows the driver's Integer). No list is that long, so
|
|
652
|
+
// clamping keeps the result; pre-2.5.3 the query failed.
|
|
653
|
+
const INT32_MAX = 2147483647;
|
|
654
|
+
const start = Math.min(node.offset ?? 0, INT32_MAX);
|
|
506
655
|
const startRef = node.offset !== undefined ? bind(start) : '';
|
|
507
|
-
const endRef = node.limit !== undefined
|
|
656
|
+
const endRef = node.limit !== undefined
|
|
657
|
+
? bind(Math.min(start + node.limit, INT32_MAX))
|
|
658
|
+
: '';
|
|
508
659
|
return `[${startRef}..${endRef}]`;
|
|
509
660
|
}
|
|
510
661
|
/**
|
|
@@ -632,20 +783,36 @@ class SelectionCompiler {
|
|
|
632
783
|
});
|
|
633
784
|
const mapParts = [];
|
|
634
785
|
const projectionKeys = [];
|
|
786
|
+
// v2.5.3 — selectionSet aliases of the connection keys (validated when
|
|
787
|
+
// parsed); unaliased output is byte-identical.
|
|
788
|
+
const aliases = node.connectionAliases ?? {};
|
|
789
|
+
const nodeKey = aliases.node ? (0, validation_1.escapeIdentifier)(aliases.node) : 'node';
|
|
790
|
+
const propertiesKey = aliases.properties
|
|
791
|
+
? (0, validation_1.escapeIdentifier)(aliases.properties)
|
|
792
|
+
: 'properties';
|
|
793
|
+
const edgesKey = aliases.edges ? (0, validation_1.escapeIdentifier)(aliases.edges) : 'edges';
|
|
794
|
+
const totalCountKey = aliases.totalCount
|
|
795
|
+
? (0, validation_1.escapeIdentifier)(aliases.totalCount)
|
|
796
|
+
: 'totalCount';
|
|
635
797
|
// Compile node projection
|
|
636
798
|
if (node.children && node.children.length > 0) {
|
|
637
799
|
const nodeProjection = this.compile(node.children, childVar, targetDef, maxDepth, currentDepth + 1, params, paramCounter, null, policyContext);
|
|
638
|
-
mapParts.push(
|
|
639
|
-
projectionKeys.push(
|
|
800
|
+
mapParts.push(`${nodeKey}: ${nodeProjection}`);
|
|
801
|
+
projectionKeys.push(nodeKey);
|
|
640
802
|
}
|
|
641
803
|
// Compile edge properties projection
|
|
642
804
|
if (node.edgeChildren && node.edgeChildren.length > 0) {
|
|
643
805
|
const edgeFields = node.edgeChildren
|
|
644
806
|
.filter((c) => c.isScalar)
|
|
645
|
-
.map((c) =>
|
|
807
|
+
.map((c) => {
|
|
808
|
+
if (c.alias === undefined || c.alias === c.fieldName)
|
|
809
|
+
return `.${(0, validation_1.escapeIdentifier)(c.fieldName)}`;
|
|
810
|
+
(0, validation_1.assertSafeIdentifier)(c.alias, 'selection alias');
|
|
811
|
+
return `${(0, validation_1.escapeIdentifier)(c.alias)}: ${edgeVar}.${(0, validation_1.escapeIdentifier)(c.fieldName)}`;
|
|
812
|
+
})
|
|
646
813
|
.join(', ');
|
|
647
|
-
mapParts.push(
|
|
648
|
-
projectionKeys.push(
|
|
814
|
+
mapParts.push(`${propertiesKey}: ${edgeVar} { ${edgeFields} }`);
|
|
815
|
+
projectionKeys.push(propertiesKey);
|
|
649
816
|
}
|
|
650
817
|
// Inject synthetic sort scalars at the top level of the edge map so
|
|
651
818
|
// apoc.coll.sortMulti (which only accepts top-level keys) can order the
|
|
@@ -789,19 +956,19 @@ class SelectionCompiler {
|
|
|
789
956
|
// (same pattern, same `where`, same target `read` policy), so it can
|
|
790
957
|
// never count a node the caller cannot see. Pre-2.4.8 it was dropped.
|
|
791
958
|
const totalCount = node.totalCount
|
|
792
|
-
?
|
|
959
|
+
? `${totalCountKey}: size([${pattern}${whereClause} | 1])`
|
|
793
960
|
: '';
|
|
794
961
|
if (node.totalCountOnly)
|
|
795
962
|
return `{ ${totalCount} }`;
|
|
796
963
|
const withTotal = totalCount ? `, ${totalCount}` : '';
|
|
797
964
|
if (sortKeyTokens.length === 0)
|
|
798
|
-
return `{
|
|
965
|
+
return `{ ${edgesKey}: [${pattern}${whereClause} | ${innerMap}]${withTotal} }`;
|
|
799
966
|
// Re-project only the user-facing keys so synthetic __skN scalars don't
|
|
800
967
|
// leak out of the projection.
|
|
801
968
|
const outerProjection = projectionKeys.length > 0
|
|
802
969
|
? `{ ${projectionKeys.map((k) => `${k}: x.${k}`).join(', ')} }`
|
|
803
970
|
: `{}`;
|
|
804
|
-
return `{
|
|
971
|
+
return `{ ${edgesKey}: [x IN apoc.coll.sortMulti([${pattern}${whereClause} | ${innerMap}], [${sortKeyTokens.join(', ')}]) | ${outerProjection}]${withTotal} }`;
|
|
805
972
|
}
|
|
806
973
|
/**
|
|
807
974
|
* AND-combine an optional user where (`select.where` / `connectionWhere`)
|