nolo-cli 0.144.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 (433) hide show
  1. package/README.md +2 -0
  2. package/{_executeModel-VA7AOJ7I.js → _executeModel-M3FASQ2Z.js} +13 -13
  3. package/{agentDeleteCommand-Z3UO4OJU.js → agentDeleteCommand-K7GCEEVS.js} +3 -3
  4. package/{agentEmailCommands-73TKP5CA.js → agentEmailCommands-MNXRO36L.js} +14 -14
  5. package/{agentListCommands-Y7QPH22N.js → agentListCommands-KMZR6VVM.js} +3 -3
  6. package/{agentMachineCommands-NTV2CIGF.js → agentMachineCommands-75TIBYDY.js} +4 -4
  7. package/{agentRecordCommands-XOXZQYL3.js → agentRecordCommands-RDO5L3N4.js} +14 -14
  8. package/{agentRunCommand-6C7BR2AM.js → agentRunCommand-FVJJPL27.js} +14 -14
  9. package/{agentRuntimeLocal-3FUYPU7E.js → agentRuntimeLocal-DAK7RCER.js} +3 -3
  10. package/{agentSlice-FK2FY7UE.js → agentSlice-6MRJR2BJ.js} +1 -1
  11. package/{appDeleteCommands-L6IDOOI7.js → appDeleteCommands-JMMXK3XT.js} +3 -3
  12. package/{appDeployCommands-XTT6FWGB.js → appDeployCommands-JFU6GALI.js} +3 -3
  13. package/{appDeployStatusCommands-3USXE3N3.js → appDeployStatusCommands-AXTZ4GAN.js} +3 -3
  14. package/{appGetCommands-PHADWOLO.js → appGetCommands-CR2W3DCM.js} +3 -3
  15. package/{appListCommands-YM22HHY5.js → appListCommands-2TV6P3EU.js} +3 -3
  16. package/{authCommand-XLCNATZR.js → authCommand-UBJ4EWYZ.js} +1 -1
  17. package/{authCommands-GBIFZWD3.js → authCommands-H6WKKCRW.js} +1 -1
  18. package/{builtinSkillRegistry-HRI7DXC2.js → builtinSkillRegistry-ZMF6YGNO.js} +2 -2
  19. package/{chatQueueReduxAdapter-ZHUJO77G.js → chatQueueReduxAdapter-CDOHVTSE.js} +2 -2
  20. package/{chromeCommands-K27J4OVZ.js → chromeCommands-2N6MEWRU.js} +3 -3
  21. package/{chunk-LQNRUDVN.js → chunk-2TKVOEQF.js} +5 -5
  22. package/{chunk-3AOSNKIZ.js → chunk-5XYFIDFU.js} +5 -5
  23. package/{chunk-EM7HELS5.js → chunk-62XHRZG4.js} +2 -2
  24. package/{chunk-EMBK4B7D.js → chunk-6TPOEJMQ.js} +1 -1
  25. package/{chunk-BRCOB2YF.js → chunk-7YAK46ML.js} +2 -2
  26. package/{chunk-YFIUVDQY.js → chunk-A6FNUMCF.js} +46 -5
  27. package/{chunk-EP34KKT6.js → chunk-ANX7Z7Z2.js} +8 -8
  28. package/{chunk-MOFAGINP.js → chunk-B2XUQXQX.js} +1 -1
  29. package/chunk-GNMAFAIS.js +29 -0
  30. package/{chunk-6YSYZTKW.js → chunk-HKBFZONG.js} +1 -1
  31. package/{chunk-VPFEPRME.js → chunk-IVZJWTDI.js} +3 -0
  32. package/{chunk-AQTJUKN6.js → chunk-JLQKV2ZJ.js} +1 -1
  33. package/{chunk-3T6MH737.js → chunk-M76SRQ3H.js} +19 -9
  34. package/{chunk-L55HWODG.js → chunk-OKSJZ4UU.js} +10 -10
  35. package/{chunk-OJL4DA6B.js → chunk-QFZM5BFI.js} +1 -1
  36. package/{chunk-QMJG7UFL.js → chunk-RHDOQWXZ.js} +164 -10
  37. package/{chunk-6Z5V5T6Q.js → chunk-UMB7CHAY.js} +3 -3
  38. package/{chunk-XPV3S4HP.js → chunk-VJ4FUWPC.js} +3 -3
  39. package/{chunk-2KHRSBYS.js → chunk-VZVTPDPL.js} +3 -3
  40. package/{chunk-XGO2LIJZ.js → chunk-XNXNHAAP.js} +1 -1
  41. package/{chunk-TIPZHRUE.js → chunk-Y6XHJ4JJ.js} +19 -7
  42. package/{commandRegistry-VN3VYRTY.js → commandRegistry-ZF6YXQWV.js} +54 -54
  43. package/{contentThunks-GLALFCSA.js → contentThunks-6Y6ATG3A.js} +3 -3
  44. package/{createAgentAutomationAction-AJYCFU4M.js → createAgentAutomationAction-OQTLA2FC.js} +3 -3
  45. package/{createDialogAction-RHUDYILB.js → createDialogAction-IF5EZMBD.js} +5 -5
  46. package/{createPageAction-QNBURBCT.js → createPageAction-GU766R3L.js} +3 -3
  47. package/{dialogCommands-FUZOZGN2.js → dialogCommands-QV7XAX2V.js} +3 -3
  48. package/{dialogSlice-OXWSQS6J.js → dialogSlice-CVHMDSVV.js} +2 -2
  49. package/{docCreateCommands-TKWA2BQD.js → docCreateCommands-FSBANQTO.js} +3 -3
  50. package/{docDeleteCommands-BEBGKH2B.js → docDeleteCommands-4IR4YSGU.js} +3 -3
  51. package/{docReadCommands-5GWHRUJF.js → docReadCommands-4EYPGUE3.js} +3 -3
  52. package/{docStore-RMY3R4VP.js → docStore-RQOWPNON.js} +1 -1
  53. package/{docUpdateCommands-WTKBMMUQ.js → docUpdateCommands-RW2BYLSE.js} +3 -3
  54. package/{handleSendMessageAction-D7XLCRJJ.js → handleSendMessageAction-UDTPG5WK.js} +2 -2
  55. package/index.js +3 -3
  56. package/{machineCommands-DHJHXKIL.js → machineCommands-WBQ4TCPD.js} +14 -14
  57. package/{machineWsRunDispatch-KP636B54.js → machineWsRunDispatch-7DNDXUOS.js} +14 -14
  58. package/node_modules/abstract-level/CHANGELOG.md +150 -0
  59. package/node_modules/abstract-level/LICENSE +21 -0
  60. package/node_modules/abstract-level/README.md +1957 -0
  61. package/node_modules/abstract-level/UPGRADING.md +669 -0
  62. package/node_modules/abstract-level/abstract-chained-batch.js +397 -0
  63. package/node_modules/abstract-level/abstract-iterator.js +404 -0
  64. package/node_modules/abstract-level/abstract-level.js +1127 -0
  65. package/node_modules/abstract-level/abstract-snapshot.js +84 -0
  66. package/node_modules/abstract-level/index.d.ts +52 -0
  67. package/node_modules/abstract-level/index.js +9 -0
  68. package/node_modules/abstract-level/lib/abstract-sublevel-iterator.js +141 -0
  69. package/node_modules/abstract-level/lib/abstract-sublevel.js +290 -0
  70. package/node_modules/abstract-level/lib/common.js +33 -0
  71. package/node_modules/abstract-level/lib/default-chained-batch.js +29 -0
  72. package/node_modules/abstract-level/lib/default-kv-iterator.js +74 -0
  73. package/node_modules/abstract-level/lib/deferred-iterator.js +110 -0
  74. package/node_modules/abstract-level/lib/deferred-queue.js +84 -0
  75. package/node_modules/abstract-level/lib/errors.js +21 -0
  76. package/node_modules/abstract-level/lib/event-monitor.js +30 -0
  77. package/node_modules/abstract-level/lib/hooks.js +78 -0
  78. package/node_modules/abstract-level/lib/prefixes.js +21 -0
  79. package/node_modules/abstract-level/lib/prewrite-batch.js +96 -0
  80. package/node_modules/abstract-level/lib/range-options.js +26 -0
  81. package/node_modules/abstract-level/package.json +66 -0
  82. package/node_modules/abstract-level/test/async-iterator-test.js +132 -0
  83. package/node_modules/abstract-level/test/batch-test.js +214 -0
  84. package/node_modules/abstract-level/test/chained-batch-test.js +315 -0
  85. package/node_modules/abstract-level/test/clear-range-test.js +262 -0
  86. package/node_modules/abstract-level/test/clear-test.js +110 -0
  87. package/node_modules/abstract-level/test/common.js +90 -0
  88. package/node_modules/abstract-level/test/deferred-open-test.js +209 -0
  89. package/node_modules/abstract-level/test/del-test.js +65 -0
  90. package/node_modules/abstract-level/test/encoding-buffer-test.js +336 -0
  91. package/node_modules/abstract-level/test/encoding-custom-test.js +92 -0
  92. package/node_modules/abstract-level/test/encoding-decode-error-test.js +85 -0
  93. package/node_modules/abstract-level/test/encoding-json-test.js +75 -0
  94. package/node_modules/abstract-level/test/encoding-test.js +130 -0
  95. package/node_modules/abstract-level/test/events/write.js +132 -0
  96. package/node_modules/abstract-level/test/factory-test.js +36 -0
  97. package/node_modules/abstract-level/test/get-many-test.js +157 -0
  98. package/node_modules/abstract-level/test/get-sync-test.js +61 -0
  99. package/node_modules/abstract-level/test/get-test.js +83 -0
  100. package/node_modules/abstract-level/test/has-many-test.js +144 -0
  101. package/node_modules/abstract-level/test/has-test.js +81 -0
  102. package/node_modules/abstract-level/test/hooks/newsub.js +57 -0
  103. package/node_modules/abstract-level/test/hooks/postopen.js +229 -0
  104. package/node_modules/abstract-level/test/hooks/prewrite.js +816 -0
  105. package/node_modules/abstract-level/test/hooks/shared.js +38 -0
  106. package/node_modules/abstract-level/test/index.js +86 -0
  107. package/node_modules/abstract-level/test/iterator-explicit-snapshot-test.js +393 -0
  108. package/node_modules/abstract-level/test/iterator-no-snapshot-test.js +49 -0
  109. package/node_modules/abstract-level/test/iterator-range-test.js +277 -0
  110. package/node_modules/abstract-level/test/iterator-seek-test.js +335 -0
  111. package/node_modules/abstract-level/test/iterator-snapshot-test.js +56 -0
  112. package/node_modules/abstract-level/test/iterator-test.js +621 -0
  113. package/node_modules/abstract-level/test/manifest-test.js +21 -0
  114. package/node_modules/abstract-level/test/open-create-if-missing-test.js +39 -0
  115. package/node_modules/abstract-level/test/open-error-if-exists-test.js +25 -0
  116. package/node_modules/abstract-level/test/open-test.js +263 -0
  117. package/node_modules/abstract-level/test/put-get-del-test.js +97 -0
  118. package/node_modules/abstract-level/test/put-test.js +70 -0
  119. package/node_modules/abstract-level/test/self/abstract-iterator-test.js +182 -0
  120. package/node_modules/abstract-level/test/self/async-iterator-test.js +242 -0
  121. package/node_modules/abstract-level/test/self/attach-resource-test.js +74 -0
  122. package/node_modules/abstract-level/test/self/defer-test.js +140 -0
  123. package/node_modules/abstract-level/test/self/deferred-iterator-test.js +314 -0
  124. package/node_modules/abstract-level/test/self/deferred-operations-test.js +86 -0
  125. package/node_modules/abstract-level/test/self/deferred-queue-test.js +93 -0
  126. package/node_modules/abstract-level/test/self/encoding-test.js +391 -0
  127. package/node_modules/abstract-level/test/self/errors-test.js +11 -0
  128. package/node_modules/abstract-level/test/self/iterator-test.js +1050 -0
  129. package/node_modules/abstract-level/test/self/sublevel-test.js +1039 -0
  130. package/node_modules/abstract-level/test/self.js +905 -0
  131. package/node_modules/abstract-level/test/sublevel-test.js +209 -0
  132. package/node_modules/abstract-level/test/traits/closed.js +42 -0
  133. package/node_modules/abstract-level/test/traits/index.js +4 -0
  134. package/node_modules/abstract-level/test/traits/open.js +62 -0
  135. package/node_modules/abstract-level/test/util.js +275 -0
  136. package/node_modules/abstract-level/types/abstract-chained-batch.d.ts +124 -0
  137. package/node_modules/abstract-level/types/abstract-iterator.d.ts +241 -0
  138. package/node_modules/abstract-level/types/abstract-level.d.ts +636 -0
  139. package/node_modules/abstract-level/types/abstract-snapshot.d.ts +30 -0
  140. package/node_modules/abstract-level/types/abstract-sublevel.d.ts +76 -0
  141. package/node_modules/abstract-level/types/interfaces.d.ts +43 -0
  142. package/node_modules/base64-js/LICENSE +21 -0
  143. package/node_modules/base64-js/README.md +34 -0
  144. package/node_modules/base64-js/base64js.min.js +1 -0
  145. package/node_modules/base64-js/index.d.ts +3 -0
  146. package/node_modules/base64-js/index.js +150 -0
  147. package/node_modules/base64-js/package.json +47 -0
  148. package/node_modules/browser-level/CHANGELOG.md +44 -0
  149. package/node_modules/browser-level/LICENSE +21 -0
  150. package/node_modules/browser-level/README.md +124 -0
  151. package/node_modules/browser-level/UPGRADING.md +143 -0
  152. package/node_modules/browser-level/index.d.ts +108 -0
  153. package/node_modules/browser-level/index.js +323 -0
  154. package/node_modules/browser-level/iterator.js +239 -0
  155. package/node_modules/browser-level/package.json +48 -0
  156. package/node_modules/browser-level/util/clear.js +38 -0
  157. package/node_modules/browser-level/util/deserialize.js +17 -0
  158. package/node_modules/browser-level/util/key-range.js +20 -0
  159. package/node_modules/buffer/AUTHORS.md +73 -0
  160. package/node_modules/buffer/LICENSE +21 -0
  161. package/node_modules/buffer/README.md +410 -0
  162. package/node_modules/buffer/index.d.ts +194 -0
  163. package/node_modules/buffer/index.js +2106 -0
  164. package/node_modules/buffer/package.json +93 -0
  165. package/node_modules/classic-level/CHANGELOG.md +115 -0
  166. package/node_modules/classic-level/LICENSE +21 -0
  167. package/node_modules/classic-level/README.md +274 -0
  168. package/node_modules/classic-level/UPGRADING.md +131 -0
  169. package/node_modules/classic-level/binding.cc +2652 -0
  170. package/node_modules/classic-level/binding.gyp +71 -0
  171. package/node_modules/classic-level/binding.js +1 -0
  172. package/node_modules/classic-level/chained-batch.js +35 -0
  173. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/LICENSE +27 -0
  174. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/Makefile +424 -0
  175. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/build_detect_platform +256 -0
  176. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/autocompact_test.cc +118 -0
  177. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.cc +88 -0
  178. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.h +34 -0
  179. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c.cc +595 -0
  180. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c_test.c +390 -0
  181. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/corruption_test.cc +374 -0
  182. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_bench.cc +1020 -0
  183. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.cc +1568 -0
  184. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.h +212 -0
  185. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.cc +317 -0
  186. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.h +28 -0
  187. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_test.cc +2158 -0
  188. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.cc +140 -0
  189. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.h +230 -0
  190. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat_test.cc +112 -0
  191. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dumpfile.cc +225 -0
  192. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/fault_injection_test.cc +554 -0
  193. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.cc +144 -0
  194. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.h +85 -0
  195. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename_test.cc +123 -0
  196. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/leveldbutil.cc +64 -0
  197. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_format.h +35 -0
  198. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.cc +284 -0
  199. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.h +113 -0
  200. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_test.cc +591 -0
  201. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.cc +112 -0
  202. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.h +54 -0
  203. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.cc +145 -0
  204. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.h +89 -0
  205. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/recovery_test.cc +324 -0
  206. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/repair.cc +461 -0
  207. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist.h +384 -0
  208. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist_test.cc +378 -0
  209. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/snapshot.h +67 -0
  210. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.cc +127 -0
  211. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.h +61 -0
  212. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.cc +266 -0
  213. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.h +107 -0
  214. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit_test.cc +46 -0
  215. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.cc +1535 -0
  216. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.h +399 -0
  217. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set_test.cc +179 -0
  218. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch.cc +147 -0
  219. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_internal.h +50 -0
  220. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_test.cc +120 -0
  221. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.cc +398 -0
  222. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.h +20 -0
  223. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv_test.cc +241 -0
  224. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/c.h +290 -0
  225. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/cache.h +110 -0
  226. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/comparator.h +63 -0
  227. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/db.h +164 -0
  228. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/dumpfile.h +25 -0
  229. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/env.h +351 -0
  230. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/filter_policy.h +70 -0
  231. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/iterator.h +100 -0
  232. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/options.h +213 -0
  233. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/slice.h +109 -0
  234. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/status.h +112 -0
  235. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table.h +85 -0
  236. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table_builder.h +92 -0
  237. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/value_sink.h +26 -0
  238. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/write_batch.h +64 -0
  239. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue178_test.cc +92 -0
  240. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue200_test.cc +59 -0
  241. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/atomic_pointer.h +242 -0
  242. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port.h +21 -0
  243. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_example.h +141 -0
  244. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.cc +53 -0
  245. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.h +156 -0
  246. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix_sse.cc +129 -0
  247. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/thread_annotations.h +60 -0
  248. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/win/stdint.h +24 -0
  249. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.cc +268 -0
  250. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.h +44 -0
  251. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.cc +109 -0
  252. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.h +57 -0
  253. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.cc +111 -0
  254. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.h +68 -0
  255. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block_test.cc +128 -0
  256. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.cc +144 -0
  257. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.h +108 -0
  258. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator.cc +67 -0
  259. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator_wrapper.h +66 -0
  260. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.cc +197 -0
  261. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.h +26 -0
  262. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table.cc +285 -0
  263. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_builder.cc +270 -0
  264. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_test.cc +876 -0
  265. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.cc +182 -0
  266. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.h +34 -0
  267. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.cc +68 -0
  268. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.h +68 -0
  269. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena_test.cc +68 -0
  270. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom.cc +95 -0
  271. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom_test.cc +162 -0
  272. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache.cc +405 -0
  273. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache_test.cc +226 -0
  274. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.cc +194 -0
  275. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.h +104 -0
  276. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding_test.cc +196 -0
  277. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/comparator.cc +81 -0
  278. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.cc +350 -0
  279. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.h +45 -0
  280. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c_test.cc +72 -0
  281. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env.cc +100 -0
  282. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix.cc +695 -0
  283. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test.cc +66 -0
  284. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test_helper.h +28 -0
  285. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_test.cc +106 -0
  286. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/filter_policy.cc +11 -0
  287. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.cc +52 -0
  288. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.h +19 -0
  289. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash_test.cc +54 -0
  290. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.cc +139 -0
  291. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.h +42 -0
  292. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.cc +72 -0
  293. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.h +43 -0
  294. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/mutexlock.h +41 -0
  295. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/options.cc +30 -0
  296. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/posix_logger.h +98 -0
  297. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/random.h +64 -0
  298. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/status.cc +75 -0
  299. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.cc +77 -0
  300. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.h +138 -0
  301. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.cc +51 -0
  302. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.h +63 -0
  303. package/node_modules/classic-level/deps/leveldb/leveldb.gyp +282 -0
  304. package/node_modules/classic-level/deps/leveldb/patches/001-value-sink.patch +164 -0
  305. package/node_modules/classic-level/deps/leveldb/port-libuv/atomic_pointer_win.h +48 -0
  306. package/node_modules/classic-level/deps/leveldb/port-libuv/env_win.cc +692 -0
  307. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.cc +36 -0
  308. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h +157 -0
  309. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h.bak +153 -0
  310. package/node_modules/classic-level/deps/leveldb/port-libuv/stdint-msvc2008.h +247 -0
  311. package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar.h +45 -0
  312. package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar_posix.cc +139 -0
  313. package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.cc +79 -0
  314. package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.h +28 -0
  315. package/node_modules/classic-level/deps/snappy/freebsd/config.h +135 -0
  316. package/node_modules/classic-level/deps/snappy/freebsd/snappy-stubs-public.h +100 -0
  317. package/node_modules/classic-level/deps/snappy/linux/config.h +135 -0
  318. package/node_modules/classic-level/deps/snappy/linux/snappy-stubs-public.h +100 -0
  319. package/node_modules/classic-level/deps/snappy/mac/config.h +137 -0
  320. package/node_modules/classic-level/deps/snappy/mac/snappy-stubs-public.h +100 -0
  321. package/node_modules/classic-level/deps/snappy/openbsd/config.h +135 -0
  322. package/node_modules/classic-level/deps/snappy/openbsd/snappy-stubs-public.h +100 -0
  323. package/node_modules/classic-level/deps/snappy/snappy/COPYING +54 -0
  324. package/node_modules/classic-level/deps/snappy/snappy/cmake/SnappyConfig.cmake +1 -0
  325. package/node_modules/classic-level/deps/snappy/snappy/cmake/config.h.in +62 -0
  326. package/node_modules/classic-level/deps/snappy/snappy/snappy-c.cc +90 -0
  327. package/node_modules/classic-level/deps/snappy/snappy/snappy-c.h +138 -0
  328. package/node_modules/classic-level/deps/snappy/snappy/snappy-internal.h +224 -0
  329. package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.cc +104 -0
  330. package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.h +182 -0
  331. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.cc +42 -0
  332. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.h +561 -0
  333. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-public.h.in +94 -0
  334. package/node_modules/classic-level/deps/snappy/snappy/snappy-test.cc +612 -0
  335. package/node_modules/classic-level/deps/snappy/snappy/snappy-test.h +573 -0
  336. package/node_modules/classic-level/deps/snappy/snappy/snappy.cc +1515 -0
  337. package/node_modules/classic-level/deps/snappy/snappy/snappy.h +203 -0
  338. package/node_modules/classic-level/deps/snappy/snappy/snappy_unittest.cc +1410 -0
  339. package/node_modules/classic-level/deps/snappy/snappy.gyp +119 -0
  340. package/node_modules/classic-level/deps/snappy/solaris/config.h +135 -0
  341. package/node_modules/classic-level/deps/snappy/solaris/snappy-stubs-public.h +100 -0
  342. package/node_modules/classic-level/deps/snappy/win32/config.h +29 -0
  343. package/node_modules/classic-level/deps/snappy/win32/snappy-stubs-public.h +100 -0
  344. package/node_modules/classic-level/index.d.ts +343 -0
  345. package/node_modules/classic-level/index.js +311 -0
  346. package/node_modules/classic-level/iterator.js +122 -0
  347. package/node_modules/classic-level/package.json +70 -0
  348. package/node_modules/classic-level/prebuilds/android-arm/classic-level.armv7.node +0 -0
  349. package/node_modules/classic-level/prebuilds/android-arm64/classic-level.armv8.node +0 -0
  350. package/node_modules/classic-level/prebuilds/darwin-x64+arm64/classic-level.node +0 -0
  351. package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv6.node +0 -0
  352. package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv7.node +0 -0
  353. package/node_modules/classic-level/prebuilds/linux-arm64/classic-level.armv8.node +0 -0
  354. package/node_modules/classic-level/prebuilds/linux-x64/classic-level.musl.node +0 -0
  355. package/node_modules/classic-level/prebuilds/linux-x64/classic-level.node +0 -0
  356. package/node_modules/classic-level/prebuilds/win32-ia32/classic-level.node +0 -0
  357. package/node_modules/classic-level/prebuilds/win32-x64/classic-level.node +0 -0
  358. package/node_modules/ieee754/LICENSE +11 -0
  359. package/node_modules/ieee754/README.md +51 -0
  360. package/node_modules/ieee754/index.d.ts +10 -0
  361. package/node_modules/ieee754/index.js +85 -0
  362. package/node_modules/ieee754/package.json +52 -0
  363. package/node_modules/is-buffer/LICENSE +21 -0
  364. package/node_modules/is-buffer/README.md +54 -0
  365. package/node_modules/is-buffer/index.d.ts +2 -0
  366. package/node_modules/is-buffer/index.js +11 -0
  367. package/node_modules/is-buffer/package.json +65 -0
  368. package/node_modules/level/CHANGELOG.md +532 -0
  369. package/node_modules/level/LICENSE +21 -0
  370. package/node_modules/level/README.md +107 -0
  371. package/node_modules/level/UPGRADING.md +413 -0
  372. package/node_modules/level/browser.js +1 -0
  373. package/node_modules/level/index.d.ts +75 -0
  374. package/node_modules/level/index.js +1 -0
  375. package/node_modules/level/package.json +62 -0
  376. package/node_modules/level-supports/CHANGELOG.md +140 -0
  377. package/node_modules/level-supports/LICENSE +21 -0
  378. package/node_modules/level-supports/README.md +276 -0
  379. package/node_modules/level-supports/index.d.ts +137 -0
  380. package/node_modules/level-supports/index.js +26 -0
  381. package/node_modules/level-supports/package.json +46 -0
  382. package/node_modules/level-supports/test/cloneable.js +26 -0
  383. package/node_modules/level-supports/test/index.js +24 -0
  384. package/node_modules/level-supports/test/self.js +86 -0
  385. package/node_modules/level-supports/test/shape.js +23 -0
  386. package/node_modules/level-transcoder/CHANGELOG.md +15 -0
  387. package/node_modules/level-transcoder/LICENSE +21 -0
  388. package/node_modules/level-transcoder/README.md +214 -0
  389. package/node_modules/level-transcoder/UPGRADING.md +13 -0
  390. package/node_modules/level-transcoder/index.d.ts +27 -0
  391. package/node_modules/level-transcoder/index.js +158 -0
  392. package/node_modules/level-transcoder/lib/encoding.d.ts +158 -0
  393. package/node_modules/level-transcoder/lib/encoding.js +105 -0
  394. package/node_modules/level-transcoder/lib/encodings.d.ts +9 -0
  395. package/node_modules/level-transcoder/lib/encodings.js +135 -0
  396. package/node_modules/level-transcoder/lib/formats.d.ts +13 -0
  397. package/node_modules/level-transcoder/lib/formats.js +111 -0
  398. package/node_modules/level-transcoder/lib/text-endec.d.ts +6 -0
  399. package/node_modules/level-transcoder/lib/text-endec.js +19 -0
  400. package/node_modules/level-transcoder/package.json +46 -0
  401. package/node_modules/maybe-combine-errors/LICENSE.md +21 -0
  402. package/node_modules/maybe-combine-errors/README.md +94 -0
  403. package/node_modules/maybe-combine-errors/index.js +60 -0
  404. package/node_modules/maybe-combine-errors/package.json +33 -0
  405. package/node_modules/module-error/CHANGELOG.md +23 -0
  406. package/node_modules/module-error/LICENSE +21 -0
  407. package/node_modules/module-error/README.md +89 -0
  408. package/node_modules/module-error/index.d.ts +18 -0
  409. package/node_modules/module-error/index.js +22 -0
  410. package/node_modules/module-error/package.json +36 -0
  411. package/node_modules/napi-macros/LICENSE +21 -0
  412. package/node_modules/napi-macros/README.md +277 -0
  413. package/node_modules/napi-macros/index.js +1 -0
  414. package/node_modules/napi-macros/napi-macros.h +255 -0
  415. package/node_modules/napi-macros/package.json +22 -0
  416. package/node_modules/node-gyp-build/LICENSE +21 -0
  417. package/node_modules/node-gyp-build/README.md +58 -0
  418. package/node_modules/node-gyp-build/SECURITY.md +5 -0
  419. package/node_modules/node-gyp-build/bin.js +84 -0
  420. package/node_modules/node-gyp-build/build-test.js +19 -0
  421. package/node_modules/node-gyp-build/index.js +6 -0
  422. package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  423. package/node_modules/node-gyp-build/optional.js +7 -0
  424. package/node_modules/node-gyp-build/package.json +43 -0
  425. package/package.json +6 -3
  426. package/{readlineWorkspace-5P24E57Z.js → readlineWorkspace-LO6ZLFTO.js} +1368 -1305
  427. package/{runAgentClientLoop-AXFKKSVY.js → runAgentClientLoop-KAYGKVTK.js} +11 -11
  428. package/{runtimeDoctorCommands-3USD722U.js → runtimeDoctorCommands-ID23PNNZ.js} +28 -0
  429. package/{spaceCommands-TRABD7YR.js → spaceCommands-FA6RCZ2Y.js} +3 -3
  430. package/{streamAgentChatTurn-RG7NWZWY.js → streamAgentChatTurn-DFNDU2UY.js} +12 -12
  431. package/{tools-GIXG5YIO.js → tools-6HKH75NT.js} +8 -8
  432. package/{tuiSummaryLlmCaller-RVWN63CP.js → tuiSummaryLlmCaller-CFFVXQWX.js} +1 -1
  433. package/{updateDialogTitleAction-JXZ2K54W.js → updateDialogTitleAction-FFSYTLBC.js} +3 -3
@@ -0,0 +1,92 @@
1
+ // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
4
+ //
5
+ // TableBuilder provides the interface used to build a Table
6
+ // (an immutable and sorted map from keys to values).
7
+ //
8
+ // Multiple threads can invoke const methods on a TableBuilder without
9
+ // external synchronization, but if any of the threads may call a
10
+ // non-const method, all threads accessing the same TableBuilder must use
11
+ // external synchronization.
12
+
13
+ #ifndef STORAGE_LEVELDB_INCLUDE_TABLE_BUILDER_H_
14
+ #define STORAGE_LEVELDB_INCLUDE_TABLE_BUILDER_H_
15
+
16
+ #include <stdint.h>
17
+ #include "leveldb/options.h"
18
+ #include "leveldb/status.h"
19
+
20
+ namespace leveldb {
21
+
22
+ class BlockBuilder;
23
+ class BlockHandle;
24
+ class WritableFile;
25
+
26
+ class TableBuilder {
27
+ public:
28
+ // Create a builder that will store the contents of the table it is
29
+ // building in *file. Does not close the file. It is up to the
30
+ // caller to close the file after calling Finish().
31
+ TableBuilder(const Options& options, WritableFile* file);
32
+
33
+ // REQUIRES: Either Finish() or Abandon() has been called.
34
+ ~TableBuilder();
35
+
36
+ // Change the options used by this builder. Note: only some of the
37
+ // option fields can be changed after construction. If a field is
38
+ // not allowed to change dynamically and its value in the structure
39
+ // passed to the constructor is different from its value in the
40
+ // structure passed to this method, this method will return an error
41
+ // without changing any fields.
42
+ Status ChangeOptions(const Options& options);
43
+
44
+ // Add key,value to the table being constructed.
45
+ // REQUIRES: key is after any previously added key according to comparator.
46
+ // REQUIRES: Finish(), Abandon() have not been called
47
+ void Add(const Slice& key, const Slice& value);
48
+
49
+ // Advanced operation: flush any buffered key/value pairs to file.
50
+ // Can be used to ensure that two adjacent entries never live in
51
+ // the same data block. Most clients should not need to use this method.
52
+ // REQUIRES: Finish(), Abandon() have not been called
53
+ void Flush();
54
+
55
+ // Return non-ok iff some error has been detected.
56
+ Status status() const;
57
+
58
+ // Finish building the table. Stops using the file passed to the
59
+ // constructor after this function returns.
60
+ // REQUIRES: Finish(), Abandon() have not been called
61
+ Status Finish();
62
+
63
+ // Indicate that the contents of this builder should be abandoned. Stops
64
+ // using the file passed to the constructor after this function returns.
65
+ // If the caller is not going to call Finish(), it must call Abandon()
66
+ // before destroying this builder.
67
+ // REQUIRES: Finish(), Abandon() have not been called
68
+ void Abandon();
69
+
70
+ // Number of calls to Add() so far.
71
+ uint64_t NumEntries() const;
72
+
73
+ // Size of the file generated so far. If invoked after a successful
74
+ // Finish() call, returns the size of the final generated file.
75
+ uint64_t FileSize() const;
76
+
77
+ private:
78
+ bool ok() const { return status().ok(); }
79
+ void WriteBlock(BlockBuilder* block, BlockHandle* handle);
80
+ void WriteRawBlock(const Slice& data, CompressionType, BlockHandle* handle);
81
+
82
+ struct Rep;
83
+ Rep* rep_;
84
+
85
+ // No copying allowed
86
+ TableBuilder(const TableBuilder&);
87
+ void operator=(const TableBuilder&);
88
+ };
89
+
90
+ } // namespace leveldb
91
+
92
+ #endif // STORAGE_LEVELDB_INCLUDE_TABLE_BUILDER_H_
@@ -0,0 +1,26 @@
1
+ #ifndef STORAGE_LEVELDB_INCLUDE_VALUE_SINK_H_
2
+ #define STORAGE_LEVELDB_INCLUDE_VALUE_SINK_H_
3
+
4
+ namespace leveldb {
5
+ struct ValueSink {
6
+ public:
7
+ ValueSink () {}
8
+
9
+ // Same as std::string:assign
10
+ virtual void assign(const char* s, size_t n) = 0;
11
+ };
12
+
13
+ struct StringValueSink : public ValueSink {
14
+ public:
15
+ StringValueSink (std::string* nut)
16
+ : ValueSink(), nut_(nut) {}
17
+
18
+ void assign(const char* s, size_t n) override {
19
+ nut_->assign(s, n);
20
+ }
21
+ private:
22
+ std::string* nut_;
23
+ };
24
+ }
25
+
26
+ #endif // STORAGE_LEVELDB_INCLUDE_VALUE_SINK_H_
@@ -0,0 +1,64 @@
1
+ // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
4
+ //
5
+ // WriteBatch holds a collection of updates to apply atomically to a DB.
6
+ //
7
+ // The updates are applied in the order in which they are added
8
+ // to the WriteBatch. For example, the value of "key" will be "v3"
9
+ // after the following batch is written:
10
+ //
11
+ // batch.Put("key", "v1");
12
+ // batch.Delete("key");
13
+ // batch.Put("key", "v2");
14
+ // batch.Put("key", "v3");
15
+ //
16
+ // Multiple threads can invoke const methods on a WriteBatch without
17
+ // external synchronization, but if any of the threads may call a
18
+ // non-const method, all threads accessing the same WriteBatch must use
19
+ // external synchronization.
20
+
21
+ #ifndef STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_
22
+ #define STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_
23
+
24
+ #include <string>
25
+ #include "leveldb/status.h"
26
+
27
+ namespace leveldb {
28
+
29
+ class Slice;
30
+
31
+ class WriteBatch {
32
+ public:
33
+ WriteBatch();
34
+ ~WriteBatch();
35
+
36
+ // Store the mapping "key->value" in the database.
37
+ void Put(const Slice& key, const Slice& value);
38
+
39
+ // If the database contains a mapping for "key", erase it. Else do nothing.
40
+ void Delete(const Slice& key);
41
+
42
+ // Clear all updates buffered in this batch.
43
+ void Clear();
44
+
45
+ // Support for iterating over the contents of a batch.
46
+ class Handler {
47
+ public:
48
+ virtual ~Handler();
49
+ virtual void Put(const Slice& key, const Slice& value) = 0;
50
+ virtual void Delete(const Slice& key) = 0;
51
+ };
52
+ Status Iterate(Handler* handler) const;
53
+
54
+ private:
55
+ friend class WriteBatchInternal;
56
+
57
+ std::string rep_; // See comment in write_batch.cc for the format of rep_
58
+
59
+ // Intentionally copyable
60
+ };
61
+
62
+ } // namespace leveldb
63
+
64
+ #endif // STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_
@@ -0,0 +1,92 @@
1
+ // Copyright (c) 2013 The LevelDB Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
4
+
5
+ // Test for issue 178: a manual compaction causes deleted data to reappear.
6
+ #include <iostream>
7
+ #include <sstream>
8
+ #include <cstdlib>
9
+
10
+ #include "leveldb/db.h"
11
+ #include "leveldb/write_batch.h"
12
+ #include "util/testharness.h"
13
+
14
+ namespace {
15
+
16
+ const int kNumKeys = 1100000;
17
+
18
+ std::string Key1(int i) {
19
+ char buf[100];
20
+ snprintf(buf, sizeof(buf), "my_key_%d", i);
21
+ return buf;
22
+ }
23
+
24
+ std::string Key2(int i) {
25
+ return Key1(i) + "_xxx";
26
+ }
27
+
28
+ class Issue178 { };
29
+
30
+ TEST(Issue178, Test) {
31
+ // Get rid of any state from an old run.
32
+ std::string dbpath = leveldb::test::TmpDir() + "/leveldb_cbug_test";
33
+ DestroyDB(dbpath, leveldb::Options());
34
+
35
+ // Open database. Disable compression since it affects the creation
36
+ // of layers and the code below is trying to test against a very
37
+ // specific scenario.
38
+ leveldb::DB* db;
39
+ leveldb::Options db_options;
40
+ db_options.create_if_missing = true;
41
+ db_options.compression = leveldb::kNoCompression;
42
+ ASSERT_OK(leveldb::DB::Open(db_options, dbpath, &db));
43
+
44
+ // create first key range
45
+ leveldb::WriteBatch batch;
46
+ for (size_t i = 0; i < kNumKeys; i++) {
47
+ batch.Put(Key1(i), "value for range 1 key");
48
+ }
49
+ ASSERT_OK(db->Write(leveldb::WriteOptions(), &batch));
50
+
51
+ // create second key range
52
+ batch.Clear();
53
+ for (size_t i = 0; i < kNumKeys; i++) {
54
+ batch.Put(Key2(i), "value for range 2 key");
55
+ }
56
+ ASSERT_OK(db->Write(leveldb::WriteOptions(), &batch));
57
+
58
+ // delete second key range
59
+ batch.Clear();
60
+ for (size_t i = 0; i < kNumKeys; i++) {
61
+ batch.Delete(Key2(i));
62
+ }
63
+ ASSERT_OK(db->Write(leveldb::WriteOptions(), &batch));
64
+
65
+ // compact database
66
+ std::string start_key = Key1(0);
67
+ std::string end_key = Key1(kNumKeys - 1);
68
+ leveldb::Slice least(start_key.data(), start_key.size());
69
+ leveldb::Slice greatest(end_key.data(), end_key.size());
70
+
71
+ // commenting out the line below causes the example to work correctly
72
+ db->CompactRange(&least, &greatest);
73
+
74
+ // count the keys
75
+ leveldb::Iterator* iter = db->NewIterator(leveldb::ReadOptions());
76
+ size_t num_keys = 0;
77
+ for (iter->SeekToFirst(); iter->Valid(); iter->Next()) {
78
+ num_keys++;
79
+ }
80
+ delete iter;
81
+ ASSERT_EQ(kNumKeys, num_keys) << "Bad number of keys";
82
+
83
+ // close database
84
+ delete db;
85
+ DestroyDB(dbpath, leveldb::Options());
86
+ }
87
+
88
+ } // anonymous namespace
89
+
90
+ int main(int argc, char** argv) {
91
+ return leveldb::test::RunAllTests();
92
+ }
@@ -0,0 +1,59 @@
1
+ // Copyright (c) 2013 The LevelDB Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
4
+
5
+ // Test for issue 200: when iterator switches direction from backward
6
+ // to forward, the current key can be yielded unexpectedly if a new
7
+ // mutation has been added just before the current key.
8
+
9
+ #include "leveldb/db.h"
10
+ #include "util/testharness.h"
11
+
12
+ namespace leveldb {
13
+
14
+ class Issue200 { };
15
+
16
+ TEST(Issue200, Test) {
17
+ // Get rid of any state from an old run.
18
+ std::string dbpath = test::TmpDir() + "/leveldb_issue200_test";
19
+ DestroyDB(dbpath, Options());
20
+
21
+ DB *db;
22
+ Options options;
23
+ options.create_if_missing = true;
24
+ ASSERT_OK(DB::Open(options, dbpath, &db));
25
+
26
+ WriteOptions write_options;
27
+ ASSERT_OK(db->Put(write_options, "1", "b"));
28
+ ASSERT_OK(db->Put(write_options, "2", "c"));
29
+ ASSERT_OK(db->Put(write_options, "3", "d"));
30
+ ASSERT_OK(db->Put(write_options, "4", "e"));
31
+ ASSERT_OK(db->Put(write_options, "5", "f"));
32
+
33
+ ReadOptions read_options;
34
+ Iterator *iter = db->NewIterator(read_options);
35
+
36
+ // Add an element that should not be reflected in the iterator.
37
+ ASSERT_OK(db->Put(write_options, "25", "cd"));
38
+
39
+ iter->Seek("5");
40
+ ASSERT_EQ(iter->key().ToString(), "5");
41
+ iter->Prev();
42
+ ASSERT_EQ(iter->key().ToString(), "4");
43
+ iter->Prev();
44
+ ASSERT_EQ(iter->key().ToString(), "3");
45
+ iter->Next();
46
+ ASSERT_EQ(iter->key().ToString(), "4");
47
+ iter->Next();
48
+ ASSERT_EQ(iter->key().ToString(), "5");
49
+
50
+ delete iter;
51
+ delete db;
52
+ DestroyDB(dbpath, options);
53
+ }
54
+
55
+ } // namespace leveldb
56
+
57
+ int main(int argc, char** argv) {
58
+ return leveldb::test::RunAllTests();
59
+ }
@@ -0,0 +1,242 @@
1
+ // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
4
+
5
+ // AtomicPointer provides storage for a lock-free pointer.
6
+ // Platform-dependent implementation of AtomicPointer:
7
+ // - If the platform provides a cheap barrier, we use it with raw pointers
8
+ // - If <atomic> is present (on newer versions of gcc, it is), we use
9
+ // a <atomic>-based AtomicPointer. However we prefer the memory
10
+ // barrier based version, because at least on a gcc 4.4 32-bit build
11
+ // on linux, we have encountered a buggy <atomic> implementation.
12
+ // Also, some <atomic> implementations are much slower than a memory-barrier
13
+ // based implementation (~16ns for <atomic> based acquire-load vs. ~1ns for
14
+ // a barrier based acquire-load).
15
+ // This code is based on atomicops-internals-* in Google's perftools:
16
+ // http://code.google.com/p/google-perftools/source/browse/#svn%2Ftrunk%2Fsrc%2Fbase
17
+
18
+ #ifndef PORT_ATOMIC_POINTER_H_
19
+ #define PORT_ATOMIC_POINTER_H_
20
+
21
+ #include <stdint.h>
22
+ #ifdef LEVELDB_ATOMIC_PRESENT
23
+ #include <atomic>
24
+ #endif
25
+ #ifdef OS_WIN
26
+ #include <windows.h>
27
+ #endif
28
+ #ifdef OS_MACOSX
29
+ #include <libkern/OSAtomic.h>
30
+ #endif
31
+
32
+ #if defined(_M_X64) || defined(__x86_64__)
33
+ #define ARCH_CPU_X86_FAMILY 1
34
+ #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
35
+ #define ARCH_CPU_X86_FAMILY 1
36
+ #elif defined(__ARMEL__)
37
+ #define ARCH_CPU_ARM_FAMILY 1
38
+ #elif defined(__aarch64__)
39
+ #define ARCH_CPU_ARM64_FAMILY 1
40
+ #elif defined(__ppc__) || defined(__powerpc__) || defined(__powerpc64__)
41
+ #define ARCH_CPU_PPC_FAMILY 1
42
+ #elif defined(__mips__)
43
+ #define ARCH_CPU_MIPS_FAMILY 1
44
+ #endif
45
+
46
+ namespace leveldb {
47
+ namespace port {
48
+
49
+ // Define MemoryBarrier() if available
50
+ // Windows on x86
51
+ #if defined(OS_WIN) && defined(COMPILER_MSVC) && defined(ARCH_CPU_X86_FAMILY)
52
+ // windows.h already provides a MemoryBarrier(void) macro
53
+ // http://msdn.microsoft.com/en-us/library/ms684208(v=vs.85).aspx
54
+ #define LEVELDB_HAVE_MEMORY_BARRIER
55
+
56
+ // Mac OS
57
+ #elif defined(OS_MACOSX)
58
+ inline void MemoryBarrier() {
59
+ OSMemoryBarrier();
60
+ }
61
+ #define LEVELDB_HAVE_MEMORY_BARRIER
62
+
63
+ // Gcc on x86
64
+ #elif defined(ARCH_CPU_X86_FAMILY) && defined(__GNUC__)
65
+ inline void MemoryBarrier() {
66
+ // See http://gcc.gnu.org/ml/gcc/2003-04/msg01180.html for a discussion on
67
+ // this idiom. Also see http://en.wikipedia.org/wiki/Memory_ordering.
68
+ __asm__ __volatile__("" : : : "memory");
69
+ }
70
+ #define LEVELDB_HAVE_MEMORY_BARRIER
71
+
72
+ // Sun Studio
73
+ #elif defined(ARCH_CPU_X86_FAMILY) && defined(__SUNPRO_CC)
74
+ inline void MemoryBarrier() {
75
+ // See http://gcc.gnu.org/ml/gcc/2003-04/msg01180.html for a discussion on
76
+ // this idiom. Also see http://en.wikipedia.org/wiki/Memory_ordering.
77
+ asm volatile("" : : : "memory");
78
+ }
79
+ #define LEVELDB_HAVE_MEMORY_BARRIER
80
+
81
+ // ARM Linux
82
+ #elif defined(ARCH_CPU_ARM_FAMILY) && defined(__linux__)
83
+ typedef void (*LinuxKernelMemoryBarrierFunc)(void);
84
+ // The Linux ARM kernel provides a highly optimized device-specific memory
85
+ // barrier function at a fixed memory address that is mapped in every
86
+ // user-level process.
87
+ //
88
+ // This beats using CPU-specific instructions which are, on single-core
89
+ // devices, un-necessary and very costly (e.g. ARMv7-A "dmb" takes more
90
+ // than 180ns on a Cortex-A8 like the one on a Nexus One). Benchmarking
91
+ // shows that the extra function call cost is completely negligible on
92
+ // multi-core devices.
93
+ //
94
+ inline void MemoryBarrier() {
95
+ (*(LinuxKernelMemoryBarrierFunc)0xffff0fa0)();
96
+ }
97
+ #define LEVELDB_HAVE_MEMORY_BARRIER
98
+
99
+ // ARM64
100
+ #elif defined(ARCH_CPU_ARM64_FAMILY)
101
+ inline void MemoryBarrier() {
102
+ asm volatile("dmb sy" : : : "memory");
103
+ }
104
+ #define LEVELDB_HAVE_MEMORY_BARRIER
105
+
106
+ // PPC
107
+ #elif defined(ARCH_CPU_PPC_FAMILY) && defined(__GNUC__)
108
+ inline void MemoryBarrier() {
109
+ // TODO for some powerpc expert: is there a cheaper suitable variant?
110
+ // Perhaps by having separate barriers for acquire and release ops.
111
+ asm volatile("sync" : : : "memory");
112
+ }
113
+ #define LEVELDB_HAVE_MEMORY_BARRIER
114
+
115
+ // MIPS
116
+ #elif defined(ARCH_CPU_MIPS_FAMILY) && defined(__GNUC__)
117
+ inline void MemoryBarrier() {
118
+ __asm__ __volatile__("sync" : : : "memory");
119
+ }
120
+ #define LEVELDB_HAVE_MEMORY_BARRIER
121
+
122
+ #endif
123
+
124
+ // AtomicPointer built using platform-specific MemoryBarrier()
125
+ #if defined(LEVELDB_HAVE_MEMORY_BARRIER)
126
+ class AtomicPointer {
127
+ private:
128
+ void* rep_;
129
+ public:
130
+ AtomicPointer() { }
131
+ explicit AtomicPointer(void* p) : rep_(p) {}
132
+ inline void* NoBarrier_Load() const { return rep_; }
133
+ inline void NoBarrier_Store(void* v) { rep_ = v; }
134
+ inline void* Acquire_Load() const {
135
+ void* result = rep_;
136
+ MemoryBarrier();
137
+ return result;
138
+ }
139
+ inline void Release_Store(void* v) {
140
+ MemoryBarrier();
141
+ rep_ = v;
142
+ }
143
+ };
144
+
145
+ // AtomicPointer based on <cstdatomic>
146
+ #elif defined(LEVELDB_ATOMIC_PRESENT)
147
+ class AtomicPointer {
148
+ private:
149
+ std::atomic<void*> rep_;
150
+ public:
151
+ AtomicPointer() { }
152
+ explicit AtomicPointer(void* v) : rep_(v) { }
153
+ inline void* Acquire_Load() const {
154
+ return rep_.load(std::memory_order_acquire);
155
+ }
156
+ inline void Release_Store(void* v) {
157
+ rep_.store(v, std::memory_order_release);
158
+ }
159
+ inline void* NoBarrier_Load() const {
160
+ return rep_.load(std::memory_order_relaxed);
161
+ }
162
+ inline void NoBarrier_Store(void* v) {
163
+ rep_.store(v, std::memory_order_relaxed);
164
+ }
165
+ };
166
+
167
+ // Atomic pointer based on sparc memory barriers
168
+ #elif defined(__sparcv9) && defined(__GNUC__)
169
+ class AtomicPointer {
170
+ private:
171
+ void* rep_;
172
+ public:
173
+ AtomicPointer() { }
174
+ explicit AtomicPointer(void* v) : rep_(v) { }
175
+ inline void* Acquire_Load() const {
176
+ void* val;
177
+ __asm__ __volatile__ (
178
+ "ldx [%[rep_]], %[val] \n\t"
179
+ "membar #LoadLoad|#LoadStore \n\t"
180
+ : [val] "=r" (val)
181
+ : [rep_] "r" (&rep_)
182
+ : "memory");
183
+ return val;
184
+ }
185
+ inline void Release_Store(void* v) {
186
+ __asm__ __volatile__ (
187
+ "membar #LoadStore|#StoreStore \n\t"
188
+ "stx %[v], [%[rep_]] \n\t"
189
+ :
190
+ : [rep_] "r" (&rep_), [v] "r" (v)
191
+ : "memory");
192
+ }
193
+ inline void* NoBarrier_Load() const { return rep_; }
194
+ inline void NoBarrier_Store(void* v) { rep_ = v; }
195
+ };
196
+
197
+ // Atomic pointer based on ia64 acq/rel
198
+ #elif defined(__ia64) && defined(__GNUC__)
199
+ class AtomicPointer {
200
+ private:
201
+ void* rep_;
202
+ public:
203
+ AtomicPointer() { }
204
+ explicit AtomicPointer(void* v) : rep_(v) { }
205
+ inline void* Acquire_Load() const {
206
+ void* val ;
207
+ __asm__ __volatile__ (
208
+ "ld8.acq %[val] = [%[rep_]] \n\t"
209
+ : [val] "=r" (val)
210
+ : [rep_] "r" (&rep_)
211
+ : "memory"
212
+ );
213
+ return val;
214
+ }
215
+ inline void Release_Store(void* v) {
216
+ __asm__ __volatile__ (
217
+ "st8.rel [%[rep_]] = %[v] \n\t"
218
+ :
219
+ : [rep_] "r" (&rep_), [v] "r" (v)
220
+ : "memory"
221
+ );
222
+ }
223
+ inline void* NoBarrier_Load() const { return rep_; }
224
+ inline void NoBarrier_Store(void* v) { rep_ = v; }
225
+ };
226
+
227
+ // We have neither MemoryBarrier(), nor <atomic>
228
+ #else
229
+ #error Please implement AtomicPointer for this platform.
230
+
231
+ #endif
232
+
233
+ #undef LEVELDB_HAVE_MEMORY_BARRIER
234
+ #undef ARCH_CPU_X86_FAMILY
235
+ #undef ARCH_CPU_ARM_FAMILY
236
+ #undef ARCH_CPU_ARM64_FAMILY
237
+ #undef ARCH_CPU_PPC_FAMILY
238
+
239
+ } // namespace port
240
+ } // namespace leveldb
241
+
242
+ #endif // PORT_ATOMIC_POINTER_H_
@@ -0,0 +1,21 @@
1
+ // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
4
+
5
+ #ifndef STORAGE_LEVELDB_PORT_PORT_H_
6
+ #define STORAGE_LEVELDB_PORT_PORT_H_
7
+
8
+ #include <string.h>
9
+
10
+ // Include the appropriate platform specific file below. If you are
11
+ // porting to a new platform, see "port_example.h" for documentation
12
+ // of what the new port_<platform>.h file must provide.
13
+ #if defined(LEVELDB_PLATFORM_UV)
14
+ # include "port_uv.h"
15
+ #elif defined(LEVELDB_PLATFORM_POSIX)
16
+ # include "port/port_posix.h"
17
+ #elif defined(LEVELDB_PLATFORM_CHROMIUM)
18
+ # include "port/port_chromium.h"
19
+ #endif
20
+
21
+ #endif // STORAGE_LEVELDB_PORT_PORT_H_