@querypanel/node-sdk 1.0.8 → 1.0.10
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/README.md +174 -0
- package/dist/cjs/adapters/clickhouse.d.ts +36 -0
- package/dist/cjs/adapters/clickhouse.d.ts.map +1 -0
- package/dist/cjs/adapters/clickhouse.js +259 -0
- package/dist/cjs/adapters/clickhouse.js.map +1 -0
- package/dist/cjs/adapters/introspection.spec.d.ts +2 -0
- package/dist/cjs/adapters/introspection.spec.d.ts.map +1 -0
- package/dist/cjs/adapters/introspection.spec.js +201 -0
- package/dist/cjs/adapters/introspection.spec.js.map +1 -0
- package/dist/cjs/adapters/postgres.d.ts +35 -0
- package/dist/cjs/adapters/postgres.d.ts.map +1 -0
- package/dist/cjs/adapters/postgres.js +407 -0
- package/dist/cjs/adapters/postgres.js.map +1 -0
- package/dist/cjs/adapters/types.d.ts +36 -0
- package/dist/cjs/adapters/types.d.ts.map +1 -0
- package/dist/cjs/adapters/types.js +3 -0
- package/dist/cjs/adapters/types.js.map +1 -0
- package/dist/cjs/anonymize.spec.d.ts +2 -0
- package/dist/cjs/anonymize.spec.d.ts.map +1 -0
- package/dist/cjs/anonymize.spec.js +80 -0
- package/dist/cjs/anonymize.spec.js.map +1 -0
- package/dist/cjs/clickhouseClient.spec.d.ts +2 -0
- package/dist/cjs/clickhouseClient.spec.d.ts.map +1 -0
- package/dist/cjs/clickhouseClient.spec.js +286 -0
- package/dist/cjs/clickhouseClient.spec.js.map +1 -0
- package/dist/cjs/index.d.ts +101 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +321 -53
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.test.js +52 -7
- package/dist/cjs/index.test.js.map +1 -1
- package/dist/cjs/multidb.spec.d.ts +2 -0
- package/dist/cjs/multidb.spec.d.ts.map +1 -0
- package/dist/cjs/multidb.spec.js +76 -0
- package/dist/cjs/multidb.spec.js.map +1 -0
- package/dist/esm/adapters/clickhouse.d.ts +36 -0
- package/dist/esm/adapters/clickhouse.d.ts.map +1 -0
- package/dist/esm/adapters/clickhouse.js +255 -0
- package/dist/esm/adapters/clickhouse.js.map +1 -0
- package/dist/esm/adapters/introspection.spec.d.ts +2 -0
- package/dist/esm/adapters/introspection.spec.d.ts.map +1 -0
- package/dist/esm/adapters/introspection.spec.js +199 -0
- package/dist/esm/adapters/introspection.spec.js.map +1 -0
- package/dist/esm/adapters/postgres.d.ts +35 -0
- package/dist/esm/adapters/postgres.d.ts.map +1 -0
- package/dist/esm/adapters/postgres.js +403 -0
- package/dist/esm/adapters/postgres.js.map +1 -0
- package/dist/esm/adapters/types.d.ts +36 -0
- package/dist/esm/adapters/types.d.ts.map +1 -0
- package/dist/esm/adapters/types.js +2 -0
- package/dist/esm/adapters/types.js.map +1 -0
- package/dist/esm/anonymize.spec.d.ts +2 -0
- package/dist/esm/anonymize.spec.d.ts.map +1 -0
- package/dist/esm/anonymize.spec.js +78 -0
- package/dist/esm/anonymize.spec.js.map +1 -0
- package/dist/esm/clickhouseClient.spec.d.ts +2 -0
- package/dist/esm/clickhouseClient.spec.d.ts.map +1 -0
- package/dist/esm/clickhouseClient.spec.js +281 -0
- package/dist/esm/clickhouseClient.spec.js.map +1 -0
- package/dist/esm/index.d.ts +101 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +320 -53
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.test.js +52 -7
- package/dist/esm/index.test.js.map +1 -1
- package/dist/esm/multidb.spec.d.ts +2 -0
- package/dist/esm/multidb.spec.d.ts.map +1 -0
- package/dist/esm/multidb.spec.js +74 -0
- package/dist/esm/multidb.spec.js.map +1 -0
- package/package.json +5 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/adapters/postgres.ts"],"names":[],"mappings":";;;AAiFA,MAAa,eAAe;IAK1B,YACmB,QAA0B,EAC3C,UAAkC,EAAE;QADnB,aAAQ,GAAR,QAAQ,CAAkB;QAG3C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,QAAQ,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,GAAW,EACX,MAAwE;QAExE,0DAA0D;QAC1D,IAAI,UAAiC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,GAAG,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACK,8BAA8B,CACpC,MAAuE;QAEvE,qCAAqC;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzB,yBAAyB;QACzB,MAAM,gBAAgB,GAAc,EAAE,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,UAAU;QACR,OAAO,UAAmB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA2B;QAC1C,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEnF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,YAAY,CAAC,IAAkB,CAAC;QAElD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CACvC,iBAAiB,CAAC,gBAAgB,CAAC,CACpC,CAAC;QACF,MAAM,UAAU,GAAG,aAAa,CAAC,IAAmB,CAAC;QAErD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC3C,qBAAqB,CAAC,gBAAgB,CAAC,CACxC,CAAC;QACF,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAuB,CAAC;QAEjE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CACvC,iBAAiB,CAAC,gBAAgB,CAAC,CACpC,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAAC,IAAkB,CAAC;QAEnD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqC,CAAC;QAElE,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,oBAAoB,CACrC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EACxB,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAC1B,CAAC;YAEF,MAAM,KAAK,GAAgB;gBACzB,IAAI,EAAE,GAAG,CAAC,UAAU;gBACpB,MAAM,EAAE,GAAG,CAAC,WAAW;gBACvB,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;gBACjC,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,EAAE;aAChB,CAAC;YAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,CAAC;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;YAChC,CAAC;YAED,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,MAAM,MAAM,GAAiB;gBAC3B,IAAI,EAAE,GAAG,CAAC,WAAW;gBACrB,IAAI,EAAE,GAAG,CAAC,SAAS;gBACnB,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,KAAK;gBACjD,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAE,KAAK;aACpB,CAAC;YAEF,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC;YAC1C,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAEpD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACvD,IAAI,iBAAiB,KAAK,SAAS;gBAAE,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAElF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAEpD,MAAM,SAAS,GAAG,GAAG,CAAC,wBAAwB,IAAI,SAAS,CAAC;YAC5D,IAAI,SAAS,KAAK,SAAS;gBAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAE1D,MAAM,SAAS,GAAG,GAAG,CAAC,iBAAiB,IAAI,SAAS,CAAC;YACrD,IAAI,SAAS,KAAK,SAAS;gBAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAE1D,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,IAAI,SAAS,CAAC;YAC7C,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAE9C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;QAC1D,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,MAAM,UAAU,GAAqB;gBACnC,IAAI,EAAE,KAAK,CAAC,eAAe;gBAC3B,IAAI,EAAE,KAAK,CAAC,eAAe;gBAC3B,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;aAC5B,CAAC;YAEF,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;oBAC7B,MAAM,eAAe,GAAG,KAAK,CAAC,oBAAoB;wBAChD,CAAC,CAAC,GAAG,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,kBAAkB,EAAE;wBAC7D,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;oBAC7B,UAAU,CAAC,eAAe,GAAG,eAAe,CAAC;gBAC/C,CAAC;gBACD,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;oBACjC,UAAU,CAAC,iBAAiB,GAAG,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;YAED,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU;oBAAE,SAAS;gBAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;gBACtD,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACjC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC7B,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACjC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC3B,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;wBAC7B,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,oBAAoB;4BACjD,CAAC,CAAC,GAAG,KAAK,CAAC,oBAAoB,IAAI,KAAK,CAAC,kBAAkB,EAAE;4BAC7D,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;oBAC/B,CAAC;oBACD,MAAM,gBAAgB,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBACtD,IAAI,gBAAgB,EAAE,CAAC;wBACrB,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACvB,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC;iBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;YACjB,MAAM,KAAK,GAAgB;gBACzB,IAAI,EAAE,GAAG,CAAC,UAAU;gBACpB,OAAO;gBACP,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;gBAChC,IAAI,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB;aACzD,CAAC;YACF,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,UAAU,KAAK,SAAS;gBAAE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;YAC5D,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC1B,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,YAAY;aACxB;YACD,MAAM;YACN,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACzC,CAAC;IACJ,CAAC;CACF;AAtOD,0CAsOC;AAcD,SAAS,gBAAgB,CAAC,IAAqB;IAC7C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAElD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QAC3E,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,eAAe,EAAE,GAAG,CAAC,eAAe;gBACpC,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE,EAAE;gBACnB,IAAI,EAAE,GAAG,CAAC,eAAe;aAC1B,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,GAAG,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;YAC1C,KAAK,CAAC,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,CAAC;YACtD,KAAK,CAAC,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC;YAClD,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;gBAC5B,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAA4B,EAC5B,aAAqB;IAErB,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,aAAa,CAAC;QAC5C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAyB;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACnE,OAAO;;;;;;;;;;;;;;;;MAgBH,MAAM;iCACqB,CAAC;AAClC,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAyB;IAClD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IACjF,OAAO;;;;;;;;;;;;;;;;;;;;;;;;MAwBH,MAAM;sEAC0D,CAAC;AACvE,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAyB;IACtD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAC7E,OAAO;;;;;;;;;;;;;;;;;;MAkBH,MAAM;qFACyE,CAAC;AACtF,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAyB;IAClD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACnE,OAAO;;;;;;;;;;;;;;;;MAgBH,MAAM;8EACkE,CAAC;AAC/E,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAyB,EACzB,UAAkB,EAClB,SAAiB;IAEjB,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAC/C,OAAO,IAAI,UAAU,OAAO,MAAM,SAAS,SAAS,OAAO,KAAK,IAAI,CAAC;IACvE,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,KAAa;IAC7C,OAAO,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAC3B,SAAkB,EAClB,UAAmB;IAEnB,IAAI,SAAS,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1E,MAAM,KAAK,GAA2C,EAAE,CAAC;IACzD,IAAI,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACzD,IAAI,UAAU,KAAK,SAAS;QAAE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC9D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,aAAa;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SACpD,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { IntrospectOptions, SchemaIntrospection } from "../schema/types.js";
|
|
2
|
+
export type DatabaseDialect = "clickhouse" | "postgres" | "mysql";
|
|
3
|
+
export interface DatabaseExecutionResult {
|
|
4
|
+
fields: string[];
|
|
5
|
+
rows: Array<Record<string, unknown>>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Database adapter interface for abstracting database-specific operations.
|
|
9
|
+
* Allows the SDK to work with multiple database types.
|
|
10
|
+
*/
|
|
11
|
+
export interface DatabaseAdapter {
|
|
12
|
+
/**
|
|
13
|
+
* Execute a SQL query and return results
|
|
14
|
+
* @param sql - The SQL query to execute
|
|
15
|
+
* @param params - Optional query parameters for parameterized queries
|
|
16
|
+
*/
|
|
17
|
+
execute(sql: string, params?: Record<string, string | number | boolean | string[] | number[]>): Promise<DatabaseExecutionResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Validate SQL query (e.g., using EXPLAIN)
|
|
20
|
+
* Throws an error if the SQL is invalid
|
|
21
|
+
*/
|
|
22
|
+
validate(sql: string): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Introspect database schema metadata
|
|
25
|
+
*/
|
|
26
|
+
introspect(options?: IntrospectOptions): Promise<SchemaIntrospection>;
|
|
27
|
+
/**
|
|
28
|
+
* Get the database dialect/type
|
|
29
|
+
*/
|
|
30
|
+
getDialect(): DatabaseDialect;
|
|
31
|
+
/**
|
|
32
|
+
* Optional: Close/cleanup database connection
|
|
33
|
+
*/
|
|
34
|
+
close?(): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;AAElE,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,OAAO,CACL,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GACvE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;OAEG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEtE;;OAEG;IACH,UAAU,IAAI,eAAe,CAAC;IAE9B;;OAEG;IACH,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anonymize.spec.d.ts","sourceRoot":"","sources":["../../src/anonymize.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const index_js_1 = require("./index.js");
|
|
5
|
+
(0, vitest_1.describe)("anonymizeResults", () => {
|
|
6
|
+
(0, vitest_1.it)("anonymizes numeric values", () => {
|
|
7
|
+
const input = [
|
|
8
|
+
{ year: 2025, transactionSum: 1000 },
|
|
9
|
+
{ year: 2024, transactionSum: 2000 },
|
|
10
|
+
];
|
|
11
|
+
const result = (0, index_js_1.anonymizeResults)(input);
|
|
12
|
+
(0, vitest_1.expect)(result).toEqual([
|
|
13
|
+
{ year: "number", transactionSum: "number" },
|
|
14
|
+
{ year: "number", transactionSum: "number" },
|
|
15
|
+
]);
|
|
16
|
+
});
|
|
17
|
+
(0, vitest_1.it)("anonymizes mixed types", () => {
|
|
18
|
+
const input = [
|
|
19
|
+
{
|
|
20
|
+
id: 1,
|
|
21
|
+
name: "John Doe",
|
|
22
|
+
active: true,
|
|
23
|
+
score: 95.5,
|
|
24
|
+
metadata: null,
|
|
25
|
+
tags: ["admin", "user"],
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
const result = (0, index_js_1.anonymizeResults)(input);
|
|
29
|
+
(0, vitest_1.expect)(result).toEqual([
|
|
30
|
+
{
|
|
31
|
+
id: "number",
|
|
32
|
+
name: "string",
|
|
33
|
+
active: "boolean",
|
|
34
|
+
score: "number",
|
|
35
|
+
metadata: "null",
|
|
36
|
+
tags: "array",
|
|
37
|
+
},
|
|
38
|
+
]);
|
|
39
|
+
});
|
|
40
|
+
(0, vitest_1.it)("handles empty arrays", () => {
|
|
41
|
+
const result = (0, index_js_1.anonymizeResults)([]);
|
|
42
|
+
(0, vitest_1.expect)(result).toEqual([]);
|
|
43
|
+
});
|
|
44
|
+
(0, vitest_1.it)("handles objects with nested structures", () => {
|
|
45
|
+
const input = [
|
|
46
|
+
{
|
|
47
|
+
user: { name: "Alice" },
|
|
48
|
+
count: 42,
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
const result = (0, index_js_1.anonymizeResults)(input);
|
|
52
|
+
(0, vitest_1.expect)(result).toEqual([
|
|
53
|
+
{
|
|
54
|
+
user: "object",
|
|
55
|
+
count: "number",
|
|
56
|
+
},
|
|
57
|
+
]);
|
|
58
|
+
});
|
|
59
|
+
(0, vitest_1.it)("preserves column structure across multiple rows", () => {
|
|
60
|
+
const input = [
|
|
61
|
+
{ col1: "value1", col2: 100, col3: true },
|
|
62
|
+
{ col1: "value2", col2: 200, col3: false },
|
|
63
|
+
{ col1: "value3", col2: 300, col3: true },
|
|
64
|
+
];
|
|
65
|
+
const result = (0, index_js_1.anonymizeResults)(input);
|
|
66
|
+
(0, vitest_1.expect)(result).toEqual([
|
|
67
|
+
{ col1: "string", col2: "number", col3: "boolean" },
|
|
68
|
+
{ col1: "string", col2: "number", col3: "boolean" },
|
|
69
|
+
{ col1: "string", col2: "number", col3: "boolean" },
|
|
70
|
+
]);
|
|
71
|
+
});
|
|
72
|
+
(0, vitest_1.it)("handles undefined values", () => {
|
|
73
|
+
const input = [{ defined: 123, undefined: undefined }];
|
|
74
|
+
const result = (0, index_js_1.anonymizeResults)(input);
|
|
75
|
+
(0, vitest_1.expect)(result).toEqual([
|
|
76
|
+
{ defined: "number", undefined: "undefined" },
|
|
77
|
+
]);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=anonymize.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anonymize.spec.js","sourceRoot":"","sources":["../../src/anonymize.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clickhouseClient.spec.d.ts","sourceRoot":"","sources":["../../src/clickhouseClient.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const duckdb_1 = __importDefault(require("duckdb"));
|
|
7
|
+
const vitest_1 = require("vitest");
|
|
8
|
+
const index_js_1 = require("./index.js");
|
|
9
|
+
// @ts-expect-error
|
|
10
|
+
globalThis.fetch = async (input, _init) => {
|
|
11
|
+
const url = String(input);
|
|
12
|
+
if (url.endsWith("/v2/active-charts")) {
|
|
13
|
+
return {
|
|
14
|
+
ok: true,
|
|
15
|
+
status: 200,
|
|
16
|
+
text: async () => JSON.stringify({
|
|
17
|
+
data: [
|
|
18
|
+
{
|
|
19
|
+
id: "ac1",
|
|
20
|
+
chart_id: "1",
|
|
21
|
+
order: 1,
|
|
22
|
+
meta: null,
|
|
23
|
+
organization_id: null,
|
|
24
|
+
tenant_id: null,
|
|
25
|
+
user_id: null,
|
|
26
|
+
created_at: null,
|
|
27
|
+
updated_at: null,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
pagination: {
|
|
31
|
+
page: 1,
|
|
32
|
+
limit: 10,
|
|
33
|
+
total: 1,
|
|
34
|
+
totalPages: 1,
|
|
35
|
+
hasNext: false,
|
|
36
|
+
hasPrev: false,
|
|
37
|
+
},
|
|
38
|
+
}),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (/\/v2\/charts\/[^/]+$/.test(url)) {
|
|
42
|
+
return {
|
|
43
|
+
ok: true,
|
|
44
|
+
status: 200,
|
|
45
|
+
text: async () => JSON.stringify({
|
|
46
|
+
id: "1",
|
|
47
|
+
title: "Single",
|
|
48
|
+
description: null,
|
|
49
|
+
sql: "SELECT id, value FROM demo ORDER BY id",
|
|
50
|
+
vega_lite_spec: { mark: "point" },
|
|
51
|
+
query_id: null,
|
|
52
|
+
organization_id: null,
|
|
53
|
+
tenant_id: null,
|
|
54
|
+
user_id: null,
|
|
55
|
+
created_at: null,
|
|
56
|
+
updated_at: null,
|
|
57
|
+
}),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (url.endsWith("/v2/charts")) {
|
|
61
|
+
return {
|
|
62
|
+
ok: true,
|
|
63
|
+
status: 200,
|
|
64
|
+
text: async () => JSON.stringify({
|
|
65
|
+
data: [
|
|
66
|
+
{
|
|
67
|
+
id: "1",
|
|
68
|
+
title: "Demo",
|
|
69
|
+
description: null,
|
|
70
|
+
sql: "SELECT id, value FROM demo ORDER BY id",
|
|
71
|
+
vega_lite_spec: { mark: "bar" },
|
|
72
|
+
query_id: null,
|
|
73
|
+
organization_id: null,
|
|
74
|
+
tenant_id: null,
|
|
75
|
+
user_id: null,
|
|
76
|
+
created_at: null,
|
|
77
|
+
updated_at: null,
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
pagination: {
|
|
81
|
+
page: 1,
|
|
82
|
+
limit: 10,
|
|
83
|
+
total: 1,
|
|
84
|
+
totalPages: 1,
|
|
85
|
+
hasNext: false,
|
|
86
|
+
hasPrev: false,
|
|
87
|
+
},
|
|
88
|
+
}),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if (url.endsWith("/v2/generate-sql")) {
|
|
92
|
+
return {
|
|
93
|
+
ok: true,
|
|
94
|
+
status: 200,
|
|
95
|
+
text: async () => JSON.stringify({
|
|
96
|
+
sql: "SELECT id as x, value as y FROM demo ORDER BY id",
|
|
97
|
+
rationale: "ok",
|
|
98
|
+
context: [],
|
|
99
|
+
}),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (url.endsWith("/v2/generate-chart")) {
|
|
103
|
+
return {
|
|
104
|
+
ok: true,
|
|
105
|
+
status: 200,
|
|
106
|
+
text: async () => JSON.stringify({ vegaLiteSpec: { mark: "line" }, notes: null }),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
if (/\/v2\/active-charts\/[^/]+$/.test(url)) {
|
|
110
|
+
const id = url.split("/").pop();
|
|
111
|
+
if (id === "ac1") {
|
|
112
|
+
return {
|
|
113
|
+
ok: true,
|
|
114
|
+
status: 200,
|
|
115
|
+
text: async () => JSON.stringify({
|
|
116
|
+
id: "ac1",
|
|
117
|
+
chart_id: "1",
|
|
118
|
+
order: 1,
|
|
119
|
+
meta: null,
|
|
120
|
+
organization_id: null,
|
|
121
|
+
tenant_id: null,
|
|
122
|
+
user_id: null,
|
|
123
|
+
created_at: null,
|
|
124
|
+
updated_at: null,
|
|
125
|
+
}),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
if (id === "ac2") {
|
|
129
|
+
return {
|
|
130
|
+
ok: true,
|
|
131
|
+
status: 200,
|
|
132
|
+
text: async () => JSON.stringify({
|
|
133
|
+
id: "ac2",
|
|
134
|
+
chart_id: "1",
|
|
135
|
+
order: 1,
|
|
136
|
+
meta: null,
|
|
137
|
+
organization_id: null,
|
|
138
|
+
tenant_id: null,
|
|
139
|
+
user_id: null,
|
|
140
|
+
created_at: null,
|
|
141
|
+
updated_at: null,
|
|
142
|
+
chart: {
|
|
143
|
+
id: "1",
|
|
144
|
+
title: "Nested",
|
|
145
|
+
description: null,
|
|
146
|
+
sql: "SELECT id, value FROM demo ORDER BY id",
|
|
147
|
+
vega_lite_spec: { mark: "square" },
|
|
148
|
+
query_id: null,
|
|
149
|
+
organization_id: null,
|
|
150
|
+
tenant_id: null,
|
|
151
|
+
user_id: null,
|
|
152
|
+
created_at: null,
|
|
153
|
+
updated_at: null,
|
|
154
|
+
},
|
|
155
|
+
}),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// other endpoints not used in this test
|
|
160
|
+
return { ok: false, status: 404, text: async () => "" };
|
|
161
|
+
};
|
|
162
|
+
// Helper to create an in-memory DuckDB connection and run queries
|
|
163
|
+
function createDuckDb() {
|
|
164
|
+
const db = new duckdb_1.default.Database(":memory:");
|
|
165
|
+
const conn = db.connect();
|
|
166
|
+
return { db, conn };
|
|
167
|
+
}
|
|
168
|
+
(0, vitest_1.describe)("attachClickhouseClient", () => {
|
|
169
|
+
let conn;
|
|
170
|
+
let clickhouseClientFn;
|
|
171
|
+
(0, vitest_1.beforeAll)(async () => {
|
|
172
|
+
({ conn } = createDuckDb());
|
|
173
|
+
clickhouseClientFn = async ({ query }) => {
|
|
174
|
+
const rows = await new Promise((resolve, reject) => {
|
|
175
|
+
conn.all(query, (err, result) => {
|
|
176
|
+
if (err)
|
|
177
|
+
return reject(err);
|
|
178
|
+
resolve(result);
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
const result = {
|
|
182
|
+
json: async () => rows,
|
|
183
|
+
};
|
|
184
|
+
return result;
|
|
185
|
+
};
|
|
186
|
+
await new Promise((resolve, reject) => {
|
|
187
|
+
conn.run("CREATE TABLE demo(id INTEGER, value VARCHAR)", (err) => {
|
|
188
|
+
if (err)
|
|
189
|
+
return reject(err);
|
|
190
|
+
conn.run("INSERT INTO demo VALUES (1, 'a'), (2, 'b')", (err2) => {
|
|
191
|
+
if (err2)
|
|
192
|
+
return reject(err2);
|
|
193
|
+
resolve();
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
(0, vitest_1.afterAll)(() => {
|
|
199
|
+
try {
|
|
200
|
+
conn.close();
|
|
201
|
+
}
|
|
202
|
+
catch { }
|
|
203
|
+
});
|
|
204
|
+
(0, vitest_1.it)("returns values from runDataOnCLient when listing charts", async () => {
|
|
205
|
+
const sdk = new index_js_1.QueryPanelSdkAPI("http://api", "test-token");
|
|
206
|
+
sdk.attachClickhouseClient(clickhouseClientFn);
|
|
207
|
+
const result = await sdk.listCharts({ tenantId: "t1" });
|
|
208
|
+
(0, vitest_1.expect)(result.data.length).toBe(1);
|
|
209
|
+
const chart = result.data[0];
|
|
210
|
+
(0, vitest_1.expect)(chart.vega_lite_spec?.data?.values).toEqual([
|
|
211
|
+
{ id: 1, value: "a" },
|
|
212
|
+
{ id: 2, value: "b" },
|
|
213
|
+
]);
|
|
214
|
+
});
|
|
215
|
+
(0, vitest_1.it)("hydrates data when getting a single chart", async () => {
|
|
216
|
+
const sdk = new index_js_1.QueryPanelSdkAPI("http://api", "test-token");
|
|
217
|
+
sdk.attachClickhouseClient(clickhouseClientFn);
|
|
218
|
+
const chart = await sdk.getChart("1", { tenantId: "t1" });
|
|
219
|
+
(0, vitest_1.expect)(chart.id).toBe("1");
|
|
220
|
+
(0, vitest_1.expect)(chart.vega_lite_spec?.data?.values).toEqual([
|
|
221
|
+
{ id: 1, value: "a" },
|
|
222
|
+
{ id: 2, value: "b" },
|
|
223
|
+
]);
|
|
224
|
+
});
|
|
225
|
+
(0, vitest_1.it)("lists active charts without data when withdata=false", async () => {
|
|
226
|
+
const sdk = new index_js_1.QueryPanelSdkAPI("http://api", "test-token");
|
|
227
|
+
sdk.attachClickhouseClient(clickhouseClientFn);
|
|
228
|
+
const result = await sdk.listActiveCharts({
|
|
229
|
+
tenantId: "t1",
|
|
230
|
+
withdata: false,
|
|
231
|
+
});
|
|
232
|
+
(0, vitest_1.expect)(result.data.length).toBe(1);
|
|
233
|
+
const firstNoData = result.data[0];
|
|
234
|
+
if (!firstNoData)
|
|
235
|
+
throw new Error("missing active chart");
|
|
236
|
+
(0, vitest_1.expect)(firstNoData.chart).toBeUndefined();
|
|
237
|
+
});
|
|
238
|
+
(0, vitest_1.it)("lists active charts with data when withdata=true", async () => {
|
|
239
|
+
const sdk = new index_js_1.QueryPanelSdkAPI("http://api", "test-token");
|
|
240
|
+
sdk.attachClickhouseClient(clickhouseClientFn);
|
|
241
|
+
const result = await sdk.listActiveCharts({
|
|
242
|
+
tenantId: "t1",
|
|
243
|
+
withdata: true,
|
|
244
|
+
});
|
|
245
|
+
(0, vitest_1.expect)(result.data.length).toBe(1);
|
|
246
|
+
const firstWithData = result.data[0];
|
|
247
|
+
if (!firstWithData || !firstWithData.chart)
|
|
248
|
+
throw new Error("missing hydrated active chart");
|
|
249
|
+
(0, vitest_1.expect)(Boolean(firstWithData.chart)).toBe(true);
|
|
250
|
+
(0, vitest_1.expect)(firstWithData.chart.vega_lite_spec?.data?.values).toEqual([
|
|
251
|
+
{ id: 1, value: "a" },
|
|
252
|
+
{ id: 2, value: "b" },
|
|
253
|
+
]);
|
|
254
|
+
});
|
|
255
|
+
(0, vitest_1.it)("gets active chart without nested chart unchanged", async () => {
|
|
256
|
+
const sdk = new index_js_1.QueryPanelSdkAPI("http://api", "test-token");
|
|
257
|
+
sdk.attachClickhouseClient(clickhouseClientFn);
|
|
258
|
+
const ac = await sdk.getActiveChart("ac1", { tenantId: "t1" });
|
|
259
|
+
(0, vitest_1.expect)(ac.id).toBe("ac1");
|
|
260
|
+
(0, vitest_1.expect)("chart" in ac ? ac.chart : undefined).toBeUndefined();
|
|
261
|
+
});
|
|
262
|
+
(0, vitest_1.it)("gets active chart with nested chart hydrated", async () => {
|
|
263
|
+
const sdk = new index_js_1.QueryPanelSdkAPI("http://api", "test-token");
|
|
264
|
+
sdk.attachClickhouseClient(clickhouseClientFn);
|
|
265
|
+
const ac = await sdk.getActiveChart("ac2", { tenantId: "t1" });
|
|
266
|
+
if (!ac.chart)
|
|
267
|
+
throw new Error("expected nested chart");
|
|
268
|
+
(0, vitest_1.expect)(ac.chart.vega_lite_spec?.data?.values).toEqual([
|
|
269
|
+
{ id: 1, value: "a" },
|
|
270
|
+
{ id: 2, value: "b" },
|
|
271
|
+
]);
|
|
272
|
+
});
|
|
273
|
+
(0, vitest_1.it)("works with ask() by executing SQL against DuckDB", async () => {
|
|
274
|
+
const sdk = new index_js_1.QueryPanelSdkAPI("http://api", "test-token");
|
|
275
|
+
sdk.attachClickhouseClient(clickhouseClientFn);
|
|
276
|
+
const result = await sdk.ask("q", { tenantId: "t1" });
|
|
277
|
+
(0, vitest_1.expect)(result.sql).toContain("SELECT id as x, value as y");
|
|
278
|
+
(0, vitest_1.expect)(result.fields).toEqual(["x", "y"]);
|
|
279
|
+
(0, vitest_1.expect)(result.rows).toEqual([
|
|
280
|
+
{ x: 1, y: "a" },
|
|
281
|
+
{ x: 2, y: "b" },
|
|
282
|
+
]);
|
|
283
|
+
(0, vitest_1.expect)(result.chart.vegaLiteSpec).toMatchObject({ mark: "line" });
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
//# sourceMappingURL=clickhouseClient.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clickhouseClient.spec.js","sourceRoot":"","sources":["../../src/clickhouseClient.spec.ts"],"names":[],"mappings":";;;;;AACA,oDAA4B;AAC5B,mCAAmE;AACnE,yCAA6D;AAE7D,mBAAmB;AACnB,UAAU,CAAC,KAAK,GAAG,KAAK,EACtB,KAAa,EACb,KAAe,EACQ,EAAE;IACzB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,KAAK,IAAI,EAAE,CACf,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE;oBACJ;wBACE,EAAE,EAAE,KAAK;wBACT,QAAQ,EAAE,GAAG;wBACb,KAAK,EAAE,CAAC;wBACR,IAAI,EAAE,IAAI;wBACV,eAAe,EAAE,IAAI;wBACrB,SAAS,EAAE,IAAI;wBACf,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,IAAI;wBAChB,UAAU,EAAE,IAAI;qBACjB;iBACF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,CAAC;oBACR,UAAU,EAAE,CAAC;oBACb,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;iBACf;aACF,CAAC;SACL,CAAC;IACJ,CAAC;IACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,KAAK,IAAI,EAAE,CACf,IAAI,CAAC,SAAS,CAAC;gBACb,EAAE,EAAE,GAAG;gBACP,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,IAAI;gBACjB,GAAG,EAAE,wCAAwC;gBAC7C,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;gBACjC,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,IAAI;gBACrB,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,IAAI;aACjB,CAAC;SACL,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,KAAK,IAAI,EAAE,CACf,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE;oBACJ;wBACE,EAAE,EAAE,GAAG;wBACP,KAAK,EAAE,MAAM;wBACb,WAAW,EAAE,IAAI;wBACjB,GAAG,EAAE,wCAAwC;wBAC7C,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;wBAC/B,QAAQ,EAAE,IAAI;wBACd,eAAe,EAAE,IAAI;wBACrB,SAAS,EAAE,IAAI;wBACf,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,IAAI;wBAChB,UAAU,EAAE,IAAI;qBACjB;iBACF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,CAAC;oBACR,UAAU,EAAE,CAAC;oBACb,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;iBACf;aACF,CAAC;SACL,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACrC,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,KAAK,IAAI,EAAE,CACf,IAAI,CAAC,SAAS,CAAC;gBACb,GAAG,EAAE,kDAAkD;gBACvD,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,EAAE;aACZ,CAAC;SACL,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,KAAK,IAAI,EAAE,CACf,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SAClE,CAAC;IACJ,CAAC;IACD,IAAI,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACjB,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CACf,IAAI,CAAC,SAAS,CAAC;oBACb,EAAE,EAAE,KAAK;oBACT,QAAQ,EAAE,GAAG;oBACb,KAAK,EAAE,CAAC;oBACR,IAAI,EAAE,IAAI;oBACV,eAAe,EAAE,IAAI;oBACrB,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,IAAI;iBACjB,CAAC;aACL,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACjB,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CACf,IAAI,CAAC,SAAS,CAAC;oBACb,EAAE,EAAE,KAAK;oBACT,QAAQ,EAAE,GAAG;oBACb,KAAK,EAAE,CAAC;oBACR,IAAI,EAAE,IAAI;oBACV,eAAe,EAAE,IAAI;oBACrB,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,IAAI;oBAChB,KAAK,EAAE;wBACL,EAAE,EAAE,GAAG;wBACP,KAAK,EAAE,QAAQ;wBACf,WAAW,EAAE,IAAI;wBACjB,GAAG,EAAE,wCAAwC;wBAC7C,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAClC,QAAQ,EAAE,IAAI;wBACd,eAAe,EAAE,IAAI;wBACrB,SAAS,EAAE,IAAI;wBACf,OAAO,EAAE,IAAI;wBACb,UAAU,EAAE,IAAI;wBAChB,UAAU,EAAE,IAAI;qBACjB;iBACF,CAAC;aACL,CAAC;QACJ,CAAC;IACH,CAAC;IACD,wCAAwC;IACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;AAC1D,CAAC,CAAC;AAEF,kEAAkE;AAClE,SAAS,YAAY;IACnB,MAAM,EAAE,GAAG,IAAI,gBAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAW,CAAC;AAC/B,CAAC;AAYD,IAAA,iBAAQ,EAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,IAAuB,CAAC;IAC5B,IAAI,kBAAyD,CAAC;IAE9D,IAAA,kBAAS,EAAC,KAAK,IAAI,EAAE;QACnB,CAAC,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;QAE5B,kBAAkB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAe,EAAE,EAAE;YACpD,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAC5B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;oBAC9B,IAAI,GAAG;wBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC5B,OAAO,CAAC,MAAwC,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YACF,MAAM,MAAM,GAAyB;gBACnC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;aACvB,CAAC;YACF,OAAO,MAA0B,CAAC;QACpC,CAAC,CAAC;QAEF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,IAAI,CAAC,GAAG,CAAC,8CAA8C,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/D,IAAI,GAAG;oBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,4CAA4C,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC9D,IAAI,IAAI;wBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC9B,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,GAAG,EAAE;QACZ,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,GAAG,GAAG,IAAI,2BAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7D,GAAG,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAExD,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEnC,MAAM,KAAK,GAAa,MAAM,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC;QAEnD,IAAA,eAAM,EAAC,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC;YACjD,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACrB,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,GAAG,GAAG,IAAI,2BAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7D,GAAG,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1D,IAAA,eAAM,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAA,eAAM,EAAC,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC;YACjD,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACrB,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,GAAG,GAAG,IAAI,2BAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7D,GAAG,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC;YACxC,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1D,IAAA,eAAM,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,GAAG,GAAG,IAAI,2BAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7D,GAAG,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC;YACxC,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,KAAK;YACxC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,IAAA,eAAM,EAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,aAAa,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC;YAC/D,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACrB,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,GAAG,GAAG,IAAI,2BAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7D,GAAG,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/D,IAAA,eAAM,EAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAA,eAAM,EAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,GAAG,GAAG,IAAI,2BAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7D,GAAG,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/D,IAAI,CAAC,EAAE,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACxD,IAAA,eAAM,EAAC,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC;YACpD,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACrB,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,GAAG,GAAG,IAAI,2BAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7D,GAAG,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtD,IAAA,eAAM,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAC3D,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAA,eAAM,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YAC1B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;YAChB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;SACjB,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
|
+
import { ClickHouseAdapter, type ClickHouseAdapterOptions, type ClickHouseClientFn } from "./adapters/clickhouse.js";
|
|
2
|
+
import { PostgresAdapter, type PostgresAdapterOptions, type PostgresClientFn } from "./adapters/postgres.js";
|
|
3
|
+
import type { DatabaseAdapter, DatabaseDialect } from "./adapters/types.js";
|
|
4
|
+
export { ClickHouseAdapter, PostgresAdapter };
|
|
5
|
+
export type { ClickHouseAdapterOptions, ClickHouseClientFn, DatabaseAdapter, DatabaseDialect, PostgresAdapterOptions, PostgresClientFn, };
|
|
1
6
|
export interface AskOptions {
|
|
2
7
|
tenantId: string;
|
|
3
|
-
|
|
8
|
+
database?: string;
|
|
4
9
|
sqlMaxAttempts?: number;
|
|
5
10
|
chartMaxRetries?: number;
|
|
6
11
|
userId?: string;
|
|
7
12
|
scopes?: string[];
|
|
13
|
+
/**
|
|
14
|
+
* Additional context/instructions to include in the SQL generation prompt.
|
|
15
|
+
* Use this to provide domain-specific guidance, business rules, or query constraints.
|
|
16
|
+
* @example ['Always exclude soft-deleted records', 'Use ISO-8601 format for dates']
|
|
17
|
+
*/
|
|
18
|
+
additionalPrompts?: string[];
|
|
8
19
|
}
|
|
9
20
|
export interface AskResponseBody {
|
|
10
21
|
sql: string;
|
|
@@ -29,6 +40,25 @@ export interface SqlExecutionResult {
|
|
|
29
40
|
rows: Array<Record<string, unknown>>;
|
|
30
41
|
}
|
|
31
42
|
export type SqlExecutor = (sql: string) => Promise<SqlExecutionResult>;
|
|
43
|
+
export interface DatabaseMetadata {
|
|
44
|
+
name: string;
|
|
45
|
+
dialect: DatabaseDialect;
|
|
46
|
+
description?: string;
|
|
47
|
+
tags?: string[];
|
|
48
|
+
tenantFieldName?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Anonymizes query results by replacing actual values with their type names.
|
|
52
|
+
* Useful for sharing result structure without exposing sensitive data.
|
|
53
|
+
*
|
|
54
|
+
* @param rows - Array of result rows to anonymize
|
|
55
|
+
* @returns Array of rows with values replaced by type strings
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* anonymizeResults([{ year: 2025, transactionSum: 1000 }])
|
|
59
|
+
* // Returns: [{ year: 'number', transactionSum: 'number' }]
|
|
60
|
+
*/
|
|
61
|
+
export declare function anonymizeResults(rows: Array<Record<string, unknown>>): Array<Record<string, string>>;
|
|
32
62
|
export interface TrainingExample {
|
|
33
63
|
question: string;
|
|
34
64
|
sql: string;
|
|
@@ -66,7 +96,72 @@ export declare class QueryPanelSdkAPI {
|
|
|
66
96
|
private readonly privateKey?;
|
|
67
97
|
private readonly organizationId?;
|
|
68
98
|
private cachedPrivateKey?;
|
|
99
|
+
private databases;
|
|
100
|
+
private databaseMetadata;
|
|
101
|
+
private defaultDatabase?;
|
|
102
|
+
private lastSyncHashes;
|
|
103
|
+
private syncedDatabases;
|
|
69
104
|
constructor(baseUrl: string, jwtTokenOrPrivateKey: string, organizationId?: string);
|
|
105
|
+
/**
|
|
106
|
+
* Attach a database adapter with a specific name
|
|
107
|
+
*/
|
|
108
|
+
attachDatabase(name: string, adapter: DatabaseAdapter): void;
|
|
109
|
+
/**
|
|
110
|
+
* Attach a ClickHouse database
|
|
111
|
+
*/
|
|
112
|
+
attachClickhouse(name: string, clientFn: ClickHouseClientFn, options?: ClickHouseAdapterOptions & {
|
|
113
|
+
description?: string;
|
|
114
|
+
tags?: string[];
|
|
115
|
+
/**
|
|
116
|
+
* Name of the tenant isolation field in this database's schema.
|
|
117
|
+
* Common names: 'tenant_id', 'organization_id', 'customer_id', 'user_id'
|
|
118
|
+
* Used for parameterized query generation and multitenancy enforcement.
|
|
119
|
+
*/
|
|
120
|
+
tenantFieldName?: string;
|
|
121
|
+
}): void;
|
|
122
|
+
/**
|
|
123
|
+
* Attach a Postgres database
|
|
124
|
+
*/
|
|
125
|
+
attachPostgres(name: string, clientFn: PostgresClientFn, options?: PostgresAdapterOptions & {
|
|
126
|
+
description?: string;
|
|
127
|
+
tags?: string[];
|
|
128
|
+
/**
|
|
129
|
+
* Name of the tenant isolation field in this database's schema.
|
|
130
|
+
* Common names: 'tenant_id', 'organization_id', 'customer_id', 'user_id'
|
|
131
|
+
* Used for parameterized query generation and multitenancy enforcement.
|
|
132
|
+
*/
|
|
133
|
+
tenantFieldName?: string;
|
|
134
|
+
}): void;
|
|
135
|
+
/**
|
|
136
|
+
* Legacy method for backward compatibility
|
|
137
|
+
* Attaches a ClickHouse client as the default database
|
|
138
|
+
*/
|
|
139
|
+
attachClickhouseClient(fn: ClickHouseClientFn): void;
|
|
140
|
+
/**
|
|
141
|
+
* Get a database adapter by name, or return the default
|
|
142
|
+
*/
|
|
143
|
+
private getDatabase;
|
|
144
|
+
/**
|
|
145
|
+
* Synchronize database schema to the API for vector search.
|
|
146
|
+
* Call this after schema migrations or when you want to update the schema context.
|
|
147
|
+
* Uses hash-based change detection to avoid unnecessary syncs.
|
|
148
|
+
*/
|
|
149
|
+
syncSchema(databaseName: string, options: {
|
|
150
|
+
tenantId: string;
|
|
151
|
+
tables?: string[];
|
|
152
|
+
force?: boolean;
|
|
153
|
+
userId?: string;
|
|
154
|
+
scopes?: string[];
|
|
155
|
+
}, signal?: AbortSignal): Promise<void>;
|
|
156
|
+
/**
|
|
157
|
+
* Ensure all attached databases have been synced at least once.
|
|
158
|
+
* Called automatically on first ask() if needed.
|
|
159
|
+
*/
|
|
160
|
+
private ensureDatabasesSynced;
|
|
161
|
+
/**
|
|
162
|
+
* Generate a hash of the introspection for change detection
|
|
163
|
+
*/
|
|
164
|
+
private hashIntrospection;
|
|
70
165
|
ask(question: string, options: AskOptions, signal?: AbortSignal): Promise<AskResponseBody>;
|
|
71
166
|
train(body: TrainRequestBody, options?: {
|
|
72
167
|
userId?: string;
|
|
@@ -122,6 +217,7 @@ export declare class QueryPanelSdkAPI {
|
|
|
122
217
|
private generateJWT;
|
|
123
218
|
private headers;
|
|
124
219
|
private parseResponse;
|
|
220
|
+
private runSafeQueryOnClient;
|
|
125
221
|
}
|
|
126
222
|
export interface SdkChart {
|
|
127
223
|
id: string;
|
|
@@ -136,6 +232,7 @@ export interface SdkChart {
|
|
|
136
232
|
created_at: string | null;
|
|
137
233
|
updated_at: string | null;
|
|
138
234
|
active?: boolean;
|
|
235
|
+
database?: string;
|
|
139
236
|
}
|
|
140
237
|
export interface SdkActiveChart {
|
|
141
238
|
id: string;
|
|
@@ -172,6 +269,7 @@ export interface ActiveChartListOptions {
|
|
|
172
269
|
createdTo?: string;
|
|
173
270
|
updatedFrom?: string;
|
|
174
271
|
updatedTo?: string;
|
|
272
|
+
withdata?: boolean;
|
|
175
273
|
}
|
|
176
274
|
export interface ChartCreateBody {
|
|
177
275
|
title: string;
|
|
@@ -179,12 +277,14 @@ export interface ChartCreateBody {
|
|
|
179
277
|
sql: string;
|
|
180
278
|
vega_lite_spec: any;
|
|
181
279
|
query_id?: string;
|
|
280
|
+
database?: string;
|
|
182
281
|
}
|
|
183
282
|
export interface ChartUpdateBody {
|
|
184
283
|
title?: string;
|
|
185
284
|
description?: string;
|
|
186
285
|
sql?: string;
|
|
187
286
|
vega_lite_spec?: any;
|
|
287
|
+
database?: string;
|
|
188
288
|
}
|
|
189
289
|
export interface PaginationQuery {
|
|
190
290
|
page?: number;
|