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,85 @@
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
+ // File names used by DB code
6
+
7
+ #ifndef STORAGE_LEVELDB_DB_FILENAME_H_
8
+ #define STORAGE_LEVELDB_DB_FILENAME_H_
9
+
10
+ #include <stdint.h>
11
+ #include <string>
12
+ #include "leveldb/slice.h"
13
+ #include "leveldb/status.h"
14
+ #include "port/port.h"
15
+
16
+ namespace leveldb {
17
+
18
+ class Env;
19
+
20
+ enum FileType {
21
+ kLogFile,
22
+ kDBLockFile,
23
+ kTableFile,
24
+ kDescriptorFile,
25
+ kCurrentFile,
26
+ kTempFile,
27
+ kInfoLogFile // Either the current one, or an old one
28
+ };
29
+
30
+ // Return the name of the log file with the specified number
31
+ // in the db named by "dbname". The result will be prefixed with
32
+ // "dbname".
33
+ extern std::string LogFileName(const std::string& dbname, uint64_t number);
34
+
35
+ // Return the name of the sstable with the specified number
36
+ // in the db named by "dbname". The result will be prefixed with
37
+ // "dbname".
38
+ extern std::string TableFileName(const std::string& dbname, uint64_t number);
39
+
40
+ // Return the legacy file name for an sstable with the specified number
41
+ // in the db named by "dbname". The result will be prefixed with
42
+ // "dbname".
43
+ extern std::string SSTTableFileName(const std::string& dbname, uint64_t number);
44
+
45
+ // Return the name of the descriptor file for the db named by
46
+ // "dbname" and the specified incarnation number. The result will be
47
+ // prefixed with "dbname".
48
+ extern std::string DescriptorFileName(const std::string& dbname,
49
+ uint64_t number);
50
+
51
+ // Return the name of the current file. This file contains the name
52
+ // of the current manifest file. The result will be prefixed with
53
+ // "dbname".
54
+ extern std::string CurrentFileName(const std::string& dbname);
55
+
56
+ // Return the name of the lock file for the db named by
57
+ // "dbname". The result will be prefixed with "dbname".
58
+ extern std::string LockFileName(const std::string& dbname);
59
+
60
+ // Return the name of a temporary file owned by the db named "dbname".
61
+ // The result will be prefixed with "dbname".
62
+ extern std::string TempFileName(const std::string& dbname, uint64_t number);
63
+
64
+ // Return the name of the info log file for "dbname".
65
+ extern std::string InfoLogFileName(const std::string& dbname);
66
+
67
+ // Return the name of the old info log file for "dbname".
68
+ extern std::string OldInfoLogFileName(const std::string& dbname);
69
+
70
+ // If filename is a leveldb file, store the type of the file in *type.
71
+ // The number encoded in the filename is stored in *number. If the
72
+ // filename was successfully parsed, returns true. Else return false.
73
+ extern bool ParseFileName(const std::string& filename,
74
+ uint64_t* number,
75
+ FileType* type);
76
+
77
+ // Make the CURRENT file point to the descriptor file with the
78
+ // specified number.
79
+ extern Status SetCurrentFile(Env* env, const std::string& dbname,
80
+ uint64_t descriptor_number);
81
+
82
+
83
+ } // namespace leveldb
84
+
85
+ #endif // STORAGE_LEVELDB_DB_FILENAME_H_
@@ -0,0 +1,123 @@
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
+ #include "db/filename.h"
6
+
7
+ #include "db/dbformat.h"
8
+ #include "port/port.h"
9
+ #include "util/logging.h"
10
+ #include "util/testharness.h"
11
+
12
+ namespace leveldb {
13
+
14
+ class FileNameTest { };
15
+
16
+ TEST(FileNameTest, Parse) {
17
+ Slice db;
18
+ FileType type;
19
+ uint64_t number;
20
+
21
+ // Successful parses
22
+ static struct {
23
+ const char* fname;
24
+ uint64_t number;
25
+ FileType type;
26
+ } cases[] = {
27
+ { "100.log", 100, kLogFile },
28
+ { "0.log", 0, kLogFile },
29
+ { "0.sst", 0, kTableFile },
30
+ { "0.ldb", 0, kTableFile },
31
+ { "CURRENT", 0, kCurrentFile },
32
+ { "LOCK", 0, kDBLockFile },
33
+ { "MANIFEST-2", 2, kDescriptorFile },
34
+ { "MANIFEST-7", 7, kDescriptorFile },
35
+ { "LOG", 0, kInfoLogFile },
36
+ { "LOG.old", 0, kInfoLogFile },
37
+ { "18446744073709551615.log", 18446744073709551615ull, kLogFile },
38
+ };
39
+ for (int i = 0; i < sizeof(cases) / sizeof(cases[0]); i++) {
40
+ std::string f = cases[i].fname;
41
+ ASSERT_TRUE(ParseFileName(f, &number, &type)) << f;
42
+ ASSERT_EQ(cases[i].type, type) << f;
43
+ ASSERT_EQ(cases[i].number, number) << f;
44
+ }
45
+
46
+ // Errors
47
+ static const char* errors[] = {
48
+ "",
49
+ "foo",
50
+ "foo-dx-100.log",
51
+ ".log",
52
+ "",
53
+ "manifest",
54
+ "CURREN",
55
+ "CURRENTX",
56
+ "MANIFES",
57
+ "MANIFEST",
58
+ "MANIFEST-",
59
+ "XMANIFEST-3",
60
+ "MANIFEST-3x",
61
+ "LOC",
62
+ "LOCKx",
63
+ "LO",
64
+ "LOGx",
65
+ "18446744073709551616.log",
66
+ "184467440737095516150.log",
67
+ "100",
68
+ "100.",
69
+ "100.lop"
70
+ };
71
+ for (int i = 0; i < sizeof(errors) / sizeof(errors[0]); i++) {
72
+ std::string f = errors[i];
73
+ ASSERT_TRUE(!ParseFileName(f, &number, &type)) << f;
74
+ }
75
+ }
76
+
77
+ TEST(FileNameTest, Construction) {
78
+ uint64_t number;
79
+ FileType type;
80
+ std::string fname;
81
+
82
+ fname = CurrentFileName("foo");
83
+ ASSERT_EQ("foo/", std::string(fname.data(), 4));
84
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
85
+ ASSERT_EQ(0, number);
86
+ ASSERT_EQ(kCurrentFile, type);
87
+
88
+ fname = LockFileName("foo");
89
+ ASSERT_EQ("foo/", std::string(fname.data(), 4));
90
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
91
+ ASSERT_EQ(0, number);
92
+ ASSERT_EQ(kDBLockFile, type);
93
+
94
+ fname = LogFileName("foo", 192);
95
+ ASSERT_EQ("foo/", std::string(fname.data(), 4));
96
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
97
+ ASSERT_EQ(192, number);
98
+ ASSERT_EQ(kLogFile, type);
99
+
100
+ fname = TableFileName("bar", 200);
101
+ ASSERT_EQ("bar/", std::string(fname.data(), 4));
102
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
103
+ ASSERT_EQ(200, number);
104
+ ASSERT_EQ(kTableFile, type);
105
+
106
+ fname = DescriptorFileName("bar", 100);
107
+ ASSERT_EQ("bar/", std::string(fname.data(), 4));
108
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
109
+ ASSERT_EQ(100, number);
110
+ ASSERT_EQ(kDescriptorFile, type);
111
+
112
+ fname = TempFileName("tmp", 999);
113
+ ASSERT_EQ("tmp/", std::string(fname.data(), 4));
114
+ ASSERT_TRUE(ParseFileName(fname.c_str() + 4, &number, &type));
115
+ ASSERT_EQ(999, number);
116
+ ASSERT_EQ(kTempFile, type);
117
+ }
118
+
119
+ } // namespace leveldb
120
+
121
+ int main(int argc, char** argv) {
122
+ return leveldb::test::RunAllTests();
123
+ }
@@ -0,0 +1,64 @@
1
+ // Copyright (c) 2012 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
+ #include <stdio.h>
6
+ #include "leveldb/dumpfile.h"
7
+ #include "leveldb/env.h"
8
+ #include "leveldb/status.h"
9
+
10
+ namespace leveldb {
11
+ namespace {
12
+
13
+ class StdoutPrinter : public WritableFile {
14
+ public:
15
+ virtual Status Append(const Slice& data) {
16
+ fwrite(data.data(), 1, data.size(), stdout);
17
+ return Status::OK();
18
+ }
19
+ virtual Status Close() { return Status::OK(); }
20
+ virtual Status Flush() { return Status::OK(); }
21
+ virtual Status Sync() { return Status::OK(); }
22
+ };
23
+
24
+ bool HandleDumpCommand(Env* env, char** files, int num) {
25
+ StdoutPrinter printer;
26
+ bool ok = true;
27
+ for (int i = 0; i < num; i++) {
28
+ Status s = DumpFile(env, files[i], &printer);
29
+ if (!s.ok()) {
30
+ fprintf(stderr, "%s\n", s.ToString().c_str());
31
+ ok = false;
32
+ }
33
+ }
34
+ return ok;
35
+ }
36
+
37
+ } // namespace
38
+ } // namespace leveldb
39
+
40
+ static void Usage() {
41
+ fprintf(
42
+ stderr,
43
+ "Usage: leveldbutil command...\n"
44
+ " dump files... -- dump contents of specified files\n"
45
+ );
46
+ }
47
+
48
+ int main(int argc, char** argv) {
49
+ leveldb::Env* env = leveldb::Env::Default();
50
+ bool ok = true;
51
+ if (argc < 2) {
52
+ Usage();
53
+ ok = false;
54
+ } else {
55
+ std::string command = argv[1];
56
+ if (command == "dump") {
57
+ ok = leveldb::HandleDumpCommand(env, argv+2, argc-2);
58
+ } else {
59
+ Usage();
60
+ ok = false;
61
+ }
62
+ }
63
+ return (ok ? 0 : 1);
64
+ }
@@ -0,0 +1,35 @@
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
+ // Log format information shared by reader and writer.
6
+ // See ../doc/log_format.md for more detail.
7
+
8
+ #ifndef STORAGE_LEVELDB_DB_LOG_FORMAT_H_
9
+ #define STORAGE_LEVELDB_DB_LOG_FORMAT_H_
10
+
11
+ namespace leveldb {
12
+ namespace log {
13
+
14
+ enum RecordType {
15
+ // Zero is reserved for preallocated files
16
+ kZeroType = 0,
17
+
18
+ kFullType = 1,
19
+
20
+ // For fragments
21
+ kFirstType = 2,
22
+ kMiddleType = 3,
23
+ kLastType = 4
24
+ };
25
+ static const int kMaxRecordType = kLastType;
26
+
27
+ static const int kBlockSize = 32768;
28
+
29
+ // Header is checksum (4 bytes), length (2 bytes), type (1 byte).
30
+ static const int kHeaderSize = 4 + 2 + 1;
31
+
32
+ } // namespace log
33
+ } // namespace leveldb
34
+
35
+ #endif // STORAGE_LEVELDB_DB_LOG_FORMAT_H_
@@ -0,0 +1,284 @@
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
+ #include "db/log_reader.h"
6
+
7
+ #include <stdio.h>
8
+ #include "leveldb/env.h"
9
+ #include "util/coding.h"
10
+ #include "util/crc32c.h"
11
+
12
+ namespace leveldb {
13
+ namespace log {
14
+
15
+ Reader::Reporter::~Reporter() {
16
+ }
17
+
18
+ Reader::Reader(SequentialFile* file, Reporter* reporter, bool checksum,
19
+ uint64_t initial_offset)
20
+ : file_(file),
21
+ reporter_(reporter),
22
+ checksum_(checksum),
23
+ backing_store_(new char[kBlockSize]),
24
+ buffer_(),
25
+ eof_(false),
26
+ last_record_offset_(0),
27
+ end_of_buffer_offset_(0),
28
+ initial_offset_(initial_offset),
29
+ resyncing_(initial_offset > 0) {
30
+ }
31
+
32
+ Reader::~Reader() {
33
+ delete[] backing_store_;
34
+ }
35
+
36
+ bool Reader::SkipToInitialBlock() {
37
+ size_t offset_in_block = initial_offset_ % kBlockSize;
38
+ uint64_t block_start_location = initial_offset_ - offset_in_block;
39
+
40
+ // Don't search a block if we'd be in the trailer
41
+ if (offset_in_block > kBlockSize - 6) {
42
+ offset_in_block = 0;
43
+ block_start_location += kBlockSize;
44
+ }
45
+
46
+ end_of_buffer_offset_ = block_start_location;
47
+
48
+ // Skip to start of first block that can contain the initial record
49
+ if (block_start_location > 0) {
50
+ Status skip_status = file_->Skip(block_start_location);
51
+ if (!skip_status.ok()) {
52
+ ReportDrop(block_start_location, skip_status);
53
+ return false;
54
+ }
55
+ }
56
+
57
+ return true;
58
+ }
59
+
60
+ bool Reader::ReadRecord(Slice* record, std::string* scratch) {
61
+ if (last_record_offset_ < initial_offset_) {
62
+ if (!SkipToInitialBlock()) {
63
+ return false;
64
+ }
65
+ }
66
+
67
+ scratch->clear();
68
+ record->clear();
69
+ bool in_fragmented_record = false;
70
+ // Record offset of the logical record that we're reading
71
+ // 0 is a dummy value to make compilers happy
72
+ uint64_t prospective_record_offset = 0;
73
+
74
+ Slice fragment;
75
+ while (true) {
76
+ const unsigned int record_type = ReadPhysicalRecord(&fragment);
77
+
78
+ // ReadPhysicalRecord may have only had an empty trailer remaining in its
79
+ // internal buffer. Calculate the offset of the next physical record now
80
+ // that it has returned, properly accounting for its header size.
81
+ uint64_t physical_record_offset =
82
+ end_of_buffer_offset_ - buffer_.size() - kHeaderSize - fragment.size();
83
+
84
+ if (resyncing_) {
85
+ if (record_type == kMiddleType) {
86
+ continue;
87
+ } else if (record_type == kLastType) {
88
+ resyncing_ = false;
89
+ continue;
90
+ } else {
91
+ resyncing_ = false;
92
+ }
93
+ }
94
+
95
+ switch (record_type) {
96
+ case kFullType:
97
+ if (in_fragmented_record) {
98
+ // Handle bug in earlier versions of log::Writer where
99
+ // it could emit an empty kFirstType record at the tail end
100
+ // of a block followed by a kFullType or kFirstType record
101
+ // at the beginning of the next block.
102
+ if (scratch->empty()) {
103
+ in_fragmented_record = false;
104
+ } else {
105
+ ReportCorruption(scratch->size(), "partial record without end(1)");
106
+ }
107
+ }
108
+ prospective_record_offset = physical_record_offset;
109
+ scratch->clear();
110
+ *record = fragment;
111
+ last_record_offset_ = prospective_record_offset;
112
+ return true;
113
+
114
+ case kFirstType:
115
+ if (in_fragmented_record) {
116
+ // Handle bug in earlier versions of log::Writer where
117
+ // it could emit an empty kFirstType record at the tail end
118
+ // of a block followed by a kFullType or kFirstType record
119
+ // at the beginning of the next block.
120
+ if (scratch->empty()) {
121
+ in_fragmented_record = false;
122
+ } else {
123
+ ReportCorruption(scratch->size(), "partial record without end(2)");
124
+ }
125
+ }
126
+ prospective_record_offset = physical_record_offset;
127
+ scratch->assign(fragment.data(), fragment.size());
128
+ in_fragmented_record = true;
129
+ break;
130
+
131
+ case kMiddleType:
132
+ if (!in_fragmented_record) {
133
+ ReportCorruption(fragment.size(),
134
+ "missing start of fragmented record(1)");
135
+ } else {
136
+ scratch->append(fragment.data(), fragment.size());
137
+ }
138
+ break;
139
+
140
+ case kLastType:
141
+ if (!in_fragmented_record) {
142
+ ReportCorruption(fragment.size(),
143
+ "missing start of fragmented record(2)");
144
+ } else {
145
+ scratch->append(fragment.data(), fragment.size());
146
+ *record = Slice(*scratch);
147
+ last_record_offset_ = prospective_record_offset;
148
+ return true;
149
+ }
150
+ break;
151
+
152
+ case kEof:
153
+ if (in_fragmented_record) {
154
+ // This can be caused by the writer dying immediately after
155
+ // writing a physical record but before completing the next; don't
156
+ // treat it as a corruption, just ignore the entire logical record.
157
+ scratch->clear();
158
+ }
159
+ return false;
160
+
161
+ case kBadRecord:
162
+ if (in_fragmented_record) {
163
+ ReportCorruption(scratch->size(), "error in middle of record");
164
+ in_fragmented_record = false;
165
+ scratch->clear();
166
+ }
167
+ break;
168
+
169
+ default: {
170
+ char buf[40];
171
+ snprintf(buf, sizeof(buf), "unknown record type %u", record_type);
172
+ ReportCorruption(
173
+ (fragment.size() + (in_fragmented_record ? scratch->size() : 0)),
174
+ buf);
175
+ in_fragmented_record = false;
176
+ scratch->clear();
177
+ break;
178
+ }
179
+ }
180
+ }
181
+ return false;
182
+ }
183
+
184
+ uint64_t Reader::LastRecordOffset() {
185
+ return last_record_offset_;
186
+ }
187
+
188
+ void Reader::ReportCorruption(uint64_t bytes, const char* reason) {
189
+ ReportDrop(bytes, Status::Corruption(reason));
190
+ }
191
+
192
+ void Reader::ReportDrop(uint64_t bytes, const Status& reason) {
193
+ if (reporter_ != NULL &&
194
+ end_of_buffer_offset_ - buffer_.size() - bytes >= initial_offset_) {
195
+ reporter_->Corruption(static_cast<size_t>(bytes), reason);
196
+ }
197
+ }
198
+
199
+ unsigned int Reader::ReadPhysicalRecord(Slice* result) {
200
+ while (true) {
201
+ if (buffer_.size() < kHeaderSize) {
202
+ if (!eof_) {
203
+ // Last read was a full read, so this is a trailer to skip
204
+ buffer_.clear();
205
+ Status status = file_->Read(kBlockSize, &buffer_, backing_store_);
206
+ end_of_buffer_offset_ += buffer_.size();
207
+ if (!status.ok()) {
208
+ buffer_.clear();
209
+ ReportDrop(kBlockSize, status);
210
+ eof_ = true;
211
+ return kEof;
212
+ } else if (buffer_.size() < kBlockSize) {
213
+ eof_ = true;
214
+ }
215
+ continue;
216
+ } else {
217
+ // Note that if buffer_ is non-empty, we have a truncated header at the
218
+ // end of the file, which can be caused by the writer crashing in the
219
+ // middle of writing the header. Instead of considering this an error,
220
+ // just report EOF.
221
+ buffer_.clear();
222
+ return kEof;
223
+ }
224
+ }
225
+
226
+ // Parse the header
227
+ const char* header = buffer_.data();
228
+ const uint32_t a = static_cast<uint32_t>(header[4]) & 0xff;
229
+ const uint32_t b = static_cast<uint32_t>(header[5]) & 0xff;
230
+ const unsigned int type = header[6];
231
+ const uint32_t length = a | (b << 8);
232
+ if (kHeaderSize + length > buffer_.size()) {
233
+ size_t drop_size = buffer_.size();
234
+ buffer_.clear();
235
+ if (!eof_) {
236
+ ReportCorruption(drop_size, "bad record length");
237
+ return kBadRecord;
238
+ }
239
+ // If the end of the file has been reached without reading |length| bytes
240
+ // of payload, assume the writer died in the middle of writing the record.
241
+ // Don't report a corruption.
242
+ return kEof;
243
+ }
244
+
245
+ if (type == kZeroType && length == 0) {
246
+ // Skip zero length record without reporting any drops since
247
+ // such records are produced by the mmap based writing code in
248
+ // env_posix.cc that preallocates file regions.
249
+ buffer_.clear();
250
+ return kBadRecord;
251
+ }
252
+
253
+ // Check crc
254
+ if (checksum_) {
255
+ uint32_t expected_crc = crc32c::Unmask(DecodeFixed32(header));
256
+ uint32_t actual_crc = crc32c::Value(header + 6, 1 + length);
257
+ if (actual_crc != expected_crc) {
258
+ // Drop the rest of the buffer since "length" itself may have
259
+ // been corrupted and if we trust it, we could find some
260
+ // fragment of a real log record that just happens to look
261
+ // like a valid log record.
262
+ size_t drop_size = buffer_.size();
263
+ buffer_.clear();
264
+ ReportCorruption(drop_size, "checksum mismatch");
265
+ return kBadRecord;
266
+ }
267
+ }
268
+
269
+ buffer_.remove_prefix(kHeaderSize + length);
270
+
271
+ // Skip physical record that started before initial_offset_
272
+ if (end_of_buffer_offset_ - buffer_.size() - kHeaderSize - length <
273
+ initial_offset_) {
274
+ result->clear();
275
+ return kBadRecord;
276
+ }
277
+
278
+ *result = Slice(header + kHeaderSize, length);
279
+ return type;
280
+ }
281
+ }
282
+
283
+ } // namespace log
284
+ } // namespace leveldb
@@ -0,0 +1,113 @@
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_DB_LOG_READER_H_
6
+ #define STORAGE_LEVELDB_DB_LOG_READER_H_
7
+
8
+ #include <stdint.h>
9
+
10
+ #include "db/log_format.h"
11
+ #include "leveldb/slice.h"
12
+ #include "leveldb/status.h"
13
+
14
+ namespace leveldb {
15
+
16
+ class SequentialFile;
17
+
18
+ namespace log {
19
+
20
+ class Reader {
21
+ public:
22
+ // Interface for reporting errors.
23
+ class Reporter {
24
+ public:
25
+ virtual ~Reporter();
26
+
27
+ // Some corruption was detected. "size" is the approximate number
28
+ // of bytes dropped due to the corruption.
29
+ virtual void Corruption(size_t bytes, const Status& status) = 0;
30
+ };
31
+
32
+ // Create a reader that will return log records from "*file".
33
+ // "*file" must remain live while this Reader is in use.
34
+ //
35
+ // If "reporter" is non-NULL, it is notified whenever some data is
36
+ // dropped due to a detected corruption. "*reporter" must remain
37
+ // live while this Reader is in use.
38
+ //
39
+ // If "checksum" is true, verify checksums if available.
40
+ //
41
+ // The Reader will start reading at the first record located at physical
42
+ // position >= initial_offset within the file.
43
+ Reader(SequentialFile* file, Reporter* reporter, bool checksum,
44
+ uint64_t initial_offset);
45
+
46
+ ~Reader();
47
+
48
+ // Read the next record into *record. Returns true if read
49
+ // successfully, false if we hit end of the input. May use
50
+ // "*scratch" as temporary storage. The contents filled in *record
51
+ // will only be valid until the next mutating operation on this
52
+ // reader or the next mutation to *scratch.
53
+ bool ReadRecord(Slice* record, std::string* scratch);
54
+
55
+ // Returns the physical offset of the last record returned by ReadRecord.
56
+ //
57
+ // Undefined before the first call to ReadRecord.
58
+ uint64_t LastRecordOffset();
59
+
60
+ private:
61
+ SequentialFile* const file_;
62
+ Reporter* const reporter_;
63
+ bool const checksum_;
64
+ char* const backing_store_;
65
+ Slice buffer_;
66
+ bool eof_; // Last Read() indicated EOF by returning < kBlockSize
67
+
68
+ // Offset of the last record returned by ReadRecord.
69
+ uint64_t last_record_offset_;
70
+ // Offset of the first location past the end of buffer_.
71
+ uint64_t end_of_buffer_offset_;
72
+
73
+ // Offset at which to start looking for the first record to return
74
+ uint64_t const initial_offset_;
75
+
76
+ // True if we are resynchronizing after a seek (initial_offset_ > 0). In
77
+ // particular, a run of kMiddleType and kLastType records can be silently
78
+ // skipped in this mode
79
+ bool resyncing_;
80
+
81
+ // Extend record types with the following special values
82
+ enum {
83
+ kEof = kMaxRecordType + 1,
84
+ // Returned whenever we find an invalid physical record.
85
+ // Currently there are three situations in which this happens:
86
+ // * The record has an invalid CRC (ReadPhysicalRecord reports a drop)
87
+ // * The record is a 0-length record (No drop is reported)
88
+ // * The record is below constructor's initial_offset (No drop is reported)
89
+ kBadRecord = kMaxRecordType + 2
90
+ };
91
+
92
+ // Skips all blocks that are completely before "initial_offset_".
93
+ //
94
+ // Returns true on success. Handles reporting.
95
+ bool SkipToInitialBlock();
96
+
97
+ // Return type, or one of the preceding special values
98
+ unsigned int ReadPhysicalRecord(Slice* result);
99
+
100
+ // Reports dropped bytes to the reporter.
101
+ // buffer_ must be updated to remove the dropped bytes prior to invocation.
102
+ void ReportCorruption(uint64_t bytes, const char* reason);
103
+ void ReportDrop(uint64_t bytes, const Status& reason);
104
+
105
+ // No copying allowed
106
+ Reader(const Reader&);
107
+ void operator=(const Reader&);
108
+ };
109
+
110
+ } // namespace log
111
+ } // namespace leveldb
112
+
113
+ #endif // STORAGE_LEVELDB_DB_LOG_READER_H_