@querypanel/node-sdk 1.0.7 → 1.0.9
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 +256 -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 +29 -0
- package/dist/cjs/adapters/postgres.d.ts.map +1 -0
- package/dist/cjs/adapters/postgres.js +384 -0
- package/dist/cjs/adapters/postgres.js.map +1 -0
- package/dist/cjs/adapters/types.d.ts +34 -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/connectors/clickhouse.d.ts +4 -4
- package/dist/cjs/connectors/clickhouse.d.ts.map +1 -1
- package/dist/cjs/connectors/clickhouse.js +30 -23
- package/dist/cjs/connectors/clickhouse.js.map +1 -1
- package/dist/cjs/index.d.ts +69 -5
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +257 -50
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.test.d.ts +2 -0
- package/dist/cjs/index.test.d.ts.map +1 -0
- package/dist/cjs/index.test.js +112 -0
- package/dist/cjs/index.test.js.map +1 -0
- 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 +252 -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 +29 -0
- package/dist/esm/adapters/postgres.d.ts.map +1 -0
- package/dist/esm/adapters/postgres.js +380 -0
- package/dist/esm/adapters/postgres.js.map +1 -0
- package/dist/esm/adapters/types.d.ts +34 -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/connectors/clickhouse.d.ts +4 -4
- package/dist/esm/connectors/clickhouse.d.ts.map +1 -1
- package/dist/esm/connectors/clickhouse.js +32 -25
- package/dist/esm/connectors/clickhouse.js.map +1 -1
- package/dist/esm/index.d.ts +69 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +256 -50
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.test.d.ts +2 -0
- package/dist/esm/index.test.d.ts.map +1 -0
- package/dist/esm/index.test.js +110 -0
- package/dist/esm/index.test.js.map +1 -0
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clickhouse.js","sourceRoot":"","sources":["../../../src/connectors/clickhouse.ts"],"names":[],"mappings":";;;AAAA,+CAM4B;
|
|
1
|
+
{"version":3,"file":"clickhouse.js","sourceRoot":"","sources":["../../../src/connectors/clickhouse.ts"],"names":[],"mappings":";;;AAAA,+CAM4B;AAO5B,0DAMgC;AAgDhC,MAAa,mBAAmB;IAM/B,YACkB,MAAiC,EACjC,YAA0C,EAAE;QAD5C,WAAM,GAAN,MAAM,CAA2B;QACjC,cAAS,GAAT,SAAS,CAAmC;QAN7C,kBAAa,GAEb,aAAa,CAAC;QAM9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,KAAK,CACV,GAAW,EACX,OAAsB;QAEtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,MAAM,GAA6C;YACxD,KAAK,EAAE,GAAG;SACV,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gBACrB,mBAAmB,EAAE,OAAO,CAAC,QAA8B;aAC3D,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,OAAc,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAI,OAA8B,CAAC,IAAI,CAAC;YACvD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,OAAO,SAAgB,CAAC;YACzB,CAAC;QACF,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA2B;QAC3C,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,GAA4B;YAC5C,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;SACxB,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACf,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC;QAClC,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC9B;;2CAEwC,YAAY;2BAC5B,EACxB,EAAE,MAAM,EAAE,WAAW,EAAE,CACvB,CAAC;QAEF,MAAM,kBAAkB,GAAG,SAAS;YACnC,CAAC,CAAC,sCAAsC;YACxC,CAAC,CAAC,EAAE,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAC/B;;;;2CAIwC,kBAAkB;sCACvB,EACnC,EAAE,MAAM,EAAE,WAAW,EAAE,CACvB,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;QACzD,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;YACzC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,YAAY,GAAkB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACxD,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,iBAAiB,GAAG,IAAA,kCAAkB,EAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE/C,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBACnC,MAAM,CAAC,YAAY;oBAClB,MAAM,CAAC,YAAY,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM;gBACvC,CAAC,CAAC;oBACA;wBACC,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,iBAAiB;wBAC1B,MAAM,EAAE,IAAI;wBACZ,IAAI,EAAE,aAAa;wBACnB,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC/D;iBACD;gBACF,CAAC,CAAC,EAAE,CAAC;YAEN,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM;gBAC3C,CAAC,CAAC;oBACA;wBACC,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,iBAAiB;qBAC1B;iBACD;gBACF,CAAC,CAAC,EAAE,CAAC;YAEN,MAAM,IAAI,GAAgB;gBACzB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC5B,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;gBAChC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,YAAY;gBACrB,OAAO;gBACP,WAAW;aACX,CAAC;YAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACxB,CAAC;YAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC/D,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC9B,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,OAAO;YACN,EAAE,EAAE;gBACH,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aAC1B;YACD,MAAM,EAAE,YAAY;YACpB,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACxC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,YAAY;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,MAAM;YACV,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE;gBACjC,IAAA,qBAAY,EAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3E,MAAM,UAAU,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,QAAQ,CACrB,MAAwB;QAExB,IAAI,CAAC;YACJ,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAEO,iBAAiB;QACxB,MAAM,MAAM,GAAkC;YAC7C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;SACpC,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,GAAG,GAAG,QAAQ,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEvC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpC,MAAM,CAAC,mBAAmB,GAAG;gBAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,mBAAmB,IAAI,EAAE,CAAC;gBACzD,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB;aACX,CAAC;QACzB,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AAlOD,kDAkOC;AAED,SAAS,oBAAoB,CAAC,MAAwB;IACrD,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS;QAChD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAc;IACzC,MAAM,QAAQ,GAAG,IAAA,8BAAc,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAA,mCAAmB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAA,qCAAqB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAA,wCAAwB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC5D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAiB;QAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,QAAQ;QACR,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACtD,YAAY,EAAE,KAAK;KACnB,CAAC;IAEF,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;IAE1B,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,WAAW,KAAK,SAAS;QAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IAEhE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC3D,IAAI,iBAAiB,KAAK,SAAS;QAClC,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAE9C,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAEpD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IAE9C,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnD,IAAI,aAAa,KAAK,SAAS;QAAE,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;IAEtE,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1D,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1D,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IAE9C,IAAI,eAAe,KAAK,SAAS,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACtE,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,IAAI,eAAe,KAAK,SAAS;YAChC,MAAM,CAAC,UAAU,CAAC,eAAe,GAAG,eAAe,CAAC;QACrD,IAAI,iBAAiB,KAAK,SAAS;YAClC,MAAM,CAAC,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC/B,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;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC/B,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;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,MAAe;IACnC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACxC,OAAO,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAC5B,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;AACd,CAAC"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,15 +1,51 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
}
|
|
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, };
|
|
4
6
|
export interface AskOptions {
|
|
5
7
|
tenantId: string;
|
|
8
|
+
database?: string;
|
|
9
|
+
sqlMaxAttempts?: number;
|
|
10
|
+
chartMaxRetries?: number;
|
|
6
11
|
userId?: string;
|
|
7
12
|
scopes?: string[];
|
|
8
13
|
}
|
|
9
14
|
export interface AskResponseBody {
|
|
10
|
-
|
|
15
|
+
sql: string;
|
|
16
|
+
rationale: string;
|
|
17
|
+
context: RetrievedContext[];
|
|
18
|
+
chart: ChartEnvelope;
|
|
19
|
+
fields: string[];
|
|
20
|
+
rows: Array<Record<string, unknown>>;
|
|
21
|
+
}
|
|
22
|
+
export interface RetrievedContext {
|
|
23
|
+
kind: string;
|
|
24
|
+
content: string;
|
|
25
|
+
similarity?: number;
|
|
26
|
+
metadata?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
export interface ChartEnvelope {
|
|
29
|
+
vegaLiteSpec: any;
|
|
11
30
|
notes: string | null;
|
|
12
31
|
}
|
|
32
|
+
export interface SqlExecutionResult {
|
|
33
|
+
fields: string[];
|
|
34
|
+
rows: Array<Record<string, unknown>>;
|
|
35
|
+
}
|
|
36
|
+
export type SqlExecutor = (sql: string) => Promise<SqlExecutionResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Anonymizes query results by replacing actual values with their type names.
|
|
39
|
+
* Useful for sharing result structure without exposing sensitive data.
|
|
40
|
+
*
|
|
41
|
+
* @param rows - Array of result rows to anonymize
|
|
42
|
+
* @returns Array of rows with values replaced by type strings
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* anonymizeResults([{ year: 2025, transactionSum: 1000 }])
|
|
46
|
+
* // Returns: [{ year: 'number', transactionSum: 'number' }]
|
|
47
|
+
*/
|
|
48
|
+
export declare function anonymizeResults(rows: Array<Record<string, unknown>>): Array<Record<string, string>>;
|
|
13
49
|
export interface TrainingExample {
|
|
14
50
|
question: string;
|
|
15
51
|
sql: string;
|
|
@@ -47,8 +83,31 @@ export declare class QueryPanelSdkAPI {
|
|
|
47
83
|
private readonly privateKey?;
|
|
48
84
|
private readonly organizationId?;
|
|
49
85
|
private cachedPrivateKey?;
|
|
86
|
+
private databases;
|
|
87
|
+
private defaultDatabase?;
|
|
50
88
|
constructor(baseUrl: string, jwtTokenOrPrivateKey: string, organizationId?: string);
|
|
51
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Attach a database adapter with a specific name
|
|
91
|
+
*/
|
|
92
|
+
attachDatabase(name: string, adapter: DatabaseAdapter): void;
|
|
93
|
+
/**
|
|
94
|
+
* Attach a ClickHouse database
|
|
95
|
+
*/
|
|
96
|
+
attachClickhouse(name: string, clientFn: ClickHouseClientFn, options?: ClickHouseAdapterOptions): void;
|
|
97
|
+
/**
|
|
98
|
+
* Attach a Postgres database
|
|
99
|
+
*/
|
|
100
|
+
attachPostgres(name: string, clientFn: PostgresClientFn, options?: PostgresAdapterOptions): void;
|
|
101
|
+
/**
|
|
102
|
+
* Legacy method for backward compatibility
|
|
103
|
+
* Attaches a ClickHouse client as the default database
|
|
104
|
+
*/
|
|
105
|
+
attachClickhouseClient(fn: ClickHouseClientFn): void;
|
|
106
|
+
/**
|
|
107
|
+
* Get a database adapter by name, or return the default
|
|
108
|
+
*/
|
|
109
|
+
private getDatabase;
|
|
110
|
+
ask(question: string, options: AskOptions, signal?: AbortSignal): Promise<AskResponseBody>;
|
|
52
111
|
train(body: TrainRequestBody, options?: {
|
|
53
112
|
userId?: string;
|
|
54
113
|
scopes?: string[];
|
|
@@ -103,6 +162,7 @@ export declare class QueryPanelSdkAPI {
|
|
|
103
162
|
private generateJWT;
|
|
104
163
|
private headers;
|
|
105
164
|
private parseResponse;
|
|
165
|
+
private runSafeQueryOnClient;
|
|
106
166
|
}
|
|
107
167
|
export interface SdkChart {
|
|
108
168
|
id: string;
|
|
@@ -117,6 +177,7 @@ export interface SdkChart {
|
|
|
117
177
|
created_at: string | null;
|
|
118
178
|
updated_at: string | null;
|
|
119
179
|
active?: boolean;
|
|
180
|
+
database?: string;
|
|
120
181
|
}
|
|
121
182
|
export interface SdkActiveChart {
|
|
122
183
|
id: string;
|
|
@@ -153,6 +214,7 @@ export interface ActiveChartListOptions {
|
|
|
153
214
|
createdTo?: string;
|
|
154
215
|
updatedFrom?: string;
|
|
155
216
|
updatedTo?: string;
|
|
217
|
+
withdata?: boolean;
|
|
156
218
|
}
|
|
157
219
|
export interface ChartCreateBody {
|
|
158
220
|
title: string;
|
|
@@ -160,12 +222,14 @@ export interface ChartCreateBody {
|
|
|
160
222
|
sql: string;
|
|
161
223
|
vega_lite_spec: any;
|
|
162
224
|
query_id?: string;
|
|
225
|
+
database?: string;
|
|
163
226
|
}
|
|
164
227
|
export interface ChartUpdateBody {
|
|
165
228
|
title?: string;
|
|
166
229
|
description?: string;
|
|
167
230
|
sql?: string;
|
|
168
231
|
vega_lite_spec?: any;
|
|
232
|
+
database?: string;
|
|
169
233
|
}
|
|
170
234
|
export interface PaginationQuery {
|
|
171
235
|
page?: number;
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,9 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QueryPanelSdkAPI = void 0;
|
|
3
|
+
exports.QueryPanelSdkAPI = exports.PostgresAdapter = exports.ClickHouseAdapter = void 0;
|
|
4
|
+
exports.anonymizeResults = anonymizeResults;
|
|
5
|
+
const node_crypto_1 = require("node:crypto");
|
|
4
6
|
const jose_1 = require("jose");
|
|
7
|
+
const clickhouse_js_1 = require("./adapters/clickhouse.js");
|
|
8
|
+
Object.defineProperty(exports, "ClickHouseAdapter", { enumerable: true, get: function () { return clickhouse_js_1.ClickHouseAdapter; } });
|
|
9
|
+
const postgres_js_1 = require("./adapters/postgres.js");
|
|
10
|
+
Object.defineProperty(exports, "PostgresAdapter", { enumerable: true, get: function () { return postgres_js_1.PostgresAdapter; } });
|
|
11
|
+
/**
|
|
12
|
+
* Anonymizes query results by replacing actual values with their type names.
|
|
13
|
+
* Useful for sharing result structure without exposing sensitive data.
|
|
14
|
+
*
|
|
15
|
+
* @param rows - Array of result rows to anonymize
|
|
16
|
+
* @returns Array of rows with values replaced by type strings
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* anonymizeResults([{ year: 2025, transactionSum: 1000 }])
|
|
20
|
+
* // Returns: [{ year: 'number', transactionSum: 'number' }]
|
|
21
|
+
*/
|
|
22
|
+
function anonymizeResults(rows) {
|
|
23
|
+
if (!rows || rows.length === 0) {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
return rows.map((row) => {
|
|
27
|
+
const anonymized = {};
|
|
28
|
+
for (const [key, value] of Object.entries(row)) {
|
|
29
|
+
if (value === null) {
|
|
30
|
+
anonymized[key] = "null";
|
|
31
|
+
}
|
|
32
|
+
else if (Array.isArray(value)) {
|
|
33
|
+
anonymized[key] = "array";
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
anonymized[key] = typeof value;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return anonymized;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
5
42
|
class QueryPanelSdkAPI {
|
|
6
43
|
constructor(baseUrl, jwtTokenOrPrivateKey, organizationId) {
|
|
44
|
+
// Database registry
|
|
45
|
+
this.databases = new Map();
|
|
7
46
|
this.baseUrl = baseUrl.replace(/\/$/, "");
|
|
8
47
|
if (organizationId) {
|
|
9
48
|
// New mode: generate JWTs
|
|
@@ -15,8 +54,106 @@ class QueryPanelSdkAPI {
|
|
|
15
54
|
this.token = jwtTokenOrPrivateKey;
|
|
16
55
|
}
|
|
17
56
|
}
|
|
18
|
-
|
|
19
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Attach a database adapter with a specific name
|
|
59
|
+
*/
|
|
60
|
+
attachDatabase(name, adapter) {
|
|
61
|
+
this.databases.set(name, adapter);
|
|
62
|
+
if (!this.defaultDatabase) {
|
|
63
|
+
this.defaultDatabase = name;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Attach a ClickHouse database
|
|
68
|
+
*/
|
|
69
|
+
attachClickhouse(name, clientFn, options) {
|
|
70
|
+
const adapterOptions = {
|
|
71
|
+
...options,
|
|
72
|
+
database: options?.database ?? name,
|
|
73
|
+
};
|
|
74
|
+
this.attachDatabase(name, new clickhouse_js_1.ClickHouseAdapter(clientFn, adapterOptions));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Attach a Postgres database
|
|
78
|
+
*/
|
|
79
|
+
attachPostgres(name, clientFn, options) {
|
|
80
|
+
const adapterOptions = {
|
|
81
|
+
...options,
|
|
82
|
+
database: options?.database ?? name,
|
|
83
|
+
};
|
|
84
|
+
this.attachDatabase(name, new postgres_js_1.PostgresAdapter(clientFn, adapterOptions));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Legacy method for backward compatibility
|
|
88
|
+
* Attaches a ClickHouse client as the default database
|
|
89
|
+
*/
|
|
90
|
+
attachClickhouseClient(fn) {
|
|
91
|
+
this.attachClickhouse("default", fn);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get a database adapter by name, or return the default
|
|
95
|
+
*/
|
|
96
|
+
getDatabase(name) {
|
|
97
|
+
const dbName = name || this.defaultDatabase;
|
|
98
|
+
if (!dbName) {
|
|
99
|
+
throw new Error("No database attached. Use attachClickhouse() or attachPostgres() first.");
|
|
100
|
+
}
|
|
101
|
+
const adapter = this.databases.get(dbName);
|
|
102
|
+
if (!adapter) {
|
|
103
|
+
throw new Error(`Database '${dbName}' not found. Available: ${Array.from(this.databases.keys()).join(", ")}`);
|
|
104
|
+
}
|
|
105
|
+
return adapter;
|
|
106
|
+
}
|
|
107
|
+
async ask(question, options, signal) {
|
|
108
|
+
const { tenantId, database, userId, scopes, sqlMaxAttempts = 3, chartMaxRetries = 3, } = options;
|
|
109
|
+
let attempt = 0;
|
|
110
|
+
const sessionId = (0, node_crypto_1.randomUUID)();
|
|
111
|
+
let lastError;
|
|
112
|
+
while (attempt < sqlMaxAttempts) {
|
|
113
|
+
const sqlResponse = await this.post("/v2/generate-sql", {
|
|
114
|
+
question,
|
|
115
|
+
max_retries: Math.max(1, sqlMaxAttempts - attempt),
|
|
116
|
+
...(lastError ? { last_error: lastError } : {}),
|
|
117
|
+
...(database ? { database } : {}),
|
|
118
|
+
available_databases: Array.from(this.databases.keys()),
|
|
119
|
+
}, tenantId, userId, scopes, signal, sessionId);
|
|
120
|
+
try {
|
|
121
|
+
// Get the database adapter
|
|
122
|
+
const dbName = database || sqlResponse.database || this.defaultDatabase;
|
|
123
|
+
const adapter = this.getDatabase(dbName);
|
|
124
|
+
// Validate SQL with EXPLAIN before executing
|
|
125
|
+
await adapter.validate(sqlResponse.sql);
|
|
126
|
+
// Execute the query
|
|
127
|
+
const execution = await adapter.execute(sqlResponse.sql);
|
|
128
|
+
const chartResponse = await this.post("/v2/generate-chart", {
|
|
129
|
+
question,
|
|
130
|
+
sql: sqlResponse.sql,
|
|
131
|
+
rationale: sqlResponse.rationale,
|
|
132
|
+
fields: execution.fields,
|
|
133
|
+
rows: anonymizeResults(execution.rows),
|
|
134
|
+
max_retries: chartMaxRetries,
|
|
135
|
+
}, tenantId, userId, scopes, signal, sessionId);
|
|
136
|
+
return {
|
|
137
|
+
sql: sqlResponse.sql,
|
|
138
|
+
rationale: sqlResponse.rationale,
|
|
139
|
+
context: sqlResponse.context,
|
|
140
|
+
chart: {
|
|
141
|
+
vegaLiteSpec: chartResponse.vegaLiteSpec,
|
|
142
|
+
notes: chartResponse.notes,
|
|
143
|
+
},
|
|
144
|
+
fields: execution.fields,
|
|
145
|
+
rows: execution.rows,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
lastError = error instanceof Error ? error.message : String(error);
|
|
150
|
+
attempt += 1;
|
|
151
|
+
if (attempt >= sqlMaxAttempts) {
|
|
152
|
+
throw error;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
throw new Error("Failed to generate chart after maximum attempts");
|
|
20
157
|
}
|
|
21
158
|
async train(body, options, signal) {
|
|
22
159
|
return await this.post("/train", body, body.tenant_id, options?.userId, options?.scopes, signal);
|
|
@@ -31,32 +168,65 @@ class QueryPanelSdkAPI {
|
|
|
31
168
|
async listCharts(options, signal) {
|
|
32
169
|
const queryParams = new URLSearchParams();
|
|
33
170
|
if (options.pagination?.page) {
|
|
34
|
-
queryParams.set(
|
|
171
|
+
queryParams.set("page", options.pagination.page.toString());
|
|
35
172
|
}
|
|
36
173
|
if (options.pagination?.limit) {
|
|
37
|
-
queryParams.set(
|
|
174
|
+
queryParams.set("limit", options.pagination.limit.toString());
|
|
175
|
+
}
|
|
176
|
+
if (options.sortBy) {
|
|
177
|
+
queryParams.set("sort_by", options.sortBy);
|
|
178
|
+
}
|
|
179
|
+
if (options.sortDir) {
|
|
180
|
+
queryParams.set("sort_dir", options.sortDir);
|
|
181
|
+
}
|
|
182
|
+
if (options.name) {
|
|
183
|
+
queryParams.set("name", options.name);
|
|
184
|
+
}
|
|
185
|
+
if (options.filterUserId) {
|
|
186
|
+
queryParams.set("user_id", options.filterUserId);
|
|
187
|
+
}
|
|
188
|
+
if (options.createdFrom) {
|
|
189
|
+
queryParams.set("created_from", options.createdFrom);
|
|
190
|
+
}
|
|
191
|
+
if (options.createdTo) {
|
|
192
|
+
queryParams.set("created_to", options.createdTo);
|
|
193
|
+
}
|
|
194
|
+
if (options.updatedFrom) {
|
|
195
|
+
queryParams.set("updated_from", options.updatedFrom);
|
|
196
|
+
}
|
|
197
|
+
if (options.updatedTo) {
|
|
198
|
+
queryParams.set("updated_to", options.updatedTo);
|
|
38
199
|
}
|
|
39
|
-
if (options.sortBy)
|
|
40
|
-
queryParams.set('sort_by', options.sortBy);
|
|
41
|
-
if (options.sortDir)
|
|
42
|
-
queryParams.set('sort_dir', options.sortDir);
|
|
43
|
-
if (options.name)
|
|
44
|
-
queryParams.set('name', options.name);
|
|
45
|
-
if (options.filterUserId)
|
|
46
|
-
queryParams.set('user_id', options.filterUserId);
|
|
47
|
-
if (options.createdFrom)
|
|
48
|
-
queryParams.set('created_from', options.createdFrom);
|
|
49
|
-
if (options.createdTo)
|
|
50
|
-
queryParams.set('created_to', options.createdTo);
|
|
51
|
-
if (options.updatedFrom)
|
|
52
|
-
queryParams.set('updated_from', options.updatedFrom);
|
|
53
|
-
if (options.updatedTo)
|
|
54
|
-
queryParams.set('updated_to', options.updatedTo);
|
|
55
200
|
const query = queryParams.toString() ? `?${queryParams.toString()}` : "";
|
|
56
|
-
|
|
201
|
+
const charts = await this.get(`/v2/charts${query}`, options.tenantId, options.userId, options.scopes, signal);
|
|
202
|
+
const chartsWithData = await Promise.all(charts.data.map(async (chart) => {
|
|
203
|
+
return {
|
|
204
|
+
...chart,
|
|
205
|
+
vega_lite_spec: {
|
|
206
|
+
...chart.vega_lite_spec,
|
|
207
|
+
data: {
|
|
208
|
+
values: (await this.runSafeQueryOnClient(chart.sql, chart.database)) ??
|
|
209
|
+
[],
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
}));
|
|
214
|
+
return {
|
|
215
|
+
...charts,
|
|
216
|
+
data: chartsWithData,
|
|
217
|
+
};
|
|
57
218
|
}
|
|
58
219
|
async getChart(id, options, signal) {
|
|
59
|
-
|
|
220
|
+
const chart = await this.get(`/v2/charts/${encodeURIComponent(id)}`, options.tenantId, options.userId, options.scopes, signal);
|
|
221
|
+
return {
|
|
222
|
+
...chart,
|
|
223
|
+
vega_lite_spec: {
|
|
224
|
+
...chart.vega_lite_spec,
|
|
225
|
+
data: {
|
|
226
|
+
values: await this.runSafeQueryOnClient(chart.sql, chart.database),
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
};
|
|
60
230
|
}
|
|
61
231
|
async updateChart(id, body, options, signal) {
|
|
62
232
|
return await this.put(`/v2/charts/${encodeURIComponent(id)}`, body, options.tenantId, options.userId, options.scopes, signal);
|
|
@@ -71,32 +241,55 @@ class QueryPanelSdkAPI {
|
|
|
71
241
|
async listActiveCharts(options, signal) {
|
|
72
242
|
const queryParams = new URLSearchParams();
|
|
73
243
|
if (options.pagination?.page) {
|
|
74
|
-
queryParams.set(
|
|
244
|
+
queryParams.set("page", options.pagination.page.toString());
|
|
75
245
|
}
|
|
76
246
|
if (options.pagination?.limit) {
|
|
77
|
-
queryParams.set(
|
|
247
|
+
queryParams.set("limit", options.pagination.limit.toString());
|
|
78
248
|
}
|
|
79
249
|
if (options.sortBy)
|
|
80
|
-
queryParams.set(
|
|
250
|
+
queryParams.set("sort_by", options.sortBy);
|
|
81
251
|
if (options.sortDir)
|
|
82
|
-
queryParams.set(
|
|
252
|
+
queryParams.set("sort_dir", options.sortDir);
|
|
83
253
|
if (options.name)
|
|
84
|
-
queryParams.set(
|
|
254
|
+
queryParams.set("name", options.name);
|
|
85
255
|
if (options.filterUserId)
|
|
86
|
-
queryParams.set(
|
|
256
|
+
queryParams.set("user_id", options.filterUserId);
|
|
87
257
|
if (options.createdFrom)
|
|
88
|
-
queryParams.set(
|
|
258
|
+
queryParams.set("created_from", options.createdFrom);
|
|
89
259
|
if (options.createdTo)
|
|
90
|
-
queryParams.set(
|
|
260
|
+
queryParams.set("created_to", options.createdTo);
|
|
91
261
|
if (options.updatedFrom)
|
|
92
|
-
queryParams.set(
|
|
262
|
+
queryParams.set("updated_from", options.updatedFrom);
|
|
93
263
|
if (options.updatedTo)
|
|
94
|
-
queryParams.set(
|
|
264
|
+
queryParams.set("updated_to", options.updatedTo);
|
|
95
265
|
const query = queryParams.toString() ? `?${queryParams.toString()}` : "";
|
|
96
|
-
|
|
266
|
+
const charts = await this.get(`/v2/active-charts${query}`, options.tenantId, options.userId, options.scopes, signal);
|
|
267
|
+
if (options.withdata) {
|
|
268
|
+
charts.data = await Promise.all(charts.data.map(async (chart) => {
|
|
269
|
+
return {
|
|
270
|
+
...chart,
|
|
271
|
+
chart: await this.getChart(chart.chart_id, options),
|
|
272
|
+
};
|
|
273
|
+
}));
|
|
274
|
+
}
|
|
275
|
+
return charts;
|
|
97
276
|
}
|
|
98
277
|
async getActiveChart(id, options, signal) {
|
|
99
|
-
|
|
278
|
+
const activeChart = await this.get(`/v2/active-charts/${encodeURIComponent(id)}`, options.tenantId, options.userId, options.scopes, signal);
|
|
279
|
+
return {
|
|
280
|
+
...activeChart,
|
|
281
|
+
...(!!activeChart.chart && {
|
|
282
|
+
chart: {
|
|
283
|
+
...activeChart.chart,
|
|
284
|
+
vega_lite_spec: {
|
|
285
|
+
...activeChart.chart.vega_lite_spec,
|
|
286
|
+
data: {
|
|
287
|
+
values: await this.runSafeQueryOnClient(activeChart.chart.sql, activeChart.chart.database),
|
|
288
|
+
},
|
|
289
|
+
},
|
|
290
|
+
},
|
|
291
|
+
}),
|
|
292
|
+
};
|
|
100
293
|
}
|
|
101
294
|
async updateActiveChart(id, body, options, signal) {
|
|
102
295
|
return await this.put(`/v2/active-charts/${encodeURIComponent(id)}`, body, options.tenantId, options.userId, options.scopes, signal);
|
|
@@ -104,36 +297,36 @@ class QueryPanelSdkAPI {
|
|
|
104
297
|
async deleteActiveChart(id, options, signal) {
|
|
105
298
|
await this.delete(`/v2/active-charts/${encodeURIComponent(id)}`, options.tenantId, options.userId, options.scopes, signal);
|
|
106
299
|
}
|
|
107
|
-
async get(path, tenantId, userId, scopes, signal) {
|
|
300
|
+
async get(path, tenantId, userId, scopes, signal, sessionId) {
|
|
108
301
|
const res = await fetch(this.baseUrl + path, {
|
|
109
302
|
method: "GET",
|
|
110
|
-
headers: await this.headers(tenantId, userId, scopes, false),
|
|
303
|
+
headers: await this.headers(tenantId, userId, scopes, false, sessionId),
|
|
111
304
|
signal,
|
|
112
305
|
});
|
|
113
306
|
return await this.parseResponse(res);
|
|
114
307
|
}
|
|
115
|
-
async post(path, body, tenantId, userId, scopes, signal) {
|
|
308
|
+
async post(path, body, tenantId, userId, scopes, signal, sessionId) {
|
|
116
309
|
const res = await fetch(this.baseUrl + path, {
|
|
117
310
|
method: "POST",
|
|
118
|
-
headers: await this.headers(tenantId, userId, scopes),
|
|
311
|
+
headers: await this.headers(tenantId, userId, scopes, true, sessionId),
|
|
119
312
|
body: JSON.stringify(body ?? {}),
|
|
120
313
|
signal,
|
|
121
314
|
});
|
|
122
315
|
return await this.parseResponse(res);
|
|
123
316
|
}
|
|
124
|
-
async put(path, body, tenantId, userId, scopes, signal) {
|
|
317
|
+
async put(path, body, tenantId, userId, scopes, signal, sessionId) {
|
|
125
318
|
const res = await fetch(this.baseUrl + path, {
|
|
126
319
|
method: "PUT",
|
|
127
|
-
headers: await this.headers(tenantId, userId, scopes),
|
|
320
|
+
headers: await this.headers(tenantId, userId, scopes, true, sessionId),
|
|
128
321
|
body: JSON.stringify(body ?? {}),
|
|
129
322
|
signal,
|
|
130
323
|
});
|
|
131
324
|
return await this.parseResponse(res);
|
|
132
325
|
}
|
|
133
|
-
async delete(path, tenantId, userId, scopes, signal) {
|
|
326
|
+
async delete(path, tenantId, userId, scopes, signal, sessionId) {
|
|
134
327
|
const res = await fetch(this.baseUrl + path, {
|
|
135
328
|
method: "DELETE",
|
|
136
|
-
headers: await this.headers(tenantId, userId, scopes, false),
|
|
329
|
+
headers: await this.headers(tenantId, userId, scopes, false, sessionId),
|
|
137
330
|
signal,
|
|
138
331
|
});
|
|
139
332
|
return await this.parseResponse(res);
|
|
@@ -144,7 +337,7 @@ class QueryPanelSdkAPI {
|
|
|
144
337
|
}
|
|
145
338
|
// Cache the imported private key to avoid re-importing on every request
|
|
146
339
|
if (!this.cachedPrivateKey) {
|
|
147
|
-
this.cachedPrivateKey = await (0, jose_1.importPKCS8)(this.privateKey,
|
|
340
|
+
this.cachedPrivateKey = await (0, jose_1.importPKCS8)(this.privateKey, "RS256");
|
|
148
341
|
}
|
|
149
342
|
const payload = {
|
|
150
343
|
organizationId: this.organizationId,
|
|
@@ -157,12 +350,12 @@ class QueryPanelSdkAPI {
|
|
|
157
350
|
payload.scopes = scopes;
|
|
158
351
|
}
|
|
159
352
|
return await new jose_1.SignJWT(payload)
|
|
160
|
-
.setProtectedHeader({ alg:
|
|
353
|
+
.setProtectedHeader({ alg: "RS256" })
|
|
161
354
|
.setIssuedAt()
|
|
162
|
-
.setExpirationTime(
|
|
355
|
+
.setExpirationTime("1h")
|
|
163
356
|
.sign(this.cachedPrivateKey);
|
|
164
357
|
}
|
|
165
|
-
async headers(tenantId, userId, scopes, includeJsonContentType = true) {
|
|
358
|
+
async headers(tenantId, userId, scopes, includeJsonContentType = true, sessionId) {
|
|
166
359
|
let authToken;
|
|
167
360
|
if (this.token) {
|
|
168
361
|
// Legacy mode: use provided JWT
|
|
@@ -173,17 +366,20 @@ class QueryPanelSdkAPI {
|
|
|
173
366
|
authToken = await this.generateJWT(tenantId, userId, scopes);
|
|
174
367
|
}
|
|
175
368
|
const headers = {
|
|
176
|
-
|
|
177
|
-
|
|
369
|
+
Authorization: `Bearer ${authToken}`,
|
|
370
|
+
Accept: "application/json",
|
|
178
371
|
};
|
|
179
372
|
if (includeJsonContentType) {
|
|
180
373
|
headers["Content-Type"] = "application/json";
|
|
181
374
|
}
|
|
375
|
+
if (sessionId) {
|
|
376
|
+
headers["x-session-id"] = sessionId;
|
|
377
|
+
}
|
|
182
378
|
return headers;
|
|
183
379
|
}
|
|
184
380
|
async parseResponse(res) {
|
|
185
381
|
const text = await res.text();
|
|
186
|
-
let json
|
|
382
|
+
let json;
|
|
187
383
|
try {
|
|
188
384
|
json = text ? JSON.parse(text) : undefined;
|
|
189
385
|
}
|
|
@@ -198,6 +394,17 @@ class QueryPanelSdkAPI {
|
|
|
198
394
|
}
|
|
199
395
|
return json;
|
|
200
396
|
}
|
|
397
|
+
async runSafeQueryOnClient(sql, database) {
|
|
398
|
+
try {
|
|
399
|
+
const adapter = this.getDatabase(database);
|
|
400
|
+
const result = await adapter.execute(sql);
|
|
401
|
+
return result.rows;
|
|
402
|
+
}
|
|
403
|
+
catch (error) {
|
|
404
|
+
console.error(`Error running query on database '${database}': ${error}`);
|
|
405
|
+
return [];
|
|
406
|
+
}
|
|
407
|
+
}
|
|
201
408
|
}
|
|
202
409
|
exports.QueryPanelSdkAPI = QueryPanelSdkAPI;
|
|
203
410
|
//# sourceMappingURL=index.js.map
|