@chkit/clickhouse 0.1.2-beta.7 → 0.2.0-beta.12
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/dist/alter-column-statement.d.ts +32 -0
- package/dist/alter-column-statement.d.ts.map +1 -0
- package/dist/alter-column-statement.js +137 -0
- package/dist/alter-column-statement.js.map +1 -0
- package/dist/async-insert-guard.d.ts +31 -0
- package/dist/async-insert-guard.d.ts.map +1 -0
- package/dist/async-insert-guard.js +55 -0
- package/dist/async-insert-guard.js.map +1 -0
- package/dist/canonicalize.d.ts +21 -0
- package/dist/canonicalize.d.ts.map +1 -0
- package/dist/canonicalize.js +70 -0
- package/dist/canonicalize.js.map +1 -0
- package/dist/create-table-parser.d.ts +3 -0
- package/dist/create-table-parser.d.ts.map +1 -1
- package/dist/create-table-parser.js +54 -43
- package/dist/create-table-parser.js.map +1 -1
- package/dist/ddl-propagation.d.ts +62 -6
- package/dist/ddl-propagation.d.ts.map +1 -1
- package/dist/ddl-propagation.js +459 -49
- package/dist/ddl-propagation.js.map +1 -1
- package/dist/e2e-testkit.d.ts +26 -4
- package/dist/e2e-testkit.d.ts.map +1 -1
- package/dist/e2e-testkit.js +56 -14
- package/dist/e2e-testkit.js.map +1 -1
- package/dist/exact-json.d.ts +27 -0
- package/dist/exact-json.d.ts.map +1 -0
- package/dist/exact-json.js +128 -0
- package/dist/exact-json.js.map +1 -0
- package/dist/index.d.ts +52 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +220 -64
- package/dist/index.js.map +1 -1
- package/dist/insert-barrier.d.ts +32 -0
- package/dist/insert-barrier.d.ts.map +1 -0
- package/dist/insert-barrier.js +57 -0
- package/dist/insert-barrier.js.map +1 -0
- package/dist/replicas.d.ts +21 -0
- package/dist/replicas.d.ts.map +1 -0
- package/dist/replicas.js +39 -0
- package/dist/replicas.js.map +1 -0
- package/dist/view-details.d.ts +30 -0
- package/dist/view-details.d.ts.map +1 -0
- package/dist/view-details.js +73 -0
- package/dist/view-details.js.map +1 -0
- package/package.json +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ddl-propagation.js","sourceRoot":"","sources":["../src/ddl-propagation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ddl-propagation.js","sourceRoot":"","sources":["../src/ddl-propagation.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAqB,MAAM,6BAA6B,CAAA;AAE3G,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAsB,MAAM,eAAe,CAAA;AAEpG,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;AACjE,6EAA6E;AAC7E,MAAM,2BAA2B,GAAG,MAAM,CAAA;AAE1C,iEAAiE;AACjE,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,oBAAoB,EAAE,SAAS,EAAE,mBAAmB,CAAU,CAAA;AAW7G,iFAAiF;AACjF,yDAAyD;AACzD,MAAM,YAAY,GAAgC,IAAI,GAAG,CAAiC;IACxF,CAAC,wCAAwC,EAAE,UAAU,CAAC;IACtD,CAAC,wBAAwB,EAAE,UAAU,CAAC;IACtC,CAAC,2BAA2B,EAAE,UAAU,CAAC;IACzC,CAAC,yBAAyB,EAAE,UAAU,CAAC;IACvC,CAAC,2BAA2B,EAAE,iBAAiB,CAAC;IAChD,CAAC,uBAAuB,EAAE,SAAS,CAAC;IACpC,CAAC,wBAAwB,EAAE,SAAS,CAAC;IACrC,CAAC,4BAA4B,EAAE,cAAc,CAAC;IAC9C,CAAC,6BAA6B,EAAE,cAAc,CAAC;IAC/C,CAAC,4BAA4B,EAAE,cAAc,CAAC;IAC9C,CAAC,6BAA6B,EAAE,cAAc,CAAC;IAC/C,CAAC,4BAA4B,EAAE,WAAW,CAAC;IAC3C,CAAC,2BAA2B,EAAE,WAAW,CAAC;IAC1C,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAClC,CAAC,0BAA0B,EAAE,eAAe,CAAC;IAC7C,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;CAC5C,CAAC,CAAA;AAkBF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAA4B,EAC5B,QAAgB,EAChB,SAAiB,EACjB,OAA4B;IAE5B,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,cAAc,aAAa,CAAC,QAAQ,CAAC,eAAe,aAAa,CAAC,SAAS,CAAC,EAAE;QACrF,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,iBAAiB,QAAQ,IAAI,SAAS,kBAAkB;KAChE,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAA4B,EAC5B,QAAgB,EAChB,QAAgB,EAChB,OAA4B;IAE5B,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,cAAc,aAAa,CAAC,QAAQ,CAAC,eAAe,aAAa,CAAC,QAAQ,CAAC,2BAA2B;QAC7G,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,gBAAgB,QAAQ,IAAI,QAAQ,kBAAkB;KAC9D,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAA4B,EAC5B,QAAgB,EAChB,cAAsB,EACtB,OAA4B;IAE5B,MAAM,KAAK,GAAG,cAAc,aAAa,CAAC,QAAQ,CAAC,eAAe,aAAa,CAAC,cAAc,CAAC,4BAA4B,CAAA;IAC3H,MAAM,KAAK,GAAG,sBAAsB,QAAQ,IAAI,cAAc,kBAAkB,CAAA;IAChF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACrE,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;QACtB,IAAI,CAAC,CAAC,MAAM,wBAAwB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;IACxF,CAAC,EAAE,aAAa,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAA4B,EAC5B,QAAgB,EAChB,SAAiB,EACjB,UAAkB,EAClB,OAA4B;IAE5B,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;QACnD,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,kBAAkB,QAAQ,IAAI,SAAS,IAAI,UAAU,kBAAkB;KAC/E,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAA4B,EAC5B,QAAgB,EAChB,SAAiB,EACjB,UAAkB,EAClB,OAA4B;IAE5B,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;QACnD,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,wBAAwB,QAAQ,IAAI,SAAS,IAAI,UAAU,gBAAgB;KACnF,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,KAAK,UAAU,uBAAuB,CACpC,QAA4B,EAC5B,QAAgB,EAChB,SAAiB,EACjB,UAAkB,EAClB,MAAoB,EACpB,OAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAA;IAChF,MAAM,GAAG,GAAG,iCAAiC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,UAAU,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAA;IAC5I,MAAM,gBAAgB,CAAC,GAAG,QAAQ,IAAI,SAAS,IAAI,UAAU,aAAa,EAAE,KAAK,IAAI,EAAE,CACrF,wBAAwB,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAsB,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,IAAI,CAAC,EAAE,QAAQ,CAAC,CAC1G,CAAA;AACH,CAAC;AAED,qFAAqF;AACrF,KAAK,UAAU,mBAAmB,CAChC,QAA4B,EAC5B,QAAgB,EAChB,SAAiB,EACjB,MAAoC,EACpC,OAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAA;IAChF,MAAM,GAAG,GAAG,2CAA2C,MAAM,qBAAqB,aAAa,CAAC,QAAQ,CAAC,gBAAgB,aAAa,CAAC,SAAS,CAAC,iBAAiB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAA;IAC5N,MAAM,gBAAgB,CAAC,GAAG,QAAQ,IAAI,SAAS,qBAAqB,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;QAC5G,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAoC,GAAG,CAAC,CAAA;QACzE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,IAAI,EAAE,CAAA;QAC5F,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/F,IAAI,OAAO,CAAC,IAAI,GAAG,QAAQ;YAAE,OAAO,UAAU,MAAM,CAAC,EAAE,iBAAiB,OAAO,CAAC,IAAI,OAAO,QAAQ,WAAW,CAAA;QAC9G,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,QAA4B,EAC5B,QAAgB,EAChB,SAAiB,EACjB,SAAiB,EACjB,IAA0B,EAC1B,OAA4B;IAE5B,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,8BAA8B;QACtC,KAAK,EAAE,cAAc,aAAa,CAAC,QAAQ,CAAC,gBAAgB,aAAa,CAAC,SAAS,CAAC,eAAe,aAAa,CAAC,SAAS,CAAC,EAAE;QAC7H,IAAI;QACJ,KAAK,EAAE,iBAAiB,QAAQ,IAAI,SAAS,IAAI,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,EAAE;KACzH,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,iBAAiB,CAC9B,QAA4B,EAC5B,QAAgB,EAChB,SAAiB,EACjB,cAAsB,EACtB,OAA4B;IAE5B,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC;QAC3D,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,sBAAsB,QAAQ,IAAI,SAAS,IAAI,cAAc,kBAAkB;KACvF,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,QAA4B,EAC5B,QAAgB,EAChB,SAAiB,EACjB,cAAsB,EACtB,OAA4B;IAE5B,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC;QAC3D,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,4BAA4B,QAAQ,IAAI,SAAS,IAAI,cAAc,gBAAgB;KAC3F,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAA4B,EAC5B,SAAiB,EACjB,OAA4B;IAE5B,IAAI,OAAO,EAAE,OAAO;QAAE,OAAM;IAC5B,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAM;IACnB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IACnD,IAAI,CAAC,MAAM;QAAE,OAAM;IACnB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IAC9B,MAAM,KAAK,GAAG,eAAe,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA;IAChM,MAAM,GAAG,GAAG,oIAAoI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,KAAK,0BAA0B,CAAA;IAC7N,MAAM,gBAAgB,CAAC,mBAAmB,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,QAAQ,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;QACzH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAA6G,GAAG,CAAC,CAAA;QAClJ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,QAAQ,IAAI,CAAC,MAAM,6BAA6B,CAAA;QAC5E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ;gBAAE,OAAO,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,iBAAiB,GAAG,CAAC,QAAQ,OAAO,MAAM,CAAC,QAAQ,WAAW,CAAA;YAC5I,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,OAAO,oCAAoC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAA;QACpG,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW;YAAE,OAAO,iCAAiC,CAAA;QAC3F,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC;AAOD,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA,qCAAqC,CAAA;AACtE,MAAM,gBAAgB,GAAG,IAAI,MAAM,CACjC,MAAM,CAAC,GAAG,CAAA,4BAA4B,cAAc,OAAO,cAAc,cAAc,cAAc,OAAO,cAAc,GAAG,EAC7H,GAAG,CACJ,CAAA;AAED,uEAAuE;AACvE,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAA;IAClC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAA;IAChD,OAAO;QACL,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;QAC7C,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,UAAkB;IACjC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,UAAU,CAAA;IAClD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAA4B,EAC5B,GAAW,EACX,SAAiC,EACjC,KAAK,GAAG,aAAa;IAErB,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAI,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,+BAA+B,CAAC,CAAA;QAC1D,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,EAAE,aAAa,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAA4B,EAC5B,QAAgB,EAChB,SAAiB,EACjB,OAA4B;IAE5B,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,cAAc,aAAa,CAAC,QAAQ,CAAC,eAAe,aAAa,CAAC,SAAS,CAAC,EAAE;QACrF,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,uBAAuB,QAAQ,IAAI,SAAS,gBAAgB;KACpE,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CACxB,aAAqB,EACrB,GAAW;IAYX,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAA;IACzF,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC/B,uFAAuF;IACvF,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAA;IAC7B,uFAAuF;IACvF,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAA;IAEzB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC9C,MAAM,EAAE,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC/D,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IACvF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC7C,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACxB,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAClD,UAAU,EAAE,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC1D,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAChD,MAAM,EAAE,MAAM,KAAK,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC1D,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,MAAc,EAAE,SAA6B;IAClE,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACjF,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,MAAM;QAAE,OAAO,MAAM,CAAA;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AAClG,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAA4B,EAC5B,aAAqB,EACrB,YAAoB,EACpB,OAA4B;IAE5B,4EAA4E;IAC5E,4EAA4E;IAC5E,IAAI,aAAa,KAAK,iBAAiB;QAAE,OAAM;IAC/C,2EAA2E;IAC3E,0EAA0E;IAC1E,+BAA+B;IAC/B,IAAI,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAM;IAChD,IAAI,aAAa,KAAK,iBAAiB,EAAE,CAAC;QACxC,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS;YAAE,OAAM;QAC5C,OAAO,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;IAC7D,IAAI,CAAC,MAAM;QAAE,OAAM,CAAC,2DAA2D;IAE/E,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,cAAc;YACjB,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAEvE,KAAK,aAAa,CAAC;QACnB,KAAK,0BAA0B;YAC7B,OAAO,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAEtE,KAAK,mBAAmB;YACtB,OAAO,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAE5E,uEAAuE;QACvE,0EAA0E;QAC1E,KAAK,wBAAwB,CAAC;QAC9B,KAAK,2BAA2B;YAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,MAAM,GACV,aAAa,KAAK,2BAA2B,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS;oBAC/E,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;oBAC3D,CAAC,CAAC,EAAE,CAAA;gBACR,OAAO,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YACzG,CAAC;YACD,OAAM;QAER,KAAK,2BAA2B,CAAC,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;YACzG,IAAI,MAAM;gBAAE,OAAO,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAChG,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACvE,CAAC;QAED,KAAK,uBAAuB,CAAC;QAC7B,KAAK,wBAAwB;YAC3B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,aAAa,KAAK,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;gBAC7E,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YAC3F,CAAC;YACD,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAEvE,KAAK,yBAAyB;YAC5B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC7F,CAAC;YACD,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAEvE,KAAK,4BAA4B;YAC/B,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,OAAO,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YAC/F,CAAC;YACD,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAEvE,KAAK,6BAA6B;YAChC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,OAAO,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YACrG,CAAC;YACD,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAEvE,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,wBAAwB,CAAC;QAC9B,KAAK,iBAAiB;YACpB,OAAO,kBAAkB,CACvB,QAAQ,EACR,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,KAAK,EACZ,OAAO,CACR,CAAA;QAEH;YACE,0DAA0D;YAC1D,+CAA+C;YAC/C,uDAAuD;YACvD,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACzE,CAAC;AACH,CAAC;AASD,KAAK,UAAU,iBAAiB,CAC9B,QAA4B,EAC5B,IAAoB,EACpB,OAAuC;IAEvC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACrE,MAAM,MAAM,CAAC,KAAK,IAAI,EAAE;QACtB,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnF,CAAC,EAAE,aAAa,CAAC,CAAA;AACnB,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,QAA4B,EAC5B,KAAa,EACb,MAAiC;IAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAgB,0CAA0C,KAAK,EAAE,CAAC,CAAA;QACnG,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IACxB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAC/B,mLAAmL,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,KAAK,EAAE,CACzO,CAAA;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAA;IAC/C,OAAO,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,QAAQ,CAAC,KAA4C;IAC5D,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,CAAA;AACvD,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,QAA4B,EAC5B,IAAoB,EACpB,MAAiC;IAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAgB,sBAAsB,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACzG,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAA;IACtE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAC/B,sDAAsD,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAC7G,CAAA;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAA;IAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAA;AAC/E,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAE,UAAkB;IAC1E,OAAO,cAAc,aAAa,CAAC,QAAQ,CAAC,gBAAgB,aAAa,CAAC,SAAS,CAAC,eAAe,aAAa,CAAC,UAAU,CAAC,EAAE,CAAA;AAChI,CAAC;AAED,6EAA6E;AAC7E,sEAAsE;AACtE,SAAS,eAAe,CAAC,QAAgB,EAAE,SAAiB,EAAE,cAAsB;IAClF,MAAM,MAAM,GAAG,KAAK,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAA;IAClF,MAAM,SAAS,GAAG,CAAC,cAAc,cAAc,GAAG,EAAE,cAAc,MAAM,GAAG,CAAC,CAAA;IAC5E,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,gCAAgC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvH,OAAO,cAAc,aAAa,CAAC,QAAQ,CAAC,eAAe,aAAa,CAAC,SAAS,CAAC,SAAS,MAAM,GAAG,CAAA;AACvG,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,KAAwC;IACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,2BAA2B,CAAA;IACzD,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,SAAS,CAAC;QACR,MAAM,IAAI,CAAC,CAAA;QACX,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,OAAM;QAC3E,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAA;QAClD,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,UAAU,IAAI,QAAQ;YAAE,MAAK;QAC9F,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/E,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,uCAAuC,MAAM,YAAY,MAAM,EAAE,CAAC,CAAA;AACrH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAwC,EACxC,QAAgB;IAEhB,IAAI,KAAgD,CAAA;IACpD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,EAAE;QAC3D,KAAK,GAAG,UAAU,CAChB,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,qCAAqC,2BAA2B,GAAG,IAAI,YAAY,EAAE,CAAC,EAC/G,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CACnC,CAAA;IACH,CAAC,CAAC,CAAA;IACF,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,KAAK,EAAE,CAAC,IAAI,CACV,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAC5B,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAC1F;YACD,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,oBAAoB,CACjC,QAA4B,EAC5B,MAAoB;IAEpB,MAAM,QAAQ,GAA0B,EAAE,CAAA;IAC1C,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IACzG,IAAI,MAAM,CAAC,WAAW,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACxF,IAAI,MAAM,CAAC,WAAW;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACtH,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;IAC5F,IAAI,MAAM,CAAC,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IACjF,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC5E,IAAI,SAAS,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAC/F,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAA4B,EAAE,UAAkB;IAC9E,MAAM,MAAM,GAAG,SAAS,CAAA;IACxB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAC/B,gCAAgC,aAAa,CAAC,GAAG,MAAM,GAAG,UAAU,EAAE,CAAC,gBAAgB,CACxF,CAAA;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAA;QACpC,OAAO,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAC/B,IAA2B,EAC3B,QAAgB,EAChB,QAA+B;IAE/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IACtD,IAAI,MAAM,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACnE,OAAO,2BAA2B,MAAM,CAAC,IAAI,OAAO,QAAQ,YAAY,KAAK,EAAE,CAAA;IACjF,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAC5E,IAAI,CAAC,GAAG;YAAE,SAAQ;QAClB,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/F,OAAO,CACL,WAAW,GAAG,CAAC,OAAO,YAAY,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,wBAAwB,IAAI,EAAE;YAC3G,CAAC,SAAS,CAAC,CAAC,CAAC,yHAAyH,CAAC,CAAC,CAAC,EAAE,CAAC,CAC7I,CAAA;IACH,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAA;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QACrE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,WAAW,GAAG,CAAC,OAAO,YAAY,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,KAAK,CAAC,OAAO,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;QAClJ,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,IAAyB;IAChE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAA;AAC5E,CAAC"}
|
package/dist/e2e-testkit.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared E2E test utilities for live ClickHouse tests.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Targets the local test stack (test/infra) unless CLICKHOUSE_* points elsewhere.
|
|
5
|
+
* Never skips: an unreachable server fails the test.
|
|
5
6
|
* Uses ClickHouseExecutor so any package that depends on @chkit/clickhouse can import this.
|
|
6
7
|
*/
|
|
7
8
|
import { type ClickHouseExecutor } from './index.js';
|
|
@@ -12,10 +13,16 @@ export interface LiveEnv {
|
|
|
12
13
|
clickhouseDatabase: string;
|
|
13
14
|
}
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
16
|
+
* The ClickHouse in test/infra/docker-compose.yml, which `infra:up` starts on
|
|
17
|
+
* CHKIT_TEST_PORT (default 8123).
|
|
17
18
|
*/
|
|
18
|
-
export declare
|
|
19
|
+
export declare const LOCAL_STACK_ENV: LiveEnv;
|
|
20
|
+
/**
|
|
21
|
+
* Reads the ClickHouse target from env vars. Without CLICKHOUSE_URL or
|
|
22
|
+
* CLICKHOUSE_HOST, tests run against the local test stack. A remote target
|
|
23
|
+
* must also set CLICKHOUSE_PASSWORD.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getLiveEnv(): LiveEnv;
|
|
19
26
|
/**
|
|
20
27
|
* Creates a ClickHouseExecutor configured for E2E tests from env vars.
|
|
21
28
|
*/
|
|
@@ -30,5 +37,20 @@ export declare function quoteIdent(value: string): string;
|
|
|
30
37
|
export declare function createRunTag(): string;
|
|
31
38
|
export declare function createPrefix(label: string): string;
|
|
32
39
|
export declare function createJournalTableName(label: string): string;
|
|
40
|
+
export interface PollUntilOptions {
|
|
41
|
+
timeoutMs?: number;
|
|
42
|
+
intervalMs?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Re-reads `read()` until `predicate` accepts its value or `timeoutMs` elapses.
|
|
46
|
+
* Unlike `waitForRows`, running out of time returns the last observed value
|
|
47
|
+
* instead of throwing, so the caller's own `expect` reports the real diff.
|
|
48
|
+
* A read that keeps throwing until the deadline rethrows its last error.
|
|
49
|
+
*
|
|
50
|
+
* Put the whole observation inside `read` (e.g. `SYSTEM RELOAD DICTIONARY`
|
|
51
|
+
* followed by `dictGet`): on multi-replica services each attempt may land on a
|
|
52
|
+
* different replica, so a one-off preparation step can't be relied on.
|
|
53
|
+
*/
|
|
54
|
+
export declare function pollUntil<T>(read: () => Promise<T>, predicate: (value: T) => boolean, options?: PollUntilOptions): Promise<T>;
|
|
33
55
|
export { waitForTable, waitForView, waitForColumn, waitForDictionary, waitForRows, } from './ddl-propagation.js';
|
|
34
56
|
//# sourceMappingURL=e2e-testkit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2e-testkit.d.ts","sourceRoot":"","sources":["../src/e2e-testkit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"e2e-testkit.d.ts","sourceRoot":"","sources":["../src/e2e-testkit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAA;AAMnB,MAAM,WAAW,OAAO;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,OAK7B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAepC;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAOnE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,CAO5E;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAMD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK5D;AAMD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,EAChC,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAID,OAAO,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,GACZ,MAAM,sBAAsB,CAAA"}
|
package/dist/e2e-testkit.js
CHANGED
|
@@ -1,23 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared E2E test utilities for live ClickHouse tests.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Targets the local test stack (test/infra) unless CLICKHOUSE_* points elsewhere.
|
|
5
|
+
* Never skips: an unreachable server fails the test.
|
|
5
6
|
* Uses ClickHouseExecutor so any package that depends on @chkit/clickhouse can import this.
|
|
6
7
|
*/
|
|
8
|
+
import { setTimeout as sleep } from 'node:timers/promises';
|
|
9
|
+
import { quoteIdentifier } from '@chkit/core';
|
|
7
10
|
import { createClickHouseExecutor, createStatelessClickHouseExecutor, } from './index.js';
|
|
8
11
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
12
|
+
* The ClickHouse in test/infra/docker-compose.yml, which `infra:up` starts on
|
|
13
|
+
* CHKIT_TEST_PORT (default 8123).
|
|
11
14
|
*/
|
|
12
|
-
export
|
|
15
|
+
export const LOCAL_STACK_ENV = {
|
|
16
|
+
clickhouseUrl: `http://localhost:${process.env.CHKIT_TEST_PORT?.trim() || '8123'}`,
|
|
17
|
+
clickhouseUser: 'default',
|
|
18
|
+
clickhousePassword: 'chkit-ci',
|
|
19
|
+
clickhouseDatabase: 'default',
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Reads the ClickHouse target from env vars. Without CLICKHOUSE_URL or
|
|
23
|
+
* CLICKHOUSE_HOST, tests run against the local test stack. A remote target
|
|
24
|
+
* must also set CLICKHOUSE_PASSWORD.
|
|
25
|
+
*/
|
|
26
|
+
export function getLiveEnv() {
|
|
13
27
|
const clickhouseHost = process.env.CLICKHOUSE_HOST?.trim();
|
|
14
28
|
const clickhouseUrl = process.env.CLICKHOUSE_URL?.trim() || (clickhouseHost ? `https://${clickhouseHost}` : '');
|
|
29
|
+
if (!clickhouseUrl)
|
|
30
|
+
return LOCAL_STACK_ENV;
|
|
15
31
|
const clickhouseUser = process.env.CLICKHOUSE_USER?.trim() || 'default';
|
|
16
32
|
const clickhousePassword = process.env.CLICKHOUSE_PASSWORD?.trim() || '';
|
|
17
33
|
const clickhouseDatabase = process.env.CLICKHOUSE_DB?.trim() || 'default';
|
|
18
|
-
if (!clickhouseUrl) {
|
|
19
|
-
throw new Error('Missing CLICKHOUSE_URL or CLICKHOUSE_HOST');
|
|
20
|
-
}
|
|
21
34
|
if (!clickhousePassword) {
|
|
22
35
|
throw new Error('Missing CLICKHOUSE_PASSWORD');
|
|
23
36
|
}
|
|
@@ -51,7 +64,7 @@ export function createStatelessLiveExecutor(env) {
|
|
|
51
64
|
});
|
|
52
65
|
}
|
|
53
66
|
export function quoteIdent(value) {
|
|
54
|
-
return
|
|
67
|
+
return quoteIdentifier(value);
|
|
55
68
|
}
|
|
56
69
|
// ---------------------------------------------------------------------------
|
|
57
70
|
// Run tags & naming
|
|
@@ -63,12 +76,41 @@ export function createPrefix(label) {
|
|
|
63
76
|
return `chkit_e2e_${label}_${Date.now()}_${Math.floor(Math.random() * 100000)}_`;
|
|
64
77
|
}
|
|
65
78
|
export function createJournalTableName(label) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
79
|
+
// The CI run id alone is not unique: the TS and Python suites run at the same
|
|
80
|
+
// time against one server and share labels, so a random suffix always follows.
|
|
81
|
+
const runTag = process.env.GITHUB_RUN_ID?.trim() || `${Date.now()}`;
|
|
82
|
+
return `_chkit_migrations_${label}_${runTag}_${Math.floor(Math.random() * 100000)}`;
|
|
69
83
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Re-reads `read()` until `predicate` accepts its value or `timeoutMs` elapses.
|
|
86
|
+
* Unlike `waitForRows`, running out of time returns the last observed value
|
|
87
|
+
* instead of throwing, so the caller's own `expect` reports the real diff.
|
|
88
|
+
* A read that keeps throwing until the deadline rethrows its last error.
|
|
89
|
+
*
|
|
90
|
+
* Put the whole observation inside `read` (e.g. `SYSTEM RELOAD DICTIONARY`
|
|
91
|
+
* followed by `dictGet`): on multi-replica services each attempt may land on a
|
|
92
|
+
* different replica, so a one-off preparation step can't be relied on.
|
|
93
|
+
*/
|
|
94
|
+
export async function pollUntil(read, predicate, options = {}) {
|
|
95
|
+
const timeoutMs = options.timeoutMs ?? 30_000;
|
|
96
|
+
const intervalMs = options.intervalMs ?? 500;
|
|
97
|
+
const deadline = Date.now() + timeoutMs;
|
|
98
|
+
for (;;) {
|
|
99
|
+
let value;
|
|
100
|
+
try {
|
|
101
|
+
value = await read();
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
if (Date.now() >= deadline)
|
|
105
|
+
throw error;
|
|
106
|
+
await sleep(intervalMs);
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
if (predicate(value) || Date.now() >= deadline)
|
|
110
|
+
return value;
|
|
111
|
+
await sleep(intervalMs);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Re-exported from ddl-propagation for test convenience.
|
|
73
115
|
export { waitForTable, waitForView, waitForColumn, waitForDictionary, waitForRows, } from './ddl-propagation.js';
|
|
74
116
|
//# sourceMappingURL=e2e-testkit.js.map
|
package/dist/e2e-testkit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2e-testkit.js","sourceRoot":"","sources":["../src/e2e-testkit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"e2e-testkit.js","sourceRoot":"","sources":["../src/e2e-testkit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ClickHouseJsonQueryResult } from './index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parses a ClickHouse `FORMAT JSON` body without losing digits (#381).
|
|
4
|
+
* ClickHouse writes 64-bit and wider integers and Decimals as bare JSON
|
|
5
|
+
* numbers, and `JSON.parse` rounds them to a double. In a column whose type
|
|
6
|
+
* is or contains one of them, every number becomes a string of the digits
|
|
7
|
+
* ClickHouse sent, as `output_format_json_quote_64bit_integers = 1` and
|
|
8
|
+
* `output_format_json_quote_decimals = 1` would do. Sending those settings
|
|
9
|
+
* instead would fail for a `readonly = 1` user (#402). In a column whose type
|
|
10
|
+
* is or contains `JSON`, `Object` or `Dynamic`, only a number a double would
|
|
11
|
+
* change becomes a string, as in `parseJsonEachRowLine` (#438). Other numbers
|
|
12
|
+
* stay numbers. A statement without a result set (DDL, `OPTIMIZE`) has an empty
|
|
13
|
+
* body, read as no rows.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseJsonResult<T extends Record<string, unknown>>(body: string): ClickHouseJsonQueryResult<T>;
|
|
16
|
+
/** Parses a `JSONEachRow` body, every nonempty line as `parseJsonEachRowLine`. */
|
|
17
|
+
export declare function parseJsonEachRow<T>(body: string): T[];
|
|
18
|
+
/**
|
|
19
|
+
* Parses one `JSONEachRow` line without rounding (#415). A number whose
|
|
20
|
+
* double does not print back to the digits ClickHouse wrote (a 64-bit or
|
|
21
|
+
* wider integer beyond 2^53, a Decimal with more than 15 significant digits)
|
|
22
|
+
* becomes a string of those digits. Every other number, Float64 included, stays a
|
|
23
|
+
* number. Unlike `parseJsonResult`, this needs no column types: values that
|
|
24
|
+
* read correctly today keep their type.
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseJsonEachRowLine<T>(line: string): T;
|
|
27
|
+
//# sourceMappingURL=exact-json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-json.d.ts","sourceRoot":"","sources":["../src/exact-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAqC3D;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,IAAI,EAAE,MAAM,GACV,yBAAyB,CAAC,CAAC,CAAC,CA4B9B;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,CAKrD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAQvD"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Column types whose JSON numbers a double cannot hold exactly: 64-bit and
|
|
3
|
+
* wider integers and Decimals. The Python port uses the same patterns.
|
|
4
|
+
*/
|
|
5
|
+
const EXACT_TYPE_RE = /\b(?:U?Int(?:64|128|256)|Decimal(?:32|64|128|256)?)\b/;
|
|
6
|
+
/**
|
|
7
|
+
* Column types whose values can hold any number, from a Float64 to a UInt64
|
|
8
|
+
* (#438). Their numbers follow the rule of `parseJsonEachRowLine`.
|
|
9
|
+
*/
|
|
10
|
+
const DYNAMIC_TYPE_RE = /\b(?:JSON|Object|Dynamic)\b/;
|
|
11
|
+
const SIXTEEN_DIGITS_RE = /[\d.]{16}/;
|
|
12
|
+
const JSON_NUMBER = Symbol('JsonNumber');
|
|
13
|
+
/**
|
|
14
|
+
* Parses a ClickHouse `FORMAT JSON` body without losing digits (#381).
|
|
15
|
+
* ClickHouse writes 64-bit and wider integers and Decimals as bare JSON
|
|
16
|
+
* numbers, and `JSON.parse` rounds them to a double. In a column whose type
|
|
17
|
+
* is or contains one of them, every number becomes a string of the digits
|
|
18
|
+
* ClickHouse sent, as `output_format_json_quote_64bit_integers = 1` and
|
|
19
|
+
* `output_format_json_quote_decimals = 1` would do. Sending those settings
|
|
20
|
+
* instead would fail for a `readonly = 1` user (#402). In a column whose type
|
|
21
|
+
* is or contains `JSON`, `Object` or `Dynamic`, only a number a double would
|
|
22
|
+
* change becomes a string, as in `parseJsonEachRowLine` (#438). Other numbers
|
|
23
|
+
* stay numbers. A statement without a result set (DDL, `OPTIMIZE`) has an empty
|
|
24
|
+
* body, read as no rows.
|
|
25
|
+
*/
|
|
26
|
+
export function parseJsonResult(body) {
|
|
27
|
+
if (body.trim() === '')
|
|
28
|
+
return { data: [], meta: [], rows: 0 };
|
|
29
|
+
// context.source is the number's JSON text (Node 21+, Bun).
|
|
30
|
+
const { data, meta, ...rest } = JSON.parse(body, (_key, value, context) => typeof value === 'number' ? jsonNumber(context?.source, value) : value);
|
|
31
|
+
const modes = new Map(meta.map((column) => [column.name, numberMode(column.type)]));
|
|
32
|
+
// Rows keyed by column name: data, totals (WITH TOTALS) and extremes.min/max.
|
|
33
|
+
const restoreRow = (row) => isRecord(row)
|
|
34
|
+
? Object.fromEntries(Object.entries(row).map(([name, cell]) => [name, restore(cell, modes.get(name) ?? 'double')]))
|
|
35
|
+
: restore(row, 'double');
|
|
36
|
+
// data first, as the ObsessionDB executor and the Python port print it.
|
|
37
|
+
return {
|
|
38
|
+
data: data.map(restoreRow),
|
|
39
|
+
meta,
|
|
40
|
+
...Object.fromEntries(Object.entries(rest).map(([key, value]) => {
|
|
41
|
+
if (key === 'totals')
|
|
42
|
+
return [key, restoreRow(value)];
|
|
43
|
+
if (key === 'extremes' && isRecord(value)) {
|
|
44
|
+
return [key, Object.fromEntries(Object.entries(value).map(([bound, row]) => [bound, restoreRow(row)]))];
|
|
45
|
+
}
|
|
46
|
+
return [key, restore(value, 'double')];
|
|
47
|
+
})),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/** Parses a `JSONEachRow` body, every nonempty line as `parseJsonEachRowLine`. */
|
|
51
|
+
export function parseJsonEachRow(body) {
|
|
52
|
+
return body
|
|
53
|
+
.split('\n')
|
|
54
|
+
.filter((line) => line.trim().length > 0)
|
|
55
|
+
.map((line) => parseJsonEachRowLine(line));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Parses one `JSONEachRow` line without rounding (#415). A number whose
|
|
59
|
+
* double does not print back to the digits ClickHouse wrote (a 64-bit or
|
|
60
|
+
* wider integer beyond 2^53, a Decimal with more than 15 significant digits)
|
|
61
|
+
* becomes a string of those digits. Every other number, Float64 included, stays a
|
|
62
|
+
* number. Unlike `parseJsonResult`, this needs no column types: values that
|
|
63
|
+
* read correctly today keep their type.
|
|
64
|
+
*/
|
|
65
|
+
export function parseJsonEachRowLine(line) {
|
|
66
|
+
// The reviver makes JSON.parse several times slower. A number with more
|
|
67
|
+
// than 15 digits needs a run of 16 digits and points, so a line without
|
|
68
|
+
// one has nothing to restore.
|
|
69
|
+
if (!SIXTEEN_DIGITS_RE.test(line))
|
|
70
|
+
return JSON.parse(line);
|
|
71
|
+
return JSON.parse(line, (_key, value, context) => typeof value === 'number' ? roundTripNumber(context?.source, value) : value);
|
|
72
|
+
}
|
|
73
|
+
function numberMode(type) {
|
|
74
|
+
if (DYNAMIC_TYPE_RE.test(type))
|
|
75
|
+
return 'roundTrip';
|
|
76
|
+
return EXACT_TYPE_RE.test(type) ? 'digits' : 'double';
|
|
77
|
+
}
|
|
78
|
+
/** The number, or the digits ClickHouse wrote when its double prints other digits. */
|
|
79
|
+
function roundTripNumber(source, value) {
|
|
80
|
+
// Up to 15 significant digits always survive a double (DBL_DIG), and
|
|
81
|
+
// Node 20 gives the reviver no source text: both keep the number.
|
|
82
|
+
if (source === undefined || source.length <= 15)
|
|
83
|
+
return value;
|
|
84
|
+
return canonicalDecimal(source) === canonicalDecimal(String(value)) ? value : source;
|
|
85
|
+
}
|
|
86
|
+
function jsonNumber(source, value) {
|
|
87
|
+
return { [JSON_NUMBER]: true, source, value };
|
|
88
|
+
}
|
|
89
|
+
function isJsonNumber(value) {
|
|
90
|
+
return value !== null && typeof value === 'object' && JSON_NUMBER in value;
|
|
91
|
+
}
|
|
92
|
+
function isRecord(value) {
|
|
93
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value) && !isJsonNumber(value);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* A JSON number's value as `<sign><significant digits>e<exponent>`, so that
|
|
97
|
+
* `100000000000000000000` and `1e+20`, or `0.10` and `0.1`, compare equal.
|
|
98
|
+
*/
|
|
99
|
+
function canonicalDecimal(text) {
|
|
100
|
+
const match = /^(-?)(\d*)(?:\.(\d*))?(?:[eE]([+-]?\d+))?$/.exec(text);
|
|
101
|
+
if (!match)
|
|
102
|
+
return text;
|
|
103
|
+
const [, sign = '', integer = '', fraction = '', exponent = '0'] = match;
|
|
104
|
+
const digits = integer + fraction;
|
|
105
|
+
const first = digits.search(/[1-9]/);
|
|
106
|
+
if (first === -1)
|
|
107
|
+
return '0';
|
|
108
|
+
return `${sign}${digits.slice(first).replace(/0+$/, '')}e${integer.length - first + Number(exponent)}`;
|
|
109
|
+
}
|
|
110
|
+
function restore(value, mode) {
|
|
111
|
+
if (isJsonNumber(value)) {
|
|
112
|
+
if (mode === 'double')
|
|
113
|
+
return value.value;
|
|
114
|
+
// Node 20 gives the reviver no source text: the double would be printed
|
|
115
|
+
// as if it were exact.
|
|
116
|
+
if (value.source === undefined) {
|
|
117
|
+
throw new Error('Reading 64-bit and wider integers and Decimals exactly needs Node.js 22 or later, or Bun. Upgrade Node.js or run chkit with Bun.');
|
|
118
|
+
}
|
|
119
|
+
return mode === 'digits' ? value.source : roundTripNumber(value.source, value.value);
|
|
120
|
+
}
|
|
121
|
+
if (Array.isArray(value))
|
|
122
|
+
return value.map((item) => restore(item, mode));
|
|
123
|
+
if (isRecord(value)) {
|
|
124
|
+
return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, restore(item, mode)]));
|
|
125
|
+
}
|
|
126
|
+
return value;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=exact-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-json.js","sourceRoot":"","sources":["../src/exact-json.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ChxConfig, type ColumnDefinition, type ProjectionDefinition, type SkipIndexDefinition } from '@chkit/core';
|
|
1
|
+
import { type ChxConfig, type ColumnDefinition, type ProjectionDefinition, type SkipIndexDefinition, type TableConstraintDefinition } from '@chkit/core';
|
|
2
2
|
import { type ClickHouseSettings, createClient } from '@clickhouse/client';
|
|
3
3
|
export interface QueryStatus {
|
|
4
4
|
status: 'running' | 'finished' | 'failed' | 'unknown';
|
|
@@ -10,11 +10,25 @@ export interface QueryStatus {
|
|
|
10
10
|
durationMs?: number;
|
|
11
11
|
error?: string;
|
|
12
12
|
}
|
|
13
|
+
export interface QueryStatusOptions {
|
|
14
|
+
afterTime?: string;
|
|
15
|
+
everyReplica?: boolean;
|
|
16
|
+
}
|
|
13
17
|
export type { ClickHouseSettings };
|
|
14
18
|
export interface ClickHouseInsertParams<T extends Record<string, unknown>> {
|
|
15
19
|
table: string;
|
|
16
20
|
values: T[];
|
|
21
|
+
/** Encode rows through a stream instead of joining an entire INSERT into one string. */
|
|
22
|
+
stream?: boolean;
|
|
17
23
|
compressed?: boolean;
|
|
24
|
+
/** Per-insert settings, e.g. a stable `insert_deduplication_token`. */
|
|
25
|
+
settings?: ClickHouseSettings;
|
|
26
|
+
/**
|
|
27
|
+
* Explicit INSERT column list as SQL identifiers (quote names that need it).
|
|
28
|
+
* Required to supply EPHEMERAL inputs: without it ClickHouse treats their
|
|
29
|
+
* keys as unknown fields and silently drops them.
|
|
30
|
+
*/
|
|
31
|
+
columns?: string[];
|
|
18
32
|
}
|
|
19
33
|
export interface ClickHouseJsonQueryResult<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
20
34
|
data: T[];
|
|
@@ -30,8 +44,12 @@ export interface ClickHouseJsonQueryResult<T extends Record<string, unknown> = R
|
|
|
30
44
|
};
|
|
31
45
|
query_id?: string;
|
|
32
46
|
}
|
|
47
|
+
export type ObservableSystemTable = 'processes' | 'query_log';
|
|
33
48
|
export interface ClickHouseExecutor {
|
|
34
|
-
command(sql: string): Promise<void>;
|
|
49
|
+
command(sql: string, settings?: ClickHouseSettings): Promise<void>;
|
|
50
|
+
/** Rows as JSON objects. A number a double cannot hold exactly (an integer
|
|
51
|
+
* beyond 2^53, a Decimal with more than 15 digits) arrives as a string of
|
|
52
|
+
* its digits; the ObsessionDB console API returns every value as a string. */
|
|
35
53
|
query<T>(sql: string, settings?: ClickHouseSettings): Promise<T[]>;
|
|
36
54
|
queryJson?<T extends Record<string, unknown>>(sql: string, settings?: ClickHouseSettings): Promise<ClickHouseJsonQueryResult<T>>;
|
|
37
55
|
insert<T extends Record<string, unknown>>(params: ClickHouseInsertParams<T>): Promise<void>;
|
|
@@ -41,18 +59,34 @@ export interface ClickHouseExecutor {
|
|
|
41
59
|
* Returns immediately without waiting for completion.
|
|
42
60
|
* @param sql - The SQL to execute
|
|
43
61
|
* @param queryId - Optional deterministic query_id (useful for resumability). Auto-generated if omitted.
|
|
62
|
+
* @param settings - Optional ClickHouse settings sent with the query.
|
|
44
63
|
* @returns The query_id assigned to this query. */
|
|
45
|
-
submit(sql: string, queryId?: string): Promise<string>;
|
|
64
|
+
submit(sql: string, queryId?: string, settings?: ClickHouseSettings): Promise<string>;
|
|
46
65
|
/** Check the status of a previously submitted query.
|
|
47
66
|
* Checks system.processes first (running?), then system.query_log (finished/failed?).
|
|
67
|
+
* On a multi-replica target (see `resolveReplicaFanout`) both are read on every replica,
|
|
68
|
+
* because the query runs on whichever replica received it.
|
|
48
69
|
* @param queryId - The query_id returned by submit()
|
|
49
70
|
* @param options.afterTime - Only consider query_log entries for queries started at or after this ISO timestamp.
|
|
50
|
-
* Useful when resubmitting with the same query_id to ignore stale entries from previous attempts.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
71
|
+
* Useful when resubmitting with the same query_id to ignore stale entries from previous attempts.
|
|
72
|
+
* @param options.everyReplica - Fail when a replica cannot be read instead of skipping it, so a
|
|
73
|
+
* status other than 'running' means that no replica runs the query. Polls leave it unset and
|
|
74
|
+
* keep going while a replica is unavailable. */
|
|
75
|
+
queryStatus(queryId: string, options?: QueryStatusOptions): Promise<QueryStatus>;
|
|
76
|
+
/** Optional capability: FROM-clause source for cluster-aware system table polling.
|
|
77
|
+
* Native executors return `clusterAllReplicas(...)` when `clickhouse.cluster` is set.
|
|
78
|
+
* Remote / ObsessionDB executors may omit this and keep local `system.*` tables. */
|
|
79
|
+
systemTableSource?(table: ObservableSystemTable): string;
|
|
80
|
+
/** Optional capability: whether the user may change settings, which a readonly = 1
|
|
81
|
+
* user may not. Native executors look it up once, with their first read. */
|
|
82
|
+
canChangeSettings?(): Promise<boolean>;
|
|
54
83
|
close(): Promise<void>;
|
|
55
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Resolve the system table expression used for async query observation.
|
|
87
|
+
* Prefers `executor.systemTableSource` when present; otherwise local `system.<table>`.
|
|
88
|
+
*/
|
|
89
|
+
export declare function observableSystemTable(executor: Pick<ClickHouseExecutor, 'systemTableSource'>, table: ObservableSystemTable): string;
|
|
56
90
|
export interface SchemaObjectRef {
|
|
57
91
|
kind: 'table' | 'view' | 'materialized_view' | 'dictionary';
|
|
58
92
|
database: string;
|
|
@@ -63,6 +97,7 @@ export interface SystemTableRow {
|
|
|
63
97
|
name: string;
|
|
64
98
|
engine: string;
|
|
65
99
|
create_table_query?: string;
|
|
100
|
+
primary_key?: string;
|
|
66
101
|
}
|
|
67
102
|
export interface SystemColumnRow {
|
|
68
103
|
database: string;
|
|
@@ -95,6 +130,7 @@ export interface IntrospectedTable {
|
|
|
95
130
|
settings: Record<string, string>;
|
|
96
131
|
indexes: SkipIndexDefinition[];
|
|
97
132
|
projections: ProjectionDefinition[];
|
|
133
|
+
constraints?: TableConstraintDefinition[];
|
|
98
134
|
ttl?: string;
|
|
99
135
|
}
|
|
100
136
|
type ClickHouseClient = ReturnType<typeof createClient>;
|
|
@@ -105,7 +141,9 @@ type ClickHouseClientOptions = {
|
|
|
105
141
|
response?: boolean;
|
|
106
142
|
};
|
|
107
143
|
};
|
|
108
|
-
export { parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
|
|
144
|
+
export { parseConstraintsFromCreateTableQuery, parseEngineFromCreateTableQuery, parseOrderByFromCreateTableQuery, parsePartitionByFromCreateTableQuery, parsePrimaryKeyFromCreateTableQuery, parseProjectionsFromCreateTableQuery, parseSettingsFromCreateTableQuery, parseTTLFromCreateTableQuery, parseUniqueKeyFromCreateTableQuery, } from './create-table-parser.js';
|
|
145
|
+
export { canonicalizeSqlFragments } from './canonicalize.js';
|
|
146
|
+
export { listViewDetails, parseMaterializedViewTarget, type IntrospectedView } from './view-details.js';
|
|
109
147
|
export { parseCommentFromCreateDictionaryQuery, parseDictionaryAttributesFromCreateDictionaryQuery, parseDictionaryPrimaryKeyFromCreateDictionaryQuery, parseDictionaryRangeFromCreateDictionaryQuery, parseDictionarySettingsFromCreateDictionaryQuery, parseLayoutFromCreateDictionaryQuery, parseLifetimeFromCreateDictionaryQuery, parseSourceFromCreateDictionaryQuery, type ParsedDictionaryAttribute, } from './create-dictionary-parser.js';
|
|
110
148
|
export declare function inferSchemaKindFromEngine(engine: string): SchemaObjectRef['kind'] | null;
|
|
111
149
|
export declare function normalizeColumnFromSystemRow(row: SystemColumnRow): ColumnDefinition;
|
|
@@ -117,6 +155,8 @@ export declare function buildIntrospectedTables(tables: SystemTableRow[], column
|
|
|
117
155
|
* Pure so it can be unit-tested without catching thrown errors.
|
|
118
156
|
*/
|
|
119
157
|
export declare function formatConnectionError(error: unknown, url: string, username?: string): string | undefined;
|
|
158
|
+
/** The URL without its `user:password@` part, for messages and logs. */
|
|
159
|
+
export declare function urlWithoutCredentials(url: string): string;
|
|
120
160
|
export declare function wrapConnectionError(error: unknown, url: string, username?: string): never;
|
|
121
161
|
export declare function isUnknownDatabaseError(error: unknown): boolean;
|
|
122
162
|
/**
|
|
@@ -148,7 +188,10 @@ export declare function assertStreamedQuerySucceeded(input: {
|
|
|
148
188
|
query_id: string;
|
|
149
189
|
sql: string | undefined;
|
|
150
190
|
}): void;
|
|
151
|
-
export { waitForColumn, waitForDDLPropagation, waitForDictionary, waitForTable, waitForTableAbsent, waitForView, } from './ddl-propagation.js';
|
|
191
|
+
export { type PropagationOptions, waitForColumn, waitForColumnAbsent, parseExchangeTables, waitForDDLPropagation, waitForDictionary, waitForExchange, waitForTable, waitForTableAbsent, waitForView, } from './ddl-propagation.js';
|
|
192
|
+
export { allReplicas, resolveReplicaFanout, type ReplicaFanout } from './replicas.js';
|
|
193
|
+
export { type AsyncInsertGuardOptions, type QualifiedTable, assertNoFireAndForgetAsyncInserts } from './async-insert-guard.js';
|
|
194
|
+
export { type InsertBarrierOptions, waitForInsertBarrier } from './insert-barrier.js';
|
|
152
195
|
export declare function createStatelessClickHouseClient(config: ClickHouseConfig, clickhouseSettings?: ClickHouseSettings, options?: ClickHouseClientOptions): ClickHouseClient;
|
|
153
196
|
/**
|
|
154
197
|
* Creates a ClickHouse client that sends one session_id with every request.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|