@lossless.org/client 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/.smartconfig.json +37 -0
  2. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  3. package/dist_ts/00_commitinfo_data.js +9 -0
  4. package/dist_ts/classes.losslessorgclient.d.ts +32 -0
  5. package/dist_ts/classes.losslessorgclient.js +103 -0
  6. package/dist_ts/core/classes.error.d.ts +16 -0
  7. package/dist_ts/core/classes.error.js +29 -0
  8. package/dist_ts/core/classes.operation.d.ts +17 -0
  9. package/dist_ts/core/classes.operation.js +70 -0
  10. package/dist_ts/core/interfaces.d.ts +18 -0
  11. package/dist_ts/core/interfaces.js +2 -0
  12. package/dist_ts/index.d.ts +4 -0
  13. package/dist_ts/index.js +3 -0
  14. package/dist_ts/nosqldb/classes.atomicdelete.d.ts +26 -0
  15. package/dist_ts/nosqldb/classes.atomicdelete.js +44 -0
  16. package/dist_ts/nosqldb/classes.atomicfindoneandupdate.d.ts +27 -0
  17. package/dist_ts/nosqldb/classes.atomicfindoneandupdate.js +86 -0
  18. package/dist_ts/nosqldb/classes.atomicupdate.d.ts +26 -0
  19. package/dist_ts/nosqldb/classes.atomicupdate.js +55 -0
  20. package/dist_ts/nosqldb/classes.bootstraprecord.d.ts +14 -0
  21. package/dist_ts/nosqldb/classes.bootstraprecord.js +80 -0
  22. package/dist_ts/nosqldb/classes.bsonassertion.d.ts +2 -0
  23. package/dist_ts/nosqldb/classes.bsonassertion.js +29 -0
  24. package/dist_ts/nosqldb/classes.bsonobjectid.d.ts +2 -0
  25. package/dist_ts/nosqldb/classes.bsonobjectid.js +50 -0
  26. package/dist_ts/nosqldb/classes.bsonsnapshot.d.ts +3 -0
  27. package/dist_ts/nosqldb/classes.bsonsnapshot.js +126 -0
  28. package/dist_ts/nosqldb/classes.cached-document.d.ts +27 -0
  29. package/dist_ts/nosqldb/classes.cached-document.js +112 -0
  30. package/dist_ts/nosqldb/classes.collection.d.ts +302 -0
  31. package/dist_ts/nosqldb/classes.collection.js +1568 -0
  32. package/dist_ts/nosqldb/classes.collectionfactory.d.ts +30 -0
  33. package/dist_ts/nosqldb/classes.collectionfactory.js +65 -0
  34. package/dist_ts/nosqldb/classes.collectionlifecycle.d.ts +4 -0
  35. package/dist_ts/nosqldb/classes.collectionlifecycle.js +15 -0
  36. package/dist_ts/nosqldb/classes.collectionpreparation.d.ts +34 -0
  37. package/dist_ts/nosqldb/classes.collectionpreparation.js +134 -0
  38. package/dist_ts/nosqldb/classes.collectiontopology.d.ts +47 -0
  39. package/dist_ts/nosqldb/classes.collectiontopology.js +388 -0
  40. package/dist_ts/nosqldb/classes.connection.d.ts +18 -0
  41. package/dist_ts/nosqldb/classes.connection.js +23 -0
  42. package/dist_ts/nosqldb/classes.convenience.d.ts +1 -0
  43. package/dist_ts/nosqldb/classes.convenience.js +5 -0
  44. package/dist_ts/nosqldb/classes.cursor.d.ts +15 -0
  45. package/dist_ts/nosqldb/classes.cursor.js +82 -0
  46. package/dist_ts/nosqldb/classes.cursoroperation.d.ts +7 -0
  47. package/dist_ts/nosqldb/classes.cursoroperation.js +36 -0
  48. package/dist_ts/nosqldb/classes.db.d.ts +98 -0
  49. package/dist_ts/nosqldb/classes.db.js +434 -0
  50. package/dist_ts/nosqldb/classes.distributedcoordinator.d.ts +52 -0
  51. package/dist_ts/nosqldb/classes.distributedcoordinator.js +314 -0
  52. package/dist_ts/nosqldb/classes.doc.d.ts +722 -0
  53. package/dist_ts/nosqldb/classes.doc.js +2976 -0
  54. package/dist_ts/nosqldb/classes.easystore.d.ts +42 -0
  55. package/dist_ts/nosqldb/classes.easystore.js +199 -0
  56. package/dist_ts/nosqldb/classes.exactpersistence.d.ts +141 -0
  57. package/dist_ts/nosqldb/classes.exactpersistence.js +1110 -0
  58. package/dist_ts/nosqldb/classes.lucene.adapter.d.ts +173 -0
  59. package/dist_ts/nosqldb/classes.lucene.adapter.js +623 -0
  60. package/dist_ts/nosqldb/classes.mongoadministration.d.ts +73 -0
  61. package/dist_ts/nosqldb/classes.mongoadministration.js +497 -0
  62. package/dist_ts/nosqldb/classes.namespaceinspection.d.ts +42 -0
  63. package/dist_ts/nosqldb/classes.namespaceinspection.js +138 -0
  64. package/dist_ts/nosqldb/classes.operationbudget.d.ts +22 -0
  65. package/dist_ts/nosqldb/classes.operationbudget.js +65 -0
  66. package/dist_ts/nosqldb/classes.ordinarypersistence.d.ts +18 -0
  67. package/dist_ts/nosqldb/classes.ordinarypersistence.js +71 -0
  68. package/dist_ts/nosqldb/classes.persistence.d.ts +14 -0
  69. package/dist_ts/nosqldb/classes.persistence.js +34 -0
  70. package/dist_ts/nosqldb/classes.session.d.ts +28 -0
  71. package/dist_ts/nosqldb/classes.session.js +246 -0
  72. package/dist_ts/nosqldb/classes.storedinspection.d.ts +44 -0
  73. package/dist_ts/nosqldb/classes.storedinspection.js +100 -0
  74. package/dist_ts/nosqldb/classes.testdatabase.d.ts +56 -0
  75. package/dist_ts/nosqldb/classes.testdatabase.js +250 -0
  76. package/dist_ts/nosqldb/classes.watcher.d.ts +37 -0
  77. package/dist_ts/nosqldb/classes.watcher.js +98 -0
  78. package/dist_ts/nosqldb/index.d.ts +27 -0
  79. package/dist_ts/nosqldb/index.js +18 -0
  80. package/dist_ts/nosqldb/logging.d.ts +2 -0
  81. package/dist_ts/nosqldb/logging.js +3 -0
  82. package/dist_ts/nosqldb/plugins.d.ts +17 -0
  83. package/dist_ts/nosqldb/plugins.js +20 -0
  84. package/dist_ts/nosqldb/shim.d.ts +1 -0
  85. package/dist_ts/nosqldb/shim.js +8 -0
  86. package/dist_ts/nosqldb/testsupport.d.ts +3 -0
  87. package/dist_ts/nosqldb/testsupport.js +3 -0
  88. package/dist_ts/objectstorage/classes.bucket.d.ts +227 -0
  89. package/dist_ts/objectstorage/classes.bucket.js +939 -0
  90. package/dist_ts/objectstorage/classes.connection.d.ts +21 -0
  91. package/dist_ts/objectstorage/classes.connection.js +27 -0
  92. package/dist_ts/objectstorage/classes.directory.d.ts +124 -0
  93. package/dist_ts/objectstorage/classes.directory.js +335 -0
  94. package/dist_ts/objectstorage/classes.exactpathpurgeerror.d.ts +5 -0
  95. package/dist_ts/objectstorage/classes.exactpathpurgeerror.js +18 -0
  96. package/dist_ts/objectstorage/classes.exactuploaderror.d.ts +5 -0
  97. package/dist_ts/objectstorage/classes.exactuploaderror.js +19 -0
  98. package/dist_ts/objectstorage/classes.file.d.ts +91 -0
  99. package/dist_ts/objectstorage/classes.file.js +255 -0
  100. package/dist_ts/objectstorage/classes.listcursor.d.ts +41 -0
  101. package/dist_ts/objectstorage/classes.listcursor.js +67 -0
  102. package/dist_ts/objectstorage/classes.metadata.d.ts +57 -0
  103. package/dist_ts/objectstorage/classes.metadata.js +113 -0
  104. package/dist_ts/objectstorage/classes.smartbucket.d.ts +57 -0
  105. package/dist_ts/objectstorage/classes.smartbucket.js +357 -0
  106. package/dist_ts/objectstorage/classes.trash.d.ts +11 -0
  107. package/dist_ts/objectstorage/classes.trash.js +22 -0
  108. package/dist_ts/objectstorage/classes.watcher.d.ts +79 -0
  109. package/dist_ts/objectstorage/classes.watcher.js +249 -0
  110. package/dist_ts/objectstorage/helpers.d.ts +25 -0
  111. package/dist_ts/objectstorage/helpers.js +215 -0
  112. package/dist_ts/objectstorage/index.d.ts +13 -0
  113. package/dist_ts/objectstorage/index.js +13 -0
  114. package/dist_ts/objectstorage/interfaces.d.ts +276 -0
  115. package/dist_ts/objectstorage/interfaces.js +2 -0
  116. package/dist_ts/objectstorage/internal.exactpathpurge.operations.d.ts +11 -0
  117. package/dist_ts/objectstorage/internal.exactpathpurge.operations.js +1069 -0
  118. package/dist_ts/objectstorage/internal.exactupload.capability.d.ts +40 -0
  119. package/dist_ts/objectstorage/internal.exactupload.capability.js +382 -0
  120. package/dist_ts/objectstorage/internal.exactupload.operations.d.ts +11 -0
  121. package/dist_ts/objectstorage/internal.exactupload.operations.js +1104 -0
  122. package/dist_ts/objectstorage/internal.multipart.planner.d.ts +8 -0
  123. package/dist_ts/objectstorage/internal.multipart.planner.js +63 -0
  124. package/dist_ts/objectstorage/internal.multipart.stream.d.ts +17 -0
  125. package/dist_ts/objectstorage/internal.multipart.stream.js +440 -0
  126. package/dist_ts/objectstorage/internal.multipart.types.d.ts +82 -0
  127. package/dist_ts/objectstorage/internal.multipart.types.js +2 -0
  128. package/dist_ts/objectstorage/plugins.d.ts +17 -0
  129. package/dist_ts/objectstorage/plugins.js +23 -0
  130. package/dist_ts/plugins.d.ts +4 -0
  131. package/dist_ts/plugins.js +5 -0
  132. package/dist_ts/sqldb/classes.clickhouseconnection.d.ts +39 -0
  133. package/dist_ts/sqldb/classes.clickhouseconnection.js +225 -0
  134. package/dist_ts/sqldb/classes.sqlconnection.d.ts +50 -0
  135. package/dist_ts/sqldb/classes.sqlconnection.js +376 -0
  136. package/dist_ts/sqldb/classes.sqltable.d.ts +29 -0
  137. package/dist_ts/sqldb/classes.sqltable.js +70 -0
  138. package/dist_ts/sqldb/clickhouse/classes.metricwriter.d.ts +27 -0
  139. package/dist_ts/sqldb/clickhouse/classes.metricwriter.js +89 -0
  140. package/dist_ts/sqldb/clickhouse/index.d.ts +9 -0
  141. package/dist_ts/sqldb/clickhouse/index.js +13 -0
  142. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.clickhousetable.d.ts +88 -0
  143. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.clickhousetable.js +304 -0
  144. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.httpclient.d.ts +28 -0
  145. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.httpclient.js +46 -0
  146. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.querybuilder.d.ts +43 -0
  147. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.querybuilder.js +155 -0
  148. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.resultset.d.ts +13 -0
  149. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.resultset.js +36 -0
  150. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.smartclickhouse.d.ts +49 -0
  151. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.smartclickhouse.js +106 -0
  152. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.timedatatable.d.ts +51 -0
  153. package/dist_ts/sqldb/clickhouse/smartclickhouse.classes.timedatatable.js +96 -0
  154. package/dist_ts/sqldb/clickhouse/smartclickhouse.plugins.d.ts +5 -0
  155. package/dist_ts/sqldb/clickhouse/smartclickhouse.plugins.js +6 -0
  156. package/dist_ts/sqldb/clickhouse/smartclickhouse.types.d.ts +53 -0
  157. package/dist_ts/sqldb/clickhouse/smartclickhouse.types.js +41 -0
  158. package/dist_ts/sqldb/index.d.ts +6 -0
  159. package/dist_ts/sqldb/index.js +6 -0
  160. package/dist_ts/sqldb/interfaces.d.ts +53 -0
  161. package/dist_ts/sqldb/interfaces.js +19 -0
  162. package/dist_ts/sqldb/internal.sqlpool.d.ts +51 -0
  163. package/dist_ts/sqldb/internal.sqlpool.js +214 -0
  164. package/dist_ts/sqldb/plugins.clickhouse.d.ts +4 -0
  165. package/dist_ts/sqldb/plugins.clickhouse.js +5 -0
  166. package/dist_ts/sqldb/plugins.mariadb.d.ts +4 -0
  167. package/dist_ts/sqldb/plugins.mariadb.js +5 -0
  168. package/docs/source/smartbucket/license.md +19 -0
  169. package/docs/source/smartclickhouse/license.md +19 -0
  170. package/license.md +21 -0
  171. package/package.json +101 -0
  172. package/readme.md +157 -0
  173. package/ts/00_commitinfo_data.ts +8 -0
  174. package/ts/classes.losslessorgclient.ts +104 -0
  175. package/ts/core/classes.error.ts +31 -0
  176. package/ts/core/classes.operation.ts +60 -0
  177. package/ts/core/interfaces.ts +24 -0
  178. package/ts/index.ts +4 -0
  179. package/ts/nosqldb/classes.atomicdelete.ts +81 -0
  180. package/ts/nosqldb/classes.atomicfindoneandupdate.ts +152 -0
  181. package/ts/nosqldb/classes.atomicupdate.ts +99 -0
  182. package/ts/nosqldb/classes.bootstraprecord.ts +107 -0
  183. package/ts/nosqldb/classes.bsonassertion.ts +25 -0
  184. package/ts/nosqldb/classes.bsonobjectid.ts +45 -0
  185. package/ts/nosqldb/classes.bsonsnapshot.ts +105 -0
  186. package/ts/nosqldb/classes.cached-document.ts +67 -0
  187. package/ts/nosqldb/classes.collection.ts +2399 -0
  188. package/ts/nosqldb/classes.collectionfactory.ts +87 -0
  189. package/ts/nosqldb/classes.collectionlifecycle.ts +24 -0
  190. package/ts/nosqldb/classes.collectionpreparation.ts +164 -0
  191. package/ts/nosqldb/classes.collectiontopology.ts +645 -0
  192. package/ts/nosqldb/classes.connection.ts +31 -0
  193. package/ts/nosqldb/classes.convenience.ts +5 -0
  194. package/ts/nosqldb/classes.cursor.ts +88 -0
  195. package/ts/nosqldb/classes.cursoroperation.ts +38 -0
  196. package/ts/nosqldb/classes.db.ts +637 -0
  197. package/ts/nosqldb/classes.distributedcoordinator.ts +305 -0
  198. package/ts/nosqldb/classes.doc.ts +4928 -0
  199. package/ts/nosqldb/classes.easystore.ts +154 -0
  200. package/ts/nosqldb/classes.exactpersistence.ts +1974 -0
  201. package/ts/nosqldb/classes.lucene.adapter.ts +780 -0
  202. package/ts/nosqldb/classes.mongoadministration.ts +867 -0
  203. package/ts/nosqldb/classes.namespaceinspection.ts +199 -0
  204. package/ts/nosqldb/classes.operationbudget.ts +75 -0
  205. package/ts/nosqldb/classes.ordinarypersistence.ts +84 -0
  206. package/ts/nosqldb/classes.persistence.ts +62 -0
  207. package/ts/nosqldb/classes.session.ts +389 -0
  208. package/ts/nosqldb/classes.storedinspection.ts +151 -0
  209. package/ts/nosqldb/classes.testdatabase.ts +272 -0
  210. package/ts/nosqldb/classes.watcher.ts +96 -0
  211. package/ts/nosqldb/index.ts +51 -0
  212. package/ts/nosqldb/logging.ts +3 -0
  213. package/ts/nosqldb/plugins.ts +37 -0
  214. package/ts/nosqldb/shim.ts +6 -0
  215. package/ts/nosqldb/testsupport.ts +13 -0
  216. package/ts/objectstorage/classes.bucket.ts +1114 -0
  217. package/ts/objectstorage/classes.connection.ts +36 -0
  218. package/ts/objectstorage/classes.directory.ts +425 -0
  219. package/ts/objectstorage/classes.exactpathpurgeerror.ts +24 -0
  220. package/ts/objectstorage/classes.exactuploaderror.ts +25 -0
  221. package/ts/objectstorage/classes.file.ts +303 -0
  222. package/ts/objectstorage/classes.listcursor.ts +89 -0
  223. package/ts/objectstorage/classes.metadata.ts +134 -0
  224. package/ts/objectstorage/classes.smartbucket.ts +445 -0
  225. package/ts/objectstorage/classes.trash.ts +30 -0
  226. package/ts/objectstorage/classes.watcher.ts +289 -0
  227. package/ts/objectstorage/helpers.ts +254 -0
  228. package/ts/objectstorage/index.ts +13 -0
  229. package/ts/objectstorage/interfaces.ts +389 -0
  230. package/ts/objectstorage/internal.exactpathpurge.operations.ts +1936 -0
  231. package/ts/objectstorage/internal.exactupload.capability.ts +580 -0
  232. package/ts/objectstorage/internal.exactupload.operations.ts +1715 -0
  233. package/ts/objectstorage/internal.multipart.planner.ts +90 -0
  234. package/ts/objectstorage/internal.multipart.stream.ts +606 -0
  235. package/ts/objectstorage/internal.multipart.types.ts +106 -0
  236. package/ts/objectstorage/plugins.ts +35 -0
  237. package/ts/plugins.ts +4 -0
  238. package/ts/sqldb/classes.clickhouseconnection.ts +189 -0
  239. package/ts/sqldb/classes.sqlconnection.ts +350 -0
  240. package/ts/sqldb/classes.sqltable.ts +70 -0
  241. package/ts/sqldb/clickhouse/classes.metricwriter.ts +72 -0
  242. package/ts/sqldb/clickhouse/index.ts +16 -0
  243. package/ts/sqldb/clickhouse/smartclickhouse.classes.clickhousetable.ts +372 -0
  244. package/ts/sqldb/clickhouse/smartclickhouse.classes.httpclient.ts +52 -0
  245. package/ts/sqldb/clickhouse/smartclickhouse.classes.querybuilder.ts +120 -0
  246. package/ts/sqldb/clickhouse/smartclickhouse.classes.resultset.ts +44 -0
  247. package/ts/sqldb/clickhouse/smartclickhouse.classes.smartclickhouse.ts +123 -0
  248. package/ts/sqldb/clickhouse/smartclickhouse.classes.timedatatable.ts +114 -0
  249. package/ts/sqldb/clickhouse/smartclickhouse.plugins.ts +5 -0
  250. package/ts/sqldb/clickhouse/smartclickhouse.types.ts +134 -0
  251. package/ts/sqldb/index.ts +6 -0
  252. package/ts/sqldb/interfaces.ts +61 -0
  253. package/ts/sqldb/internal.sqlpool.ts +179 -0
  254. package/ts/sqldb/plugins.clickhouse.ts +4 -0
  255. package/ts/sqldb/plugins.mariadb.ts +4 -0
@@ -0,0 +1,23 @@
1
+ // plugins.ts
2
+ // node native
3
+ import * as crypto from 'node:crypto';
4
+ import * as path from 'node:path';
5
+ import * as stream from 'node:stream';
6
+ export { crypto, path, stream };
7
+ // @push.rocks scope
8
+ import * as smartmime from '@push.rocks/smartmime';
9
+ import * as smartpath from '@push.rocks/smartpath';
10
+ import * as smartpromise from '@push.rocks/smartpromise';
11
+ import * as smartrx from '@push.rocks/smartrx';
12
+ import * as smartstream from '@push.rocks/smartstream';
13
+ import * as smartstring from '@push.rocks/smartstring';
14
+ import * as smartunique from '@push.rocks/smartunique';
15
+ export { smartmime, smartpath, smartpromise, smartrx, smartstream, smartstring, smartunique };
16
+ // @tsclass
17
+ import * as tsclass from '@tsclass/tsclass';
18
+ export { tsclass, };
19
+ // third party scope
20
+ import * as s3 from '@aws-sdk/client-s3';
21
+ import { Minimatch } from 'minimatch';
22
+ export { s3, Minimatch, };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL29iamVjdHN0b3JhZ2UvcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxhQUFhO0FBRWIsY0FBYztBQUNkLE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBRWhDLG9CQUFvQjtBQUNwQixPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssT0FBTyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFdBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUU5RixXQUFXO0FBQ1gsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQ0wsT0FBTyxHQUNSLENBQUE7QUFFRCxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFDTCxFQUFFLEVBQ0YsU0FBUyxHQUNWLENBQUEifQ==
@@ -0,0 +1,4 @@
1
+ export declare const loadNoSql: () => Promise<typeof import("./nosqldb/classes.connection.js")>;
2
+ export declare const loadObjects: () => Promise<typeof import("./objectstorage/classes.connection.js")>;
3
+ export declare const loadSql: () => Promise<typeof import("./sqldb/classes.sqlconnection.js")>;
4
+ export declare const loadClickHouse: () => Promise<typeof import("./sqldb/classes.clickhouseconnection.js")>;
@@ -0,0 +1,5 @@
1
+ export const loadNoSql = () => import('./nosqldb/classes.connection.js');
2
+ export const loadObjects = () => import('./objectstorage/classes.connection.js');
3
+ export const loadSql = () => import('./sqldb/classes.sqlconnection.js');
4
+ export const loadClickHouse = () => import('./sqldb/classes.clickhouseconnection.js');
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQztBQUNqRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFDeEUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,39 @@
1
+ import type { ICapabilities, IOperationOptions, IReadiness } from '../core/interfaces.js';
2
+ import type { IClickHouseConnectionOptions, IClickHouseStatement, IInsertOptions, IQueryOptions } from './interfaces.js';
3
+ import { SmartClickHouseDb } from './clickhouse/smartclickhouse.classes.smartclickhouse.js';
4
+ /** ClickHouse HTTP connection. The server executes filtering, projection and aggregation. */
5
+ export declare class ClickHouseConnection {
6
+ readonly options: IClickHouseConnectionOptions;
7
+ readonly backend: "clickhouse";
8
+ readonly metrics: SmartClickHouseDb;
9
+ readonly capabilities: ICapabilities;
10
+ private client?;
11
+ private readonly operations;
12
+ private readonly tasks;
13
+ private closed;
14
+ private closing?;
15
+ private connecting?;
16
+ private readonly writerCleanup;
17
+ constructor(options: IClickHouseConnectionOptions);
18
+ connect(options?: IOperationOptions): Promise<void>;
19
+ private begin;
20
+ private end;
21
+ private track;
22
+ ready(options?: IOperationOptions): Promise<IReadiness>;
23
+ execute(statement: IClickHouseStatement, options?: IOperationOptions): Promise<{
24
+ queryId: string;
25
+ completion: 'acknowledged';
26
+ }>;
27
+ stream<Row = Record<string, unknown>>(statement: IClickHouseStatement, options?: IOperationOptions): AsyncGenerator<Row>;
28
+ query<Row = Record<string, unknown>>(statement: IClickHouseStatement, options?: IQueryOptions): Promise<Row[]>;
29
+ insert(table: string, rows: AsyncIterable<Record<string, unknown>> | Iterable<Record<string, unknown>>, options?: IInsertOptions): Promise<{
30
+ queryId: string;
31
+ completion: 'acknowledged';
32
+ }>;
33
+ insertQualified(database: string, table: string, rows: AsyncIterable<Record<string, unknown>> | Iterable<Record<string, unknown>>, options?: IInsertOptions): Promise<{
34
+ queryId: string;
35
+ completion: 'acknowledged';
36
+ }>;
37
+ close(): Promise<void>;
38
+ private validate;
39
+ }
@@ -0,0 +1,225 @@
1
+ import * as plugins from './plugins.clickhouse.js';
2
+ import { Operation } from '../core/classes.operation.js';
3
+ import { LosslessClientError, backendError } from '../core/classes.error.js';
4
+ import { quoteClickHouseIdentifier as quoteIdentifier, resultLimits, valueBytes } from './interfaces.js';
5
+ import { SmartClickHouseDb } from './clickhouse/smartclickhouse.classes.smartclickhouse.js';
6
+ /** ClickHouse HTTP connection. The server executes filtering, projection and aggregation. */
7
+ export class ClickHouseConnection {
8
+ options;
9
+ backend = 'clickhouse';
10
+ metrics;
11
+ capabilities = Object.freeze({ backend: 'clickhouse',
12
+ transactions: 'unsupported', changeStreams: 'unsupported', objectMetrics: 'unsupported', diskResidentScans: 'available' });
13
+ client;
14
+ operations = new Map();
15
+ tasks = new Set();
16
+ closed = false;
17
+ closing;
18
+ connecting;
19
+ writerCleanup = new plugins.asyncHooks.AsyncLocalStorage();
20
+ constructor(options) {
21
+ this.options = options;
22
+ const url = new URL(options.url);
23
+ if (!['http:', 'https:'].includes(url.protocol) || !options.database || url.username || url.password ||
24
+ url.search || url.hash || url.pathname !== '/') {
25
+ throw new LosslessClientError('invalid_argument', 'ClickHouse requires an HTTP(S) URL, separate credentials and a database.');
26
+ }
27
+ const limit = options.connectionLimit ?? 10;
28
+ if (!Number.isSafeInteger(limit) || limit < 1 || limit > 1024) {
29
+ throw new LosslessClientError('invalid_argument', 'connectionLimit must be between 1 and 1024.');
30
+ }
31
+ const budget = new Operation({ timeoutMs: options.timeoutMs });
32
+ budget.dispose();
33
+ this.metrics = new SmartClickHouseDb(options, this);
34
+ }
35
+ connect(options = {}) {
36
+ if (this.closed || this.closing)
37
+ return Promise.reject(new LosslessClientError('closed', 'ClickHouse connection is closed.'));
38
+ if (this.connecting)
39
+ return this.connecting;
40
+ if (this.client)
41
+ return Promise.resolve();
42
+ this.client = plugins.clickhouse.createClient({ url: this.options.url,
43
+ database: this.options.database, username: this.options.username, password: this.options.password,
44
+ log: { level: plugins.clickhouse.ClickHouseLogLevel.OFF },
45
+ max_open_connections: this.options.connectionLimit ?? 10, request_timeout: this.options.timeoutMs ?? 30_000 });
46
+ this.connecting = (async () => {
47
+ try {
48
+ await this.query({ sql: 'SELECT 1 AS ready' }, { ...options, maxRows: 1 });
49
+ }
50
+ catch (error) {
51
+ const client = this.client;
52
+ this.client = undefined;
53
+ await client?.close();
54
+ throw error;
55
+ }
56
+ finally {
57
+ this.connecting = undefined;
58
+ }
59
+ })();
60
+ return this.connecting;
61
+ }
62
+ begin(options) {
63
+ if (!this.client || this.closed || (this.closing && !this.writerCleanup.getStore())) {
64
+ throw new LosslessClientError(this.closed || this.closing ? 'closed' : 'not_connected', 'ClickHouse connection is not open.');
65
+ }
66
+ const operation = new Operation(options, this.options.timeoutMs);
67
+ this.operations.set(operation, () => { });
68
+ try {
69
+ operation.check();
70
+ }
71
+ catch (error) {
72
+ this.end(operation);
73
+ throw error;
74
+ }
75
+ return { client: this.client, operation };
76
+ }
77
+ end(operation) {
78
+ operation.dispose();
79
+ this.operations.delete(operation);
80
+ }
81
+ track(task) {
82
+ this.tasks.add(task);
83
+ void task.finally(() => this.tasks.delete(task)).catch(() => { });
84
+ return task;
85
+ }
86
+ async ready(options = {}) {
87
+ try {
88
+ await this.query({ sql: 'SELECT 1 AS ready' }, { ...options, maxRows: 1 });
89
+ return { ready: true };
90
+ }
91
+ catch (error) {
92
+ return { ready: false, reason: error instanceof LosslessClientError ? error.code : 'unavailable' };
93
+ }
94
+ }
95
+ execute(statement, options = {}) {
96
+ this.validate(statement);
97
+ return this.track((async () => {
98
+ const { client, operation } = this.begin(options);
99
+ try {
100
+ const result = await client.command({ query: statement.sql, query_params: statement.values,
101
+ abort_signal: operation.signal, clickhouse_settings: { wait_end_of_query: 1, mutations_sync: '2' } });
102
+ return { queryId: result.query_id, completion: 'acknowledged' };
103
+ }
104
+ catch (error) {
105
+ // HTTP transport loss does not establish whether the server committed a mutation.
106
+ if (operation.signal.aborted || !(error instanceof Error && 'code' in error && /^\d+$/.test(String(error.code)))) {
107
+ throw new LosslessClientError('ambiguous_write', 'ClickHouse mutation outcome is unknown.', { cause: error });
108
+ }
109
+ throw backendError(error);
110
+ }
111
+ finally {
112
+ this.end(operation);
113
+ }
114
+ })());
115
+ }
116
+ async *stream(statement, options = {}) {
117
+ this.validate(statement);
118
+ const { client, operation } = this.begin(options);
119
+ let result;
120
+ try {
121
+ result = await this.track(client.query({ query: statement.sql, query_params: statement.values,
122
+ format: 'JSONEachRow', abort_signal: operation.signal,
123
+ clickhouse_settings: { output_format_json_quote_64bit_integers: 1, output_format_json_quote_decimals: 1 } }));
124
+ const current = result;
125
+ this.operations.set(operation, () => current.close());
126
+ const stream = result.stream();
127
+ stream.on('error', () => { });
128
+ stream.once('close', () => this.end(operation));
129
+ for await (const batch of stream) {
130
+ operation.check();
131
+ for (const row of batch) {
132
+ operation.check();
133
+ yield row.json();
134
+ }
135
+ }
136
+ operation.check();
137
+ }
138
+ catch (error) {
139
+ throw operation.signal.aborted ? operation.signal.reason : backendError(error);
140
+ }
141
+ finally {
142
+ result?.close();
143
+ this.end(operation);
144
+ }
145
+ }
146
+ async query(statement, options = {}) {
147
+ const limits = resultLimits(options), rows = [];
148
+ let bytes = 0;
149
+ for await (const row of this.stream(statement, options)) {
150
+ bytes += valueBytes(row);
151
+ if (rows.length >= limits.rows || bytes > limits.bytes) {
152
+ throw new LosslessClientError('result_limit', 'ClickHouse result exceeded its materialization limit. Use stream().');
153
+ }
154
+ rows.push(row);
155
+ }
156
+ return rows;
157
+ }
158
+ insert(table, rows, options = {}) {
159
+ return this.insertQualified(this.options.database, table, rows, options);
160
+ }
161
+ insertQualified(database, table, rows, options = {}) {
162
+ const target = `${quoteIdentifier(database)}.${quoteIdentifier(table)}`;
163
+ const maxBytes = options.maxBatchBytes ?? 4 * 1024 * 1024;
164
+ if (!Number.isSafeInteger(maxBytes) || maxBytes < 1)
165
+ throw new LosslessClientError('invalid_argument', 'maxBatchBytes must be a positive integer.');
166
+ return this.track((async () => {
167
+ const { client, operation } = this.begin(options);
168
+ const source = plugins.stream.Readable.from((async function* () {
169
+ for await (const row of operation.iterate(rows)) {
170
+ operation.check();
171
+ if (valueBytes(row) > maxBytes)
172
+ throw new LosslessClientError('invalid_argument', 'ClickHouse row exceeds maxBatchBytes.');
173
+ yield row;
174
+ }
175
+ })(), { objectMode: true, highWaterMark: 1 });
176
+ source.on('error', () => { });
177
+ this.operations.set(operation, () => source.destroy());
178
+ try {
179
+ const result = await client.insert({ table: target, values: source, format: 'JSONEachRow',
180
+ abort_signal: operation.signal, clickhouse_settings: { async_insert: 0, wait_end_of_query: 1 } });
181
+ return { queryId: result.query_id, completion: 'acknowledged' };
182
+ }
183
+ catch (error) {
184
+ throw new LosslessClientError('ambiguous_write', 'ClickHouse insert may have stored part or all of the input.', { cause: error });
185
+ }
186
+ finally {
187
+ source.destroy();
188
+ this.end(operation);
189
+ }
190
+ })());
191
+ }
192
+ close() {
193
+ return this.closing ??= (async () => {
194
+ let writerError;
195
+ try {
196
+ await this.writerCleanup.run(true, () => this.metrics.closeWriters());
197
+ }
198
+ catch (error) {
199
+ writerError = error;
200
+ }
201
+ this.closed = true;
202
+ for (const [operation, dispose] of this.operations) {
203
+ operation.cancel();
204
+ dispose();
205
+ }
206
+ await Promise.allSettled([...this.tasks]);
207
+ if (this.connecting)
208
+ await Promise.allSettled([this.connecting]);
209
+ const client = this.client;
210
+ this.client = undefined;
211
+ await client?.close();
212
+ for (const operation of this.operations.keys())
213
+ this.end(operation);
214
+ if (writerError)
215
+ throw writerError;
216
+ })();
217
+ }
218
+ validate(statement) {
219
+ if (!statement || typeof statement.sql !== 'string' || !statement.sql.trim() ||
220
+ (statement.values !== undefined && (!statement.values || typeof statement.values !== 'object' || Array.isArray(statement.values)))) {
221
+ throw new LosslessClientError('invalid_argument', 'ClickHouse requires SQL text and a named parameter object.');
222
+ }
223
+ }
224
+ }
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jbGlja2hvdXNlY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL3NxbGRiL2NsYXNzZXMuY2xpY2tob3VzZWNvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTdFLE9BQU8sRUFBRSx5QkFBeUIsSUFBSSxlQUFlLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTVGLDZGQUE2RjtBQUM3RixNQUFNLE9BQU8sb0JBQW9CO0lBYUg7SUFaWixPQUFPLEdBQUcsWUFBcUIsQ0FBQztJQUNoQyxPQUFPLENBQW9CO0lBQzNCLFlBQVksR0FBa0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZO1FBQ2pGLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDckgsTUFBTSxDQUF1QztJQUNwQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7SUFDOUMsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDO0lBQzdDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixPQUFPLENBQWlCO0lBQ3hCLFVBQVUsQ0FBaUI7SUFDbEIsYUFBYSxHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBVyxDQUFDO0lBRXJGLFlBQTRCLE9BQXFDO1FBQXJDLFlBQU8sR0FBUCxPQUFPLENBQThC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
@@ -0,0 +1,50 @@
1
+ import { SqlTable } from './classes.sqltable.js';
2
+ import { type SqlPooledConnection } from './internal.sqlpool.js';
3
+ import { Operation } from '../core/classes.operation.js';
4
+ import type { ICapabilities, IOperationOptions, IReadiness } from '../core/interfaces.js';
5
+ import type { IInsertOptions, IQueryOptions, ISqlConnectionOptions, ISqlMutationResult, ISqlStatement, TSqlValue } from './interfaces.js';
6
+ interface ILease {
7
+ connection: SqlPooledConnection;
8
+ operation: Operation;
9
+ close: () => Promise<void>;
10
+ done: Promise<void>;
11
+ }
12
+ /** One MariaDB-protocol pool. SQLDB uses the same wire adapter with its own capabilities. */
13
+ export declare class SqlConnection {
14
+ readonly options: ISqlConnectionOptions;
15
+ readonly backend: 'sqldb' | 'mariadb';
16
+ readonly capabilities: ICapabilities;
17
+ private pool?;
18
+ private closing?;
19
+ private connecting?;
20
+ private closed;
21
+ private readonly acquisitions;
22
+ private readonly leases;
23
+ private readonly pendingOperations;
24
+ constructor(options: ISqlConnectionOptions);
25
+ connect(options?: IOperationOptions): Promise<void>;
26
+ ready(options?: IOperationOptions): Promise<IReadiness>;
27
+ table<Row extends {
28
+ [Key in keyof Row]: TSqlValue;
29
+ }>(name: string): SqlTable<Row>;
30
+ private acquire;
31
+ execute(statement: ISqlStatement, options?: IOperationOptions): Promise<ISqlMutationResult>;
32
+ query<Row = Record<string, unknown>>(statement: ISqlStatement, options?: IQueryOptions): Promise<Row[]>;
33
+ stream<Row = Record<string, unknown>>(statement: ISqlStatement, options?: IOperationOptions): AsyncGenerator<Row>;
34
+ insert(table: string, rows: AsyncIterable<Record<string, TSqlValue>> | Iterable<Record<string, TSqlValue>>, options?: IInsertOptions): Promise<ISqlMutationResult>;
35
+ transaction<Result>(callback: (transaction: SqlTransaction) => Promise<Result>, options?: IOperationOptions): Promise<Result>;
36
+ close(): Promise<void>;
37
+ }
38
+ /** Bound to a single transaction callback and physical connection. */
39
+ export declare class SqlTransaction {
40
+ private readonly lease;
41
+ private active?;
42
+ private failure?;
43
+ private finished;
44
+ constructor(lease: ILease);
45
+ private run;
46
+ execute(statement: ISqlStatement): Promise<ISqlMutationResult>;
47
+ query<Row = Record<string, unknown>>(statement: ISqlStatement, options?: Pick<IQueryOptions, 'maxRows' | 'maxBytes'>): Promise<Row[]>;
48
+ finish(): Promise<void>;
49
+ }
50
+ export {};