nolo-cli 0.108.0-alpha.2 → 0.108.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 (606) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-BY3P5LBB.js → _executeModel-T7PIVJIW.js} +128 -83
  3. package/action-RHUT4OHH.js +23 -0
  4. package/{addContentAction-MB2HHMDZ.js → addContentAction-BQ3LJLUW.js} +19 -13
  5. package/{addDialogAgentAction-MCEABSBA.js → addDialogAgentAction-B6X7BXR4.js} +24 -20
  6. package/{agentDeleteCommand-66KXCSRR.js → agentDeleteCommand-VIDCZAFG.js} +154 -68
  7. package/{agentEmailCommands-63UTONDK.js → agentEmailCommands-PCHDY4ZP.js} +125 -105
  8. package/{agentGrantCommands-M3XFO6EN.js → agentGrantCommands-HOJ3JBBQ.js} +3 -3
  9. package/agentListCommands-QNUAN3YH.js +800 -0
  10. package/{agentMachineCommands-Z6RGPZSG.js → agentMachineCommands-C2TMTQNU.js} +54 -58
  11. package/{agentProviderCommands-X3UNW77C.js → agentProviderCommands-7PCGR77I.js} +97 -2
  12. package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-7GCDM4BK.js} +7 -7
  13. package/agentRecordCommands-T4XAUFF5.js +149 -0
  14. package/agentRunCommand-T3AW43I6.js +179 -0
  15. package/{agentRunControl-AVJR4JW4.js → agentRunControl-2CDZNHXV.js} +10 -2
  16. package/{agentRuntimeLocal-E67CTV45.js → agentRuntimeLocal-SQUDRZWE.js} +41 -46
  17. package/{agentSlice-DG5TIQHE.js → agentSlice-HBGFNXUG.js} +22 -16
  18. package/{appDeleteCommands-Z36CLGUK.js → appDeleteCommands-CLLYGEBC.js} +55 -56
  19. package/{appDeployCommands-ECMUWG6S.js → appDeployCommands-HY2NBNDQ.js} +64 -60
  20. package/{appDeployStatusCommands-CL24TDMA.js → appDeployStatusCommands-SGO5GEXH.js} +53 -53
  21. package/{appGetCommands-ITHGOYGJ.js → appGetCommands-ZPYK2N5D.js} +53 -53
  22. package/{appListCommands-EEOSI6RC.js → appListCommands-O2BHIMKS.js} +54 -56
  23. package/{authCommand-HGP2XTKC.js → authCommand-GUIREPHK.js} +132 -83
  24. package/{authCommands-RGOGCPP6.js → authCommands-K3BDSTJ4.js} +10 -7
  25. package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-MUOUTRNJ.js} +13 -10
  26. package/{chromeCommands-FZYAU75D.js → chromeCommands-Z2WRJB7O.js} +290 -38
  27. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-YWYXZTIR.js} +157 -23
  28. package/{chunk-2F7RJC6L.js → chunk-2C47W7IJ.js} +1 -1
  29. package/chunk-2DRYS3G3.js +13941 -0
  30. package/{chunk-VLTIYV3X.js → chunk-2ECUZDEL.js} +37 -11
  31. package/{chunk-LPIYPEME.js → chunk-2FY3GHBV.js} +1449 -1094
  32. package/{chunk-ALXHV7NK.js → chunk-2GGXHQIW.js} +43 -4
  33. package/{chunk-AHAHBQMU.js → chunk-2OMUAIKR.js} +2 -2
  34. package/{chunk-DHDMC6FO.js → chunk-3CZM6HGQ.js} +53 -23
  35. package/{chunk-BNGW5ASC.js → chunk-3LI5UCTU.js} +23 -3
  36. package/{chunk-FDTR4QJ6.js → chunk-3MZAGMYY.js} +48 -1
  37. package/chunk-3PVYUPXK.js +40 -0
  38. package/{chunk-FV3JEYR3.js → chunk-3SK3J3IF.js} +69 -10
  39. package/chunk-4LCOCOR5.js +50 -0
  40. package/{chunk-V7E4PXQD.js → chunk-4MSYSHZD.js} +15 -7
  41. package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
  42. package/{chunk-MP64VFGD.js → chunk-4XEYAFLY.js} +60 -18
  43. package/chunk-4YRTZIVN.js +871 -0
  44. package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
  45. package/{chunk-N7J63Q6C.js → chunk-56GBUMO5.js} +10 -1
  46. package/chunk-5MMAK75Q.js +15 -0
  47. package/{chunk-KZJP33ZK.js → chunk-5WLADF62.js} +90 -36
  48. package/chunk-5XN3OSCT.js +164 -0
  49. package/{chunk-T3GEOSRJ.js → chunk-5YJWHTKD.js} +69 -57
  50. package/chunk-6CCAXGFK.js +1712 -0
  51. package/{chunk-42V6BK2E.js → chunk-6MXDOUMH.js} +18 -36
  52. package/{chunk-QOKAKDPE.js → chunk-6Q7UTJKR.js} +6 -94
  53. package/{chunk-J4MOO56S.js → chunk-6VRWNU5J.js} +10 -2
  54. package/{chunk-IQPFGYO3.js → chunk-726TCFLQ.js} +5 -5
  55. package/{chunk-CW67PN7L.js → chunk-7B3BVGU3.js} +61 -11
  56. package/chunk-7DPNBQSV.js +9 -0
  57. package/{chunk-LWKP7AWH.js → chunk-A337PRRR.js} +41 -17
  58. package/chunk-AGIM7IMJ.js +147 -0
  59. package/chunk-AI7XJMMQ.js +1858 -0
  60. package/{chunk-ABQYVJBJ.js → chunk-AIZE5TDM.js} +3 -3
  61. package/{chunk-LJ5VW2UJ.js → chunk-ALKCVCA5.js} +4 -4
  62. package/{chunk-5UTFL4QJ.js → chunk-APO5TOXO.js} +1 -1
  63. package/{chunk-E4MARS3Q.js → chunk-AU7AXHUL.js} +1 -1
  64. package/{chunk-DOTZ5GTO.js → chunk-AWYWIWTU.js} +310 -95
  65. package/chunk-B77W7P7J.js +95 -0
  66. package/{chunk-PBA4UJBK.js → chunk-BFYDNHYW.js} +12 -12
  67. package/{chunk-QTGQ2LTL.js → chunk-BIAETTOB.js} +5 -9
  68. package/{chunk-OIVSQH2O.js → chunk-CGEK73JN.js} +311 -12
  69. package/chunk-CHOZJMJS.js +78 -0
  70. package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
  71. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  72. package/chunk-EYLGAEB4.js +784 -0
  73. package/{chunk-3BMYXEUW.js → chunk-F2UJW3EK.js} +1 -1
  74. package/{chunk-RVE4DCV3.js → chunk-FBLRSLZH.js} +26 -31
  75. package/{chunk-P5EVSOPA.js → chunk-FWY6BHIJ.js} +363 -248
  76. package/{chunk-4MK3I7Y4.js → chunk-G23MQWLJ.js} +7 -128
  77. package/chunk-G6OOUQWJ.js +417 -0
  78. package/{chunk-WV42OMV7.js → chunk-GHZ2H2HJ.js} +11 -15
  79. package/chunk-I42VC5KR.js +15 -0
  80. package/{chunk-H4AHY5BU.js → chunk-IFALJPEX.js} +69 -20
  81. package/{chunk-O6OSWFZQ.js → chunk-IHPDK6UD.js} +6 -0
  82. package/{chunk-UKWGR5SS.js → chunk-IJERIUXS.js} +242 -1146
  83. package/chunk-IN5UVHHP.js +843 -0
  84. package/{chunk-QDSINZM3.js → chunk-IXH3HKY2.js} +1 -22
  85. package/{chunk-SYXOBWOC.js → chunk-JGLKZGGZ.js} +124 -703
  86. package/chunk-JJM3WS6W.js +132 -0
  87. package/{chunk-TR22GEUU.js → chunk-JKDL7BRF.js} +20 -11
  88. package/chunk-JONVI6DK.js +593 -0
  89. package/{chunk-SH43IESU.js → chunk-KQ7DAEZ7.js} +202 -32
  90. package/chunk-KWEDNOZZ.js +7546 -0
  91. package/{chunk-6OZ36FXI.js → chunk-KY6GPQ7O.js} +36 -12
  92. package/{chunk-RZGLXO2B.js → chunk-L5YKEQLD.js} +1715 -451
  93. package/{chunk-MRIHM22T.js → chunk-LAVSW2C2.js} +77 -144
  94. package/{chunk-HSSRGGXJ.js → chunk-LNEKN523.js} +10 -7
  95. package/chunk-LWLNLZC5.js +265 -0
  96. package/{chunk-YTLRHRH3.js → chunk-MDOZSLDE.js} +17 -15
  97. package/{chunk-I3TQJXQ7.js → chunk-MHD5JBSS.js} +131 -10
  98. package/{chunk-QU7KDSZX.js → chunk-MW533QT3.js} +190 -8
  99. package/{chunk-4NNTATRH.js → chunk-NLEJWKF5.js} +10394 -8549
  100. package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
  101. package/{chunk-GQBOR3G6.js → chunk-NN4UUYGB.js} +18 -4
  102. package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
  103. package/chunk-OKARGYFT.js +15 -0
  104. package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
  105. package/{chunk-Z5625XML.js → chunk-OYBAT7RT.js} +113 -17
  106. package/chunk-P3SFAHIL.js +134 -0
  107. package/{chunk-XD2MJFUG.js → chunk-PBGO5AFD.js} +1 -1
  108. package/{chunk-EYAQT56M.js → chunk-PFEK4SA2.js} +13 -10
  109. package/{chunk-Z77CRGTW.js → chunk-PHHFVGOJ.js} +1 -1
  110. package/{chunk-3VNWWVKB.js → chunk-PJNFNEJE.js} +114 -28
  111. package/{chunk-HVURBGF3.js → chunk-PWRS2SU2.js} +27 -9
  112. package/chunk-QFEW2ULV.js +42 -0
  113. package/{chunk-IIVGDG4I.js → chunk-QLQ573SU.js} +124 -77
  114. package/chunk-QQ56R7KS.js +88 -0
  115. package/{chunk-PWBDVI4R.js → chunk-QRFI5NHO.js} +269 -141
  116. package/chunk-QYPE3TS3.js +43 -0
  117. package/{chunk-VMFTFOWF.js → chunk-RLRYVSCD.js} +31 -14
  118. package/{chunk-VRTTFDBM.js → chunk-RNNWTMKT.js} +56 -63
  119. package/{chunk-JRQFUXY7.js → chunk-RRQQAG7W.js} +93 -24
  120. package/chunk-SJ3QFSQS.js +1147 -0
  121. package/{chunk-Q67DOFOO.js → chunk-SZC4REES.js} +212 -105
  122. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  123. package/{chunk-GNCCNNZD.js → chunk-TSBCYK5F.js} +7 -7
  124. package/chunk-TY3TIUJK.js +89 -0
  125. package/chunk-U4STABYN.js +81 -0
  126. package/chunk-UEILX4EV.js +15 -0
  127. package/{chunk-AODJ7WSF.js → chunk-UIYVU3S4.js} +90 -79
  128. package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
  129. package/{chunk-7S4YWN7P.js → chunk-V2UPLOXT.js} +4 -4
  130. package/{chunk-LS2ZANRJ.js → chunk-V6WXGTUJ.js} +1 -1
  131. package/{chunk-6YTOJY35.js → chunk-VBG7GWWR.js} +253 -8
  132. package/{chunk-DVINR3PL.js → chunk-VEA7H5FG.js} +3 -3
  133. package/chunk-VIWDGTDA.js +8 -0
  134. package/chunk-VJVNU77E.js +83 -0
  135. package/{chunk-EADNWBAZ.js → chunk-VP3BINY7.js} +13 -0
  136. package/{chunk-HKNXJGEC.js → chunk-VSPO4S33.js} +47 -192
  137. package/{chunk-PHXD6JTX.js → chunk-W2N3ZC4P.js} +7 -7
  138. package/{chunk-EOARMOVD.js → chunk-W4S6OTSC.js} +6 -3
  139. package/{chunk-6Z7MY3V7.js → chunk-WCQNEMXG.js} +3 -3
  140. package/chunk-WJZOQR2J.js +151 -0
  141. package/{chunk-BFDFRLLQ.js → chunk-WW2USJ3C.js} +3 -3
  142. package/chunk-X5BIY654.js +29 -0
  143. package/{chunk-Q554LLSI.js → chunk-XETG4RIX.js} +5 -5
  144. package/{chunk-3L2WKC3W.js → chunk-XPWGOTBQ.js} +8 -1
  145. package/{chunk-2OASQKU2.js → chunk-XRXYRHE5.js} +187 -16
  146. package/{chunk-JEDZAO7L.js → chunk-YBNHPX4S.js} +257 -37
  147. package/{chunk-JPGCXHNM.js → chunk-YLMMECCH.js} +1 -1
  148. package/{chunk-6D6VBVEW.js → chunk-YVTZMLXZ.js} +96 -25
  149. package/{chunk-G4VIHCGJ.js → chunk-ZR5RAAVI.js} +35 -30
  150. package/chunk-ZRAU6T47.js +56 -0
  151. package/{chunk-ONXOABJR.js → chunk-ZWQUWF6W.js} +36 -1
  152. package/{cliExecutor-HG3S345O.js → cliExecutor-AWYR3T33.js} +1 -1
  153. package/commandRegistry-3XWUYELA.js +839 -0
  154. package/contentThunks-ALRPUDRE.js +83 -0
  155. package/{cooldownCommands-REAWYVTY.js → cooldownCommands-JFKTYS2D.js} +2 -2
  156. package/{createAgentAutomationAction-7HX7KBES.js → createAgentAutomationAction-XXRXCDFJ.js} +51 -43
  157. package/createDialogAction-FVSAW7WZ.js +75 -0
  158. package/{createPageAction-QWNMGO3O.js → createPageAction-RT6DPYP5.js} +60 -51
  159. package/{chunk-UDIIVXKA.js → cursorProvider-YGGNMVWX.js} +2822 -10269
  160. package/{dbSlice-A6C6H32X.js → dbSlice-JQFBMJ55.js} +18 -12
  161. package/{deleteFile-YG6QMJLU.js → deleteFile-6JWDDRVP.js} +9 -5
  162. package/dialogCommands-K734RXEQ.js +108 -0
  163. package/{dialogSlice-P2K47T3P.js → dialogSlice-GFCT74GI.js} +66 -41
  164. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  165. package/{docCreateCommands-43JKQEIH.js → docCreateCommands-N3KPGP4A.js} +51 -54
  166. package/{docDeleteCommands-RL6D46XE.js → docDeleteCommands-4CR4TXZ7.js} +53 -55
  167. package/{docReadCommands-TOEUEQDG.js → docReadCommands-62XK57VS.js} +50 -53
  168. package/{docStore-3AHKTJRI.js → docStore-Z7KBPFXX.js} +24 -15
  169. package/{docUpdateCommands-FWU5G2XB.js → docUpdateCommands-DRAAWIDC.js} +51 -54
  170. package/{fetchMessages-EIU7UFFK.js → fetchMessages-LM6OMMQQ.js} +5 -4
  171. package/{getPricing-LUSEABA6.js → getPricing-XDF4OLTC.js} +6 -6
  172. package/handleSendMessageAction-NRKUSHK2.js +1849 -0
  173. package/index.js +91 -884
  174. package/{lib-FRRS27KN.js → lib-PU2G2MSO.js} +523 -191
  175. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-BOETO2TD.js} +2 -2
  176. package/localRuntimeAdapter-S6UEEOSA.js +239 -0
  177. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-YSE6NH7B.js} +12 -9
  178. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-7FBKDEQY.js} +1 -1
  179. package/{machineCommands-TTKK4F7C.js → machineCommands-IQYHOOVH.js} +493 -152
  180. package/machineWsRunDispatch-3ZUMZUGP.js +164 -0
  181. package/{memberThunks-P2ECUJ56.js → memberThunks-Y3Q7GZTG.js} +24 -17
  182. package/{models-T3SG6MJ5.js → models-6V4ZCHEE.js} +2 -2
  183. package/node_modules/abstract-level/CHANGELOG.md +150 -0
  184. package/node_modules/abstract-level/LICENSE +21 -0
  185. package/node_modules/abstract-level/README.md +1957 -0
  186. package/node_modules/abstract-level/UPGRADING.md +669 -0
  187. package/node_modules/abstract-level/abstract-chained-batch.js +397 -0
  188. package/node_modules/abstract-level/abstract-iterator.js +404 -0
  189. package/node_modules/abstract-level/abstract-level.js +1127 -0
  190. package/node_modules/abstract-level/abstract-snapshot.js +84 -0
  191. package/node_modules/abstract-level/index.d.ts +52 -0
  192. package/node_modules/abstract-level/index.js +9 -0
  193. package/node_modules/abstract-level/lib/abstract-sublevel-iterator.js +141 -0
  194. package/node_modules/abstract-level/lib/abstract-sublevel.js +290 -0
  195. package/node_modules/abstract-level/lib/common.js +33 -0
  196. package/node_modules/abstract-level/lib/default-chained-batch.js +29 -0
  197. package/node_modules/abstract-level/lib/default-kv-iterator.js +74 -0
  198. package/node_modules/abstract-level/lib/deferred-iterator.js +110 -0
  199. package/node_modules/abstract-level/lib/deferred-queue.js +84 -0
  200. package/node_modules/abstract-level/lib/errors.js +21 -0
  201. package/node_modules/abstract-level/lib/event-monitor.js +30 -0
  202. package/node_modules/abstract-level/lib/hooks.js +78 -0
  203. package/node_modules/abstract-level/lib/prefixes.js +21 -0
  204. package/node_modules/abstract-level/lib/prewrite-batch.js +96 -0
  205. package/node_modules/abstract-level/lib/range-options.js +26 -0
  206. package/node_modules/abstract-level/package.json +66 -0
  207. package/node_modules/abstract-level/test/async-iterator-test.js +132 -0
  208. package/node_modules/abstract-level/test/batch-test.js +214 -0
  209. package/node_modules/abstract-level/test/chained-batch-test.js +315 -0
  210. package/node_modules/abstract-level/test/clear-range-test.js +262 -0
  211. package/node_modules/abstract-level/test/clear-test.js +110 -0
  212. package/node_modules/abstract-level/test/common.js +90 -0
  213. package/node_modules/abstract-level/test/deferred-open-test.js +209 -0
  214. package/node_modules/abstract-level/test/del-test.js +65 -0
  215. package/node_modules/abstract-level/test/encoding-buffer-test.js +336 -0
  216. package/node_modules/abstract-level/test/encoding-custom-test.js +92 -0
  217. package/node_modules/abstract-level/test/encoding-decode-error-test.js +85 -0
  218. package/node_modules/abstract-level/test/encoding-json-test.js +75 -0
  219. package/node_modules/abstract-level/test/encoding-test.js +130 -0
  220. package/node_modules/abstract-level/test/events/write.js +132 -0
  221. package/node_modules/abstract-level/test/factory-test.js +36 -0
  222. package/node_modules/abstract-level/test/get-many-test.js +157 -0
  223. package/node_modules/abstract-level/test/get-sync-test.js +61 -0
  224. package/node_modules/abstract-level/test/get-test.js +83 -0
  225. package/node_modules/abstract-level/test/has-many-test.js +144 -0
  226. package/node_modules/abstract-level/test/has-test.js +81 -0
  227. package/node_modules/abstract-level/test/hooks/newsub.js +57 -0
  228. package/node_modules/abstract-level/test/hooks/postopen.js +229 -0
  229. package/node_modules/abstract-level/test/hooks/prewrite.js +816 -0
  230. package/node_modules/abstract-level/test/hooks/shared.js +38 -0
  231. package/node_modules/abstract-level/test/index.js +86 -0
  232. package/node_modules/abstract-level/test/iterator-explicit-snapshot-test.js +393 -0
  233. package/node_modules/abstract-level/test/iterator-no-snapshot-test.js +49 -0
  234. package/node_modules/abstract-level/test/iterator-range-test.js +277 -0
  235. package/node_modules/abstract-level/test/iterator-seek-test.js +335 -0
  236. package/node_modules/abstract-level/test/iterator-snapshot-test.js +56 -0
  237. package/node_modules/abstract-level/test/iterator-test.js +621 -0
  238. package/node_modules/abstract-level/test/manifest-test.js +21 -0
  239. package/node_modules/abstract-level/test/open-create-if-missing-test.js +39 -0
  240. package/node_modules/abstract-level/test/open-error-if-exists-test.js +25 -0
  241. package/node_modules/abstract-level/test/open-test.js +263 -0
  242. package/node_modules/abstract-level/test/put-get-del-test.js +97 -0
  243. package/node_modules/abstract-level/test/put-test.js +70 -0
  244. package/node_modules/abstract-level/test/self/abstract-iterator-test.js +182 -0
  245. package/node_modules/abstract-level/test/self/async-iterator-test.js +242 -0
  246. package/node_modules/abstract-level/test/self/attach-resource-test.js +74 -0
  247. package/node_modules/abstract-level/test/self/defer-test.js +140 -0
  248. package/node_modules/abstract-level/test/self/deferred-iterator-test.js +314 -0
  249. package/node_modules/abstract-level/test/self/deferred-operations-test.js +86 -0
  250. package/node_modules/abstract-level/test/self/deferred-queue-test.js +93 -0
  251. package/node_modules/abstract-level/test/self/encoding-test.js +391 -0
  252. package/node_modules/abstract-level/test/self/errors-test.js +11 -0
  253. package/node_modules/abstract-level/test/self/iterator-test.js +1050 -0
  254. package/node_modules/abstract-level/test/self/sublevel-test.js +1039 -0
  255. package/node_modules/abstract-level/test/self.js +905 -0
  256. package/node_modules/abstract-level/test/sublevel-test.js +209 -0
  257. package/node_modules/abstract-level/test/traits/closed.js +42 -0
  258. package/node_modules/abstract-level/test/traits/index.js +4 -0
  259. package/node_modules/abstract-level/test/traits/open.js +62 -0
  260. package/node_modules/abstract-level/test/util.js +275 -0
  261. package/node_modules/abstract-level/types/abstract-chained-batch.d.ts +124 -0
  262. package/node_modules/abstract-level/types/abstract-iterator.d.ts +241 -0
  263. package/node_modules/abstract-level/types/abstract-level.d.ts +636 -0
  264. package/node_modules/abstract-level/types/abstract-snapshot.d.ts +30 -0
  265. package/node_modules/abstract-level/types/abstract-sublevel.d.ts +76 -0
  266. package/node_modules/abstract-level/types/interfaces.d.ts +43 -0
  267. package/node_modules/base64-js/LICENSE +21 -0
  268. package/node_modules/base64-js/README.md +34 -0
  269. package/node_modules/base64-js/base64js.min.js +1 -0
  270. package/node_modules/base64-js/index.d.ts +3 -0
  271. package/node_modules/base64-js/index.js +150 -0
  272. package/node_modules/base64-js/package.json +47 -0
  273. package/node_modules/browser-level/CHANGELOG.md +44 -0
  274. package/node_modules/browser-level/LICENSE +21 -0
  275. package/node_modules/browser-level/README.md +124 -0
  276. package/node_modules/browser-level/UPGRADING.md +143 -0
  277. package/node_modules/browser-level/index.d.ts +108 -0
  278. package/node_modules/browser-level/index.js +323 -0
  279. package/node_modules/browser-level/iterator.js +239 -0
  280. package/node_modules/browser-level/package.json +48 -0
  281. package/node_modules/browser-level/util/clear.js +38 -0
  282. package/node_modules/browser-level/util/deserialize.js +17 -0
  283. package/node_modules/browser-level/util/key-range.js +20 -0
  284. package/node_modules/buffer/AUTHORS.md +73 -0
  285. package/node_modules/buffer/LICENSE +21 -0
  286. package/node_modules/buffer/README.md +410 -0
  287. package/node_modules/buffer/index.d.ts +194 -0
  288. package/node_modules/buffer/index.js +2106 -0
  289. package/node_modules/buffer/package.json +93 -0
  290. package/node_modules/classic-level/CHANGELOG.md +115 -0
  291. package/node_modules/classic-level/LICENSE +21 -0
  292. package/node_modules/classic-level/README.md +274 -0
  293. package/node_modules/classic-level/UPGRADING.md +131 -0
  294. package/node_modules/classic-level/binding.cc +2652 -0
  295. package/node_modules/classic-level/binding.gyp +71 -0
  296. package/node_modules/classic-level/binding.js +1 -0
  297. package/node_modules/classic-level/chained-batch.js +35 -0
  298. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/LICENSE +27 -0
  299. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/Makefile +424 -0
  300. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/build_detect_platform +256 -0
  301. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/autocompact_test.cc +118 -0
  302. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.cc +88 -0
  303. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/builder.h +34 -0
  304. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c.cc +595 -0
  305. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/c_test.c +390 -0
  306. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/corruption_test.cc +374 -0
  307. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_bench.cc +1020 -0
  308. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.cc +1568 -0
  309. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_impl.h +212 -0
  310. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.cc +317 -0
  311. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_iter.h +28 -0
  312. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/db_test.cc +2158 -0
  313. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.cc +140 -0
  314. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat.h +230 -0
  315. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dbformat_test.cc +112 -0
  316. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/dumpfile.cc +225 -0
  317. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/fault_injection_test.cc +554 -0
  318. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.cc +144 -0
  319. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename.h +85 -0
  320. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/filename_test.cc +123 -0
  321. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/leveldbutil.cc +64 -0
  322. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_format.h +35 -0
  323. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.cc +284 -0
  324. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_reader.h +113 -0
  325. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_test.cc +591 -0
  326. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.cc +112 -0
  327. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/log_writer.h +54 -0
  328. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.cc +145 -0
  329. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/memtable.h +89 -0
  330. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/recovery_test.cc +324 -0
  331. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/repair.cc +461 -0
  332. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist.h +384 -0
  333. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/skiplist_test.cc +378 -0
  334. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/snapshot.h +67 -0
  335. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.cc +127 -0
  336. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/table_cache.h +61 -0
  337. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.cc +266 -0
  338. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit.h +107 -0
  339. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_edit_test.cc +46 -0
  340. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.cc +1535 -0
  341. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set.h +399 -0
  342. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/version_set_test.cc +179 -0
  343. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch.cc +147 -0
  344. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_internal.h +50 -0
  345. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/db/write_batch_test.cc +120 -0
  346. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.cc +398 -0
  347. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.h +20 -0
  348. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/helpers/memenv/memenv_test.cc +241 -0
  349. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/c.h +290 -0
  350. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/cache.h +110 -0
  351. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/comparator.h +63 -0
  352. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/db.h +164 -0
  353. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/dumpfile.h +25 -0
  354. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/env.h +351 -0
  355. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/filter_policy.h +70 -0
  356. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/iterator.h +100 -0
  357. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/options.h +213 -0
  358. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/slice.h +109 -0
  359. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/status.h +112 -0
  360. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table.h +85 -0
  361. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/table_builder.h +92 -0
  362. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/value_sink.h +26 -0
  363. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/include/leveldb/write_batch.h +64 -0
  364. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue178_test.cc +92 -0
  365. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/issues/issue200_test.cc +59 -0
  366. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/atomic_pointer.h +242 -0
  367. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port.h +21 -0
  368. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_example.h +141 -0
  369. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.cc +53 -0
  370. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix.h +156 -0
  371. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/port_posix_sse.cc +129 -0
  372. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/thread_annotations.h +60 -0
  373. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/port/win/stdint.h +24 -0
  374. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.cc +268 -0
  375. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block.h +44 -0
  376. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.cc +109 -0
  377. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/block_builder.h +57 -0
  378. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.cc +111 -0
  379. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block.h +68 -0
  380. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/filter_block_test.cc +128 -0
  381. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.cc +144 -0
  382. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/format.h +108 -0
  383. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator.cc +67 -0
  384. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/iterator_wrapper.h +66 -0
  385. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.cc +197 -0
  386. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/merger.h +26 -0
  387. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table.cc +285 -0
  388. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_builder.cc +270 -0
  389. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/table_test.cc +876 -0
  390. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.cc +182 -0
  391. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/table/two_level_iterator.h +34 -0
  392. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.cc +68 -0
  393. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena.h +68 -0
  394. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/arena_test.cc +68 -0
  395. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom.cc +95 -0
  396. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/bloom_test.cc +162 -0
  397. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache.cc +405 -0
  398. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/cache_test.cc +226 -0
  399. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.cc +194 -0
  400. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding.h +104 -0
  401. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/coding_test.cc +196 -0
  402. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/comparator.cc +81 -0
  403. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.cc +350 -0
  404. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c.h +45 -0
  405. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/crc32c_test.cc +72 -0
  406. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env.cc +100 -0
  407. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix.cc +695 -0
  408. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test.cc +66 -0
  409. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_posix_test_helper.h +28 -0
  410. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/env_test.cc +106 -0
  411. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/filter_policy.cc +11 -0
  412. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.cc +52 -0
  413. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash.h +19 -0
  414. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/hash_test.cc +54 -0
  415. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.cc +139 -0
  416. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/histogram.h +42 -0
  417. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.cc +72 -0
  418. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/logging.h +43 -0
  419. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/mutexlock.h +41 -0
  420. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/options.cc +30 -0
  421. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/posix_logger.h +98 -0
  422. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/random.h +64 -0
  423. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/status.cc +75 -0
  424. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.cc +77 -0
  425. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testharness.h +138 -0
  426. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.cc +51 -0
  427. package/node_modules/classic-level/deps/leveldb/leveldb-1.20/util/testutil.h +63 -0
  428. package/node_modules/classic-level/deps/leveldb/leveldb.gyp +282 -0
  429. package/node_modules/classic-level/deps/leveldb/patches/001-value-sink.patch +164 -0
  430. package/node_modules/classic-level/deps/leveldb/port-libuv/atomic_pointer_win.h +48 -0
  431. package/node_modules/classic-level/deps/leveldb/port-libuv/env_win.cc +692 -0
  432. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.cc +36 -0
  433. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h +157 -0
  434. package/node_modules/classic-level/deps/leveldb/port-libuv/port_uv.h.bak +153 -0
  435. package/node_modules/classic-level/deps/leveldb/port-libuv/stdint-msvc2008.h +247 -0
  436. package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar.h +45 -0
  437. package/node_modules/classic-level/deps/leveldb/port-libuv/uv_condvar_posix.cc +139 -0
  438. package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.cc +79 -0
  439. package/node_modules/classic-level/deps/leveldb/port-libuv/win_logger.h +28 -0
  440. package/node_modules/classic-level/deps/snappy/freebsd/config.h +135 -0
  441. package/node_modules/classic-level/deps/snappy/freebsd/snappy-stubs-public.h +100 -0
  442. package/node_modules/classic-level/deps/snappy/linux/config.h +135 -0
  443. package/node_modules/classic-level/deps/snappy/linux/snappy-stubs-public.h +100 -0
  444. package/node_modules/classic-level/deps/snappy/mac/config.h +137 -0
  445. package/node_modules/classic-level/deps/snappy/mac/snappy-stubs-public.h +100 -0
  446. package/node_modules/classic-level/deps/snappy/openbsd/config.h +135 -0
  447. package/node_modules/classic-level/deps/snappy/openbsd/snappy-stubs-public.h +100 -0
  448. package/node_modules/classic-level/deps/snappy/snappy/COPYING +54 -0
  449. package/node_modules/classic-level/deps/snappy/snappy/cmake/SnappyConfig.cmake +1 -0
  450. package/node_modules/classic-level/deps/snappy/snappy/cmake/config.h.in +62 -0
  451. package/node_modules/classic-level/deps/snappy/snappy/snappy-c.cc +90 -0
  452. package/node_modules/classic-level/deps/snappy/snappy/snappy-c.h +138 -0
  453. package/node_modules/classic-level/deps/snappy/snappy/snappy-internal.h +224 -0
  454. package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.cc +104 -0
  455. package/node_modules/classic-level/deps/snappy/snappy/snappy-sinksource.h +182 -0
  456. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.cc +42 -0
  457. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-internal.h +561 -0
  458. package/node_modules/classic-level/deps/snappy/snappy/snappy-stubs-public.h.in +94 -0
  459. package/node_modules/classic-level/deps/snappy/snappy/snappy-test.cc +612 -0
  460. package/node_modules/classic-level/deps/snappy/snappy/snappy-test.h +573 -0
  461. package/node_modules/classic-level/deps/snappy/snappy/snappy.cc +1515 -0
  462. package/node_modules/classic-level/deps/snappy/snappy/snappy.h +203 -0
  463. package/node_modules/classic-level/deps/snappy/snappy/snappy_unittest.cc +1410 -0
  464. package/node_modules/classic-level/deps/snappy/snappy.gyp +119 -0
  465. package/node_modules/classic-level/deps/snappy/solaris/config.h +135 -0
  466. package/node_modules/classic-level/deps/snappy/solaris/snappy-stubs-public.h +100 -0
  467. package/node_modules/classic-level/deps/snappy/win32/config.h +29 -0
  468. package/node_modules/classic-level/deps/snappy/win32/snappy-stubs-public.h +100 -0
  469. package/node_modules/classic-level/index.d.ts +343 -0
  470. package/node_modules/classic-level/index.js +311 -0
  471. package/node_modules/classic-level/iterator.js +122 -0
  472. package/node_modules/classic-level/package.json +70 -0
  473. package/node_modules/classic-level/prebuilds/android-arm/classic-level.armv7.node +0 -0
  474. package/node_modules/classic-level/prebuilds/android-arm64/classic-level.armv8.node +0 -0
  475. package/node_modules/classic-level/prebuilds/darwin-x64+arm64/classic-level.node +0 -0
  476. package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv6.node +0 -0
  477. package/node_modules/classic-level/prebuilds/linux-arm/classic-level.armv7.node +0 -0
  478. package/node_modules/classic-level/prebuilds/linux-arm64/classic-level.armv8.node +0 -0
  479. package/node_modules/classic-level/prebuilds/linux-x64/classic-level.musl.node +0 -0
  480. package/node_modules/classic-level/prebuilds/linux-x64/classic-level.node +0 -0
  481. package/node_modules/classic-level/prebuilds/win32-ia32/classic-level.node +0 -0
  482. package/node_modules/classic-level/prebuilds/win32-x64/classic-level.node +0 -0
  483. package/node_modules/ieee754/LICENSE +11 -0
  484. package/node_modules/ieee754/README.md +51 -0
  485. package/node_modules/ieee754/index.d.ts +10 -0
  486. package/node_modules/ieee754/index.js +85 -0
  487. package/node_modules/ieee754/package.json +52 -0
  488. package/node_modules/is-buffer/LICENSE +21 -0
  489. package/node_modules/is-buffer/README.md +54 -0
  490. package/node_modules/is-buffer/index.d.ts +2 -0
  491. package/node_modules/is-buffer/index.js +11 -0
  492. package/node_modules/is-buffer/package.json +65 -0
  493. package/node_modules/level/CHANGELOG.md +532 -0
  494. package/node_modules/level/LICENSE +21 -0
  495. package/node_modules/level/README.md +107 -0
  496. package/node_modules/level/UPGRADING.md +413 -0
  497. package/node_modules/level/browser.js +1 -0
  498. package/node_modules/level/index.d.ts +75 -0
  499. package/node_modules/level/index.js +1 -0
  500. package/node_modules/level/package.json +62 -0
  501. package/node_modules/level-supports/CHANGELOG.md +140 -0
  502. package/node_modules/level-supports/LICENSE +21 -0
  503. package/node_modules/level-supports/README.md +276 -0
  504. package/node_modules/level-supports/index.d.ts +137 -0
  505. package/node_modules/level-supports/index.js +26 -0
  506. package/node_modules/level-supports/package.json +46 -0
  507. package/node_modules/level-supports/test/cloneable.js +26 -0
  508. package/node_modules/level-supports/test/index.js +24 -0
  509. package/node_modules/level-supports/test/self.js +86 -0
  510. package/node_modules/level-supports/test/shape.js +23 -0
  511. package/node_modules/level-transcoder/CHANGELOG.md +15 -0
  512. package/node_modules/level-transcoder/LICENSE +21 -0
  513. package/node_modules/level-transcoder/README.md +214 -0
  514. package/node_modules/level-transcoder/UPGRADING.md +13 -0
  515. package/node_modules/level-transcoder/index.d.ts +27 -0
  516. package/node_modules/level-transcoder/index.js +158 -0
  517. package/node_modules/level-transcoder/lib/encoding.d.ts +158 -0
  518. package/node_modules/level-transcoder/lib/encoding.js +105 -0
  519. package/node_modules/level-transcoder/lib/encodings.d.ts +9 -0
  520. package/node_modules/level-transcoder/lib/encodings.js +135 -0
  521. package/node_modules/level-transcoder/lib/formats.d.ts +13 -0
  522. package/node_modules/level-transcoder/lib/formats.js +111 -0
  523. package/node_modules/level-transcoder/lib/text-endec.d.ts +6 -0
  524. package/node_modules/level-transcoder/lib/text-endec.js +19 -0
  525. package/node_modules/level-transcoder/package.json +46 -0
  526. package/node_modules/maybe-combine-errors/LICENSE.md +21 -0
  527. package/node_modules/maybe-combine-errors/README.md +94 -0
  528. package/node_modules/maybe-combine-errors/index.js +60 -0
  529. package/node_modules/maybe-combine-errors/package.json +33 -0
  530. package/node_modules/module-error/CHANGELOG.md +23 -0
  531. package/node_modules/module-error/LICENSE +21 -0
  532. package/node_modules/module-error/README.md +89 -0
  533. package/node_modules/module-error/index.d.ts +18 -0
  534. package/node_modules/module-error/index.js +22 -0
  535. package/node_modules/module-error/package.json +36 -0
  536. package/node_modules/napi-macros/LICENSE +21 -0
  537. package/node_modules/napi-macros/README.md +277 -0
  538. package/node_modules/napi-macros/index.js +1 -0
  539. package/node_modules/napi-macros/napi-macros.h +255 -0
  540. package/node_modules/napi-macros/package.json +22 -0
  541. package/node_modules/node-gyp-build/LICENSE +21 -0
  542. package/node_modules/node-gyp-build/README.md +58 -0
  543. package/node_modules/node-gyp-build/SECURITY.md +5 -0
  544. package/node_modules/node-gyp-build/bin.js +84 -0
  545. package/node_modules/node-gyp-build/build-test.js +19 -0
  546. package/node_modules/node-gyp-build/index.js +6 -0
  547. package/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  548. package/node_modules/node-gyp-build/optional.js +7 -0
  549. package/node_modules/node-gyp-build/package.json +43 -0
  550. package/oauthTokenStore-PADKLNOC.js +23 -0
  551. package/package.json +6 -3
  552. package/processSpawn-SOAV3FEV.js +11 -0
  553. package/profileConfig-ZGOFORWV.js +43 -0
  554. package/{providerPresetApply-XI3WUPTI.js → providerPresetApply-HIPK67DU.js} +9 -9
  555. package/{providerRegistry-KEPWWGXD.js → providerRegistry-AI4U2FNM.js} +13 -9
  556. package/{read-COE3ZYR6.js → read-RNUQ7F34.js} +11 -7
  557. package/{readDocTool-5USN4A6V.js → readDocTool-6WIZHE6O.js} +5 -3
  558. package/{readlineWorkspace-KIMUDPPV.js → readlineWorkspace-BCDVMOR5.js} +6947 -3879
  559. package/{removeDialogAgentAction-J6X5QMTA.js → removeDialogAgentAction-EFQ4O2IQ.js} +27 -26
  560. package/{runAgentClientLoop-AN4WIRPQ.js → runAgentClientLoop-5RBD3DE6.js} +150 -90
  561. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-5CIWJEZ3.js} +36 -8
  562. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  563. package/setDialogExtraReferencesAction-MXAH2KPV.js +37 -0
  564. package/{setPrimaryDialogAgentAction-FN22THHT.js → setPrimaryDialogAgentAction-7OPVNK4M.js} +28 -27
  565. package/{chunk-GP5LKBUZ.js → settingThunks-GHVLHABJ.js} +240 -945
  566. package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-QC35EQY4.js} +3 -3
  567. package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
  568. package/{spaceCommands-NA4JMIGT.js → spaceCommands-WZCLRGBO.js} +56 -56
  569. package/{streamAgentChatTurn-3TYTHZPJ.js → streamAgentChatTurn-YJTEHUH7.js} +371 -1556
  570. package/{switchDialogAgentAction-LVTEV3FR.js → switchDialogAgentAction-4PANDG3L.js} +24 -20
  571. package/{tableCommands-O6NWHFKV.js → tableCommands-U3QDY4L6.js} +19 -17
  572. package/{toolApiClient-QVJ6HDNN.js → toolApiClient-54CXTU7C.js} +5 -4
  573. package/tools-ZT4GXXDQ.js +122 -0
  574. package/{tuiSummaryLlmCaller-UFGFOIIW.js → tuiSummaryLlmCaller-ISODIW2O.js} +14 -29
  575. package/{updateCommands-2M74UL7P.js → updateCommands-NQXAGFM7.js} +3 -3
  576. package/{updateDialogTitleAction-RDHNT265.js → updateDialogTitleAction-2PQTFUUV.js} +101 -57
  577. package/action-P4TNFGAD.js +0 -31
  578. package/agentListCommands-NXCOTTZL.js +0 -411
  579. package/agentRecordCommands-JP54ZWND.js +0 -129
  580. package/agentRunCommand-RMQWWSHF.js +0 -157
  581. package/browser-image-compression-MFDTD7K6.js +0 -1763
  582. package/chatQueueReduxAdapter-DKLWTT3G.js +0 -186
  583. package/chunk-ACTMNVHM.js +0 -93
  584. package/chunk-CQ3WA2NE.js +0 -299
  585. package/chunk-M76ECQRD.js +0 -13658
  586. package/chunk-MEYIRKDN.js +0 -8967
  587. package/chunk-N4G4PKQ6.js +0 -23
  588. package/chunk-P3GYTNDF.js +0 -34
  589. package/chunk-PUOC4YRO.js +0 -394
  590. package/chunk-S7Z2HMCN.js +0 -25
  591. package/chunk-Y5GCAMGP.js +0 -9
  592. package/chunk-YPREESF4.js +0 -225
  593. package/chunk-YWIEQS6H.js +0 -21409
  594. package/contentThunks-JHK6X2KU.js +0 -73
  595. package/createDialogAction-VUUUZL54.js +0 -65
  596. package/dialogCommands-EN7TYD3I.js +0 -100
  597. package/handleSendMessageAction-ID5IKXUE.js +0 -633
  598. package/machineWsRunDispatch-RX64L3ET.js +0 -145
  599. package/setDialogExtraReferencesAction-WX5VTY6O.js +0 -30
  600. package/settingSlice-P4ZW7K5X.js +0 -204
  601. package/syncMapping-N6RGXGBW.js +0 -437
  602. package/tools-34SEJSLQ.js +0 -110
  603. package/{chunk-SV5IJK6K.js → chunk-NBTY7YJF.js} +3 -3
  604. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  605. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
  606. package/{offlineMarxistsAgentCommand-HGXZV4XJ.js → offlineMarxistsAgentCommand-2QTHJCHV.js} +4 -4
@@ -0,0 +1,695 @@
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 <dirent.h>
6
+ #include <errno.h>
7
+ #include <fcntl.h>
8
+ #include <pthread.h>
9
+ #include <stdio.h>
10
+ #include <stdlib.h>
11
+ #include <string.h>
12
+ #include <sys/mman.h>
13
+ #include <sys/resource.h>
14
+ #include <sys/stat.h>
15
+ #include <sys/time.h>
16
+ #include <sys/types.h>
17
+ #include <time.h>
18
+ #include <unistd.h>
19
+ #include <deque>
20
+ #include <limits>
21
+ #include <set>
22
+ #include "leveldb/env.h"
23
+ #include "leveldb/slice.h"
24
+ #include "port/port.h"
25
+ #include "util/logging.h"
26
+ #include "util/mutexlock.h"
27
+ #include "util/posix_logger.h"
28
+ #include "util/env_posix_test_helper.h"
29
+
30
+ namespace leveldb {
31
+
32
+ namespace {
33
+
34
+ static int open_read_only_file_limit = -1;
35
+ static int mmap_limit = -1;
36
+
37
+ static Status IOError(const std::string& context, int err_number) {
38
+ return Status::IOError(context, strerror(err_number));
39
+ }
40
+
41
+ // Helper class to limit resource usage to avoid exhaustion.
42
+ // Currently used to limit read-only file descriptors and mmap file usage
43
+ // so that we do not end up running out of file descriptors, virtual memory,
44
+ // or running into kernel performance problems for very large databases.
45
+ class Limiter {
46
+ public:
47
+ // Limit maximum number of resources to |n|.
48
+ Limiter(intptr_t n) {
49
+ SetAllowed(n);
50
+ }
51
+
52
+ // If another resource is available, acquire it and return true.
53
+ // Else return false.
54
+ bool Acquire() {
55
+ if (GetAllowed() <= 0) {
56
+ return false;
57
+ }
58
+ MutexLock l(&mu_);
59
+ intptr_t x = GetAllowed();
60
+ if (x <= 0) {
61
+ return false;
62
+ } else {
63
+ SetAllowed(x - 1);
64
+ return true;
65
+ }
66
+ }
67
+
68
+ // Release a resource acquired by a previous call to Acquire() that returned
69
+ // true.
70
+ void Release() {
71
+ MutexLock l(&mu_);
72
+ SetAllowed(GetAllowed() + 1);
73
+ }
74
+
75
+ private:
76
+ port::Mutex mu_;
77
+ port::AtomicPointer allowed_;
78
+
79
+ intptr_t GetAllowed() const {
80
+ return reinterpret_cast<intptr_t>(allowed_.Acquire_Load());
81
+ }
82
+
83
+ // REQUIRES: mu_ must be held
84
+ void SetAllowed(intptr_t v) {
85
+ allowed_.Release_Store(reinterpret_cast<void*>(v));
86
+ }
87
+
88
+ Limiter(const Limiter&);
89
+ void operator=(const Limiter&);
90
+ };
91
+
92
+ class PosixSequentialFile: public SequentialFile {
93
+ private:
94
+ std::string filename_;
95
+ FILE* file_;
96
+
97
+ public:
98
+ PosixSequentialFile(const std::string& fname, FILE* f)
99
+ : filename_(fname), file_(f) { }
100
+ virtual ~PosixSequentialFile() { fclose(file_); }
101
+
102
+ virtual Status Read(size_t n, Slice* result, char* scratch) {
103
+ Status s;
104
+ size_t r = fread_unlocked(scratch, 1, n, file_);
105
+ *result = Slice(scratch, r);
106
+ if (r < n) {
107
+ if (feof(file_)) {
108
+ // We leave status as ok if we hit the end of the file
109
+ } else {
110
+ // A partial read with an error: return a non-ok status
111
+ s = IOError(filename_, errno);
112
+ }
113
+ }
114
+ return s;
115
+ }
116
+
117
+ virtual Status Skip(uint64_t n) {
118
+ if (fseek(file_, n, SEEK_CUR)) {
119
+ return IOError(filename_, errno);
120
+ }
121
+ return Status::OK();
122
+ }
123
+ };
124
+
125
+ // pread() based random-access
126
+ class PosixRandomAccessFile: public RandomAccessFile {
127
+ private:
128
+ std::string filename_;
129
+ bool temporary_fd_; // If true, fd_ is -1 and we open on every read.
130
+ int fd_;
131
+ Limiter* limiter_;
132
+
133
+ public:
134
+ PosixRandomAccessFile(const std::string& fname, int fd, Limiter* limiter)
135
+ : filename_(fname), fd_(fd), limiter_(limiter) {
136
+ temporary_fd_ = !limiter->Acquire();
137
+ if (temporary_fd_) {
138
+ // Open file on every access.
139
+ close(fd_);
140
+ fd_ = -1;
141
+ }
142
+ }
143
+
144
+ virtual ~PosixRandomAccessFile() {
145
+ if (!temporary_fd_) {
146
+ close(fd_);
147
+ limiter_->Release();
148
+ }
149
+ }
150
+
151
+ virtual Status Read(uint64_t offset, size_t n, Slice* result,
152
+ char* scratch) const {
153
+ int fd = fd_;
154
+ if (temporary_fd_) {
155
+ fd = open(filename_.c_str(), O_RDONLY);
156
+ if (fd < 0) {
157
+ return IOError(filename_, errno);
158
+ }
159
+ }
160
+
161
+ Status s;
162
+ ssize_t r = pread(fd, scratch, n, static_cast<off_t>(offset));
163
+ *result = Slice(scratch, (r < 0) ? 0 : r);
164
+ if (r < 0) {
165
+ // An error: return a non-ok status
166
+ s = IOError(filename_, errno);
167
+ }
168
+ if (temporary_fd_) {
169
+ // Close the temporary file descriptor opened earlier.
170
+ close(fd);
171
+ }
172
+ return s;
173
+ }
174
+ };
175
+
176
+ // mmap() based random-access
177
+ class PosixMmapReadableFile: public RandomAccessFile {
178
+ private:
179
+ std::string filename_;
180
+ void* mmapped_region_;
181
+ size_t length_;
182
+ Limiter* limiter_;
183
+
184
+ public:
185
+ // base[0,length-1] contains the mmapped contents of the file.
186
+ PosixMmapReadableFile(const std::string& fname, void* base, size_t length,
187
+ Limiter* limiter)
188
+ : filename_(fname), mmapped_region_(base), length_(length),
189
+ limiter_(limiter) {
190
+ }
191
+
192
+ virtual ~PosixMmapReadableFile() {
193
+ munmap(mmapped_region_, length_);
194
+ limiter_->Release();
195
+ }
196
+
197
+ virtual Status Read(uint64_t offset, size_t n, Slice* result,
198
+ char* scratch) const {
199
+ Status s;
200
+ if (offset + n > length_) {
201
+ *result = Slice();
202
+ s = IOError(filename_, EINVAL);
203
+ } else {
204
+ *result = Slice(reinterpret_cast<char*>(mmapped_region_) + offset, n);
205
+ }
206
+ return s;
207
+ }
208
+ };
209
+
210
+ class PosixWritableFile : public WritableFile {
211
+ private:
212
+ std::string filename_;
213
+ FILE* file_;
214
+
215
+ public:
216
+ PosixWritableFile(const std::string& fname, FILE* f)
217
+ : filename_(fname), file_(f) { }
218
+
219
+ ~PosixWritableFile() {
220
+ if (file_ != NULL) {
221
+ // Ignoring any potential errors
222
+ fclose(file_);
223
+ }
224
+ }
225
+
226
+ virtual Status Append(const Slice& data) {
227
+ size_t r = fwrite_unlocked(data.data(), 1, data.size(), file_);
228
+ if (r != data.size()) {
229
+ return IOError(filename_, errno);
230
+ }
231
+ return Status::OK();
232
+ }
233
+
234
+ virtual Status Close() {
235
+ Status result;
236
+ if (fclose(file_) != 0) {
237
+ result = IOError(filename_, errno);
238
+ }
239
+ file_ = NULL;
240
+ return result;
241
+ }
242
+
243
+ virtual Status Flush() {
244
+ if (fflush_unlocked(file_) != 0) {
245
+ return IOError(filename_, errno);
246
+ }
247
+ return Status::OK();
248
+ }
249
+
250
+ Status SyncDirIfManifest() {
251
+ const char* f = filename_.c_str();
252
+ const char* sep = strrchr(f, '/');
253
+ Slice basename;
254
+ std::string dir;
255
+ if (sep == NULL) {
256
+ dir = ".";
257
+ basename = f;
258
+ } else {
259
+ dir = std::string(f, sep - f);
260
+ basename = sep + 1;
261
+ }
262
+ Status s;
263
+ if (basename.starts_with("MANIFEST")) {
264
+ int fd = open(dir.c_str(), O_RDONLY);
265
+ if (fd < 0) {
266
+ s = IOError(dir, errno);
267
+ } else {
268
+ if (fsync(fd) < 0) {
269
+ s = IOError(dir, errno);
270
+ }
271
+ close(fd);
272
+ }
273
+ }
274
+ return s;
275
+ }
276
+
277
+ virtual Status Sync() {
278
+ // Ensure new files referred to by the manifest are in the filesystem.
279
+ Status s = SyncDirIfManifest();
280
+ if (!s.ok()) {
281
+ return s;
282
+ }
283
+ if (fflush_unlocked(file_) != 0 ||
284
+ fdatasync(fileno(file_)) != 0) {
285
+ s = Status::IOError(filename_, strerror(errno));
286
+ }
287
+ return s;
288
+ }
289
+ };
290
+
291
+ static int LockOrUnlock(int fd, bool lock) {
292
+ errno = 0;
293
+ struct flock f;
294
+ memset(&f, 0, sizeof(f));
295
+ f.l_type = (lock ? F_WRLCK : F_UNLCK);
296
+ f.l_whence = SEEK_SET;
297
+ f.l_start = 0;
298
+ f.l_len = 0; // Lock/unlock entire file
299
+ return fcntl(fd, F_SETLK, &f);
300
+ }
301
+
302
+ class PosixFileLock : public FileLock {
303
+ public:
304
+ int fd_;
305
+ std::string name_;
306
+ };
307
+
308
+ // Set of locked files. We keep a separate set instead of just
309
+ // relying on fcntrl(F_SETLK) since fcntl(F_SETLK) does not provide
310
+ // any protection against multiple uses from the same process.
311
+ class PosixLockTable {
312
+ private:
313
+ port::Mutex mu_;
314
+ std::set<std::string> locked_files_;
315
+ public:
316
+ bool Insert(const std::string& fname) {
317
+ MutexLock l(&mu_);
318
+ return locked_files_.insert(fname).second;
319
+ }
320
+ void Remove(const std::string& fname) {
321
+ MutexLock l(&mu_);
322
+ locked_files_.erase(fname);
323
+ }
324
+ };
325
+
326
+ class PosixEnv : public Env {
327
+ public:
328
+ PosixEnv();
329
+ virtual ~PosixEnv() {
330
+ char msg[] = "Destroying Env::Default()\n";
331
+ fwrite(msg, 1, sizeof(msg), stderr);
332
+ abort();
333
+ }
334
+
335
+ virtual Status NewSequentialFile(const std::string& fname,
336
+ SequentialFile** result) {
337
+ FILE* f = fopen(fname.c_str(), "r");
338
+ if (f == NULL) {
339
+ *result = NULL;
340
+ return IOError(fname, errno);
341
+ } else {
342
+ *result = new PosixSequentialFile(fname, f);
343
+ return Status::OK();
344
+ }
345
+ }
346
+
347
+ virtual Status NewRandomAccessFile(const std::string& fname,
348
+ RandomAccessFile** result) {
349
+ *result = NULL;
350
+ Status s;
351
+ int fd = open(fname.c_str(), O_RDONLY);
352
+ if (fd < 0) {
353
+ s = IOError(fname, errno);
354
+ } else if (mmap_limit_.Acquire()) {
355
+ uint64_t size;
356
+ s = GetFileSize(fname, &size);
357
+ if (s.ok()) {
358
+ void* base = mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0);
359
+ if (base != MAP_FAILED) {
360
+ *result = new PosixMmapReadableFile(fname, base, size, &mmap_limit_);
361
+ } else {
362
+ s = IOError(fname, errno);
363
+ }
364
+ }
365
+ close(fd);
366
+ if (!s.ok()) {
367
+ mmap_limit_.Release();
368
+ }
369
+ } else {
370
+ *result = new PosixRandomAccessFile(fname, fd, &fd_limit_);
371
+ }
372
+ return s;
373
+ }
374
+
375
+ virtual Status NewWritableFile(const std::string& fname,
376
+ WritableFile** result) {
377
+ Status s;
378
+ FILE* f = fopen(fname.c_str(), "w");
379
+ if (f == NULL) {
380
+ *result = NULL;
381
+ s = IOError(fname, errno);
382
+ } else {
383
+ *result = new PosixWritableFile(fname, f);
384
+ }
385
+ return s;
386
+ }
387
+
388
+ virtual Status NewAppendableFile(const std::string& fname,
389
+ WritableFile** result) {
390
+ Status s;
391
+ FILE* f = fopen(fname.c_str(), "a");
392
+ if (f == NULL) {
393
+ *result = NULL;
394
+ s = IOError(fname, errno);
395
+ } else {
396
+ *result = new PosixWritableFile(fname, f);
397
+ }
398
+ return s;
399
+ }
400
+
401
+ virtual bool FileExists(const std::string& fname) {
402
+ return access(fname.c_str(), F_OK) == 0;
403
+ }
404
+
405
+ virtual Status GetChildren(const std::string& dir,
406
+ std::vector<std::string>* result) {
407
+ result->clear();
408
+ DIR* d = opendir(dir.c_str());
409
+ if (d == NULL) {
410
+ return IOError(dir, errno);
411
+ }
412
+ struct dirent* entry;
413
+ while ((entry = readdir(d)) != NULL) {
414
+ result->push_back(entry->d_name);
415
+ }
416
+ closedir(d);
417
+ return Status::OK();
418
+ }
419
+
420
+ virtual Status DeleteFile(const std::string& fname) {
421
+ Status result;
422
+ if (unlink(fname.c_str()) != 0) {
423
+ result = IOError(fname, errno);
424
+ }
425
+ return result;
426
+ }
427
+
428
+ virtual Status CreateDir(const std::string& name) {
429
+ Status result;
430
+ if (mkdir(name.c_str(), 0755) != 0) {
431
+ result = IOError(name, errno);
432
+ }
433
+ return result;
434
+ }
435
+
436
+ virtual Status DeleteDir(const std::string& name) {
437
+ Status result;
438
+ if (rmdir(name.c_str()) != 0) {
439
+ result = IOError(name, errno);
440
+ }
441
+ return result;
442
+ }
443
+
444
+ virtual Status GetFileSize(const std::string& fname, uint64_t* size) {
445
+ Status s;
446
+ struct stat sbuf;
447
+ if (stat(fname.c_str(), &sbuf) != 0) {
448
+ *size = 0;
449
+ s = IOError(fname, errno);
450
+ } else {
451
+ *size = sbuf.st_size;
452
+ }
453
+ return s;
454
+ }
455
+
456
+ virtual Status RenameFile(const std::string& src, const std::string& target) {
457
+ Status result;
458
+ if (rename(src.c_str(), target.c_str()) != 0) {
459
+ result = IOError(src, errno);
460
+ }
461
+ return result;
462
+ }
463
+
464
+ virtual Status LockFile(const std::string& fname, FileLock** lock) {
465
+ *lock = NULL;
466
+ Status result;
467
+ int fd = open(fname.c_str(), O_RDWR | O_CREAT, 0644);
468
+ if (fd < 0) {
469
+ result = IOError(fname, errno);
470
+ } else if (!locks_.Insert(fname)) {
471
+ close(fd);
472
+ result = Status::IOError("lock " + fname, "already held by process");
473
+ } else if (LockOrUnlock(fd, true) == -1) {
474
+ result = IOError("lock " + fname, errno);
475
+ close(fd);
476
+ locks_.Remove(fname);
477
+ } else {
478
+ PosixFileLock* my_lock = new PosixFileLock;
479
+ my_lock->fd_ = fd;
480
+ my_lock->name_ = fname;
481
+ *lock = my_lock;
482
+ }
483
+ return result;
484
+ }
485
+
486
+ virtual Status UnlockFile(FileLock* lock) {
487
+ PosixFileLock* my_lock = reinterpret_cast<PosixFileLock*>(lock);
488
+ Status result;
489
+ if (LockOrUnlock(my_lock->fd_, false) == -1) {
490
+ result = IOError("unlock", errno);
491
+ }
492
+ locks_.Remove(my_lock->name_);
493
+ close(my_lock->fd_);
494
+ delete my_lock;
495
+ return result;
496
+ }
497
+
498
+ virtual void Schedule(void (*function)(void*), void* arg);
499
+
500
+ virtual void StartThread(void (*function)(void* arg), void* arg);
501
+
502
+ virtual Status GetTestDirectory(std::string* result) {
503
+ const char* env = getenv("TEST_TMPDIR");
504
+ if (env && env[0] != '\0') {
505
+ *result = env;
506
+ } else {
507
+ char buf[100];
508
+ snprintf(buf, sizeof(buf), "/tmp/leveldbtest-%d", int(geteuid()));
509
+ *result = buf;
510
+ }
511
+ // Directory may already exist
512
+ CreateDir(*result);
513
+ return Status::OK();
514
+ }
515
+
516
+ static uint64_t gettid() {
517
+ pthread_t tid = pthread_self();
518
+ uint64_t thread_id = 0;
519
+ memcpy(&thread_id, &tid, std::min(sizeof(thread_id), sizeof(tid)));
520
+ return thread_id;
521
+ }
522
+
523
+ virtual Status NewLogger(const std::string& fname, Logger** result) {
524
+ FILE* f = fopen(fname.c_str(), "w");
525
+ if (f == NULL) {
526
+ *result = NULL;
527
+ return IOError(fname, errno);
528
+ } else {
529
+ *result = new PosixLogger(f, &PosixEnv::gettid);
530
+ return Status::OK();
531
+ }
532
+ }
533
+
534
+ virtual uint64_t NowMicros() {
535
+ struct timeval tv;
536
+ gettimeofday(&tv, NULL);
537
+ return static_cast<uint64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
538
+ }
539
+
540
+ virtual void SleepForMicroseconds(int micros) {
541
+ usleep(micros);
542
+ }
543
+
544
+ private:
545
+ void PthreadCall(const char* label, int result) {
546
+ if (result != 0) {
547
+ fprintf(stderr, "pthread %s: %s\n", label, strerror(result));
548
+ abort();
549
+ }
550
+ }
551
+
552
+ // BGThread() is the body of the background thread
553
+ void BGThread();
554
+ static void* BGThreadWrapper(void* arg) {
555
+ reinterpret_cast<PosixEnv*>(arg)->BGThread();
556
+ return NULL;
557
+ }
558
+
559
+ pthread_mutex_t mu_;
560
+ pthread_cond_t bgsignal_;
561
+ pthread_t bgthread_;
562
+ bool started_bgthread_;
563
+
564
+ // Entry per Schedule() call
565
+ struct BGItem { void* arg; void (*function)(void*); };
566
+ typedef std::deque<BGItem> BGQueue;
567
+ BGQueue queue_;
568
+
569
+ PosixLockTable locks_;
570
+ Limiter mmap_limit_;
571
+ Limiter fd_limit_;
572
+ };
573
+
574
+ // Return the maximum number of concurrent mmaps.
575
+ static int MaxMmaps() {
576
+ if (mmap_limit >= 0) {
577
+ return mmap_limit;
578
+ }
579
+ // Up to 1000 mmaps for 64-bit binaries; none for smaller pointer sizes.
580
+ mmap_limit = sizeof(void*) >= 8 ? 1000 : 0;
581
+ return mmap_limit;
582
+ }
583
+
584
+ // Return the maximum number of read-only files to keep open.
585
+ static intptr_t MaxOpenFiles() {
586
+ if (open_read_only_file_limit >= 0) {
587
+ return open_read_only_file_limit;
588
+ }
589
+ struct rlimit rlim;
590
+ if (getrlimit(RLIMIT_NOFILE, &rlim)) {
591
+ // getrlimit failed, fallback to hard-coded default.
592
+ open_read_only_file_limit = 50;
593
+ } else if (rlim.rlim_cur == RLIM_INFINITY) {
594
+ open_read_only_file_limit = std::numeric_limits<int>::max();
595
+ } else {
596
+ // Allow use of 20% of available file descriptors for read-only files.
597
+ open_read_only_file_limit = rlim.rlim_cur / 5;
598
+ }
599
+ return open_read_only_file_limit;
600
+ }
601
+
602
+ PosixEnv::PosixEnv()
603
+ : started_bgthread_(false),
604
+ mmap_limit_(MaxMmaps()),
605
+ fd_limit_(MaxOpenFiles()) {
606
+ PthreadCall("mutex_init", pthread_mutex_init(&mu_, NULL));
607
+ PthreadCall("cvar_init", pthread_cond_init(&bgsignal_, NULL));
608
+ }
609
+
610
+ void PosixEnv::Schedule(void (*function)(void*), void* arg) {
611
+ PthreadCall("lock", pthread_mutex_lock(&mu_));
612
+
613
+ // Start background thread if necessary
614
+ if (!started_bgthread_) {
615
+ started_bgthread_ = true;
616
+ PthreadCall(
617
+ "create thread",
618
+ pthread_create(&bgthread_, NULL, &PosixEnv::BGThreadWrapper, this));
619
+ }
620
+
621
+ // If the queue is currently empty, the background thread may currently be
622
+ // waiting.
623
+ if (queue_.empty()) {
624
+ PthreadCall("signal", pthread_cond_signal(&bgsignal_));
625
+ }
626
+
627
+ // Add to priority queue
628
+ queue_.push_back(BGItem());
629
+ queue_.back().function = function;
630
+ queue_.back().arg = arg;
631
+
632
+ PthreadCall("unlock", pthread_mutex_unlock(&mu_));
633
+ }
634
+
635
+ void PosixEnv::BGThread() {
636
+ while (true) {
637
+ // Wait until there is an item that is ready to run
638
+ PthreadCall("lock", pthread_mutex_lock(&mu_));
639
+ while (queue_.empty()) {
640
+ PthreadCall("wait", pthread_cond_wait(&bgsignal_, &mu_));
641
+ }
642
+
643
+ void (*function)(void*) = queue_.front().function;
644
+ void* arg = queue_.front().arg;
645
+ queue_.pop_front();
646
+
647
+ PthreadCall("unlock", pthread_mutex_unlock(&mu_));
648
+ (*function)(arg);
649
+ }
650
+ }
651
+
652
+ namespace {
653
+ struct StartThreadState {
654
+ void (*user_function)(void*);
655
+ void* arg;
656
+ };
657
+ }
658
+ static void* StartThreadWrapper(void* arg) {
659
+ StartThreadState* state = reinterpret_cast<StartThreadState*>(arg);
660
+ state->user_function(state->arg);
661
+ delete state;
662
+ return NULL;
663
+ }
664
+
665
+ void PosixEnv::StartThread(void (*function)(void* arg), void* arg) {
666
+ pthread_t t;
667
+ StartThreadState* state = new StartThreadState;
668
+ state->user_function = function;
669
+ state->arg = arg;
670
+ PthreadCall("start thread",
671
+ pthread_create(&t, NULL, &StartThreadWrapper, state));
672
+ }
673
+
674
+ } // namespace
675
+
676
+ static pthread_once_t once = PTHREAD_ONCE_INIT;
677
+ static Env* default_env;
678
+ static void InitDefaultEnv() { default_env = new PosixEnv; }
679
+
680
+ void EnvPosixTestHelper::SetReadOnlyFDLimit(int limit) {
681
+ assert(default_env == NULL);
682
+ open_read_only_file_limit = limit;
683
+ }
684
+
685
+ void EnvPosixTestHelper::SetReadOnlyMMapLimit(int limit) {
686
+ assert(default_env == NULL);
687
+ mmap_limit = limit;
688
+ }
689
+
690
+ Env* Env::Default() {
691
+ pthread_once(&once, InitDefaultEnv);
692
+ return default_env;
693
+ }
694
+
695
+ } // namespace leveldb