@nshiab/simple-data-analysis-core 2.0.5 → 2.0.6

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 (238) hide show
  1. package/README.md +118 -12
  2. package/esm/class/Simple.d.ts +8 -2
  3. package/esm/class/Simple.d.ts.map +1 -1
  4. package/esm/class/Simple.js +9 -3
  5. package/esm/class/SimpleDB.d.ts +72 -1
  6. package/esm/class/SimpleDB.d.ts.map +1 -1
  7. package/esm/class/SimpleDB.js +81 -1
  8. package/esm/class/SimpleTable.d.ts +251 -274
  9. package/esm/class/SimpleTable.d.ts.map +1 -1
  10. package/esm/class/SimpleTable.js +248 -325
  11. package/esm/helpers/LogValue.d.ts +8 -0
  12. package/esm/helpers/LogValue.d.ts.map +1 -0
  13. package/esm/helpers/LogValue.js +23 -0
  14. package/esm/helpers/cacheTableDependencies.d.ts +9 -0
  15. package/esm/helpers/cacheTableDependencies.d.ts.map +1 -1
  16. package/esm/helpers/cacheTableDependencies.js +131 -21
  17. package/esm/helpers/cleanSQL.d.ts +1 -1
  18. package/esm/helpers/cleanSQL.d.ts.map +1 -1
  19. package/esm/helpers/cleanSQL.js +268 -23
  20. package/esm/helpers/flushAllTables.d.ts.map +1 -1
  21. package/esm/helpers/flushAllTables.js +23 -28
  22. package/esm/helpers/foldIdentifier.d.ts +3 -0
  23. package/esm/helpers/foldIdentifier.d.ts.map +1 -0
  24. package/esm/helpers/foldIdentifier.js +4 -0
  25. package/esm/helpers/geometryFromJSON.d.ts +3 -0
  26. package/esm/helpers/geometryFromJSON.d.ts.map +1 -0
  27. package/esm/helpers/geometryFromJSON.js +4 -0
  28. package/esm/helpers/index.d.ts +1 -0
  29. package/esm/helpers/index.d.ts.map +1 -1
  30. package/esm/helpers/index.js +1 -0
  31. package/esm/helpers/logData.d.ts.map +1 -1
  32. package/esm/helpers/logData.js +45 -44
  33. package/esm/helpers/makeLogConverter.d.ts +5 -0
  34. package/esm/helpers/makeLogConverter.d.ts.map +1 -0
  35. package/esm/helpers/makeLogConverter.js +64 -0
  36. package/esm/helpers/osmFiles.d.ts.map +1 -1
  37. package/esm/helpers/parseTypes.d.ts +1 -1
  38. package/esm/helpers/parseTypes.d.ts.map +1 -1
  39. package/esm/helpers/parseTypes.js +4 -0
  40. package/esm/helpers/pendingOps.d.ts +4 -2
  41. package/esm/helpers/pendingOps.d.ts.map +1 -1
  42. package/esm/helpers/prepareGeometry.d.ts +3 -0
  43. package/esm/helpers/prepareGeometry.d.ts.map +1 -0
  44. package/esm/helpers/prepareGeometry.js +99 -0
  45. package/esm/helpers/prepareJSON.d.ts +3 -0
  46. package/esm/helpers/prepareJSON.d.ts.map +1 -0
  47. package/esm/helpers/prepareJSON.js +50 -0
  48. package/esm/helpers/printTable.d.ts +5 -4
  49. package/esm/helpers/printTable.d.ts.map +1 -1
  50. package/esm/helpers/printTable.js +32 -36
  51. package/esm/helpers/queryDB.js +1 -1
  52. package/esm/helpers/queueAsyncBarrier.d.ts +4 -0
  53. package/esm/helpers/queueAsyncBarrier.d.ts.map +1 -1
  54. package/esm/helpers/queueAsyncBarrier.js +4 -0
  55. package/esm/helpers/queueOp.d.ts.map +1 -1
  56. package/esm/helpers/queueOp.js +5 -3
  57. package/esm/helpers/readMutationRows.d.ts +9 -0
  58. package/esm/helpers/readMutationRows.d.ts.map +1 -0
  59. package/esm/helpers/readMutationRows.js +94 -0
  60. package/esm/helpers/referencedTables.d.ts +9 -0
  61. package/esm/helpers/referencedTables.d.ts.map +1 -0
  62. package/esm/helpers/referencedTables.js +22 -0
  63. package/esm/helpers/runQuery.d.ts.map +1 -1
  64. package/esm/helpers/runQuery.js +11 -13
  65. package/esm/helpers/scanSQL.d.ts +7 -0
  66. package/esm/helpers/scanSQL.d.ts.map +1 -0
  67. package/esm/helpers/scanSQL.js +71 -0
  68. package/esm/helpers/tableRegistry.d.ts +2 -0
  69. package/esm/helpers/tableRegistry.d.ts.map +1 -1
  70. package/esm/helpers/tableRegistry.js +12 -4
  71. package/esm/helpers/updateColumnsWithJS.d.ts +52 -0
  72. package/esm/helpers/updateColumnsWithJS.d.ts.map +1 -0
  73. package/esm/helpers/updateColumnsWithJS.js +139 -0
  74. package/esm/methods/addColumn.d.ts +1 -1
  75. package/esm/methods/addColumn.d.ts.map +1 -1
  76. package/esm/methods/bm25.d.ts.map +1 -1
  77. package/esm/methods/bm25.js +1 -2
  78. package/esm/methods/cache.d.ts.map +1 -1
  79. package/esm/methods/cache.js +4 -6
  80. package/esm/methods/convert.d.ts +2 -2
  81. package/esm/methods/convert.d.ts.map +1 -1
  82. package/esm/methods/convert.js +5 -0
  83. package/esm/methods/getBottom.d.ts +1 -1
  84. package/esm/methods/getBottom.d.ts.map +1 -1
  85. package/esm/methods/getBottom.js +2 -2
  86. package/esm/methods/getData.d.ts +1 -1
  87. package/esm/methods/getData.d.ts.map +1 -1
  88. package/esm/methods/getData.js +2 -2
  89. package/esm/methods/join.d.ts.map +1 -1
  90. package/esm/methods/join.js +8 -16
  91. package/esm/methods/joinGeo.d.ts.map +1 -1
  92. package/esm/methods/joinGeo.js +10 -19
  93. package/esm/methods/loadArray.d.ts +1 -1
  94. package/esm/methods/loadArray.d.ts.map +1 -1
  95. package/esm/methods/loadArray.js +74 -19
  96. package/esm/methods/loadData.js +3 -0
  97. package/esm/methods/log.d.ts +7 -0
  98. package/esm/methods/log.d.ts.map +1 -0
  99. package/esm/methods/log.js +58 -0
  100. package/esm/methods/logBottom.d.ts +5 -0
  101. package/esm/methods/logBottom.d.ts.map +1 -0
  102. package/esm/methods/logBottom.js +9 -0
  103. package/esm/methods/removeTable.d.ts.map +1 -1
  104. package/esm/methods/removeTable.js +2 -0
  105. package/esm/methods/removeTables.d.ts.map +1 -1
  106. package/esm/methods/removeTables.js +7 -0
  107. package/esm/methods/renameTable.d.ts.map +1 -1
  108. package/esm/methods/renameTable.js +4 -0
  109. package/esm/methods/rowToText.js +2 -2
  110. package/esm/methods/selectTables.d.ts.map +1 -1
  111. package/esm/methods/selectTables.js +6 -0
  112. package/esm/methods/setTypes.d.ts +1 -1
  113. package/esm/methods/setTypes.d.ts.map +1 -1
  114. package/esm/methods/stream.d.ts.map +1 -1
  115. package/esm/methods/stream.js +2 -1
  116. package/esm/methods/updateWithJS.d.ts +1 -3
  117. package/esm/methods/updateWithJS.d.ts.map +1 -1
  118. package/esm/methods/updateWithJS.js +123 -37
  119. package/llm.md +337 -444
  120. package/llms.txt +1 -1
  121. package/package.json +1 -1
  122. package/script/class/Simple.d.ts +8 -2
  123. package/script/class/Simple.d.ts.map +1 -1
  124. package/script/class/Simple.js +9 -3
  125. package/script/class/SimpleDB.d.ts +72 -1
  126. package/script/class/SimpleDB.d.ts.map +1 -1
  127. package/script/class/SimpleDB.js +81 -1
  128. package/script/class/SimpleTable.d.ts +251 -274
  129. package/script/class/SimpleTable.d.ts.map +1 -1
  130. package/script/class/SimpleTable.js +248 -325
  131. package/script/helpers/LogValue.d.ts +8 -0
  132. package/script/helpers/LogValue.d.ts.map +1 -0
  133. package/script/helpers/LogValue.js +26 -0
  134. package/script/helpers/cacheTableDependencies.d.ts +9 -0
  135. package/script/helpers/cacheTableDependencies.d.ts.map +1 -1
  136. package/script/helpers/cacheTableDependencies.js +170 -20
  137. package/script/helpers/cleanSQL.d.ts +1 -1
  138. package/script/helpers/cleanSQL.d.ts.map +1 -1
  139. package/script/helpers/cleanSQL.js +271 -23
  140. package/script/helpers/flushAllTables.d.ts.map +1 -1
  141. package/script/helpers/flushAllTables.js +24 -29
  142. package/script/helpers/foldIdentifier.d.ts +3 -0
  143. package/script/helpers/foldIdentifier.d.ts.map +1 -0
  144. package/script/helpers/foldIdentifier.js +7 -0
  145. package/script/helpers/geometryFromJSON.d.ts +3 -0
  146. package/script/helpers/geometryFromJSON.d.ts.map +1 -0
  147. package/script/helpers/geometryFromJSON.js +7 -0
  148. package/script/helpers/index.d.ts +1 -0
  149. package/script/helpers/index.d.ts.map +1 -1
  150. package/script/helpers/index.js +3 -1
  151. package/script/helpers/logData.d.ts.map +1 -1
  152. package/script/helpers/logData.js +45 -44
  153. package/script/helpers/makeLogConverter.d.ts +5 -0
  154. package/script/helpers/makeLogConverter.d.ts.map +1 -0
  155. package/script/helpers/makeLogConverter.js +70 -0
  156. package/script/helpers/osmFiles.d.ts.map +1 -1
  157. package/script/helpers/parseTypes.d.ts +1 -1
  158. package/script/helpers/parseTypes.d.ts.map +1 -1
  159. package/script/helpers/parseTypes.js +4 -0
  160. package/script/helpers/pendingOps.d.ts +4 -2
  161. package/script/helpers/pendingOps.d.ts.map +1 -1
  162. package/script/helpers/prepareGeometry.d.ts +3 -0
  163. package/script/helpers/prepareGeometry.d.ts.map +1 -0
  164. package/script/helpers/prepareGeometry.js +102 -0
  165. package/script/helpers/prepareJSON.d.ts +3 -0
  166. package/script/helpers/prepareJSON.d.ts.map +1 -0
  167. package/script/helpers/prepareJSON.js +53 -0
  168. package/script/helpers/printTable.d.ts +5 -4
  169. package/script/helpers/printTable.d.ts.map +1 -1
  170. package/script/helpers/printTable.js +32 -36
  171. package/script/helpers/queryDB.js +1 -1
  172. package/script/helpers/queueAsyncBarrier.d.ts +4 -0
  173. package/script/helpers/queueAsyncBarrier.d.ts.map +1 -1
  174. package/script/helpers/queueAsyncBarrier.js +4 -0
  175. package/script/helpers/queueOp.d.ts.map +1 -1
  176. package/script/helpers/queueOp.js +4 -2
  177. package/script/helpers/readMutationRows.d.ts +9 -0
  178. package/script/helpers/readMutationRows.d.ts.map +1 -0
  179. package/script/helpers/readMutationRows.js +97 -0
  180. package/script/helpers/referencedTables.d.ts +9 -0
  181. package/script/helpers/referencedTables.d.ts.map +1 -0
  182. package/script/helpers/referencedTables.js +28 -0
  183. package/script/helpers/runQuery.d.ts.map +1 -1
  184. package/script/helpers/runQuery.js +11 -13
  185. package/script/helpers/scanSQL.d.ts +7 -0
  186. package/script/helpers/scanSQL.d.ts.map +1 -0
  187. package/script/helpers/scanSQL.js +74 -0
  188. package/script/helpers/tableRegistry.d.ts +2 -0
  189. package/script/helpers/tableRegistry.d.ts.map +1 -1
  190. package/script/helpers/tableRegistry.js +16 -4
  191. package/script/helpers/updateColumnsWithJS.d.ts +52 -0
  192. package/script/helpers/updateColumnsWithJS.d.ts.map +1 -0
  193. package/script/helpers/updateColumnsWithJS.js +145 -0
  194. package/script/methods/addColumn.d.ts +1 -1
  195. package/script/methods/addColumn.d.ts.map +1 -1
  196. package/script/methods/bm25.d.ts.map +1 -1
  197. package/script/methods/bm25.js +1 -2
  198. package/script/methods/cache.d.ts.map +1 -1
  199. package/script/methods/cache.js +3 -5
  200. package/script/methods/convert.d.ts +2 -2
  201. package/script/methods/convert.d.ts.map +1 -1
  202. package/script/methods/convert.js +5 -0
  203. package/script/methods/getBottom.d.ts +1 -1
  204. package/script/methods/getBottom.d.ts.map +1 -1
  205. package/script/methods/getBottom.js +2 -2
  206. package/script/methods/getData.d.ts +1 -1
  207. package/script/methods/getData.d.ts.map +1 -1
  208. package/script/methods/getData.js +2 -2
  209. package/script/methods/join.d.ts.map +1 -1
  210. package/script/methods/join.js +8 -16
  211. package/script/methods/joinGeo.d.ts.map +1 -1
  212. package/script/methods/joinGeo.js +10 -19
  213. package/script/methods/loadArray.d.ts +1 -1
  214. package/script/methods/loadArray.d.ts.map +1 -1
  215. package/script/methods/loadArray.js +74 -19
  216. package/script/methods/loadData.js +3 -0
  217. package/script/methods/log.d.ts +7 -0
  218. package/script/methods/log.d.ts.map +1 -0
  219. package/script/methods/log.js +64 -0
  220. package/script/methods/logBottom.d.ts +5 -0
  221. package/script/methods/logBottom.d.ts.map +1 -0
  222. package/script/methods/logBottom.js +15 -0
  223. package/script/methods/removeTable.d.ts.map +1 -1
  224. package/script/methods/removeTable.js +2 -0
  225. package/script/methods/removeTables.d.ts.map +1 -1
  226. package/script/methods/removeTables.js +7 -0
  227. package/script/methods/renameTable.d.ts.map +1 -1
  228. package/script/methods/renameTable.js +4 -0
  229. package/script/methods/rowToText.js +2 -2
  230. package/script/methods/selectTables.d.ts.map +1 -1
  231. package/script/methods/selectTables.js +6 -0
  232. package/script/methods/setTypes.d.ts +1 -1
  233. package/script/methods/setTypes.d.ts.map +1 -1
  234. package/script/methods/stream.d.ts.map +1 -1
  235. package/script/methods/stream.js +2 -1
  236. package/script/methods/updateWithJS.d.ts +1 -3
  237. package/script/methods/updateWithJS.d.ts.map +1 -1
  238. package/script/methods/updateWithJS.js +122 -36
@@ -0,0 +1,8 @@
1
+ /** Internal display metadata; never returned by public data extraction. */
2
+ export default class LogValue {
3
+ readonly text: string;
4
+ readonly jsType: string;
5
+ readonly category: "number" | "string" | "date" | "boolean" | "null";
6
+ constructor(text: string, jsType: string, category: "number" | "string" | "date" | "boolean" | "null");
7
+ }
8
+ //# sourceMappingURL=LogValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogValue.d.ts","sourceRoot":"","sources":["../../src/helpers/LogValue.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,CAAC,OAAO,OAAO,QAAQ;IAEzB,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM;gBAF3D,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM;CAEvE"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /** Internal display metadata; never returned by public data extraction. */
4
+ class LogValue {
5
+ constructor(text, jsType, category) {
6
+ Object.defineProperty(this, "text", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: text
11
+ });
12
+ Object.defineProperty(this, "jsType", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: jsType
17
+ });
18
+ Object.defineProperty(this, "category", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: category
23
+ });
24
+ }
25
+ }
26
+ exports.default = LogValue;
@@ -1,9 +1,18 @@
1
1
  import type SimpleTable from "../class/SimpleTable.js";
2
+ import type { PendingOp, PendingOpInput } from "./pendingOps.js";
2
3
  import { type TableGenerationId } from "./tableGeneration.js";
3
4
  export type CacheTableDependency = {
4
5
  tableName: string;
5
6
  generationId: TableGenerationId;
6
7
  };
8
+ /** Keeps deferred callbacks in their originating cache scope across observers. */
9
+ export declare function captureCacheTableOperation(op: PendingOpInput): PendingOpInput;
10
+ /** Rejects mutations before they can queue work or execute SQL. */
11
+ export declare function assertCacheTableMutation(table: SimpleTable): void;
12
+ /** Tracks callback-owned handles so failure cleanup does not touch other work. */
13
+ export declare function recordCacheTableCreation(table: SimpleTable): void;
14
+ /** Tracks queued work across nested callbacks, including async barriers. */
15
+ export declare function recordCacheTableOperation(table: SimpleTable, op: PendingOp): void;
7
16
  /** Records a table read when a cache computation is observing dependencies. */
8
17
  export declare function recordCacheTableAccess(table: SimpleTable): void;
9
18
  /** Records registered tables named in user-supplied SQL fragments. */
@@ -1 +1 @@
1
- {"version":3,"file":"cacheTableDependencies.d.ts","sourceRoot":"","sources":["../../src/helpers/cacheTableDependencies.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,iBAAiB,CAAC;CACjC,CAAC;AASF,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE/D;AAED,sEAAsE;AACtE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,IAAI,CAcN;AAED,qEAAqE;AACrE,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC3B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA6CjC;AAsBD,2EAA2E;AAC3E,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,GACxD,OAAO,CAYT;AAED,+EAA+E;AAC/E,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,SAAS,oBAAoB,EAAE,GAC5C,MAAM,CAsBR;AAED,kEAAkE;AAClE,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,SAAS,oBAAoB,EAAE,GAC5C,MAAM,CAER"}
1
+ {"version":3,"file":"cacheTableDependencies.d.ts","sourceRoot":"","sources":["../../src/helpers/cacheTableDependencies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAWjE,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,iBAAiB,CAAC;CACjC,CAAC;AAkBF,kFAAkF;AAClF,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,cAAc,GAAG,cAAc,CAiB7E;AAYD,mEAAmE;AACnE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAWjE;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CASjE;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,SAAS,GACZ,IAAI,CAMN;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAM/D;AAED,sEAAsE;AACtE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,IAAI,CAON;AAED,qEAAqE;AACrE,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC3B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAsDjC;AA4ED,2EAA2E;AAC3E,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,GACxD,OAAO,CAYT;AAED,+EAA+E;AAC/E,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,SAAS,oBAAoB,EAAE,GAC5C,MAAM,CAsBR;AAED,kEAAkE;AAClE,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,SAAS,oBAAoB,EAAE,GAC5C,MAAM,CAER"}
@@ -1,5 +1,45 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.captureCacheTableOperation = captureCacheTableOperation;
40
+ exports.assertCacheTableMutation = assertCacheTableMutation;
41
+ exports.recordCacheTableCreation = recordCacheTableCreation;
42
+ exports.recordCacheTableOperation = recordCacheTableOperation;
3
43
  exports.recordCacheTableAccess = recordCacheTableAccess;
4
44
  exports.recordCacheTableReferences = recordCacheTableReferences;
5
45
  exports.captureCacheTableDependencies = captureCacheTableDependencies;
@@ -7,24 +47,80 @@ exports.cacheTableDependenciesMatch = cacheTableDependenciesMatch;
7
47
  exports.changedCacheTableDependenciesMessage = changedCacheTableDependenciesMessage;
8
48
  exports.unchangedCacheTableDependenciesMessage = unchangedCacheTableDependenciesMessage;
9
49
  const node_async_hooks_1 = require("node:async_hooks");
50
+ const referencedTables_js_1 = __importDefault(require("./referencedTables.js"));
51
+ const asyncOperationContext_js_1 = require("./asyncOperationContext.js");
52
+ const flushAllTables_js_1 = __importStar(require("./flushAllTables.js"));
53
+ const quoteIdentifier_js_1 = __importDefault(require("./quoteIdentifier.js"));
10
54
  const tableRegistry_js_1 = require("./tableRegistry.js");
11
55
  const tableGeneration_js_1 = require("./tableGeneration.js");
12
56
  const dependencyContext = new node_async_hooks_1.AsyncLocalStorage();
57
+ /** Keeps deferred callbacks in their originating cache scope across observers. */
58
+ function captureCacheTableOperation(op) {
59
+ if (op.kind === "barrier" || op.kind === "asyncBarrier") {
60
+ return { ...op, execute: bindCacheContext(op.execute) };
61
+ }
62
+ if (op.kind === "source") {
63
+ return { ...op, buildSelect: bindCacheContext(op.buildSelect) };
64
+ }
65
+ return {
66
+ ...op,
67
+ buildSelect: bindCacheContext(op.buildSelect),
68
+ outputSchema: op.outputSchema === undefined
69
+ ? undefined
70
+ : bindCacheContext(op.outputSchema),
71
+ values: typeof op.values === "function"
72
+ ? bindCacheContext(op.values)
73
+ : op.values,
74
+ };
75
+ }
76
+ function bindCacheContext(callback) {
77
+ // Capture only the cache scope: a snapshot of all AsyncLocalStorage stores
78
+ // would also capture stale flush exemptions and async operation frames.
79
+ // An empty scope keeps unrelated work out of the observer's cache callback.
80
+ const frames = dependencyContext.getStore() ?? [];
81
+ return (...args) => dependencyContext.run(frames, () => callback(...args));
82
+ }
83
+ /** Rejects mutations before they can queue work or execute SQL. */
84
+ function assertCacheTableMutation(table) {
85
+ for (const frame of dependencyContext.getStore() ?? []) {
86
+ if (frame.open && table !== frame.cachedTable &&
87
+ frame.availableBeforeCompute.has(table)) {
88
+ throw new Error(cacheTableMutationMessage(frame.cachedTable, [table.name]));
89
+ }
90
+ }
91
+ }
92
+ /** Tracks callback-owned handles so failure cleanup does not touch other work. */
93
+ function recordCacheTableCreation(table) {
94
+ for (const frame of dependencyContext.getStore() ?? []) {
95
+ if (frame.open && table.sdb === frame.cachedTable.sdb &&
96
+ !frame.availableBeforeCompute.has(table)) {
97
+ frame.created.add(table);
98
+ }
99
+ }
100
+ }
101
+ /** Tracks queued work across nested callbacks, including async barriers. */
102
+ function recordCacheTableOperation(table, op) {
103
+ for (const frame of dependencyContext.getStore() ?? []) {
104
+ if (frame.open && table.sdb === frame.cachedTable.sdb) {
105
+ frame.queued.add(op.sequence);
106
+ }
107
+ }
108
+ }
13
109
  /** Records a table read when a cache computation is observing dependencies. */
14
110
  function recordCacheTableAccess(table) {
15
- dependencyContext.getStore()?.add(table);
111
+ for (const frame of dependencyContext.getStore() ?? []) {
112
+ if (frame.open && table.sdb === frame.cachedTable.sdb) {
113
+ frame.accessed.add(table);
114
+ }
115
+ }
16
116
  }
17
117
  /** Records registered tables named in user-supplied SQL fragments. */
18
118
  function recordCacheTableReferences(table, sql) {
19
119
  if (dependencyContext.getStore() === undefined) {
20
120
  return;
21
121
  }
22
- for (const candidate of (0, tableRegistry_js_1.getRegisteredTables)(table.sdb)) {
23
- const escaped = candidate.name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
24
- const pattern = new RegExp(`(?<![\\w\"])\"?${escaped}\"?(?![\\w\"])`, "i");
25
- if (sql.some((fragment) => pattern.test(fragment))) {
26
- recordCacheTableAccess(candidate);
27
- }
122
+ for (const candidate of (0, referencedTables_js_1.default)(sql, table.sdb)) {
123
+ recordCacheTableAccess(candidate);
28
124
  }
29
125
  }
30
126
  /** Runs a cache computation while collecting the tables it reads. */
@@ -37,19 +133,31 @@ async function captureCacheTableDependencies(cachedTable, compute) {
37
133
  },
38
134
  ]));
39
135
  const accessed = new Set();
40
- await dependencyContext.run(accessed, compute);
41
- const changedTables = [...availableBeforeCompute]
42
- .filter(([table, snapshot]) => table !== cachedTable &&
43
- (0, tableGeneration_js_1.peekTableGeneration)(table) !== snapshot.generationId)
44
- .map(([, snapshot]) => snapshot.tableName);
45
- if (changedTables.length > 0) {
46
- throw new Error(cacheTableMutationMessage(cachedTable, changedTables));
47
- }
48
- const createdTables = (0, tableRegistry_js_1.getRegisteredTables)(cachedTable.sdb)
49
- .filter((table) => !availableBeforeCompute.has(table))
50
- .map((table) => table.name);
51
- if (createdTables.length > 0) {
52
- throw new Error(cacheTableCleanupMessage(createdTables));
136
+ const frame = {
137
+ cachedTable,
138
+ availableBeforeCompute,
139
+ accessed,
140
+ created: new Set(),
141
+ queued: new Set(),
142
+ open: true,
143
+ };
144
+ try {
145
+ await dependencyContext.run([...(dependencyContext.getStore() ?? []), frame], async () => {
146
+ await compute();
147
+ // A callback can queue a whole computation without observing it.
148
+ // Reject leaked handles before executing that pending computation.
149
+ assertCacheTableCleanup(frame);
150
+ await (0, flushAllTables_js_1.default)(cachedTable.sdb);
151
+ // Async barriers may create tables during the final flush.
152
+ assertCacheTableCleanup(frame);
153
+ });
154
+ }
155
+ catch (error) {
156
+ await cleanupCacheComputation(frame);
157
+ throw error;
158
+ }
159
+ finally {
160
+ frame.open = false;
53
161
  }
54
162
  return [...accessed]
55
163
  .filter((table) => table !== cachedTable && availableBeforeCompute.has(table))
@@ -65,6 +173,48 @@ async function captureCacheTableDependencies(cachedTable, compute) {
65
173
  })
66
174
  .sort((left, right) => left.tableName.localeCompare(right.tableName));
67
175
  }
176
+ function assertCacheTableCleanup(frame) {
177
+ const created = (0, tableRegistry_js_1.getRegisteredTables)(frame.cachedTable.sdb)
178
+ .filter((table) => frame.created.has(table));
179
+ if (created.length > 0) {
180
+ throw new Error(cacheTableCleanupMessage(created.map((table) => table.name)));
181
+ }
182
+ }
183
+ async function cleanupCacheComputation(frame) {
184
+ const sdb = frame.cachedTable.sdb;
185
+ // Drop only this callback's pending operations, preserving other queues and
186
+ // their database-wide ordering. A nested failure also discards work captured
187
+ // by an enclosing async barrier, which is stored outside pendingOps.
188
+ for (const table of (0, tableRegistry_js_1.getRegisteredTables)(sdb)) {
189
+ const retained = table.pendingOps.filter((op) => !frame.queued.has(op.sequence));
190
+ sdb.pendingCount -= table.pendingOps.length - retained.length;
191
+ table.pendingOps.splice(0, table.pendingOps.length, ...retained);
192
+ }
193
+ const operationFrame = (0, asyncOperationContext_js_1.getAsyncOperationFrame)(sdb);
194
+ if (operationFrame !== undefined) {
195
+ operationFrame.entries = operationFrame.entries.filter((entry) => !frame.queued.has(entry.op.sequence));
196
+ }
197
+ const created = (0, tableRegistry_js_1.getRegisteredTables)(sdb)
198
+ .filter((table) => frame.created.has(table));
199
+ if (created.length === 0)
200
+ return;
201
+ // Observers inside compute may already have materialized temporary tables.
202
+ // Cleanup must not flush work requeued after an execution error.
203
+ const removeCreatedTables = () => (0, flushAllTables_js_1.runExemptFromFlush)(sdb, async () => {
204
+ for (const table of created) {
205
+ await sdb.customQuery(`DROP TABLE IF EXISTS ${(0, quoteIdentifier_js_1.default)(table.name)};`);
206
+ }
207
+ });
208
+ if (operationFrame === undefined) {
209
+ await removeCreatedTables();
210
+ }
211
+ else {
212
+ // Async frames take precedence over the database-wide flush exemption.
213
+ // Suppress their drain too, without consuming unrelated captured work.
214
+ await (0, asyncOperationContext_js_1.runWhileDrainingAsyncOperationFrame)(operationFrame, removeCreatedTables);
215
+ }
216
+ (0, tableRegistry_js_1.retainRegisteredTables)(sdb, (table) => !frame.created.has(table));
217
+ }
68
218
  function cacheTableMutationMessage(cachedTable, changedTables) {
69
219
  const tables = changedTables.map((name) => JSON.stringify(name)).join(", ");
70
220
  const cachedTableName = JSON.stringify(cachedTable.name);
@@ -1,2 +1,2 @@
1
- export default function cleanSQL(query: string): string;
1
+ export default function cleanSQL(query: string, syntax?: "js" | "sql"): string;
2
2
  //# sourceMappingURL=cleanSQL.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanSQL.d.ts","sourceRoot":"","sources":["../../src/helpers/cleanSQL.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA8BtD"}
1
+ {"version":3,"file":"cleanSQL.d.ts","sourceRoot":"","sources":["../../src/helpers/cleanSQL.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,IAAI,GAAG,KAAY,GAC1B,MAAM,CAqRR"}
@@ -1,27 +1,275 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.default = cleanSQL;
4
- function cleanSQL(query) {
5
- // First pass
6
- let cleaned = query
7
- .replace(/ && /g, " AND ")
8
- .replace(/ === /g, " = ")
9
- .replace(/ == /g, " = ")
10
- .replace(/ !== /g, " != ");
11
- // Replace || with OR only in WHERE clauses (for logical operations)
12
- // Preserve || elsewhere as it's the SQL concatenation operator
13
- cleaned = cleaned.replace(/WHERE\s+([\s\S]*?)(?=\s+(?:GROUP BY|ORDER BY|LIMIT|HAVING)|$)/gi, (match) => {
14
- return match.replace(/\s*\|\|\s*/g, " OR ");
15
- });
16
- if (cleaned.includes("ALTER TABLE") && cleaned.includes("UPDATE") &&
17
- cleaned.includes("SET")) {
18
- // We pass
19
- }
20
- else {
21
- // We do a second pass
22
- cleaned = cleaned.replace(/ null(?=\s|$)/g, " NULL") // space after or end of string
23
- .replace(/ != NULL/g, " NOT NULL")
24
- .replace(/ = NULL/g, " IS NULL");
25
- }
26
- return cleaned.trim();
7
+ const scanSQL_js_1 = __importDefault(require("./scanSQL.js"));
8
+ function cleanSQL(query, syntax = "js") {
9
+ if (syntax === "sql")
10
+ return query;
11
+ const tokens = (0, scanSQL_js_1.default)(query);
12
+ const significant = tokens.filter((token) => token.kind !== "trivia");
13
+ const original = significant.map((token) => token.kind === "sql" ? token.text.toUpperCase() : "");
14
+ const pairs = new Map();
15
+ const stack = [];
16
+ for (let i = 0; i < original.length; i++) {
17
+ if (["(", "[", "CASE"].includes(original[i]))
18
+ stack.push(i);
19
+ else if (stack.length &&
20
+ ((original[i] === ")" && original[stack[stack.length - 1]] === "(") ||
21
+ (original[i] === "]" && original[stack[stack.length - 1]] === "[") ||
22
+ (original[i] === "END" && original[stack[stack.length - 1]] === "CASE"))) {
23
+ const start = stack.pop();
24
+ pairs.set(start, i);
25
+ pairs.set(i, start);
26
+ }
27
+ }
28
+ const betweenAnd = new Set();
29
+ for (let i = 0; i < original.length; i++) {
30
+ if (original[i] !== "BETWEEN")
31
+ continue;
32
+ for (let j = i + 1; j < original.length; j++) {
33
+ if (["(", "[", "CASE"].includes(original[j])) {
34
+ j = pairs.get(j) ?? original.length;
35
+ }
36
+ else if ([")", "]", "END", ";"].includes(original[j]))
37
+ break;
38
+ else if (original[j] === "AND") {
39
+ betweenAnd.add(j);
40
+ break;
41
+ }
42
+ }
43
+ }
44
+ const comparisons = new Set([
45
+ "=",
46
+ "==",
47
+ "===",
48
+ "!=",
49
+ "!==",
50
+ "<>",
51
+ "<",
52
+ ">",
53
+ "<=",
54
+ ">=",
55
+ "IS",
56
+ "IN",
57
+ "LIKE",
58
+ "ILIKE",
59
+ "BETWEEN",
60
+ ]);
61
+ const boundaries = new Set([
62
+ "SELECT",
63
+ "FROM",
64
+ "WHERE",
65
+ "HAVING",
66
+ "QUALIFY",
67
+ "GROUP",
68
+ "ORDER",
69
+ "LIMIT",
70
+ "RETURNING",
71
+ "UNION",
72
+ "EXCEPT",
73
+ "INTERSECT",
74
+ "WHEN",
75
+ "THEN",
76
+ "ELSE",
77
+ "AS",
78
+ "AND",
79
+ "OR",
80
+ "&&",
81
+ ",",
82
+ ";",
83
+ ]);
84
+ const textTypes = new Set(["VARCHAR", "CHAR", "BPCHAR", "TEXT", "STRING"]);
85
+ function range(pipe, start, end, stop) {
86
+ let left = pipe - 1;
87
+ while (left >= start && !stop(left)) {
88
+ if ([")", "]", "END"].includes(original[left])) {
89
+ left = pairs.get(left) ?? start;
90
+ }
91
+ left--;
92
+ }
93
+ let right = pipe + 1;
94
+ while (right < end && !stop(right)) {
95
+ if (["(", "[", "CASE"].includes(original[right])) {
96
+ right = pairs.get(right) ?? end;
97
+ }
98
+ right++;
99
+ }
100
+ return [left + 1, right];
101
+ }
102
+ function predicate(start, end) {
103
+ if (original[start] === "(" && pairs.get(start) === end - 1) {
104
+ return predicate(start + 1, end - 1);
105
+ }
106
+ for (let i = start; i < end; i++) {
107
+ if (["(", "[", "CASE"].includes(original[i]))
108
+ i = pairs.get(i) ?? end;
109
+ else if (comparisons.has(original[i]))
110
+ return true;
111
+ }
112
+ return false;
113
+ }
114
+ // Only infer types that are explicit in the expression. Never infer a
115
+ // column's or an arbitrary function's type from its name or argument types.
116
+ function isTextType(start, end) {
117
+ return textTypes.has(original[start]) &&
118
+ (start + 1 === end ||
119
+ (original[start + 1] === "(" && pairs.get(start + 1) === end - 1));
120
+ }
121
+ function concatenable(start, end) {
122
+ if (start >= end)
123
+ return false;
124
+ let cast;
125
+ let pipe;
126
+ for (let i = start; i < end; i++) {
127
+ if (["(", "[", "CASE"].includes(original[i]))
128
+ i = pairs.get(i) ?? end;
129
+ else if (comparisons.has(original[i]))
130
+ return false;
131
+ else if (original[i] === "||")
132
+ pipe ??= i;
133
+ else if (original[i] === "::")
134
+ cast = i;
135
+ }
136
+ if (pipe !== undefined) {
137
+ return concatenable(start, pipe) || concatenable(pipe + 1, end);
138
+ }
139
+ // The final cast determines the result type, including casts to BOOLEAN.
140
+ if (cast !== undefined) {
141
+ return isTextType(cast + 1, end);
142
+ }
143
+ if (original[start] === "(" && pairs.get(start) === end - 1) {
144
+ return concatenable(start + 1, end - 1);
145
+ }
146
+ if (original[start] === "[" && pairs.get(start) === end - 1)
147
+ return true;
148
+ if (end === start + 1) {
149
+ return significant[start].kind === "quoted" &&
150
+ !significant[start].text.startsWith('"');
151
+ }
152
+ if (original[start + 1] === "(" && pairs.get(start + 1) === end - 1) {
153
+ if (["CONCAT", "CONCAT_WS"].includes(original[start]))
154
+ return true;
155
+ if (["CAST", "TRY_CAST"].includes(original[start])) {
156
+ for (let i = start + 2; i < end - 1; i++) {
157
+ if (["(", "[", "CASE"].includes(original[i])) {
158
+ i = pairs.get(i) ?? end;
159
+ }
160
+ else if (original[i] === "AS") {
161
+ return isTextType(i + 1, end - 1);
162
+ }
163
+ }
164
+ }
165
+ }
166
+ return false;
167
+ }
168
+ function obviousConcatenation(pipe, start, end) {
169
+ const [left, right] = range(pipe, start, end, (i) => (boundaries.has(original[i]) && !betweenAnd.has(i)) ||
170
+ original[i] === "||");
171
+ // A literal in a comparison is not evidence that the comparison returns text.
172
+ if (predicate(left, pipe) && predicate(pipe + 1, right))
173
+ return false;
174
+ const [groupStart, groupEnd] = range(pipe, start, end, (i) => boundaries.has(original[i]) || comparisons.has(original[i]));
175
+ let operand = groupStart;
176
+ for (let i = groupStart; i <= groupEnd; i++) {
177
+ if (["(", "[", "CASE"].includes(original[i])) {
178
+ i = pairs.get(i) ?? groupEnd;
179
+ }
180
+ else if (i === groupEnd || original[i] === "||") {
181
+ // Do not use the RHS literal of a preceding comparison to infer OR's
182
+ // meaning (text = 'a' || active). Other operands can still prove concat.
183
+ if (!(operand === groupStart &&
184
+ (comparisons.has(original[groupStart - 1]) ||
185
+ betweenAnd.has(groupStart - 1))) &&
186
+ concatenable(operand, i))
187
+ return true;
188
+ operand = i + 1;
189
+ }
190
+ }
191
+ return false;
192
+ }
193
+ function normalize(start, end) {
194
+ let statement = original[start];
195
+ let inSetClause = false;
196
+ let assignmentTarget = false;
197
+ for (let i = start; i < end; i++) {
198
+ const word = original[i];
199
+ if (statement === undefined)
200
+ statement = word;
201
+ // Nested queries are visited separately below. Look through statement
202
+ // prefixes to find the outer command that can introduce assignments.
203
+ if (["WITH", "EXPLAIN", "PREPARE"].includes(statement) &&
204
+ ["SELECT", "INSERT", "UPDATE", "DELETE", "MERGE"].includes(word))
205
+ statement = word;
206
+ if (word === "UPDATE" && ["DO", "THEN"].includes(original[i - 1]))
207
+ statement = word;
208
+ if (["(", "[", "CASE"].includes(word)) {
209
+ const close = pairs.get(i);
210
+ if (close !== undefined) {
211
+ normalize(i + 1, close);
212
+ i = close;
213
+ continue;
214
+ }
215
+ }
216
+ if (["WHERE", "HAVING", "QUALIFY", "WHEN"].includes(word)) {
217
+ statement = word;
218
+ inSetClause = false;
219
+ assignmentTarget = false;
220
+ }
221
+ else if ([
222
+ "THEN",
223
+ "ELSE",
224
+ "SELECT",
225
+ "FROM",
226
+ "GROUP",
227
+ "ORDER",
228
+ "LIMIT",
229
+ "RETURNING",
230
+ "UNION",
231
+ "EXCEPT",
232
+ "INTERSECT",
233
+ ";",
234
+ ].includes(word)) {
235
+ statement = word;
236
+ inSetClause = false;
237
+ assignmentTarget = false;
238
+ }
239
+ else if (word === "SET" && !inSetClause &&
240
+ (statement === "UPDATE" ||
241
+ (statement === "SET" &&
242
+ (original[i + 1] === "VARIABLE" || original[i + 2] === "=")))) {
243
+ inSetClause = true;
244
+ assignmentTarget = true;
245
+ }
246
+ else if (word === "," && inSetClause)
247
+ assignmentTarget = true;
248
+ if (word === ";")
249
+ statement = undefined;
250
+ // Preserve only the assignment operator itself. Comparisons in its RHS
251
+ // still use shorthand, even when they are not wrapped in parentheses.
252
+ const assignment = assignmentTarget && ["=", "==", "==="].includes(word);
253
+ if (assignment)
254
+ assignmentTarget = false;
255
+ const token = significant[i];
256
+ if (["==", "==="].includes(word))
257
+ token.text = "=";
258
+ else if (word === "!==")
259
+ token.text = "!=";
260
+ else if (word === "&&")
261
+ token.text = " AND ";
262
+ else if (word === "||" && !obviousConcatenation(i, start, end)) {
263
+ token.text = " OR ";
264
+ }
265
+ if (original[i + 1] === "NULL" && !assignment) {
266
+ if (["=", "==", "==="].includes(word))
267
+ token.text = " IS ";
268
+ else if (["!=", "!=="].includes(word))
269
+ token.text = " IS NOT ";
270
+ }
271
+ }
272
+ }
273
+ normalize(0, significant.length);
274
+ return tokens.map((token) => token.text).join("").trim();
27
275
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flushAllTables.d.ts","sourceRoot":"","sources":["../../src/helpers/flushAllTables.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAiCjD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAIZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAA8B,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCzE"}
1
+ {"version":3,"file":"flushAllTables.d.ts","sourceRoot":"","sources":["../../src/helpers/flushAllTables.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAkCjD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAIZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAA8B,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCzE"}