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.
- package/README.md +2 -0
- package/{_executeModel-VA7AOJ7I.js → _executeModel-M3FASQ2Z.js} +13 -13
- package/{agentDeleteCommand-Z3UO4OJU.js → agentDeleteCommand-K7GCEEVS.js} +3 -3
- package/{agentEmailCommands-73TKP5CA.js → agentEmailCommands-MNXRO36L.js} +14 -14
- package/{agentListCommands-Y7QPH22N.js → agentListCommands-KMZR6VVM.js} +3 -3
- package/{agentMachineCommands-NTV2CIGF.js → agentMachineCommands-75TIBYDY.js} +4 -4
- package/{agentRecordCommands-XOXZQYL3.js → agentRecordCommands-RDO5L3N4.js} +14 -14
- package/{agentRunCommand-6C7BR2AM.js → agentRunCommand-FVJJPL27.js} +14 -14
- package/{agentRuntimeLocal-3FUYPU7E.js → agentRuntimeLocal-DAK7RCER.js} +3 -3
- package/{agentSlice-FK2FY7UE.js → agentSlice-6MRJR2BJ.js} +1 -1
- package/{appDeleteCommands-L6IDOOI7.js → appDeleteCommands-JMMXK3XT.js} +3 -3
- package/{appDeployCommands-XTT6FWGB.js → appDeployCommands-JFU6GALI.js} +3 -3
- package/{appDeployStatusCommands-3USXE3N3.js → appDeployStatusCommands-AXTZ4GAN.js} +3 -3
- package/{appGetCommands-PHADWOLO.js → appGetCommands-CR2W3DCM.js} +3 -3
- package/{appListCommands-YM22HHY5.js → appListCommands-2TV6P3EU.js} +3 -3
- package/{authCommand-XLCNATZR.js → authCommand-UBJ4EWYZ.js} +1 -1
- package/{authCommands-GBIFZWD3.js → authCommands-H6WKKCRW.js} +1 -1
- package/{builtinSkillRegistry-HRI7DXC2.js → builtinSkillRegistry-ZMF6YGNO.js} +2 -2
- package/{chatQueueReduxAdapter-ZHUJO77G.js → chatQueueReduxAdapter-CDOHVTSE.js} +2 -2
- package/{chromeCommands-K27J4OVZ.js → chromeCommands-2N6MEWRU.js} +3 -3
- package/{chunk-LQNRUDVN.js → chunk-2TKVOEQF.js} +5 -5
- package/{chunk-3AOSNKIZ.js → chunk-5XYFIDFU.js} +5 -5
- package/{chunk-EM7HELS5.js → chunk-62XHRZG4.js} +2 -2
- package/{chunk-EMBK4B7D.js → chunk-6TPOEJMQ.js} +1 -1
- package/{chunk-BRCOB2YF.js → chunk-7YAK46ML.js} +2 -2
- package/{chunk-YFIUVDQY.js → chunk-A6FNUMCF.js} +46 -5
- package/{chunk-EP34KKT6.js → chunk-ANX7Z7Z2.js} +8 -8
- package/{chunk-MOFAGINP.js → chunk-B2XUQXQX.js} +1 -1
- package/chunk-GNMAFAIS.js +29 -0
- package/{chunk-6YSYZTKW.js → chunk-HKBFZONG.js} +1 -1
- package/{chunk-VPFEPRME.js → chunk-IVZJWTDI.js} +3 -0
- package/{chunk-AQTJUKN6.js → chunk-JLQKV2ZJ.js} +1 -1
- package/{chunk-3T6MH737.js → chunk-M76SRQ3H.js} +19 -9
- package/{chunk-L55HWODG.js → chunk-OKSJZ4UU.js} +10 -10
- package/{chunk-OJL4DA6B.js → chunk-QFZM5BFI.js} +1 -1
- package/{chunk-QMJG7UFL.js → chunk-RHDOQWXZ.js} +164 -10
- package/{chunk-6Z5V5T6Q.js → chunk-UMB7CHAY.js} +3 -3
- package/{chunk-XPV3S4HP.js → chunk-VJ4FUWPC.js} +3 -3
- package/{chunk-2KHRSBYS.js → chunk-VZVTPDPL.js} +3 -3
- package/{chunk-XGO2LIJZ.js → chunk-XNXNHAAP.js} +1 -1
- package/{chunk-TIPZHRUE.js → chunk-Y6XHJ4JJ.js} +19 -7
- package/{commandRegistry-VN3VYRTY.js → commandRegistry-ZF6YXQWV.js} +54 -54
- package/{contentThunks-GLALFCSA.js → contentThunks-6Y6ATG3A.js} +3 -3
- package/{createAgentAutomationAction-AJYCFU4M.js → createAgentAutomationAction-OQTLA2FC.js} +3 -3
- package/{createDialogAction-RHUDYILB.js → createDialogAction-IF5EZMBD.js} +5 -5
- package/{createPageAction-QNBURBCT.js → createPageAction-GU766R3L.js} +3 -3
- package/{dialogCommands-FUZOZGN2.js → dialogCommands-QV7XAX2V.js} +3 -3
- package/{dialogSlice-OXWSQS6J.js → dialogSlice-CVHMDSVV.js} +2 -2
- package/{docCreateCommands-TKWA2BQD.js → docCreateCommands-FSBANQTO.js} +3 -3
- package/{docDeleteCommands-BEBGKH2B.js → docDeleteCommands-4IR4YSGU.js} +3 -3
- package/{docReadCommands-5GWHRUJF.js → docReadCommands-4EYPGUE3.js} +3 -3
- package/{docStore-RMY3R4VP.js → docStore-RQOWPNON.js} +1 -1
- package/{docUpdateCommands-WTKBMMUQ.js → docUpdateCommands-RW2BYLSE.js} +3 -3
- package/{handleSendMessageAction-D7XLCRJJ.js → handleSendMessageAction-UDTPG5WK.js} +2 -2
- package/index.js +3 -3
- package/{machineCommands-DHJHXKIL.js → machineCommands-WBQ4TCPD.js} +14 -14
- package/{machineWsRunDispatch-KP636B54.js → machineWsRunDispatch-7DNDXUOS.js} +14 -14
- package/node_modules/abstract-level/CHANGELOG.md +150 -0
- package/node_modules/abstract-level/LICENSE +21 -0
- package/node_modules/abstract-level/README.md +1957 -0
- package/node_modules/abstract-level/UPGRADING.md +669 -0
- package/node_modules/abstract-level/abstract-chained-batch.js +397 -0
- package/node_modules/abstract-level/abstract-iterator.js +404 -0
- package/node_modules/abstract-level/abstract-level.js +1127 -0
- package/node_modules/abstract-level/abstract-snapshot.js +84 -0
- package/node_modules/abstract-level/index.d.ts +52 -0
- package/node_modules/abstract-level/index.js +9 -0
- package/node_modules/abstract-level/lib/abstract-sublevel-iterator.js +141 -0
- package/node_modules/abstract-level/lib/abstract-sublevel.js +290 -0
- package/node_modules/abstract-level/lib/common.js +33 -0
- package/node_modules/abstract-level/lib/default-chained-batch.js +29 -0
- package/node_modules/abstract-level/lib/default-kv-iterator.js +74 -0
- package/node_modules/abstract-level/lib/deferred-iterator.js +110 -0
- package/node_modules/abstract-level/lib/deferred-queue.js +84 -0
- package/node_modules/abstract-level/lib/errors.js +21 -0
- package/node_modules/abstract-level/lib/event-monitor.js +30 -0
- package/node_modules/abstract-level/lib/hooks.js +78 -0
- package/node_modules/abstract-level/lib/prefixes.js +21 -0
- package/node_modules/abstract-level/lib/prewrite-batch.js +96 -0
- package/node_modules/abstract-level/lib/range-options.js +26 -0
- package/node_modules/abstract-level/package.json +66 -0
- package/node_modules/abstract-level/test/async-iterator-test.js +132 -0
- package/node_modules/abstract-level/test/batch-test.js +214 -0
- package/node_modules/abstract-level/test/chained-batch-test.js +315 -0
- package/node_modules/abstract-level/test/clear-range-test.js +262 -0
- package/node_modules/abstract-level/test/clear-test.js +110 -0
- package/node_modules/abstract-level/test/common.js +90 -0
- package/node_modules/abstract-level/test/deferred-open-test.js +209 -0
- package/node_modules/abstract-level/test/del-test.js +65 -0
- package/node_modules/abstract-level/test/encoding-buffer-test.js +336 -0
- package/node_modules/abstract-level/test/encoding-custom-test.js +92 -0
- package/node_modules/abstract-level/test/encoding-decode-error-test.js +85 -0
- package/node_modules/abstract-level/test/encoding-json-test.js +75 -0
- package/node_modules/abstract-level/test/encoding-test.js +130 -0
- package/node_modules/abstract-level/test/events/write.js +132 -0
- package/node_modules/abstract-level/test/factory-test.js +36 -0
- package/node_modules/abstract-level/test/get-many-test.js +157 -0
- package/node_modules/abstract-level/test/get-sync-test.js +61 -0
- package/node_modules/abstract-level/test/get-test.js +83 -0
- package/node_modules/abstract-level/test/has-many-test.js +144 -0
- package/node_modules/abstract-level/test/has-test.js +81 -0
- package/node_modules/abstract-level/test/hooks/newsub.js +57 -0
- package/node_modules/abstract-level/test/hooks/postopen.js +229 -0
- package/node_modules/abstract-level/test/hooks/prewrite.js +816 -0
- package/node_modules/abstract-level/test/hooks/shared.js +38 -0
- package/node_modules/abstract-level/test/index.js +86 -0
- package/node_modules/abstract-level/test/iterator-explicit-snapshot-test.js +393 -0
- package/node_modules/abstract-level/test/iterator-no-snapshot-test.js +49 -0
- package/node_modules/abstract-level/test/iterator-range-test.js +277 -0
- package/node_modules/abstract-level/test/iterator-seek-test.js +335 -0
- package/node_modules/abstract-level/test/iterator-snapshot-test.js +56 -0
- package/node_modules/abstract-level/test/iterator-test.js +621 -0
- package/node_modules/abstract-level/test/manifest-test.js +21 -0
- package/node_modules/abstract-level/test/open-create-if-missing-test.js +39 -0
- package/node_modules/abstract-level/test/open-error-if-exists-test.js +25 -0
- package/node_modules/abstract-level/test/open-test.js +263 -0
- package/node_modules/abstract-level/test/put-get-del-test.js +97 -0
- package/node_modules/abstract-level/test/put-test.js +70 -0
- package/node_modules/abstract-level/test/self/abstract-iterator-test.js +182 -0
- package/node_modules/abstract-level/test/self/async-iterator-test.js +242 -0
- package/node_modules/abstract-level/test/self/attach-resource-test.js +74 -0
- package/node_modules/abstract-level/test/self/defer-test.js +140 -0
- package/node_modules/abstract-level/test/self/deferred-iterator-test.js +314 -0
- package/node_modules/abstract-level/test/self/deferred-operations-test.js +86 -0
- package/node_modules/abstract-level/test/self/deferred-queue-test.js +93 -0
- package/node_modules/abstract-level/test/self/encoding-test.js +391 -0
- package/node_modules/abstract-level/test/self/errors-test.js +11 -0
- package/node_modules/abstract-level/test/self/iterator-test.js +1050 -0
- package/node_modules/abstract-level/test/self/sublevel-test.js +1039 -0
- package/node_modules/abstract-level/test/self.js +905 -0
- package/node_modules/abstract-level/test/sublevel-test.js +209 -0
- package/node_modules/abstract-level/test/traits/closed.js +42 -0
- package/node_modules/abstract-level/test/traits/index.js +4 -0
- package/node_modules/abstract-level/test/traits/open.js +62 -0
- package/node_modules/abstract-level/test/util.js +275 -0
- package/node_modules/abstract-level/types/abstract-chained-batch.d.ts +124 -0
- package/node_modules/abstract-level/types/abstract-iterator.d.ts +241 -0
- package/node_modules/abstract-level/types/abstract-level.d.ts +636 -0
- package/node_modules/abstract-level/types/abstract-snapshot.d.ts +30 -0
- package/node_modules/abstract-level/types/abstract-sublevel.d.ts +76 -0
- package/node_modules/abstract-level/types/interfaces.d.ts +43 -0
- package/node_modules/base64-js/LICENSE +21 -0
- package/node_modules/base64-js/README.md +34 -0
- package/node_modules/base64-js/base64js.min.js +1 -0
- package/node_modules/base64-js/index.d.ts +3 -0
- package/node_modules/base64-js/index.js +150 -0
- package/node_modules/base64-js/package.json +47 -0
- package/node_modules/browser-level/CHANGELOG.md +44 -0
- package/node_modules/browser-level/LICENSE +21 -0
- package/node_modules/browser-level/README.md +124 -0
- package/node_modules/browser-level/UPGRADING.md +143 -0
- package/node_modules/browser-level/index.d.ts +108 -0
- package/node_modules/browser-level/index.js +323 -0
- package/node_modules/browser-level/iterator.js +239 -0
- package/node_modules/browser-level/package.json +48 -0
- package/node_modules/browser-level/util/clear.js +38 -0
- package/node_modules/browser-level/util/deserialize.js +17 -0
- package/node_modules/browser-level/util/key-range.js +20 -0
- package/node_modules/buffer/AUTHORS.md +73 -0
- package/node_modules/buffer/LICENSE +21 -0
- package/node_modules/buffer/README.md +410 -0
- package/node_modules/buffer/index.d.ts +194 -0
- package/node_modules/buffer/index.js +2106 -0
- package/node_modules/buffer/package.json +93 -0
- package/node_modules/classic-level/CHANGELOG.md +115 -0
- package/node_modules/classic-level/LICENSE +21 -0
- package/node_modules/classic-level/README.md +274 -0
- package/node_modules/classic-level/UPGRADING.md +131 -0
- package/node_modules/classic-level/binding.cc +2652 -0
- package/node_modules/classic-level/binding.gyp +71 -0
- package/node_modules/classic-level/binding.js +1 -0
- package/node_modules/classic-level/chained-batch.js +35 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/LICENSE +27 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/Makefile +424 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/build_detect_platform +256 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/autocompact_test.cc +118 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.cc +88 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.h +34 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c.cc +595 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c_test.c +390 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/corruption_test.cc +374 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_bench.cc +1020 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.cc +1568 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.h +212 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.cc +317 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.h +28 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_test.cc +2158 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.cc +140 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.h +230 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat_test.cc +112 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dumpfile.cc +225 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/fault_injection_test.cc +554 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.cc +144 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.h +85 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename_test.cc +123 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/leveldbutil.cc +64 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_format.h +35 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.cc +284 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.h +113 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_test.cc +591 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.cc +112 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.h +54 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.cc +145 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.h +89 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/recovery_test.cc +324 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/repair.cc +461 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist.h +384 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist_test.cc +378 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/snapshot.h +67 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.cc +127 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.h +61 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.cc +266 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.h +107 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit_test.cc +46 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.cc +1535 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.h +399 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set_test.cc +179 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch.cc +147 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_internal.h +50 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_test.cc +120 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.cc +398 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.h +20 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv_test.cc +241 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/c.h +290 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/cache.h +110 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/comparator.h +63 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/db.h +164 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/dumpfile.h +25 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/env.h +351 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/filter_policy.h +70 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/iterator.h +100 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/options.h +213 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/slice.h +109 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/status.h +112 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table.h +85 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table_builder.h +92 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/value_sink.h +26 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/write_batch.h +64 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue178_test.cc +92 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue200_test.cc +59 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/atomic_pointer.h +242 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port.h +21 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_example.h +141 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.cc +53 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.h +156 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix_sse.cc +129 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/thread_annotations.h +60 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/win/stdint.h +24 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.cc +268 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.h +44 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.cc +109 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.h +57 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.cc +111 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.h +68 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block_test.cc +128 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.cc +144 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.h +108 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator.cc +67 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator_wrapper.h +66 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.cc +197 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.h +26 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table.cc +285 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_builder.cc +270 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_test.cc +876 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.cc +182 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.h +34 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.cc +68 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.h +68 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena_test.cc +68 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom.cc +95 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom_test.cc +162 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache.cc +405 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache_test.cc +226 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.cc +194 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.h +104 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding_test.cc +196 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/comparator.cc +81 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.cc +350 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.h +45 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c_test.cc +72 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env.cc +100 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix.cc +695 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test.cc +66 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test_helper.h +28 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_test.cc +106 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/filter_policy.cc +11 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.cc +52 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.h +19 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash_test.cc +54 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.cc +139 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.h +42 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.cc +72 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.h +43 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/mutexlock.h +41 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/options.cc +30 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/posix_logger.h +98 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/random.h +64 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/status.cc +75 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.cc +77 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.h +138 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.cc +51 -0
- package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.h +63 -0
- package/node_modules/classic-level/deps/leveldb/leveldb.gyp +282 -0
- package/node_modules/classic-level/deps/leveldb/patches/001-value-sink.patch +164 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/atomic_pointer_win.h +48 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/env_win.cc +692 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.cc +36 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h +157 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h.bak +153 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/stdint-msvc2008.h +247 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar.h +45 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar_posix.cc +139 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.cc +79 -0
- package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.h +28 -0
- package/node_modules/classic-level/deps/snappy/freebsd/config.h +135 -0
- package/node_modules/classic-level/deps/snappy/freebsd/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/deps/snappy/linux/config.h +135 -0
- package/node_modules/classic-level/deps/snappy/linux/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/deps/snappy/mac/config.h +137 -0
- package/node_modules/classic-level/deps/snappy/mac/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/deps/snappy/openbsd/config.h +135 -0
- package/node_modules/classic-level/deps/snappy/openbsd/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/deps/snappy/snappy/COPYING +54 -0
- package/node_modules/classic-level/deps/snappy/snappy/cmake/SnappyConfig.cmake +1 -0
- package/node_modules/classic-level/deps/snappy/snappy/cmake/config.h.in +62 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-c.cc +90 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-c.h +138 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-internal.h +224 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.cc +104 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.h +182 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.cc +42 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.h +561 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-public.h.in +94 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-test.cc +612 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy-test.h +573 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy.cc +1515 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy.h +203 -0
- package/node_modules/classic-level/deps/snappy/snappy/snappy_unittest.cc +1410 -0
- package/node_modules/classic-level/deps/snappy/snappy.gyp +119 -0
- package/node_modules/classic-level/deps/snappy/solaris/config.h +135 -0
- package/node_modules/classic-level/deps/snappy/solaris/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/deps/snappy/win32/config.h +29 -0
- package/node_modules/classic-level/deps/snappy/win32/snappy-stubs-public.h +100 -0
- package/node_modules/classic-level/index.d.ts +343 -0
- package/node_modules/classic-level/index.js +311 -0
- package/node_modules/classic-level/iterator.js +122 -0
- package/node_modules/classic-level/package.json +70 -0
- package/node_modules/classic-level/prebuilds/android-arm/classic-level.armv7.node +0 -0
- package/node_modules/classic-level/prebuilds/android-arm64/classic-level.armv8.node +0 -0
- package/node_modules/classic-level/prebuilds/darwin-x64+arm64/classic-level.node +0 -0
- package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv6.node +0 -0
- package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv7.node +0 -0
- package/node_modules/classic-level/prebuilds/linux-arm64/classic-level.armv8.node +0 -0
- package/node_modules/classic-level/prebuilds/linux-x64/classic-level.musl.node +0 -0
- package/node_modules/classic-level/prebuilds/linux-x64/classic-level.node +0 -0
- package/node_modules/classic-level/prebuilds/win32-ia32/classic-level.node +0 -0
- package/node_modules/classic-level/prebuilds/win32-x64/classic-level.node +0 -0
- package/node_modules/ieee754/LICENSE +11 -0
- package/node_modules/ieee754/README.md +51 -0
- package/node_modules/ieee754/index.d.ts +10 -0
- package/node_modules/ieee754/index.js +85 -0
- package/node_modules/ieee754/package.json +52 -0
- package/node_modules/is-buffer/LICENSE +21 -0
- package/node_modules/is-buffer/README.md +54 -0
- package/node_modules/is-buffer/index.d.ts +2 -0
- package/node_modules/is-buffer/index.js +11 -0
- package/node_modules/is-buffer/package.json +65 -0
- package/node_modules/level/CHANGELOG.md +532 -0
- package/node_modules/level/LICENSE +21 -0
- package/node_modules/level/README.md +107 -0
- package/node_modules/level/UPGRADING.md +413 -0
- package/node_modules/level/browser.js +1 -0
- package/node_modules/level/index.d.ts +75 -0
- package/node_modules/level/index.js +1 -0
- package/node_modules/level/package.json +62 -0
- package/node_modules/level-supports/CHANGELOG.md +140 -0
- package/node_modules/level-supports/LICENSE +21 -0
- package/node_modules/level-supports/README.md +276 -0
- package/node_modules/level-supports/index.d.ts +137 -0
- package/node_modules/level-supports/index.js +26 -0
- package/node_modules/level-supports/package.json +46 -0
- package/node_modules/level-supports/test/cloneable.js +26 -0
- package/node_modules/level-supports/test/index.js +24 -0
- package/node_modules/level-supports/test/self.js +86 -0
- package/node_modules/level-supports/test/shape.js +23 -0
- package/node_modules/level-transcoder/CHANGELOG.md +15 -0
- package/node_modules/level-transcoder/LICENSE +21 -0
- package/node_modules/level-transcoder/README.md +214 -0
- package/node_modules/level-transcoder/UPGRADING.md +13 -0
- package/node_modules/level-transcoder/index.d.ts +27 -0
- package/node_modules/level-transcoder/index.js +158 -0
- package/node_modules/level-transcoder/lib/encoding.d.ts +158 -0
- package/node_modules/level-transcoder/lib/encoding.js +105 -0
- package/node_modules/level-transcoder/lib/encodings.d.ts +9 -0
- package/node_modules/level-transcoder/lib/encodings.js +135 -0
- package/node_modules/level-transcoder/lib/formats.d.ts +13 -0
- package/node_modules/level-transcoder/lib/formats.js +111 -0
- package/node_modules/level-transcoder/lib/text-endec.d.ts +6 -0
- package/node_modules/level-transcoder/lib/text-endec.js +19 -0
- package/node_modules/level-transcoder/package.json +46 -0
- package/node_modules/maybe-combine-errors/LICENSE.md +21 -0
- package/node_modules/maybe-combine-errors/README.md +94 -0
- package/node_modules/maybe-combine-errors/index.js +60 -0
- package/node_modules/maybe-combine-errors/package.json +33 -0
- package/node_modules/module-error/CHANGELOG.md +23 -0
- package/node_modules/module-error/LICENSE +21 -0
- package/node_modules/module-error/README.md +89 -0
- package/node_modules/module-error/index.d.ts +18 -0
- package/node_modules/module-error/index.js +22 -0
- package/node_modules/module-error/package.json +36 -0
- package/node_modules/napi-macros/LICENSE +21 -0
- package/node_modules/napi-macros/README.md +277 -0
- package/node_modules/napi-macros/index.js +1 -0
- package/node_modules/napi-macros/napi-macros.h +255 -0
- package/node_modules/napi-macros/package.json +22 -0
- package/node_modules/node-gyp-build/LICENSE +21 -0
- package/node_modules/node-gyp-build/README.md +58 -0
- package/node_modules/node-gyp-build/SECURITY.md +5 -0
- package/node_modules/node-gyp-build/bin.js +84 -0
- package/node_modules/node-gyp-build/build-test.js +19 -0
- package/node_modules/node-gyp-build/index.js +6 -0
- package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
- package/node_modules/node-gyp-build/optional.js +7 -0
- package/node_modules/node-gyp-build/package.json +43 -0
- package/package.json +6 -3
- package/{readlineWorkspace-5P24E57Z.js → readlineWorkspace-LO6ZLFTO.js} +1368 -1305
- package/{runAgentClientLoop-AXFKKSVY.js → runAgentClientLoop-KAYGKVTK.js} +11 -11
- package/{runtimeDoctorCommands-3USD722U.js → runtimeDoctorCommands-ID23PNNZ.js} +28 -0
- package/{spaceCommands-TRABD7YR.js → spaceCommands-FA6RCZ2Y.js} +3 -3
- package/{streamAgentChatTurn-RG7NWZWY.js → streamAgentChatTurn-DFNDU2UY.js} +12 -12
- package/{tools-GIXG5YIO.js → tools-6HKH75NT.js} +8 -8
- package/{tuiSummaryLlmCaller-RVWN63CP.js → tuiSummaryLlmCaller-CFFVXQWX.js} +1 -1
- 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_
|