@opensaas/stack-core 0.19.0 → 0.20.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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +80 -0
- package/dist/access/index.d.ts +1 -1
- package/dist/access/index.d.ts.map +1 -1
- package/dist/access/index.js.map +1 -1
- package/dist/access/types.d.ts +69 -2
- package/dist/access/types.d.ts.map +1 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +40 -14
- package/dist/context/index.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/query/index.d.ts +299 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +255 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/index.test.d.ts +2 -0
- package/dist/query/index.test.d.ts.map +1 -0
- package/dist/query/index.test.js +632 -0
- package/dist/query/index.test.js.map +1 -0
- package/package.json +6 -6
- package/src/access/index.ts +3 -0
- package/src/access/types.ts +83 -2
- package/src/context/index.ts +57 -24
- package/src/index.ts +14 -0
- package/src/query/index.test.ts +830 -0
- package/src/query/index.ts +505 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/query/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EACL,cAAc,EACd,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAA;AAuCnB,gEAAgE;AAChE,kDAAkD;AAClD,gEAAgE;AAEhE,SAAS,YAAY,CAAC,IAAe,EAAE,YAAsB;IAC3D,OAAO;QACL,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE,CAAC,IAAI,CAAC;QAChD,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;KAC7E,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAClB,SAA0D;IAE1D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAA;AAC1B,CAAC;AAED,gEAAgE;AAChE,gCAAgC;AAChC,gEAAgE;AAEhE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,IAAI,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAEtE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG,cAAc,EAAQ,CAAC;YAClC,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;SACN,CAAC,CAAA;QAEX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,IAAI;YACJ,OAAO;YACP,SAAS;YACT,WAAW;YACX,WAAW;YACX,UAAU;SACX,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAW,CAAC,CAAA;QAEhF,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,OAAO,GAAG,cAAc,EAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAW,CAAC,CAAA;QAE7E,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,gEAAgE;AAChE,qDAAqD;AACrD,gEAAgE;AAEhE,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,IAAI,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAW,CAAC,CAAA;QAGnF,MAAM,CAAC,GAAW,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;QACjE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,IAAI,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAW,CAAC,CAAA;QAEzE,kCAAkC;QAClC,MAAM,CAAC,GAAW,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC5C,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAW,CAAC,CAAA;QAEhF,uDAAuD;QACvD,MAAM,CAAC,GAAe,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QAC/C,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;QAC3B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,OAAO,GAAG,cAAc,EAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAW,CAAC,CAAA;QAE7E,MAAM,CAAC,GAAe,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QACnE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAW,CAAC,CAAA;QAC7F,MAAM,WAAW,GAAG,cAAc,EAAW,CAAC;YAC5C,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,QAAQ;SACN,CAAC,CAAA;QAEX,MAAM,CAAC,GAAkB;YACvB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;aACpC;SACF,CAAA;QACD,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,gEAAgE;AAChE,+BAA+B;AAC/B,gEAAgE;AAEhE,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAW,CAAC,CAAA;IAEvF,MAAM,QAAQ,GAAW;QACvB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE;QAC9E,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE;KACjF,CAAA;IAED,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE3C,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAErC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACzD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAErD,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC/B,yCAAyC;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAA;QAChF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;QAC5E,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE3C,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE;YACpC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACxB,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;SACR,CAAC,CAAA;QAEF,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC;YAC7C,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACxB,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;SACR,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QACjC,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE/C,MAAM,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAW,CAAC,CAAC,CAAA;QAE9E,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACnD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACrD,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACnD,MAAM,OAAO,GAAG,cAAc,EAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC;YACtC,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,OAAO;SACL,CAAC,CAAA;QAEX,MAAM,QAAQ,GAAG;YACf;gBACE,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;gBACjC,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,gBAAgB;oBACvB,IAAI,EAAE,OAAO;oBACb,GAAG,EAAE,IAAI;iBACV;gBACD,IAAI,EAAE;oBACJ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE;oBACpD,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;iBACzC;aACF;SACF,CAAA;QAED,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;YACvC,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YAE3C,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;YAErC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAC5C,MAAM,CAAC,gBAAgB,CAAC;gBACtB,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;aACtC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACzD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;YAErD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAA;YACvF,4CAA4C;YAC5C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACpD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YACzD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;YAErD,+CAA+C;YAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YACrD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;YACpE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,UAAU,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;YAC5E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAW,CAAC,CAAA;YAElF,MAAM,OAAO,GAAG;gBACd,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,EAAE;aACT,CAAA;YAED,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;YAC1D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;YAErD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,UAAU,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;YAC5E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC;gBACtC,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,UAAU;aACV,CAAC,CAAA;YACX,MAAM,WAAW,GAAG,cAAc,EAAW,CAAC;gBAC5C,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,QAAQ;aACN,CAAC,CAAA;YAEX,MAAM,GAAG,GAAG;gBACV;oBACE,EAAE,EAAE,IAAI;oBACR,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE;wBACJ,EAAE,EAAE,IAAI;wBACR,KAAK,EAAE,OAAO;wBACd,OAAO,EAAE,MAAM;wBACf,SAAS,EAAE,IAAI;wBACf,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;wBAC9E,IAAI,EAAE,EAAE;qBACT;oBACD,MAAM,EAAE,IAAI;iBACb;aACF,CAAA;YAED,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;YAClC,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;YAE9C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;YAE3D,6BAA6B;YAC7B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAC5C,MAAM,CAAC,gBAAgB,CAAC;gBACtB,OAAO,EAAE;oBACP,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;iBACpC;aACF,CAAC,CACH,CAAA;YAED,eAAe;YACf,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE;oBACJ,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;iBACpC;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,gEAAgE;AAChE,kCAAkC;AAClC,gEAAgE;AAEhE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAW,CAAC,CAAA;IAEvF,MAAM,OAAO,GAAS;QACpB,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,IAAI;KACV,CAAA;IAED,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE3C,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAEtD,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAErE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAA;QAC5E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE3C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAEvE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,QAAQ,GAAG;YACf,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/B,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;SACnC,CAAA;QACD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE3C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAEvE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,UAAU,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAC5E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAW,CAAC,CAAA;QAE/F,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;YAC9E,IAAI,EAAE,EAAE;SACT,CAAA;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE3C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAErE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC;YAC9C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;YACnB,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SAC1B,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;SACpC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QAE/C,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAW,CAAC,EAAE;YAChF,EAAE,EAAE,IAAI;SACT,CAAC,CAAA;QAEF,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,gEAAgE;AAChE,qCAAqC;AACrC,gEAAgE;AAEhE,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAW,CAAC,CAAA;QAChF,MAAM,WAAW,GAAG,cAAc,EAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAW,CAAC,CAAA;QAEtF,iDAAiD;QACjD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC;YACtC,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,QAAQ;SACR,CAAC,CAAA;QACX,MAAM,WAAW,GAAG,cAAc,EAAW,CAAC;YAC5C,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,QAAQ;SACN,CAAC,CAAA;QAEX,+CAA+C;QAC/C,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1C,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,IAA4C,CAAA;QAC3F,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACjD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAGpD,CAAA;QACD,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,gEAAgE;AAChE,6BAA6B;AAC7B,gEAAgE;AAEhE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,IAAI,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAW,CAAC,CAAA;QAC1D,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,IAAI,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAW,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAA;QACzD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1C,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAmBF,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAW,CAAC,CAAA;QAChF,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAkC,CAAC,CAAA;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,WAAW,GAAG,cAAc,EAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QACjF,MAAM,QAAQ,GAAG,cAAc,EAAoB,CAAC;YAClD,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE;gBACR,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;aAC1B;SACO,CAAC,CAAA;QAEX,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAkC,CAAC,CAAA;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;SACxC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,WAAW,GAAG,cAAc,EAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAW,CAAC,CAAA;QACrE,MAAM,QAAQ,GAAG,cAAc,EAAoB,CAAC;YAClD,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE;gBACR,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACzB,OAAO,EAAE,EAAE,EAAE,EAAE,KAAc,EAAE;gBAC/B,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,EAAE;aACT;SACO,CAAC,CAAA;QAEX,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAkC,CAAC,CAAA;QACxE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,QAAQ,EAAE;gBACR,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACzB,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;gBACtB,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,EAAE;aACT;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAC1E,MAAM,qBAAqB,GAAG,cAAc,EAAW,CAAC;YACtD,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,QAAQ;SACR,CAAC,CAAA;QACX,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC;YACtC,EAAE,EAAE,IAAI;YACR,kEAAkE;YAClE,MAAM,EAAE;gBACN,KAAK,EAAE,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAW,CAAC;gBACpD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;aACzB;SACO,CAAC,CAAA;QAEX,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAkC,CAAC,CAAA;QACxE,8EAA8E;QAC9E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;SACrC,CAAC,CAAA;QAEF,gFAAgF;QAChF,MAAM,eAAe,GAAG,cAAc,EAAW,CAAC;YAChD,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,QAAQ;SACR,CAAC,CAAA;QACX,MAAM,OAAO,GAAG,YAAY,CAAC,qBAAqB,CAAC,OAAkC,CAAC,CAAA;QACtF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACzC,mCAAmC;QACnC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,IAAI,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAW,CAAC,CAAA;QACnF,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,OAAkC,CAAC,CAAA;QACpE,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,gEAAgE;AAChE,uCAAuC;AACvC,gEAAgE;AAEhE,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,WAAW,GAAG,cAAc,EAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QACjF,MAAM,QAAQ,GAAG,cAAc,EAAoB,CAAC;YAClD,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;SACnD,CAAC,CAAA;QAEX,MAAM,GAAG,GAAG;YACV,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC5C,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;aAC5C;SACF,CAAA;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;aAC3B;SACF,CAAC,CAAA;QACF,wBAAwB;QACxB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAC1C,iCAAiC;QACjC,MAAM,CAAE,MAAM,CAAC,QAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,cAAc,EAAQ,CAAC;YACtC,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;SAC7C,CAAC,CAAA;QAEX,MAAM,GAAG,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,gEAAgE;AAChE,+CAA+C;AAC/C,gEAAgE;AAEhE,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,WAAW,GAAG,cAAc,EAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QACjF,MAAM,QAAQ,GAAG,cAAc,EAAoB,CAAC;YAClD,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE;gBACR,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACzB,OAAO,EAAE,EAAE,EAAE,EAAE,KAAc,EAAE;gBAC/B,IAAI,EAAE,CAAC;aACR;SACO,CAAC,CAAA;QAEX,MAAM,QAAQ,GAAG;YACf;gBACE,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;aACzD;SACF,CAAA;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEvD,MAAM,QAAQ,CAAC,GAAG,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAA;QAEjD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAC5C,MAAM,CAAC,gBAAgB,CAAC;YACtB,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;aACzE;SACF,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,WAAW,GAAG,cAAc,EAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QACjF,MAAM,QAAQ,GAAG,cAAc,EAAoB,CAAC;YAClD,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;SACnD,CAAC,CAAA;QAEX,MAAM,QAAQ,GAAG;YACf;gBACE,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,OAAO;gBACd,QAAQ,EAAE;oBACR,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC1C,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;iBAC1C;aACF;SACF,CAAA;QAED,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,gBAAgB,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACrE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAA;QAEjE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzB,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE;gBACR,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1B,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;aACzB;SACF,CAAC,CAAA;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,gEAAgE;AAChE,uCAAuC;AACvC,gEAAgE;AAEhE,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,WAAW,GAAG,cAAc,EAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAEjF,SAAS,YAAY,CAAC,YAAqB;YACzC,OAAO,cAAc,EAAoB,CAAC;gBACxC,EAAE,EAAE,IAAI;gBACR,QAAQ,EAAE;oBACR,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE;iBAClC;aACO,CAAC,CAAA;QACb,CAAC;QAED,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QAEnC,MAAM,eAAe,GAAG,YAAY,CAAC,YAAY,CAAC,OAAkC,CAAC,CAAA;QACrF,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,OAAkC,CAAC,CAAA;QAE3E,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;QAC5E,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,WAAW,GAAG,cAAc,EAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAW,CAAC,CAAA;QAEjF,MAAM,YAAY,GAAG,CAAC,MAAe,EAAE,EAAE,CACvC,cAAc,EAAoB,CAAC;YACjC,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;SACrD,CAAC,CAAA;QAEb,mEAAmE;QACnE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAGnC,2DAA2D;QAC3D,MAAM,CAAC,GAAa,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;QACtE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensaas/stack-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "Core stack for OpenSaas - schema definition, access control, and runtime utilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -45,14 +45,14 @@
|
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"bcryptjs": "^3.0.3",
|
|
48
|
-
"zod": "^4.
|
|
48
|
+
"zod": "^4.3.6"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@prisma/client": "^7.
|
|
52
|
-
"@types/node": "^24.
|
|
53
|
-
"@vitest/coverage-v8": "^4.0.
|
|
51
|
+
"@prisma/client": "^7.4.2",
|
|
52
|
+
"@types/node": "^24.12.0",
|
|
53
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
54
54
|
"typescript": "^5.9.3",
|
|
55
|
-
"vitest": "^4.0.
|
|
55
|
+
"vitest": "^4.0.18"
|
|
56
56
|
},
|
|
57
57
|
"scripts": {
|
|
58
58
|
"build": "tsc",
|
package/src/access/index.ts
CHANGED
package/src/access/types.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Fragment, FieldSelection, ResultOf } from '../query/index.js'
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Session interface - can be augmented by developers to add custom fields
|
|
3
5
|
*
|
|
@@ -57,6 +59,85 @@ export type PrismaModelDelegate = {
|
|
|
57
59
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
60
|
export type PrismaClientLike = any
|
|
59
61
|
|
|
62
|
+
// ─────────────────────────────────────────────────────────────
|
|
63
|
+
// Augmented find operation types — add `query` overload to findMany / findUnique
|
|
64
|
+
// ─────────────────────────────────────────────────────────────
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Extra query arguments accepted when a `query` Fragment is provided alongside
|
|
68
|
+
* `context.db.<list>.findMany({ query: myFragment, ... })`.
|
|
69
|
+
*/
|
|
70
|
+
export type FindManyQueryArgs = {
|
|
71
|
+
where?: Record<string, unknown>
|
|
72
|
+
orderBy?: Record<string, 'asc' | 'desc'> | Array<Record<string, 'asc' | 'desc'>>
|
|
73
|
+
take?: number
|
|
74
|
+
skip?: number
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Overloaded `findMany` that accepts an optional `query` Fragment.
|
|
79
|
+
*
|
|
80
|
+
* - **With `query`**: builds the Prisma `include` from the fragment, executes the
|
|
81
|
+
* query, applies access control, and returns records shaped to `ResultOf<fragment>[]`.
|
|
82
|
+
* - **Without `query`**: behaves exactly like the original Prisma `findMany`.
|
|
83
|
+
*
|
|
84
|
+
* TypeScript resolves the return type from the presence (or absence) of `query`
|
|
85
|
+
* in the argument object — no explicit type annotation is needed.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* // Narrowed return type from fragment
|
|
90
|
+
* const posts = await context.db.post.findMany({
|
|
91
|
+
* query: postFragment,
|
|
92
|
+
* where: { published: true },
|
|
93
|
+
* orderBy: { createdAt: 'desc' },
|
|
94
|
+
* take: 10,
|
|
95
|
+
* })
|
|
96
|
+
* // posts: ResultOf<typeof postFragment>[]
|
|
97
|
+
*
|
|
98
|
+
* // Original Prisma behaviour (no fragment)
|
|
99
|
+
* const posts = await context.db.post.findMany({ where: { published: true } })
|
|
100
|
+
* // posts: Post[]
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
104
|
+
export interface AugmentedFindMany<TOriginal extends (...args: any[]) => any> {
|
|
105
|
+
// Overload 1: with query fragment — return type narrows to ResultOf<fragment>[]
|
|
106
|
+
<TItem, TFields extends FieldSelection<TItem>>(
|
|
107
|
+
args: FindManyQueryArgs & { query: Fragment<TItem, TFields> },
|
|
108
|
+
): Promise<ResultOf<Fragment<TItem, TFields>>[]>
|
|
109
|
+
// Overload 2: original Prisma behaviour
|
|
110
|
+
(...args: Parameters<TOriginal>): ReturnType<TOriginal>
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Overloaded `findUnique` that accepts an optional `query` Fragment.
|
|
115
|
+
*
|
|
116
|
+
* - **With `query`**: builds the Prisma `include` from the fragment, executes the
|
|
117
|
+
* query, applies access control, and returns a record shaped to `ResultOf<fragment>`
|
|
118
|
+
* or `null`.
|
|
119
|
+
* - **Without `query`**: behaves exactly like the original Prisma `findUnique`.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```ts
|
|
123
|
+
* const post = await context.db.post.findUnique({
|
|
124
|
+
* where: { id: postId },
|
|
125
|
+
* query: postFragment,
|
|
126
|
+
* })
|
|
127
|
+
* // post: ResultOf<typeof postFragment> | null
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
131
|
+
export interface AugmentedFindUnique<TOriginal extends (...args: any[]) => any> {
|
|
132
|
+
// Overload 1: with query fragment — return type narrows to ResultOf<fragment> | null
|
|
133
|
+
<TItem, TFields extends FieldSelection<TItem>>(args: {
|
|
134
|
+
where: Record<string, unknown>
|
|
135
|
+
query: Fragment<TItem, TFields>
|
|
136
|
+
}): Promise<ResultOf<Fragment<TItem, TFields>> | null>
|
|
137
|
+
// Overload 2: original Prisma behaviour
|
|
138
|
+
(...args: Parameters<TOriginal>): ReturnType<TOriginal>
|
|
139
|
+
}
|
|
140
|
+
|
|
60
141
|
/**
|
|
61
142
|
* Map Prisma client to access-controlled database context
|
|
62
143
|
* Preserves Prisma's type information for each model
|
|
@@ -79,8 +160,8 @@ export type AccessControlledDB<TPrisma extends PrismaClientLike> = {
|
|
|
79
160
|
count: any
|
|
80
161
|
}
|
|
81
162
|
? {
|
|
82
|
-
findUnique: TPrisma[K]['findUnique']
|
|
83
|
-
findMany: TPrisma[K]['findMany']
|
|
163
|
+
findUnique: AugmentedFindUnique<TPrisma[K]['findUnique']>
|
|
164
|
+
findMany: AugmentedFindMany<TPrisma[K]['findMany']>
|
|
84
165
|
create: TPrisma[K]['create']
|
|
85
166
|
update: TPrisma[K]['update']
|
|
86
167
|
delete: TPrisma[K]['delete']
|
package/src/context/index.ts
CHANGED
|
@@ -20,6 +20,7 @@ import { processNestedOperations } from './nested-operations.js'
|
|
|
20
20
|
import { getDbKey } from '../lib/case-utils.js'
|
|
21
21
|
import type { PrismaClientLike } from '../access/types.js'
|
|
22
22
|
import type { FieldConfig } from '../config/types.js'
|
|
23
|
+
import { buildInclude, pickFields, isFragment } from '../query/index.js'
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* Execute field-level resolveInput hooks
|
|
@@ -610,7 +611,12 @@ function createFindUnique<TPrisma extends PrismaClientLike>(
|
|
|
610
611
|
context: AccessContext<TPrisma>,
|
|
611
612
|
config: OpenSaasConfig,
|
|
612
613
|
) {
|
|
613
|
-
return async (args: {
|
|
614
|
+
return async (args: {
|
|
615
|
+
where: { id: string }
|
|
616
|
+
include?: Record<string, unknown>
|
|
617
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
618
|
+
query?: any
|
|
619
|
+
}) => {
|
|
614
620
|
// Check query access (skip if sudo mode)
|
|
615
621
|
let where: Record<string, unknown> = args.where
|
|
616
622
|
if (!context._isSudo) {
|
|
@@ -632,18 +638,26 @@ function createFindUnique<TPrisma extends PrismaClientLike>(
|
|
|
632
638
|
where = mergedWhere
|
|
633
639
|
}
|
|
634
640
|
|
|
635
|
-
//
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
context,
|
|
641
|
-
},
|
|
642
|
-
config,
|
|
643
|
-
)
|
|
641
|
+
// When a query fragment is provided, build the include from the fragment
|
|
642
|
+
// instead of the access-controlled include. Access control still runs via
|
|
643
|
+
// filterReadableFields; the fragment then narrows to only the requested fields.
|
|
644
|
+
const fragment = isFragment(args.query) ? args.query : null
|
|
645
|
+
let include: Record<string, unknown> | undefined
|
|
644
646
|
|
|
645
|
-
|
|
646
|
-
|
|
647
|
+
if (fragment) {
|
|
648
|
+
include = buildInclude(fragment._fields) ?? undefined
|
|
649
|
+
} else {
|
|
650
|
+
// Build include with access control filters
|
|
651
|
+
const accessControlledInclude = await buildIncludeWithAccessControl(
|
|
652
|
+
listConfig.fields,
|
|
653
|
+
{
|
|
654
|
+
session: context.session,
|
|
655
|
+
context,
|
|
656
|
+
},
|
|
657
|
+
config,
|
|
658
|
+
)
|
|
659
|
+
include = args.include || accessControlledInclude
|
|
660
|
+
}
|
|
647
661
|
|
|
648
662
|
// Execute query with optimized includes
|
|
649
663
|
// Access Prisma model dynamically - required because model names are generated at runtime
|
|
@@ -672,6 +686,11 @@ function createFindUnique<TPrisma extends PrismaClientLike>(
|
|
|
672
686
|
listName,
|
|
673
687
|
)
|
|
674
688
|
|
|
689
|
+
// When a fragment is provided, pick only the requested fields from the result
|
|
690
|
+
if (fragment) {
|
|
691
|
+
return pickFields(filtered, fragment._fields)
|
|
692
|
+
}
|
|
693
|
+
|
|
675
694
|
return filtered
|
|
676
695
|
}
|
|
677
696
|
}
|
|
@@ -689,9 +708,12 @@ function createFindMany<TPrisma extends PrismaClientLike>(
|
|
|
689
708
|
) {
|
|
690
709
|
return async (args?: {
|
|
691
710
|
where?: Record<string, unknown>
|
|
711
|
+
orderBy?: Record<string, 'asc' | 'desc'> | Array<Record<string, 'asc' | 'desc'>>
|
|
692
712
|
take?: number
|
|
693
713
|
skip?: number
|
|
694
714
|
include?: Record<string, unknown>
|
|
715
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
716
|
+
query?: any
|
|
695
717
|
}) => {
|
|
696
718
|
// Check singleton constraint (throw error instead of silently returning empty)
|
|
697
719
|
if (isSingletonList(listConfig)) {
|
|
@@ -722,18 +744,23 @@ function createFindMany<TPrisma extends PrismaClientLike>(
|
|
|
722
744
|
where = mergedWhere
|
|
723
745
|
}
|
|
724
746
|
|
|
725
|
-
//
|
|
726
|
-
const
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
747
|
+
// When a query fragment is provided, build include from fragment fields
|
|
748
|
+
const fragment = isFragment(args?.query) ? args.query : null
|
|
749
|
+
let include: Record<string, unknown> | undefined
|
|
750
|
+
if (fragment) {
|
|
751
|
+
include = buildInclude(fragment._fields) ?? undefined
|
|
752
|
+
} else {
|
|
753
|
+
// Build include with access control filters
|
|
754
|
+
const accessControlledInclude = await buildIncludeWithAccessControl(
|
|
755
|
+
listConfig.fields,
|
|
756
|
+
{
|
|
757
|
+
session: context.session,
|
|
758
|
+
context,
|
|
759
|
+
},
|
|
760
|
+
config,
|
|
761
|
+
)
|
|
762
|
+
include = args?.include || accessControlledInclude
|
|
763
|
+
}
|
|
737
764
|
|
|
738
765
|
// Execute query with optimized includes
|
|
739
766
|
// Access Prisma model dynamically - required because model names are generated at runtime
|
|
@@ -741,6 +768,7 @@ function createFindMany<TPrisma extends PrismaClientLike>(
|
|
|
741
768
|
const model = (prisma as any)[getDbKey(listName)]
|
|
742
769
|
const items = await model.findMany({
|
|
743
770
|
where,
|
|
771
|
+
orderBy: args?.orderBy,
|
|
744
772
|
take: args?.take,
|
|
745
773
|
skip: args?.skip,
|
|
746
774
|
include,
|
|
@@ -764,6 +792,11 @@ function createFindMany<TPrisma extends PrismaClientLike>(
|
|
|
764
792
|
),
|
|
765
793
|
)
|
|
766
794
|
|
|
795
|
+
// When a fragment is provided, pick only the requested fields from each result
|
|
796
|
+
if (fragment) {
|
|
797
|
+
return filtered.map((item: Record<string, unknown>) => pickFields(item, fragment._fields))
|
|
798
|
+
}
|
|
799
|
+
|
|
767
800
|
return filtered
|
|
768
801
|
}
|
|
769
802
|
}
|
package/src/index.ts
CHANGED
|
@@ -60,6 +60,9 @@ export type {
|
|
|
60
60
|
PrismaFilter,
|
|
61
61
|
AccessControlledDB,
|
|
62
62
|
StorageUtils,
|
|
63
|
+
AugmentedFindMany,
|
|
64
|
+
AugmentedFindUnique,
|
|
65
|
+
FindManyQueryArgs,
|
|
63
66
|
} from './access/index.js'
|
|
64
67
|
|
|
65
68
|
// Context
|
|
@@ -89,3 +92,14 @@ export {
|
|
|
89
92
|
isHashedPassword,
|
|
90
93
|
HashedPassword,
|
|
91
94
|
} from './utils/password.js'
|
|
95
|
+
|
|
96
|
+
// Query utilities — fragment-based, type-safe query helpers
|
|
97
|
+
export { defineFragment, runQuery, runQueryOne } from './query/index.js'
|
|
98
|
+
export type {
|
|
99
|
+
Fragment,
|
|
100
|
+
FieldSelection,
|
|
101
|
+
ResultOf,
|
|
102
|
+
RelationSelector,
|
|
103
|
+
QueryArgs,
|
|
104
|
+
QueryRunnerContext,
|
|
105
|
+
} from './query/index.js'
|