nolo-cli 0.143.0-alpha.1 → 0.145.0-alpha.1

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 (455) hide show
  1. package/README.md +2 -0
  2. package/{_executeModel-QK43QR2R.js → _executeModel-M3FASQ2Z.js} +18 -17
  3. package/{agentDeleteCommand-SE4WUIRR.js → agentDeleteCommand-K7GCEEVS.js} +10 -9
  4. package/{agentEmailCommands-LW5JMYH2.js → agentEmailCommands-MNXRO36L.js} +24 -23
  5. package/{agentListCommands-LGZG2OQR.js → agentListCommands-KMZR6VVM.js} +12 -11
  6. package/{agentMachineCommands-BNOXYSPZ.js → agentMachineCommands-75TIBYDY.js} +10 -9
  7. package/{agentProviderCommands-AOG3OZJA.js → agentProviderCommands-TWB6E5WD.js} +1 -1
  8. package/{agentRecordCommands-W5ZXPHZV.js → agentRecordCommands-RDO5L3N4.js} +23 -22
  9. package/{agentRunCommand-VRLCL57M.js → agentRunCommand-FVJJPL27.js} +23 -22
  10. package/{agentRuntimeLocal-VOQ3UYZB.js → agentRuntimeLocal-DAK7RCER.js} +8 -7
  11. package/{agentSlice-4AK24F5F.js → agentSlice-6MRJR2BJ.js} +1 -1
  12. package/{appDeleteCommands-XWAIUHTN.js → appDeleteCommands-JMMXK3XT.js} +11 -10
  13. package/{appDeployCommands-CBJJCUMG.js → appDeployCommands-JFU6GALI.js} +11 -10
  14. package/{appDeployStatusCommands-LTTZTJQS.js → appDeployStatusCommands-AXTZ4GAN.js} +11 -10
  15. package/{appGetCommands-QHUB7MFF.js → appGetCommands-CR2W3DCM.js} +11 -10
  16. package/{appListCommands-HINIDJE7.js → appListCommands-2TV6P3EU.js} +11 -10
  17. package/{authCommand-LARLQ3GC.js → authCommand-UBJ4EWYZ.js} +6 -6
  18. package/{authCommands-GBIFZWD3.js → authCommands-H6WKKCRW.js} +1 -1
  19. package/{builtinSkillRegistry-AFPSTTAU.js → builtinSkillRegistry-ZMF6YGNO.js} +4 -3
  20. package/{chatQueueReduxAdapter-KIQ3FQ62.js → chatQueueReduxAdapter-CDOHVTSE.js} +2 -2
  21. package/{chromeCommands-NKU3OWKH.js → chromeCommands-2N6MEWRU.js} +94 -23
  22. package/{chromeOpsCommands-OQDJGD4Y.js → chromeOpsCommands-IXRLN57H.js} +4 -3
  23. package/{chunk-7MUSNQ6E.js → chunk-27ONFIEY.js} +20 -2
  24. package/{chunk-OZ6V53WV.js → chunk-2EE5UD3N.js} +1 -1
  25. package/{chunk-44QZPYLI.js → chunk-2SYTUTLI.js} +92 -20
  26. package/{chunk-DID5AVGT.js → chunk-2TKVOEQF.js} +11 -10
  27. package/chunk-5J3PYNUP.js +255 -0
  28. package/{chunk-OUOJE2P2.js → chunk-5XYFIDFU.js} +5 -5
  29. package/{chunk-WTUVMKSQ.js → chunk-62XHRZG4.js} +2 -2
  30. package/{chunk-WC6A2Q7S.js → chunk-6TPOEJMQ.js} +5 -2
  31. package/{chunk-RRMAZ2BI.js → chunk-7NANRWL4.js} +1 -1
  32. package/{chunk-44F6KKUE.js → chunk-7YAK46ML.js} +3 -3
  33. package/{chunk-NOGH7HCP.js → chunk-A6FNUMCF.js} +47 -6
  34. package/{chunk-OFYHCA6W.js → chunk-AATZZAZE.js} +1 -1
  35. package/{chunk-KUPDS66Q.js → chunk-ANX7Z7Z2.js} +8 -8
  36. package/{chunk-J5H6SUOW.js → chunk-B2XUQXQX.js} +2 -2
  37. package/{chunk-A5MB5RIT.js → chunk-CCOXTK3I.js} +1 -1
  38. package/chunk-GNMAFAIS.js +29 -0
  39. package/{chunk-GZQNKKDG.js → chunk-HKBFZONG.js} +1 -1
  40. package/{chunk-7LLWEG6F.js → chunk-I44MDY73.js} +3 -3
  41. package/{chunk-QDT5T7MK.js → chunk-I4OPU5TK.js} +1 -1
  42. package/{chunk-VPFEPRME.js → chunk-IVZJWTDI.js} +3 -0
  43. package/{chunk-CTGZO35O.js → chunk-JLQKV2ZJ.js} +2 -2
  44. package/{chunk-PQVOC2CZ.js → chunk-M2YBIBBS.js} +1 -1
  45. package/{chunk-ZOI6KA4N.js → chunk-M76SRQ3H.js} +34 -22
  46. package/{chunk-K25DK52L.js → chunk-OKSJZ4UU.js} +21 -223
  47. package/{chunk-U5QTKTZE.js → chunk-P6GMCCAT.js} +1 -1
  48. package/{chunk-L6RB42ZR.js → chunk-QFZM5BFI.js} +3 -3
  49. package/{chunk-GH4MH73K.js → chunk-RHDOQWXZ.js} +175 -17
  50. package/{chunk-M6NK74VP.js → chunk-S5XGT6GB.js} +1 -1
  51. package/{chunk-KUWT3C2P.js → chunk-T76D3OYX.js} +1 -1
  52. package/{chunk-MXRUAINC.js → chunk-UMB7CHAY.js} +3 -3
  53. package/{chunk-VVUSRF5D.js → chunk-VJ4FUWPC.js} +3 -3
  54. package/{chunk-T36EFAW7.js → chunk-VZVTPDPL.js} +3 -3
  55. package/{chunk-AAROOKLX.js → chunk-X2QRZXZH.js} +1 -1
  56. package/{chunk-WYYO2YOL.js → chunk-XNXNHAAP.js} +1 -1
  57. package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
  58. package/{chunk-DOBBRISY.js → chunk-Y6XHJ4JJ.js} +22 -10
  59. package/{chunk-W247GBSQ.js → chunk-YU2THNST.js} +1 -1
  60. package/{chunk-OY5IJI2N.js → chunk-YUNJN43V.js} +23 -3
  61. package/{commandRegistry-DETYXF5I.js → commandRegistry-ZF6YXQWV.js} +76 -65
  62. package/{contentThunks-6QBTPLWT.js → contentThunks-6Y6ATG3A.js} +3 -3
  63. package/{createAgentAutomationAction-TZVIJTZ7.js → createAgentAutomationAction-OQTLA2FC.js} +3 -3
  64. package/{createDialogAction-KTDAEA42.js → createDialogAction-IF5EZMBD.js} +6 -5
  65. package/{createPageAction-4RASVDAU.js → createPageAction-GU766R3L.js} +3 -3
  66. package/{dialogCommands-GY7LRERG.js → dialogCommands-QV7XAX2V.js} +11 -10
  67. package/{dialogSlice-J24APUGG.js → dialogSlice-CVHMDSVV.js} +2 -2
  68. package/{docCreateCommands-T7KII3WP.js → docCreateCommands-FSBANQTO.js} +10 -9
  69. package/{docDeleteCommands-SQ26EFE6.js → docDeleteCommands-4IR4YSGU.js} +11 -10
  70. package/{docReadCommands-I6NA2ZKV.js → docReadCommands-4EYPGUE3.js} +10 -9
  71. package/{docStore-SPOGE7K3.js → docStore-RQOWPNON.js} +1 -1
  72. package/{docUpdateCommands-IG43SZ6U.js → docUpdateCommands-RW2BYLSE.js} +10 -9
  73. package/{handleSendMessageAction-I2IN64DS.js → handleSendMessageAction-UDTPG5WK.js} +4 -3
  74. package/index.js +4 -4
  75. package/{machineCommands-U7VABJPW.js → machineCommands-WBQ4TCPD.js} +22 -21
  76. package/{machineWsRunDispatch-ZNU6LRNG.js → machineWsRunDispatch-7DNDXUOS.js} +22 -21
  77. package/node_modules/abstract-level/CHANGELOG.md +150 -0
  78. package/node_modules/abstract-level/LICENSE +21 -0
  79. package/node_modules/abstract-level/README.md +1957 -0
  80. package/node_modules/abstract-level/UPGRADING.md +669 -0
  81. package/node_modules/abstract-level/abstract-chained-batch.js +397 -0
  82. package/node_modules/abstract-level/abstract-iterator.js +404 -0
  83. package/node_modules/abstract-level/abstract-level.js +1127 -0
  84. package/node_modules/abstract-level/abstract-snapshot.js +84 -0
  85. package/node_modules/abstract-level/index.d.ts +52 -0
  86. package/node_modules/abstract-level/index.js +9 -0
  87. package/node_modules/abstract-level/lib/abstract-sublevel-iterator.js +141 -0
  88. package/node_modules/abstract-level/lib/abstract-sublevel.js +290 -0
  89. package/node_modules/abstract-level/lib/common.js +33 -0
  90. package/node_modules/abstract-level/lib/default-chained-batch.js +29 -0
  91. package/node_modules/abstract-level/lib/default-kv-iterator.js +74 -0
  92. package/node_modules/abstract-level/lib/deferred-iterator.js +110 -0
  93. package/node_modules/abstract-level/lib/deferred-queue.js +84 -0
  94. package/node_modules/abstract-level/lib/errors.js +21 -0
  95. package/node_modules/abstract-level/lib/event-monitor.js +30 -0
  96. package/node_modules/abstract-level/lib/hooks.js +78 -0
  97. package/node_modules/abstract-level/lib/prefixes.js +21 -0
  98. package/node_modules/abstract-level/lib/prewrite-batch.js +96 -0
  99. package/node_modules/abstract-level/lib/range-options.js +26 -0
  100. package/node_modules/abstract-level/package.json +66 -0
  101. package/node_modules/abstract-level/test/async-iterator-test.js +132 -0
  102. package/node_modules/abstract-level/test/batch-test.js +214 -0
  103. package/node_modules/abstract-level/test/chained-batch-test.js +315 -0
  104. package/node_modules/abstract-level/test/clear-range-test.js +262 -0
  105. package/node_modules/abstract-level/test/clear-test.js +110 -0
  106. package/node_modules/abstract-level/test/common.js +90 -0
  107. package/node_modules/abstract-level/test/deferred-open-test.js +209 -0
  108. package/node_modules/abstract-level/test/del-test.js +65 -0
  109. package/node_modules/abstract-level/test/encoding-buffer-test.js +336 -0
  110. package/node_modules/abstract-level/test/encoding-custom-test.js +92 -0
  111. package/node_modules/abstract-level/test/encoding-decode-error-test.js +85 -0
  112. package/node_modules/abstract-level/test/encoding-json-test.js +75 -0
  113. package/node_modules/abstract-level/test/encoding-test.js +130 -0
  114. package/node_modules/abstract-level/test/events/write.js +132 -0
  115. package/node_modules/abstract-level/test/factory-test.js +36 -0
  116. package/node_modules/abstract-level/test/get-many-test.js +157 -0
  117. package/node_modules/abstract-level/test/get-sync-test.js +61 -0
  118. package/node_modules/abstract-level/test/get-test.js +83 -0
  119. package/node_modules/abstract-level/test/has-many-test.js +144 -0
  120. package/node_modules/abstract-level/test/has-test.js +81 -0
  121. package/node_modules/abstract-level/test/hooks/newsub.js +57 -0
  122. package/node_modules/abstract-level/test/hooks/postopen.js +229 -0
  123. package/node_modules/abstract-level/test/hooks/prewrite.js +816 -0
  124. package/node_modules/abstract-level/test/hooks/shared.js +38 -0
  125. package/node_modules/abstract-level/test/index.js +86 -0
  126. package/node_modules/abstract-level/test/iterator-explicit-snapshot-test.js +393 -0
  127. package/node_modules/abstract-level/test/iterator-no-snapshot-test.js +49 -0
  128. package/node_modules/abstract-level/test/iterator-range-test.js +277 -0
  129. package/node_modules/abstract-level/test/iterator-seek-test.js +335 -0
  130. package/node_modules/abstract-level/test/iterator-snapshot-test.js +56 -0
  131. package/node_modules/abstract-level/test/iterator-test.js +621 -0
  132. package/node_modules/abstract-level/test/manifest-test.js +21 -0
  133. package/node_modules/abstract-level/test/open-create-if-missing-test.js +39 -0
  134. package/node_modules/abstract-level/test/open-error-if-exists-test.js +25 -0
  135. package/node_modules/abstract-level/test/open-test.js +263 -0
  136. package/node_modules/abstract-level/test/put-get-del-test.js +97 -0
  137. package/node_modules/abstract-level/test/put-test.js +70 -0
  138. package/node_modules/abstract-level/test/self/abstract-iterator-test.js +182 -0
  139. package/node_modules/abstract-level/test/self/async-iterator-test.js +242 -0
  140. package/node_modules/abstract-level/test/self/attach-resource-test.js +74 -0
  141. package/node_modules/abstract-level/test/self/defer-test.js +140 -0
  142. package/node_modules/abstract-level/test/self/deferred-iterator-test.js +314 -0
  143. package/node_modules/abstract-level/test/self/deferred-operations-test.js +86 -0
  144. package/node_modules/abstract-level/test/self/deferred-queue-test.js +93 -0
  145. package/node_modules/abstract-level/test/self/encoding-test.js +391 -0
  146. package/node_modules/abstract-level/test/self/errors-test.js +11 -0
  147. package/node_modules/abstract-level/test/self/iterator-test.js +1050 -0
  148. package/node_modules/abstract-level/test/self/sublevel-test.js +1039 -0
  149. package/node_modules/abstract-level/test/self.js +905 -0
  150. package/node_modules/abstract-level/test/sublevel-test.js +209 -0
  151. package/node_modules/abstract-level/test/traits/closed.js +42 -0
  152. package/node_modules/abstract-level/test/traits/index.js +4 -0
  153. package/node_modules/abstract-level/test/traits/open.js +62 -0
  154. package/node_modules/abstract-level/test/util.js +275 -0
  155. package/node_modules/abstract-level/types/abstract-chained-batch.d.ts +124 -0
  156. package/node_modules/abstract-level/types/abstract-iterator.d.ts +241 -0
  157. package/node_modules/abstract-level/types/abstract-level.d.ts +636 -0
  158. package/node_modules/abstract-level/types/abstract-snapshot.d.ts +30 -0
  159. package/node_modules/abstract-level/types/abstract-sublevel.d.ts +76 -0
  160. package/node_modules/abstract-level/types/interfaces.d.ts +43 -0
  161. package/node_modules/base64-js/LICENSE +21 -0
  162. package/node_modules/base64-js/README.md +34 -0
  163. package/node_modules/base64-js/base64js.min.js +1 -0
  164. package/node_modules/base64-js/index.d.ts +3 -0
  165. package/node_modules/base64-js/index.js +150 -0
  166. package/node_modules/base64-js/package.json +47 -0
  167. package/node_modules/browser-level/CHANGELOG.md +44 -0
  168. package/node_modules/browser-level/LICENSE +21 -0
  169. package/node_modules/browser-level/README.md +124 -0
  170. package/node_modules/browser-level/UPGRADING.md +143 -0
  171. package/node_modules/browser-level/index.d.ts +108 -0
  172. package/node_modules/browser-level/index.js +323 -0
  173. package/node_modules/browser-level/iterator.js +239 -0
  174. package/node_modules/browser-level/package.json +48 -0
  175. package/node_modules/browser-level/util/clear.js +38 -0
  176. package/node_modules/browser-level/util/deserialize.js +17 -0
  177. package/node_modules/browser-level/util/key-range.js +20 -0
  178. package/node_modules/buffer/AUTHORS.md +73 -0
  179. package/node_modules/buffer/LICENSE +21 -0
  180. package/node_modules/buffer/README.md +410 -0
  181. package/node_modules/buffer/index.d.ts +194 -0
  182. package/node_modules/buffer/index.js +2106 -0
  183. package/node_modules/buffer/package.json +93 -0
  184. package/node_modules/classic-level/CHANGELOG.md +115 -0
  185. package/node_modules/classic-level/LICENSE +21 -0
  186. package/node_modules/classic-level/README.md +274 -0
  187. package/node_modules/classic-level/UPGRADING.md +131 -0
  188. package/node_modules/classic-level/binding.cc +2652 -0
  189. package/node_modules/classic-level/binding.gyp +71 -0
  190. package/node_modules/classic-level/binding.js +1 -0
  191. package/node_modules/classic-level/chained-batch.js +35 -0
  192. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/LICENSE +27 -0
  193. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/Makefile +424 -0
  194. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/build_detect_platform +256 -0
  195. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/autocompact_test.cc +118 -0
  196. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.cc +88 -0
  197. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.h +34 -0
  198. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c.cc +595 -0
  199. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c_test.c +390 -0
  200. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/corruption_test.cc +374 -0
  201. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_bench.cc +1020 -0
  202. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.cc +1568 -0
  203. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.h +212 -0
  204. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.cc +317 -0
  205. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.h +28 -0
  206. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_test.cc +2158 -0
  207. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.cc +140 -0
  208. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.h +230 -0
  209. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat_test.cc +112 -0
  210. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dumpfile.cc +225 -0
  211. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/fault_injection_test.cc +554 -0
  212. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.cc +144 -0
  213. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.h +85 -0
  214. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename_test.cc +123 -0
  215. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/leveldbutil.cc +64 -0
  216. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_format.h +35 -0
  217. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.cc +284 -0
  218. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.h +113 -0
  219. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_test.cc +591 -0
  220. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.cc +112 -0
  221. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.h +54 -0
  222. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.cc +145 -0
  223. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.h +89 -0
  224. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/recovery_test.cc +324 -0
  225. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/repair.cc +461 -0
  226. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist.h +384 -0
  227. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist_test.cc +378 -0
  228. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/snapshot.h +67 -0
  229. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.cc +127 -0
  230. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.h +61 -0
  231. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.cc +266 -0
  232. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.h +107 -0
  233. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit_test.cc +46 -0
  234. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.cc +1535 -0
  235. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.h +399 -0
  236. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set_test.cc +179 -0
  237. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch.cc +147 -0
  238. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_internal.h +50 -0
  239. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_test.cc +120 -0
  240. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.cc +398 -0
  241. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.h +20 -0
  242. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv_test.cc +241 -0
  243. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/c.h +290 -0
  244. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/cache.h +110 -0
  245. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/comparator.h +63 -0
  246. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/db.h +164 -0
  247. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/dumpfile.h +25 -0
  248. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/env.h +351 -0
  249. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/filter_policy.h +70 -0
  250. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/iterator.h +100 -0
  251. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/options.h +213 -0
  252. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/slice.h +109 -0
  253. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/status.h +112 -0
  254. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table.h +85 -0
  255. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table_builder.h +92 -0
  256. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/value_sink.h +26 -0
  257. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/write_batch.h +64 -0
  258. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue178_test.cc +92 -0
  259. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue200_test.cc +59 -0
  260. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/atomic_pointer.h +242 -0
  261. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port.h +21 -0
  262. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_example.h +141 -0
  263. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.cc +53 -0
  264. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.h +156 -0
  265. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix_sse.cc +129 -0
  266. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/thread_annotations.h +60 -0
  267. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/win/stdint.h +24 -0
  268. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.cc +268 -0
  269. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.h +44 -0
  270. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.cc +109 -0
  271. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.h +57 -0
  272. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.cc +111 -0
  273. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.h +68 -0
  274. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block_test.cc +128 -0
  275. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.cc +144 -0
  276. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.h +108 -0
  277. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator.cc +67 -0
  278. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator_wrapper.h +66 -0
  279. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.cc +197 -0
  280. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.h +26 -0
  281. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table.cc +285 -0
  282. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_builder.cc +270 -0
  283. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_test.cc +876 -0
  284. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.cc +182 -0
  285. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.h +34 -0
  286. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.cc +68 -0
  287. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.h +68 -0
  288. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena_test.cc +68 -0
  289. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom.cc +95 -0
  290. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom_test.cc +162 -0
  291. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache.cc +405 -0
  292. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache_test.cc +226 -0
  293. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.cc +194 -0
  294. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.h +104 -0
  295. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding_test.cc +196 -0
  296. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/comparator.cc +81 -0
  297. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.cc +350 -0
  298. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.h +45 -0
  299. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c_test.cc +72 -0
  300. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env.cc +100 -0
  301. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix.cc +695 -0
  302. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test.cc +66 -0
  303. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test_helper.h +28 -0
  304. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_test.cc +106 -0
  305. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/filter_policy.cc +11 -0
  306. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.cc +52 -0
  307. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.h +19 -0
  308. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash_test.cc +54 -0
  309. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.cc +139 -0
  310. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.h +42 -0
  311. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.cc +72 -0
  312. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.h +43 -0
  313. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/mutexlock.h +41 -0
  314. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/options.cc +30 -0
  315. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/posix_logger.h +98 -0
  316. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/random.h +64 -0
  317. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/status.cc +75 -0
  318. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.cc +77 -0
  319. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.h +138 -0
  320. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.cc +51 -0
  321. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.h +63 -0
  322. package/node_modules/classic-level/deps/leveldb/leveldb.gyp +282 -0
  323. package/node_modules/classic-level/deps/leveldb/patches/001-value-sink.patch +164 -0
  324. package/node_modules/classic-level/deps/leveldb/port-libuv/atomic_pointer_win.h +48 -0
  325. package/node_modules/classic-level/deps/leveldb/port-libuv/env_win.cc +692 -0
  326. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.cc +36 -0
  327. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h +157 -0
  328. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h.bak +153 -0
  329. package/node_modules/classic-level/deps/leveldb/port-libuv/stdint-msvc2008.h +247 -0
  330. package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar.h +45 -0
  331. package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar_posix.cc +139 -0
  332. package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.cc +79 -0
  333. package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.h +28 -0
  334. package/node_modules/classic-level/deps/snappy/freebsd/config.h +135 -0
  335. package/node_modules/classic-level/deps/snappy/freebsd/snappy-stubs-public.h +100 -0
  336. package/node_modules/classic-level/deps/snappy/linux/config.h +135 -0
  337. package/node_modules/classic-level/deps/snappy/linux/snappy-stubs-public.h +100 -0
  338. package/node_modules/classic-level/deps/snappy/mac/config.h +137 -0
  339. package/node_modules/classic-level/deps/snappy/mac/snappy-stubs-public.h +100 -0
  340. package/node_modules/classic-level/deps/snappy/openbsd/config.h +135 -0
  341. package/node_modules/classic-level/deps/snappy/openbsd/snappy-stubs-public.h +100 -0
  342. package/node_modules/classic-level/deps/snappy/snappy/COPYING +54 -0
  343. package/node_modules/classic-level/deps/snappy/snappy/cmake/SnappyConfig.cmake +1 -0
  344. package/node_modules/classic-level/deps/snappy/snappy/cmake/config.h.in +62 -0
  345. package/node_modules/classic-level/deps/snappy/snappy/snappy-c.cc +90 -0
  346. package/node_modules/classic-level/deps/snappy/snappy/snappy-c.h +138 -0
  347. package/node_modules/classic-level/deps/snappy/snappy/snappy-internal.h +224 -0
  348. package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.cc +104 -0
  349. package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.h +182 -0
  350. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.cc +42 -0
  351. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.h +561 -0
  352. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-public.h.in +94 -0
  353. package/node_modules/classic-level/deps/snappy/snappy/snappy-test.cc +612 -0
  354. package/node_modules/classic-level/deps/snappy/snappy/snappy-test.h +573 -0
  355. package/node_modules/classic-level/deps/snappy/snappy/snappy.cc +1515 -0
  356. package/node_modules/classic-level/deps/snappy/snappy/snappy.h +203 -0
  357. package/node_modules/classic-level/deps/snappy/snappy/snappy_unittest.cc +1410 -0
  358. package/node_modules/classic-level/deps/snappy/snappy.gyp +119 -0
  359. package/node_modules/classic-level/deps/snappy/solaris/config.h +135 -0
  360. package/node_modules/classic-level/deps/snappy/solaris/snappy-stubs-public.h +100 -0
  361. package/node_modules/classic-level/deps/snappy/win32/config.h +29 -0
  362. package/node_modules/classic-level/deps/snappy/win32/snappy-stubs-public.h +100 -0
  363. package/node_modules/classic-level/index.d.ts +343 -0
  364. package/node_modules/classic-level/index.js +311 -0
  365. package/node_modules/classic-level/iterator.js +122 -0
  366. package/node_modules/classic-level/package.json +70 -0
  367. package/node_modules/classic-level/prebuilds/android-arm/classic-level.armv7.node +0 -0
  368. package/node_modules/classic-level/prebuilds/android-arm64/classic-level.armv8.node +0 -0
  369. package/node_modules/classic-level/prebuilds/darwin-x64+arm64/classic-level.node +0 -0
  370. package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv6.node +0 -0
  371. package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv7.node +0 -0
  372. package/node_modules/classic-level/prebuilds/linux-arm64/classic-level.armv8.node +0 -0
  373. package/node_modules/classic-level/prebuilds/linux-x64/classic-level.musl.node +0 -0
  374. package/node_modules/classic-level/prebuilds/linux-x64/classic-level.node +0 -0
  375. package/node_modules/classic-level/prebuilds/win32-ia32/classic-level.node +0 -0
  376. package/node_modules/classic-level/prebuilds/win32-x64/classic-level.node +0 -0
  377. package/node_modules/ieee754/LICENSE +11 -0
  378. package/node_modules/ieee754/README.md +51 -0
  379. package/node_modules/ieee754/index.d.ts +10 -0
  380. package/node_modules/ieee754/index.js +85 -0
  381. package/node_modules/ieee754/package.json +52 -0
  382. package/node_modules/is-buffer/LICENSE +21 -0
  383. package/node_modules/is-buffer/README.md +54 -0
  384. package/node_modules/is-buffer/index.d.ts +2 -0
  385. package/node_modules/is-buffer/index.js +11 -0
  386. package/node_modules/is-buffer/package.json +65 -0
  387. package/node_modules/level/CHANGELOG.md +532 -0
  388. package/node_modules/level/LICENSE +21 -0
  389. package/node_modules/level/README.md +107 -0
  390. package/node_modules/level/UPGRADING.md +413 -0
  391. package/node_modules/level/browser.js +1 -0
  392. package/node_modules/level/index.d.ts +75 -0
  393. package/node_modules/level/index.js +1 -0
  394. package/node_modules/level/package.json +62 -0
  395. package/node_modules/level-supports/CHANGELOG.md +140 -0
  396. package/node_modules/level-supports/LICENSE +21 -0
  397. package/node_modules/level-supports/README.md +276 -0
  398. package/node_modules/level-supports/index.d.ts +137 -0
  399. package/node_modules/level-supports/index.js +26 -0
  400. package/node_modules/level-supports/package.json +46 -0
  401. package/node_modules/level-supports/test/cloneable.js +26 -0
  402. package/node_modules/level-supports/test/index.js +24 -0
  403. package/node_modules/level-supports/test/self.js +86 -0
  404. package/node_modules/level-supports/test/shape.js +23 -0
  405. package/node_modules/level-transcoder/CHANGELOG.md +15 -0
  406. package/node_modules/level-transcoder/LICENSE +21 -0
  407. package/node_modules/level-transcoder/README.md +214 -0
  408. package/node_modules/level-transcoder/UPGRADING.md +13 -0
  409. package/node_modules/level-transcoder/index.d.ts +27 -0
  410. package/node_modules/level-transcoder/index.js +158 -0
  411. package/node_modules/level-transcoder/lib/encoding.d.ts +158 -0
  412. package/node_modules/level-transcoder/lib/encoding.js +105 -0
  413. package/node_modules/level-transcoder/lib/encodings.d.ts +9 -0
  414. package/node_modules/level-transcoder/lib/encodings.js +135 -0
  415. package/node_modules/level-transcoder/lib/formats.d.ts +13 -0
  416. package/node_modules/level-transcoder/lib/formats.js +111 -0
  417. package/node_modules/level-transcoder/lib/text-endec.d.ts +6 -0
  418. package/node_modules/level-transcoder/lib/text-endec.js +19 -0
  419. package/node_modules/level-transcoder/package.json +46 -0
  420. package/node_modules/maybe-combine-errors/LICENSE.md +21 -0
  421. package/node_modules/maybe-combine-errors/README.md +94 -0
  422. package/node_modules/maybe-combine-errors/index.js +60 -0
  423. package/node_modules/maybe-combine-errors/package.json +33 -0
  424. package/node_modules/module-error/CHANGELOG.md +23 -0
  425. package/node_modules/module-error/LICENSE +21 -0
  426. package/node_modules/module-error/README.md +89 -0
  427. package/node_modules/module-error/index.d.ts +18 -0
  428. package/node_modules/module-error/index.js +22 -0
  429. package/node_modules/module-error/package.json +36 -0
  430. package/node_modules/napi-macros/LICENSE +21 -0
  431. package/node_modules/napi-macros/README.md +277 -0
  432. package/node_modules/napi-macros/index.js +1 -0
  433. package/node_modules/napi-macros/napi-macros.h +255 -0
  434. package/node_modules/napi-macros/package.json +22 -0
  435. package/node_modules/node-gyp-build/LICENSE +21 -0
  436. package/node_modules/node-gyp-build/README.md +58 -0
  437. package/node_modules/node-gyp-build/SECURITY.md +5 -0
  438. package/node_modules/node-gyp-build/bin.js +84 -0
  439. package/node_modules/node-gyp-build/build-test.js +19 -0
  440. package/node_modules/node-gyp-build/index.js +6 -0
  441. package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  442. package/node_modules/node-gyp-build/optional.js +7 -0
  443. package/node_modules/node-gyp-build/package.json +43 -0
  444. package/package.json +6 -3
  445. package/{providerPresetApply-7XEHTODR.js → providerPresetApply-XTEXOH7X.js} +3 -3
  446. package/{providerRegistry-GNV4FFSA.js → providerRegistry-ADYDSLKR.js} +3 -3
  447. package/{readlineWorkspace-46KDFUHN.js → readlineWorkspace-LO6ZLFTO.js} +1381 -1317
  448. package/{runAgentClientLoop-CQWLWU4W.js → runAgentClientLoop-KAYGKVTK.js} +16 -15
  449. package/{runtimeDoctorCommands-3USD722U.js → runtimeDoctorCommands-ID23PNNZ.js} +28 -0
  450. package/{spaceCommands-TSBC5UWP.js → spaceCommands-FA6RCZ2Y.js} +10 -9
  451. package/{streamAgentChatTurn-XD5JEJXA.js → streamAgentChatTurn-DFNDU2UY.js} +17 -16
  452. package/{tools-5NAJJTFN.js → tools-6HKH75NT.js} +13 -12
  453. package/{tuiSummaryLlmCaller-7KLLDP22.js → tuiSummaryLlmCaller-CFFVXQWX.js} +2 -2
  454. package/{updateCommands-XYMGOKF4.js → updateCommands-4EHDLF5J.js} +1 -1
  455. package/{updateDialogTitleAction-IKZPJCRA.js → updateDialogTitleAction-FFSYTLBC.js} +3 -3
@@ -0,0 +1,692 @@
1
+ /*
2
+ * originally from http://code.google.com/r/kkowalczyk-leveldb/
3
+ * code by Krzysztof Kowalczyk kkowalczyk kowalczyk@gmail.com
4
+ * See also http://blog.kowalczyk.info/software/leveldb-for-windows/index.html
5
+ */
6
+
7
+
8
+ #include <stdio.h>
9
+ #include <string.h>
10
+ #include <deque>
11
+ #include <process.h>
12
+
13
+ #include "leveldb/env.h"
14
+ #include "leveldb/slice.h"
15
+ #include "port/port.h"
16
+ #include "util/logging.h"
17
+ #include "win_logger.h"
18
+
19
+ #if defined(_MSC_VER)
20
+ # ifdef DeleteFile
21
+ # undef DeleteFile
22
+ # endif
23
+ #endif
24
+
25
+ // To properly support file names on Windows we should be using Unicode
26
+ // (WCHAR) strings. To accomodate existing interface which uses std::string,
27
+ // we use the following convention:
28
+ // * all filenames that we return (e.g. from GetTestDirectory()) are
29
+ // utf8-encoded
30
+ // * we'll try to interpret all input file names as if they're
31
+ // utf8-encoded. If they're not valid utf8 strings, we'll try
32
+ // to interpret them according to a current code page
33
+ // This just works for names that don't use characters outside ascii
34
+ // and for those that do, the caller needs to be aware of this convention
35
+ // whenever it bubbles up to the user-level API.
36
+
37
+ namespace leveldb {
38
+
39
+ static Status IOError(const std::string& context, DWORD err = (DWORD)-1) {
40
+ char *err_msg = NULL;
41
+ Status s;
42
+ if ((DWORD)-1 == err)
43
+ err = GetLastError();
44
+ FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
45
+ NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
46
+ (LPSTR)&err_msg, 0, NULL);
47
+ if (!err_msg)
48
+ return Status::IOError(context);
49
+ s = Status::IOError(context, err_msg);
50
+ LocalFree(err_msg);
51
+ return s;
52
+ }
53
+
54
+ class WinSequentialFile: public SequentialFile {
55
+ private:
56
+ std::string fname_;
57
+ HANDLE file_;
58
+
59
+ public:
60
+ WinSequentialFile(const std::string& fname, HANDLE f)
61
+ : fname_(fname), file_(f) { }
62
+ virtual ~WinSequentialFile() { CloseHandle(file_); }
63
+
64
+ virtual Status Read(size_t n, Slice* result, char* scratch) {
65
+ DWORD n2 = n;
66
+ DWORD r = 0;
67
+ BOOL ok = ReadFile(file_, (void*)scratch, n2, &r, NULL);
68
+ *result = Slice(scratch, r);
69
+ if (!ok) {
70
+ // We leave status as ok if we hit the end of the file
71
+ if (GetLastError() != ERROR_HANDLE_EOF) {
72
+ return IOError(fname_);
73
+ }
74
+ }
75
+ return Status::OK();
76
+ }
77
+
78
+ virtual Status Skip(uint64_t n) {
79
+ LARGE_INTEGER pos;
80
+ pos.QuadPart = n;
81
+ DWORD res = SetFilePointerEx(file_, pos, NULL, FILE_CURRENT);
82
+ if (res == 0)
83
+ return IOError(fname_);
84
+ return Status::OK();
85
+ }
86
+ };
87
+
88
+ class WinRandomAccessFile: public RandomAccessFile {
89
+ private:
90
+ std::string fname_;
91
+ HANDLE file_;
92
+
93
+ public:
94
+ WinRandomAccessFile(const std::string& fname, HANDLE file)
95
+ : fname_(fname), file_(file) { }
96
+ virtual ~WinRandomAccessFile() { CloseHandle(file_); }
97
+
98
+ virtual Status Read(uint64_t offset, size_t n, Slice* result,
99
+ char* scratch) const {
100
+ OVERLAPPED overlapped = { 0 };
101
+ overlapped.Offset = static_cast<DWORD>(offset);
102
+ overlapped.OffsetHigh = static_cast<DWORD>(offset >> 32);
103
+ DWORD bytes_read = 0;
104
+ BOOL success = ReadFile(file_, scratch, n, &bytes_read, &overlapped);
105
+ *result = Slice(scratch, bytes_read);
106
+ return success != FALSE ? Status::OK() : Status::IOError(fname_);
107
+ }
108
+ };
109
+
110
+ class WinWritableFile : public WritableFile {
111
+ private:
112
+ std::string name_;
113
+ HANDLE file_;
114
+
115
+ public:
116
+ WinWritableFile(std::string name, HANDLE h) : name_(name), file_(h) {
117
+ }
118
+
119
+ virtual ~WinWritableFile() {
120
+ Close();
121
+ }
122
+
123
+ virtual Status Append(const Slice& data) {
124
+ DWORD n = data.size();
125
+ DWORD pos = 0;
126
+ while (pos < n) {
127
+ DWORD written = 0;
128
+ BOOL ok = WriteFile(file_, data.data() + pos, n - pos, &written, NULL);
129
+ if (!ok)
130
+ return IOError(name_+ "Append: cannot write");
131
+ pos += written;
132
+ }
133
+ return Status::OK();
134
+ }
135
+
136
+ virtual Status Close() {
137
+ if (INVALID_HANDLE_VALUE == file_)
138
+ return Status::OK();
139
+ Status s = Sync();
140
+ CloseHandle(file_);
141
+ file_ = INVALID_HANDLE_VALUE;
142
+ return s;
143
+ }
144
+
145
+ virtual Status Flush() {
146
+ return Status::OK();
147
+ }
148
+
149
+ virtual Status Sync() {
150
+ BOOL ok = FlushFileBuffers(file_);
151
+ if (!ok)
152
+ return IOError(name_);
153
+ return Status::OK();
154
+ }
155
+ };
156
+
157
+ namespace {
158
+
159
+ #define DIR_SEP_CHAR L'\\'
160
+ #define DIR_SEP_STR L"\\"
161
+
162
+ WCHAR *ToWcharFromCodePage(const char *src, UINT cp) {
163
+ int required_buf_size = MultiByteToWideChar(cp, 0, src, -1, NULL, 0);
164
+ if (0 == required_buf_size) // indicates an error
165
+ return NULL;
166
+ WCHAR *res = reinterpret_cast<WCHAR*>(malloc(sizeof(WCHAR) * required_buf_size));
167
+ if (!res)
168
+ return NULL;
169
+ MultiByteToWideChar(cp, 0, src, -1, res, required_buf_size);
170
+ return res;
171
+ }
172
+
173
+ // try to convert to WCHAR string trying most common code pages
174
+ // to be as permissive as we can be
175
+ WCHAR *ToWcharPermissive(const char *s) {
176
+ WCHAR *ws = ToWcharFromCodePage(s, CP_UTF8);
177
+ if (ws != NULL)
178
+ return ws;
179
+ ws = ToWcharFromCodePage(s, CP_ACP);
180
+ if (ws != NULL)
181
+ return ws;
182
+ ws = ToWcharFromCodePage(s, CP_OEMCP);
183
+ return ws;
184
+ }
185
+
186
+ char *ToUtf8(const WCHAR *s) {
187
+ int required_buf_size = WideCharToMultiByte(CP_UTF8, 0, s, -1, NULL, 0, NULL, NULL);
188
+ char *res = (char*)malloc(sizeof(char) * required_buf_size);
189
+ if (!res)
190
+ return NULL;
191
+ WideCharToMultiByte(CP_UTF8, 0, s, -1, res, required_buf_size, NULL, NULL);
192
+ return res;
193
+ }
194
+
195
+ static size_t WstrLen(const WCHAR *s) {
196
+ if (NULL == s)
197
+ return 0;
198
+ return wcslen(s);
199
+ }
200
+
201
+ static WCHAR *WstrJoin(const WCHAR *s1, const WCHAR *s2, const WCHAR *s3=NULL) {
202
+ size_t s1_len = WstrLen(s1);
203
+ size_t s2_len = WstrLen(s2);
204
+ size_t s3_len = WstrLen(s3);
205
+ size_t len =s1_len + s2_len + s3_len + 1;
206
+ WCHAR *res = (WCHAR*)malloc(sizeof(WCHAR) * len);
207
+ if (!res)
208
+ return NULL;
209
+ WCHAR *tmp = res;
210
+ if (s1 != NULL) {
211
+ memcpy(tmp, s1, s1_len * sizeof(WCHAR));
212
+ tmp += s1_len;
213
+ }
214
+ if (s2 != NULL) {
215
+ memcpy(tmp, s2, s2_len * sizeof(WCHAR));
216
+ tmp += s2_len;
217
+ }
218
+ if (s3 != NULL) {
219
+ memcpy(tmp, s3, s3_len * sizeof(WCHAR));
220
+ tmp += s3_len;
221
+ }
222
+ *tmp = 0;
223
+ return res;
224
+ }
225
+
226
+ static bool WstrEndsWith(const WCHAR *s1, WCHAR c) {
227
+ size_t len = WstrLen(s1);
228
+ return ((len > 0) && (s1[len-1] == c));
229
+ }
230
+
231
+ static WCHAR *WstrPathJoin(const WCHAR *s1, const WCHAR *s2) {
232
+ if (WstrEndsWith(s1, DIR_SEP_CHAR))
233
+ return WstrJoin(s1, s2);
234
+ return WstrJoin(s1, DIR_SEP_STR, s2);
235
+ }
236
+
237
+ // Return true if s is "." or "..", which are 2 directories
238
+ // we should skip when enumerating a directory
239
+ static bool SkipDir(const WCHAR *s) {
240
+ if (*s == L'.') {
241
+ if (s[1] == 0)
242
+ return true;
243
+ return ((s[1] == '.') && (s[2] == 0));
244
+ }
245
+ return false;
246
+ }
247
+
248
+ class WinFileLock : public FileLock {
249
+ public:
250
+ WinFileLock(const std::string &fname, HANDLE file)
251
+ : fname_(fname), file_(file) {
252
+ }
253
+
254
+ virtual ~WinFileLock() {
255
+ Close();
256
+ }
257
+
258
+ bool Close() {
259
+ bool ok = true;
260
+ if (file_ != INVALID_HANDLE_VALUE)
261
+ ok = (CloseHandle(file_) != FALSE);
262
+ file_ = INVALID_HANDLE_VALUE;
263
+ return ok;
264
+ }
265
+
266
+ std::string fname_;
267
+ HANDLE file_;
268
+ };
269
+
270
+ class WinEnv : public Env {
271
+ public:
272
+ WinEnv();
273
+ virtual ~WinEnv() {
274
+ fprintf(stderr, "Destroying Env::Default()\n");
275
+ //exit(1);
276
+ }
277
+
278
+ virtual Status NewSequentialFile(const std::string& fname,
279
+ SequentialFile** result) {
280
+ *result = NULL;
281
+ WCHAR *file_name = ToWcharPermissive(fname.c_str());
282
+ if (file_name == NULL) {
283
+ return Status::InvalidArgument("Invalid file name");
284
+ }
285
+ HANDLE h = CreateFileW(file_name, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
286
+ free((void*)file_name);
287
+ if (h == INVALID_HANDLE_VALUE) {
288
+ return IOError(fname);
289
+ }
290
+ *result = new WinSequentialFile(fname, h);
291
+ return Status::OK();
292
+ }
293
+
294
+ virtual Status NewRandomAccessFile(const std::string& fname,
295
+ RandomAccessFile** result) {
296
+ *result = NULL;
297
+ WCHAR *file_name = ToWcharPermissive(fname.c_str());
298
+ if (file_name == NULL) {
299
+ return Status::InvalidArgument("Invalid file name");
300
+ }
301
+ HANDLE h = CreateFileW(file_name, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
302
+ free((void*)file_name);
303
+ if (h == INVALID_HANDLE_VALUE) {
304
+ return IOError(fname);
305
+ }
306
+ *result = new WinRandomAccessFile(fname, h);
307
+ return Status::OK();
308
+ }
309
+
310
+ virtual Status NewWritableFile(const std::string& fname,
311
+ WritableFile** result) {
312
+ *result = NULL;
313
+ WCHAR *file_name = ToWcharPermissive(fname.c_str());
314
+ if (file_name == NULL)
315
+ return Status::InvalidArgument("Invalid file name");
316
+ HANDLE h = CreateFileW(file_name, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
317
+ free((void*)file_name);
318
+ if (h == INVALID_HANDLE_VALUE) {
319
+ return IOError(fname);
320
+ }
321
+ *result = new WinWritableFile(fname, h);
322
+ return Status::OK();
323
+ }
324
+
325
+ virtual bool FileExists(const std::string& fname) {
326
+ WCHAR *file_name = ToWcharPermissive(fname.c_str());
327
+ if (file_name == NULL)
328
+ return false;
329
+
330
+ WIN32_FILE_ATTRIBUTE_DATA file_info;
331
+ BOOL res = GetFileAttributesExW(file_name, GetFileExInfoStandard, &file_info);
332
+ free((void*)file_name);
333
+ if (0 == res)
334
+ return false;
335
+
336
+ if ((file_info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0)
337
+ return false;
338
+ return true;
339
+ }
340
+
341
+ virtual Status GetChildren(const std::string& dir,
342
+ std::vector<std::string>* result) {
343
+ result->clear();
344
+ WCHAR *dir_name = ToWcharPermissive(dir.c_str());
345
+ if (dir_name == NULL)
346
+ return Status::InvalidArgument("Invalid file name");
347
+ WCHAR *pattern = WstrPathJoin(dir_name, L"*");
348
+ free(dir_name);
349
+ if (NULL == pattern)
350
+ return Status::InvalidArgument("Invalid file name");
351
+ WIN32_FIND_DATAW file_data;
352
+ HANDLE h = FindFirstFileW(pattern, &file_data);
353
+ free(pattern);
354
+ if (INVALID_HANDLE_VALUE == h) {
355
+ if (ERROR_FILE_NOT_FOUND == GetLastError())
356
+ return Status::OK();
357
+ return IOError(dir);
358
+ }
359
+ for (;;) {
360
+ WCHAR *s = file_data.cFileName;
361
+ if (!SkipDir(s)) {
362
+ char *s2 = ToUtf8(s);
363
+ result->push_back(s2);
364
+ free(s2);
365
+ }
366
+ if (FALSE == FindNextFileW(h, &file_data))
367
+ break;
368
+ }
369
+ FindClose(h);
370
+ return Status::OK();
371
+ }
372
+
373
+ virtual Status DeleteFile(const std::string& fname) {
374
+ WCHAR *file_path = ToWcharPermissive(fname.c_str());
375
+ if (file_path == NULL)
376
+ return Status::InvalidArgument("Invalid file name");
377
+
378
+ BOOL ok = DeleteFileW(file_path);
379
+ free(file_path);
380
+ if (!ok) {
381
+ DWORD err = GetLastError();
382
+ if ((ERROR_PATH_NOT_FOUND == err) || (ERROR_FILE_NOT_FOUND == err))
383
+ return Status::OK();
384
+ return IOError("DeleteFile " + fname);
385
+ }
386
+ return Status::OK();
387
+ }
388
+
389
+ bool CreateDirIfNotExists(const WCHAR *dir) {
390
+ BOOL ok = CreateDirectoryW(dir, NULL);
391
+ if (ok)
392
+ return true;
393
+ return (ERROR_ALREADY_EXISTS == GetLastError());
394
+ }
395
+
396
+ bool DirExists(const WCHAR *dir) {
397
+ WIN32_FILE_ATTRIBUTE_DATA file_info;
398
+ BOOL res = GetFileAttributesExW(dir, GetFileExInfoStandard, &file_info);
399
+ if (0 == res)
400
+ return false;
401
+
402
+ return (file_info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0;
403
+ }
404
+
405
+ WCHAR *WstrDupN(const WCHAR *s, size_t len) {
406
+ void *res = malloc((len + 1) * sizeof(WCHAR));
407
+ if (!res)
408
+ return NULL;
409
+ memcpy(res, s, len * sizeof(WCHAR));
410
+ WCHAR *res2 = reinterpret_cast<WCHAR*>(res);
411
+ res2[len] = 0;
412
+ return res2;
413
+ }
414
+
415
+ bool IsPathSep(WCHAR c) {
416
+ return (c == '\\') || (c == '/');
417
+ }
418
+
419
+ WCHAR *GetPathParent(const WCHAR *path) {
420
+ const WCHAR *last_sep = NULL;
421
+ const WCHAR *tmp = path;
422
+ // find the last path separator
423
+ // (ignoring one at the end of the string)
424
+ while (*tmp) {
425
+ if (IsPathSep(*tmp)) {
426
+ if (0 != tmp[1])
427
+ last_sep = tmp;
428
+ }
429
+ ++tmp;
430
+ }
431
+ if (NULL == last_sep)
432
+ return NULL;
433
+ size_t len = last_sep - path;
434
+ return WstrDupN(path, len);
435
+ }
436
+
437
+ bool CreateDirRecursive(WCHAR *dir) {
438
+ WCHAR *parent = GetPathParent(dir);
439
+ bool ok = true;
440
+ if (parent && !DirExists(parent)) {
441
+ ok = CreateDirRecursive(parent);
442
+ }
443
+ free(parent);
444
+ if (!ok)
445
+ return false;
446
+ return CreateDirIfNotExists(dir);
447
+ }
448
+
449
+ virtual Status CreateDir(const std::string& name) {
450
+ WCHAR *dir = ToWcharPermissive(name.c_str());
451
+ if (dir == NULL)
452
+ return Status::InvalidArgument("Invalid file name");
453
+ bool ok = CreateDirRecursive(dir);
454
+ free(dir);
455
+ if (!ok)
456
+ return IOError(name);
457
+ return Status::OK();
458
+ }
459
+
460
+ #if 1
461
+ virtual Status DeleteDir(const std::string& name) {
462
+ WCHAR *dir = ToWcharPermissive(name.c_str());
463
+ if (dir == NULL)
464
+ return Status::InvalidArgument("Invalid file name");
465
+ BOOL ok = RemoveDirectoryW(dir);
466
+ free(dir);
467
+ if (!ok)
468
+ return IOError(name);
469
+ return Status::OK();
470
+ }
471
+ #else
472
+ virtual Status DeleteDir(const std::string& dirname) {
473
+ WCHAR *dir = ToWcharPermissive(dirname.c_str());
474
+ if (dir == NULL)
475
+ return Status::InvalidArgument("Invalid file name");
476
+
477
+ SHFILEOPSTRUCTW fileop = { 0 };
478
+ fileop.wFunc = FO_DELETE;
479
+ fileop.pFrom = (const WCHAR*)dir;
480
+ fileop.fFlags = FOF_NO_UI;
481
+ int res = SHFileOperationW(&fileop);
482
+ free((void*)dir);
483
+ if (res == 0 && fileop.fAnyOperationsAborted == FALSE)
484
+ return Status::OK();
485
+ return IOError("DeleteDir " + dirname);
486
+ }
487
+ #endif
488
+
489
+ virtual Status GetFileSize(const std::string& fname, uint64_t* size) {
490
+
491
+ WCHAR *file_name = ToWcharPermissive(fname.c_str());
492
+ if (file_name == NULL)
493
+ return Status::InvalidArgument("Invalid file name");
494
+ HANDLE h = CreateFileW(file_name, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
495
+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
496
+ free(file_name);
497
+ if (h == INVALID_HANDLE_VALUE)
498
+ return IOError("GetFileSize " + fname);
499
+
500
+ // Not using GetFileAttributesEx() as it doesn't interact well with symlinks, etc.
501
+ LARGE_INTEGER lsize;
502
+ BOOL ok = GetFileSizeEx(h, &lsize);
503
+ CloseHandle(h);
504
+ if (!ok)
505
+ return IOError("GetFileSize " + fname);
506
+
507
+ *size = static_cast<uint64_t>(lsize.QuadPart);
508
+ return Status::OK();
509
+ }
510
+
511
+ virtual Status RenameFile(const std::string& src, const std::string& target) {
512
+ WCHAR *src2 = ToWcharPermissive(src.c_str());
513
+ WCHAR *target2 = ToWcharPermissive(target.c_str());
514
+ if ((src2 == NULL) || (target2 == NULL)) {
515
+ free(src2);
516
+ free(target2);
517
+ return Status::InvalidArgument("Invalid file name");
518
+ }
519
+ BOOL ok = MoveFileExW(src2, target2, MOVEFILE_REPLACE_EXISTING);
520
+ free(src2);
521
+ free(target2);
522
+ if (!ok)
523
+ return IOError("RenameFile " + src + " " + target);
524
+ return Status::OK();
525
+ }
526
+
527
+ virtual Status LockFile(const std::string& fname, FileLock** lock) {
528
+ *lock = NULL;
529
+ WCHAR *file_name = ToWcharPermissive(fname.c_str());
530
+ if (file_name == NULL) {
531
+ return Status::InvalidArgument("Invalid file name");
532
+ }
533
+ HANDLE h = CreateFileW(file_name, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
534
+ free((void*)file_name);
535
+ if (h == INVALID_HANDLE_VALUE) {
536
+ return IOError("LockFile " + fname);
537
+ }
538
+ *lock = new WinFileLock(fname, h);
539
+ return Status::OK();
540
+ }
541
+
542
+ virtual Status UnlockFile(FileLock* lock) {
543
+ Status s;
544
+ WinFileLock* my_lock = reinterpret_cast<WinFileLock*>(lock);
545
+ if (!my_lock->Close()) {
546
+ s = Status::IOError(my_lock->fname_, "Could not close lock file.");
547
+ }
548
+ delete my_lock;
549
+ return Status::OK();
550
+ }
551
+
552
+ virtual void Schedule(void (*function)(void*), void* arg);
553
+
554
+ virtual void StartThread(void (*function)(void* arg), void* arg);
555
+
556
+ virtual Status GetTestDirectory(std::string* result) {
557
+ WCHAR buf[MAX_PATH];
558
+ DWORD res = GetTempPathW(MAX_PATH, buf);
559
+ if (0 == res) {
560
+ return IOError("Can't get test directory");
561
+ }
562
+ char *s = ToUtf8(buf);
563
+ if (!s) {
564
+ return IOError("Can't get test directory");
565
+ }
566
+ *result = std::string(s);
567
+ free(s);
568
+ return Status::OK();
569
+ }
570
+
571
+ virtual Status NewLogger(const std::string& fname, Logger** result) {
572
+ *result = NULL;
573
+ FILE* f = fopen(fname.c_str(), "wt");
574
+ if (f == NULL)
575
+ return Status::IOError(fname, strerror(errno));
576
+ *result = new WinLogger(f);
577
+ return Status::OK();
578
+ }
579
+
580
+ virtual uint64_t NowMicros() {
581
+ LARGE_INTEGER count;
582
+ QueryPerformanceCounter(&count);
583
+ return count.QuadPart * 1000000i64 / freq_.QuadPart;
584
+ }
585
+
586
+ virtual void SleepForMicroseconds(int micros) {
587
+ // round up to the next millisecond
588
+ Sleep((micros + 999) / 1000);
589
+ }
590
+
591
+ private:
592
+ LARGE_INTEGER freq_;
593
+
594
+ // BGThread() is the body of the background thread
595
+ void BGThread();
596
+
597
+ static unsigned __stdcall BGThreadWrapper(void* arg) {
598
+ (reinterpret_cast<WinEnv*>(arg))->BGThread();
599
+ _endthreadex(0);
600
+ return 0;
601
+ }
602
+
603
+ leveldb::port::Mutex mu_;
604
+ leveldb::port::CondVar bgsignal_;
605
+ HANDLE bgthread_;
606
+
607
+ // Entry per Schedule() call
608
+ struct BGItem { void* arg; void (*function)(void*); };
609
+ typedef std::deque<BGItem> BGQueue;
610
+ BGQueue queue_;
611
+ };
612
+
613
+
614
+ WinEnv::WinEnv() : bgthread_(NULL), bgsignal_(&mu_) {
615
+ QueryPerformanceFrequency(&freq_);
616
+ }
617
+
618
+ void WinEnv::Schedule(void (*function)(void*), void* arg) {
619
+ mu_.Lock();
620
+
621
+ // Start background thread if necessary
622
+ if (NULL == bgthread_) {
623
+ bgthread_ = (HANDLE)_beginthreadex(NULL, 0, &WinEnv::BGThreadWrapper, this, 0, NULL);
624
+ }
625
+
626
+ // Add to priority queue
627
+ queue_.push_back(BGItem());
628
+ queue_.back().function = function;
629
+ queue_.back().arg = arg;
630
+
631
+ mu_.Unlock();
632
+
633
+ bgsignal_.Signal();
634
+ }
635
+
636
+ void WinEnv::BGThread() {
637
+ while (true) {
638
+ // Wait until there is an item that is ready to run
639
+ mu_.Lock();
640
+
641
+ while (queue_.empty()) {
642
+ bgsignal_.Wait();
643
+ }
644
+
645
+ void (*function)(void*) = queue_.front().function;
646
+ void* arg = queue_.front().arg;
647
+ queue_.pop_front();
648
+
649
+ mu_.Unlock();
650
+ (*function)(arg);
651
+ }
652
+ // TODO: CloseHandle(bgthread_) ??
653
+ }
654
+
655
+ namespace {
656
+ struct StartThreadState {
657
+ void (*user_function)(void*);
658
+ void* arg;
659
+ HANDLE threadHandle;
660
+ };
661
+ }
662
+
663
+ static unsigned __stdcall StartThreadWrapper(void* arg) {
664
+ StartThreadState* state = reinterpret_cast<StartThreadState*>(arg);
665
+ state->user_function(state->arg);
666
+ _endthreadex(0);
667
+ CloseHandle(state->threadHandle);
668
+ delete state;
669
+ return 0;
670
+ }
671
+
672
+ void WinEnv::StartThread(void (*function)(void* arg), void* arg) {
673
+ StartThreadState* state = new StartThreadState;
674
+ state->user_function = function;
675
+ state->arg = arg;
676
+ state->threadHandle = (HANDLE)_beginthreadex(NULL, 0, &StartThreadWrapper, state, 0, NULL);
677
+ }
678
+ }
679
+
680
+ static Env* default_env;
681
+ static void InitDefaultEnv() { default_env = new WinEnv(); }
682
+ static leveldb::port::Mutex default_env_mutex;
683
+
684
+ Env* Env::Default() {
685
+ default_env_mutex.Lock();
686
+ if (NULL == default_env)
687
+ InitDefaultEnv();
688
+ default_env_mutex.Unlock();
689
+ return default_env;
690
+ }
691
+
692
+ }