@pome-sh/cli 0.1.0 → 0.1.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 (471) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/src/doctor/checks.js +2 -2
  3. package/node_modules/@pome-sh/sdk/dist/db.d.ts +4 -4
  4. package/node_modules/@pome-sh/sdk/dist/db.js +93 -25
  5. package/node_modules/@pome-sh/sdk/dist/db.js.map +1 -1
  6. package/node_modules/@pome-sh/sdk/package.json +2 -6
  7. package/node_modules/@pome-sh/twin-github/README.md +2 -1
  8. package/node_modules/@pome-sh/twin-github/package.json +2 -3
  9. package/node_modules/@pome-sh/twin-slack/package.json +2 -3
  10. package/node_modules/@pome-sh/twin-stripe/README.md +2 -2
  11. package/node_modules/@pome-sh/twin-stripe/package.json +2 -3
  12. package/package.json +6 -7
  13. package/dist/src/recorder/verdictArtifact.d.ts +0 -71
  14. package/dist/src/recorder/verdictArtifact.js +0 -207
  15. package/dist/src/score/view.d.ts +0 -38
  16. package/dist/src/score/view.js +0 -59
  17. package/dist/src/twin/github/app.d.ts +0 -10
  18. package/dist/src/twin/github/app.js +0 -316
  19. package/dist/src/twin/github/db/migrations.d.ts +0 -2
  20. package/dist/src/twin/github/db/migrations.js +0 -64
  21. package/dist/src/twin/github/db/openDatabase.d.ts +0 -2
  22. package/dist/src/twin/github/db/openDatabase.js +0 -13
  23. package/dist/src/twin/github/db/queries.d.ts +0 -77
  24. package/dist/src/twin/github/db/queries.js +0 -93
  25. package/dist/src/twin/github/domain/seed.d.ts +0 -74
  26. package/dist/src/twin/github/domain/seed.js +0 -104
  27. package/dist/src/twin/github/domain/serializers.d.ts +0 -113
  28. package/dist/src/twin/github/domain/serializers.js +0 -76
  29. package/dist/src/twin/github/types.d.ts +0 -66
  30. package/dist/src/twin/github/types.js +0 -1
  31. package/dist/src/twin-github/app.d.ts +0 -9
  32. package/dist/src/twin-github/app.js +0 -327
  33. package/dist/src/twin-github/auth.d.ts +0 -16
  34. package/dist/src/twin-github/auth.js +0 -142
  35. package/dist/src/twin-github/build-info.d.ts +0 -7
  36. package/dist/src/twin-github/build-info.js +0 -52
  37. package/dist/src/twin-github/db.d.ts +0 -4
  38. package/dist/src/twin-github/db.js +0 -362
  39. package/dist/src/twin-github/domain.d.ts +0 -1649
  40. package/dist/src/twin-github/domain.js +0 -957
  41. package/dist/src/twin-github/errors.d.ts +0 -14
  42. package/dist/src/twin-github/errors.js +0 -34
  43. package/dist/src/twin-github/index.d.ts +0 -9
  44. package/dist/src/twin-github/index.js +0 -7
  45. package/dist/src/twin-github/mcp.d.ts +0 -17
  46. package/dist/src/twin-github/mcp.js +0 -281
  47. package/dist/src/twin-github/recorder.d.ts +0 -2
  48. package/dist/src/twin-github/recorder.js +0 -29
  49. package/dist/src/twin-github/seed.d.ts +0 -74
  50. package/dist/src/twin-github/seed.js +0 -107
  51. package/dist/src/twin-github/serializers.d.ts +0 -449
  52. package/dist/src/twin-github/serializers.js +0 -429
  53. package/dist/src/twin-github/server.d.ts +0 -1
  54. package/dist/src/twin-github/server.js +0 -34
  55. package/dist/src/twin-github/tools.d.ts +0 -1545
  56. package/dist/src/twin-github/tools.js +0 -347
  57. package/dist/src/twin-github/types.d.ts +0 -198
  58. package/dist/src/twin-github/types.js +0 -1
  59. package/dist/src/twin-github/unsupported-envelope.d.ts +0 -10
  60. package/dist/src/twin-github/unsupported-envelope.js +0 -29
  61. package/dist/src/twin-github/util.d.ts +0 -13
  62. package/dist/src/twin-github/util.js +0 -61
  63. package/dist/src/twin-slack/app.d.ts +0 -17
  64. package/dist/src/twin-slack/app.js +0 -683
  65. package/dist/src/twin-slack/auth.d.ts +0 -38
  66. package/dist/src/twin-slack/auth.js +0 -219
  67. package/dist/src/twin-slack/build-info.d.ts +0 -7
  68. package/dist/src/twin-slack/build-info.js +0 -9
  69. package/dist/src/twin-slack/db.d.ts +0 -4
  70. package/dist/src/twin-slack/db.js +0 -213
  71. package/dist/src/twin-slack/domain.d.ts +0 -236
  72. package/dist/src/twin-slack/domain.js +0 -1293
  73. package/dist/src/twin-slack/errors.d.ts +0 -16
  74. package/dist/src/twin-slack/errors.js +0 -60
  75. package/dist/src/twin-slack/index.d.ts +0 -8
  76. package/dist/src/twin-slack/index.js +0 -8
  77. package/dist/src/twin-slack/mcp.d.ts +0 -17
  78. package/dist/src/twin-slack/mcp.js +0 -226
  79. package/dist/src/twin-slack/recorder.d.ts +0 -2
  80. package/dist/src/twin-slack/recorder.js +0 -15
  81. package/dist/src/twin-slack/seed.d.ts +0 -49
  82. package/dist/src/twin-slack/seed.js +0 -139
  83. package/dist/src/twin-slack/serializers.d.ts +0 -141
  84. package/dist/src/twin-slack/serializers.js +0 -377
  85. package/dist/src/twin-slack/tools.d.ts +0 -97
  86. package/dist/src/twin-slack/tools.js +0 -171
  87. package/dist/src/twin-slack/types.d.ts +0 -164
  88. package/dist/src/twin-slack/types.js +0 -1
  89. package/dist/src/twin-slack/unsupported-envelope.d.ts +0 -12
  90. package/dist/src/twin-slack/unsupported-envelope.js +0 -61
  91. package/dist/src/twin-slack/upstream-types.d.ts +0 -19
  92. package/dist/src/twin-slack/upstream-types.js +0 -1
  93. package/dist/src/twin-slack/util.d.ts +0 -31
  94. package/dist/src/twin-slack/util.js +0 -136
  95. package/node_modules/base64-js/LICENSE +0 -21
  96. package/node_modules/base64-js/README.md +0 -34
  97. package/node_modules/base64-js/base64js.min.js +0 -1
  98. package/node_modules/base64-js/index.d.ts +0 -3
  99. package/node_modules/base64-js/index.js +0 -150
  100. package/node_modules/base64-js/package.json +0 -47
  101. package/node_modules/better-sqlite3/LICENSE +0 -21
  102. package/node_modules/better-sqlite3/README.md +0 -99
  103. package/node_modules/better-sqlite3/binding.gyp +0 -38
  104. package/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  105. package/node_modules/better-sqlite3/deps/common.gypi +0 -68
  106. package/node_modules/better-sqlite3/deps/copy.js +0 -31
  107. package/node_modules/better-sqlite3/deps/defines.gypi +0 -42
  108. package/node_modules/better-sqlite3/deps/download.sh +0 -123
  109. package/node_modules/better-sqlite3/deps/patches/1208.patch +0 -15
  110. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +0 -269395
  111. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +0 -14347
  112. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +0 -739
  113. package/node_modules/better-sqlite3/deps/sqlite3.gyp +0 -80
  114. package/node_modules/better-sqlite3/deps/test_extension.c +0 -21
  115. package/node_modules/better-sqlite3/lib/database.js +0 -90
  116. package/node_modules/better-sqlite3/lib/index.js +0 -3
  117. package/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
  118. package/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
  119. package/node_modules/better-sqlite3/lib/methods/function.js +0 -31
  120. package/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
  121. package/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
  122. package/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
  123. package/node_modules/better-sqlite3/lib/methods/table.js +0 -189
  124. package/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
  125. package/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
  126. package/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
  127. package/node_modules/better-sqlite3/lib/util.js +0 -12
  128. package/node_modules/better-sqlite3/package.json +0 -59
  129. package/node_modules/better-sqlite3/src/addon.cpp +0 -47
  130. package/node_modules/better-sqlite3/src/better_sqlite3.cpp +0 -74
  131. package/node_modules/better-sqlite3/src/objects/backup.cpp +0 -120
  132. package/node_modules/better-sqlite3/src/objects/backup.hpp +0 -36
  133. package/node_modules/better-sqlite3/src/objects/database.cpp +0 -417
  134. package/node_modules/better-sqlite3/src/objects/database.hpp +0 -103
  135. package/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +0 -113
  136. package/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +0 -50
  137. package/node_modules/better-sqlite3/src/objects/statement.cpp +0 -383
  138. package/node_modules/better-sqlite3/src/objects/statement.hpp +0 -58
  139. package/node_modules/better-sqlite3/src/util/bind-map.cpp +0 -73
  140. package/node_modules/better-sqlite3/src/util/binder.cpp +0 -193
  141. package/node_modules/better-sqlite3/src/util/constants.cpp +0 -172
  142. package/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +0 -121
  143. package/node_modules/better-sqlite3/src/util/custom-function.cpp +0 -59
  144. package/node_modules/better-sqlite3/src/util/custom-table.cpp +0 -409
  145. package/node_modules/better-sqlite3/src/util/data-converter.cpp +0 -17
  146. package/node_modules/better-sqlite3/src/util/data.cpp +0 -194
  147. package/node_modules/better-sqlite3/src/util/helpers.cpp +0 -109
  148. package/node_modules/better-sqlite3/src/util/macros.cpp +0 -90
  149. package/node_modules/better-sqlite3/src/util/query-macros.cpp +0 -71
  150. package/node_modules/better-sqlite3/src/util/row-builder.cpp +0 -49
  151. package/node_modules/bindings/LICENSE.md +0 -22
  152. package/node_modules/bindings/README.md +0 -98
  153. package/node_modules/bindings/bindings.js +0 -221
  154. package/node_modules/bindings/package.json +0 -28
  155. package/node_modules/bl/.travis.yml +0 -17
  156. package/node_modules/bl/BufferList.js +0 -396
  157. package/node_modules/bl/LICENSE.md +0 -13
  158. package/node_modules/bl/README.md +0 -247
  159. package/node_modules/bl/bl.js +0 -84
  160. package/node_modules/bl/package.json +0 -37
  161. package/node_modules/bl/test/convert.js +0 -21
  162. package/node_modules/bl/test/indexOf.js +0 -492
  163. package/node_modules/bl/test/isBufferList.js +0 -32
  164. package/node_modules/bl/test/test.js +0 -869
  165. package/node_modules/buffer/AUTHORS.md +0 -70
  166. package/node_modules/buffer/LICENSE +0 -21
  167. package/node_modules/buffer/README.md +0 -410
  168. package/node_modules/buffer/index.d.ts +0 -186
  169. package/node_modules/buffer/index.js +0 -1817
  170. package/node_modules/buffer/package.json +0 -96
  171. package/node_modules/chownr/LICENSE +0 -15
  172. package/node_modules/chownr/README.md +0 -3
  173. package/node_modules/chownr/chownr.js +0 -167
  174. package/node_modules/chownr/package.json +0 -29
  175. package/node_modules/decompress-response/index.d.ts +0 -22
  176. package/node_modules/decompress-response/index.js +0 -58
  177. package/node_modules/decompress-response/license +0 -9
  178. package/node_modules/decompress-response/package.json +0 -56
  179. package/node_modules/decompress-response/readme.md +0 -48
  180. package/node_modules/deep-extend/CHANGELOG.md +0 -46
  181. package/node_modules/deep-extend/LICENSE +0 -20
  182. package/node_modules/deep-extend/README.md +0 -91
  183. package/node_modules/deep-extend/index.js +0 -1
  184. package/node_modules/deep-extend/lib/deep-extend.js +0 -150
  185. package/node_modules/deep-extend/package.json +0 -62
  186. package/node_modules/detect-libc/LICENSE +0 -201
  187. package/node_modules/detect-libc/README.md +0 -163
  188. package/node_modules/detect-libc/index.d.ts +0 -14
  189. package/node_modules/detect-libc/lib/detect-libc.js +0 -313
  190. package/node_modules/detect-libc/lib/elf.js +0 -39
  191. package/node_modules/detect-libc/lib/filesystem.js +0 -51
  192. package/node_modules/detect-libc/lib/process.js +0 -24
  193. package/node_modules/detect-libc/package.json +0 -44
  194. package/node_modules/end-of-stream/LICENSE +0 -21
  195. package/node_modules/end-of-stream/README.md +0 -54
  196. package/node_modules/end-of-stream/index.js +0 -96
  197. package/node_modules/end-of-stream/package.json +0 -37
  198. package/node_modules/expand-template/.travis.yml +0 -6
  199. package/node_modules/expand-template/LICENSE +0 -21
  200. package/node_modules/expand-template/README.md +0 -43
  201. package/node_modules/expand-template/index.js +0 -26
  202. package/node_modules/expand-template/package.json +0 -29
  203. package/node_modules/expand-template/test.js +0 -67
  204. package/node_modules/file-uri-to-path/.npmignore +0 -1
  205. package/node_modules/file-uri-to-path/.travis.yml +0 -30
  206. package/node_modules/file-uri-to-path/History.md +0 -21
  207. package/node_modules/file-uri-to-path/LICENSE +0 -20
  208. package/node_modules/file-uri-to-path/README.md +0 -74
  209. package/node_modules/file-uri-to-path/index.d.ts +0 -2
  210. package/node_modules/file-uri-to-path/index.js +0 -66
  211. package/node_modules/file-uri-to-path/package.json +0 -32
  212. package/node_modules/file-uri-to-path/test/test.js +0 -24
  213. package/node_modules/file-uri-to-path/test/tests.json +0 -13
  214. package/node_modules/fs-constants/LICENSE +0 -21
  215. package/node_modules/fs-constants/README.md +0 -26
  216. package/node_modules/fs-constants/browser.js +0 -1
  217. package/node_modules/fs-constants/index.js +0 -1
  218. package/node_modules/fs-constants/package.json +0 -19
  219. package/node_modules/github-from-package/.travis.yml +0 -4
  220. package/node_modules/github-from-package/LICENSE +0 -18
  221. package/node_modules/github-from-package/example/package.json +0 -8
  222. package/node_modules/github-from-package/example/url.js +0 -3
  223. package/node_modules/github-from-package/index.js +0 -17
  224. package/node_modules/github-from-package/package.json +0 -30
  225. package/node_modules/github-from-package/readme.markdown +0 -53
  226. package/node_modules/github-from-package/test/a.json +0 -8
  227. package/node_modules/github-from-package/test/b.json +0 -5
  228. package/node_modules/github-from-package/test/c.json +0 -5
  229. package/node_modules/github-from-package/test/d.json +0 -7
  230. package/node_modules/github-from-package/test/e.json +0 -5
  231. package/node_modules/github-from-package/test/url.js +0 -19
  232. package/node_modules/ieee754/LICENSE +0 -11
  233. package/node_modules/ieee754/README.md +0 -51
  234. package/node_modules/ieee754/index.d.ts +0 -10
  235. package/node_modules/ieee754/index.js +0 -85
  236. package/node_modules/ieee754/package.json +0 -52
  237. package/node_modules/inherits/LICENSE +0 -16
  238. package/node_modules/inherits/README.md +0 -42
  239. package/node_modules/inherits/inherits.js +0 -9
  240. package/node_modules/inherits/inherits_browser.js +0 -27
  241. package/node_modules/inherits/package.json +0 -29
  242. package/node_modules/ini/LICENSE +0 -15
  243. package/node_modules/ini/README.md +0 -102
  244. package/node_modules/ini/ini.js +0 -206
  245. package/node_modules/ini/package.json +0 -33
  246. package/node_modules/mimic-response/index.d.ts +0 -17
  247. package/node_modules/mimic-response/index.js +0 -77
  248. package/node_modules/mimic-response/license +0 -9
  249. package/node_modules/mimic-response/package.json +0 -42
  250. package/node_modules/mimic-response/readme.md +0 -78
  251. package/node_modules/minimist/.eslintrc +0 -29
  252. package/node_modules/minimist/.github/FUNDING.yml +0 -12
  253. package/node_modules/minimist/.nycrc +0 -14
  254. package/node_modules/minimist/CHANGELOG.md +0 -298
  255. package/node_modules/minimist/LICENSE +0 -18
  256. package/node_modules/minimist/README.md +0 -121
  257. package/node_modules/minimist/example/parse.js +0 -4
  258. package/node_modules/minimist/index.js +0 -263
  259. package/node_modules/minimist/package.json +0 -75
  260. package/node_modules/minimist/test/all_bool.js +0 -34
  261. package/node_modules/minimist/test/bool.js +0 -177
  262. package/node_modules/minimist/test/dash.js +0 -43
  263. package/node_modules/minimist/test/default_bool.js +0 -37
  264. package/node_modules/minimist/test/dotted.js +0 -24
  265. package/node_modules/minimist/test/kv_short.js +0 -32
  266. package/node_modules/minimist/test/long.js +0 -33
  267. package/node_modules/minimist/test/num.js +0 -38
  268. package/node_modules/minimist/test/parse.js +0 -209
  269. package/node_modules/minimist/test/parse_modified.js +0 -11
  270. package/node_modules/minimist/test/proto.js +0 -64
  271. package/node_modules/minimist/test/short.js +0 -69
  272. package/node_modules/minimist/test/stop_early.js +0 -17
  273. package/node_modules/minimist/test/unknown.js +0 -104
  274. package/node_modules/minimist/test/whitespace.js +0 -10
  275. package/node_modules/mkdirp-classic/LICENSE +0 -21
  276. package/node_modules/mkdirp-classic/README.md +0 -18
  277. package/node_modules/mkdirp-classic/index.js +0 -98
  278. package/node_modules/mkdirp-classic/package.json +0 -18
  279. package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
  280. package/node_modules/napi-build-utils/LICENSE +0 -21
  281. package/node_modules/napi-build-utils/README.md +0 -52
  282. package/node_modules/napi-build-utils/index.js +0 -214
  283. package/node_modules/napi-build-utils/index.md +0 -0
  284. package/node_modules/napi-build-utils/package.json +0 -42
  285. package/node_modules/node-abi/LICENSE +0 -21
  286. package/node_modules/node-abi/README.md +0 -54
  287. package/node_modules/node-abi/abi_registry.json +0 -453
  288. package/node_modules/node-abi/index.js +0 -179
  289. package/node_modules/node-abi/package.json +0 -45
  290. package/node_modules/once/LICENSE +0 -15
  291. package/node_modules/once/README.md +0 -79
  292. package/node_modules/once/once.js +0 -42
  293. package/node_modules/once/package.json +0 -33
  294. package/node_modules/prebuild-install/CHANGELOG.md +0 -131
  295. package/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  296. package/node_modules/prebuild-install/LICENSE +0 -21
  297. package/node_modules/prebuild-install/README.md +0 -163
  298. package/node_modules/prebuild-install/asset.js +0 -44
  299. package/node_modules/prebuild-install/bin.js +0 -78
  300. package/node_modules/prebuild-install/download.js +0 -142
  301. package/node_modules/prebuild-install/error.js +0 -14
  302. package/node_modules/prebuild-install/help.txt +0 -16
  303. package/node_modules/prebuild-install/index.js +0 -1
  304. package/node_modules/prebuild-install/log.js +0 -33
  305. package/node_modules/prebuild-install/package.json +0 -67
  306. package/node_modules/prebuild-install/proxy.js +0 -35
  307. package/node_modules/prebuild-install/rc.js +0 -64
  308. package/node_modules/prebuild-install/util.js +0 -143
  309. package/node_modules/pump/.github/FUNDING.yml +0 -2
  310. package/node_modules/pump/.travis.yml +0 -5
  311. package/node_modules/pump/LICENSE +0 -21
  312. package/node_modules/pump/README.md +0 -74
  313. package/node_modules/pump/SECURITY.md +0 -5
  314. package/node_modules/pump/empty.js +0 -1
  315. package/node_modules/pump/index.js +0 -86
  316. package/node_modules/pump/package.json +0 -30
  317. package/node_modules/pump/test-browser.js +0 -66
  318. package/node_modules/pump/test-node.js +0 -53
  319. package/node_modules/rc/LICENSE.APACHE2 +0 -15
  320. package/node_modules/rc/LICENSE.BSD +0 -26
  321. package/node_modules/rc/LICENSE.MIT +0 -24
  322. package/node_modules/rc/README.md +0 -227
  323. package/node_modules/rc/browser.js +0 -7
  324. package/node_modules/rc/cli.js +0 -4
  325. package/node_modules/rc/index.js +0 -53
  326. package/node_modules/rc/lib/utils.js +0 -104
  327. package/node_modules/rc/package.json +0 -29
  328. package/node_modules/rc/test/ini.js +0 -16
  329. package/node_modules/rc/test/nested-env-vars.js +0 -50
  330. package/node_modules/rc/test/test.js +0 -59
  331. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  332. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  333. package/node_modules/readable-stream/LICENSE +0 -47
  334. package/node_modules/readable-stream/README.md +0 -106
  335. package/node_modules/readable-stream/errors-browser.js +0 -127
  336. package/node_modules/readable-stream/errors.js +0 -116
  337. package/node_modules/readable-stream/experimentalWarning.js +0 -17
  338. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  339. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  340. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  341. package/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  342. package/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  343. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  344. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  345. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  346. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  347. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  348. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  349. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  350. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  351. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  352. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  353. package/node_modules/readable-stream/package.json +0 -68
  354. package/node_modules/readable-stream/readable-browser.js +0 -9
  355. package/node_modules/readable-stream/readable.js +0 -16
  356. package/node_modules/safe-buffer/LICENSE +0 -21
  357. package/node_modules/safe-buffer/README.md +0 -584
  358. package/node_modules/safe-buffer/index.d.ts +0 -187
  359. package/node_modules/safe-buffer/index.js +0 -65
  360. package/node_modules/safe-buffer/package.json +0 -51
  361. package/node_modules/semver/LICENSE +0 -15
  362. package/node_modules/semver/README.md +0 -680
  363. package/node_modules/semver/bin/semver.js +0 -195
  364. package/node_modules/semver/classes/comparator.js +0 -143
  365. package/node_modules/semver/classes/index.js +0 -7
  366. package/node_modules/semver/classes/range.js +0 -577
  367. package/node_modules/semver/classes/semver.js +0 -350
  368. package/node_modules/semver/functions/clean.js +0 -8
  369. package/node_modules/semver/functions/cmp.js +0 -54
  370. package/node_modules/semver/functions/coerce.js +0 -62
  371. package/node_modules/semver/functions/compare-build.js +0 -9
  372. package/node_modules/semver/functions/compare-loose.js +0 -5
  373. package/node_modules/semver/functions/compare.js +0 -7
  374. package/node_modules/semver/functions/diff.js +0 -60
  375. package/node_modules/semver/functions/eq.js +0 -5
  376. package/node_modules/semver/functions/gt.js +0 -5
  377. package/node_modules/semver/functions/gte.js +0 -5
  378. package/node_modules/semver/functions/inc.js +0 -21
  379. package/node_modules/semver/functions/lt.js +0 -5
  380. package/node_modules/semver/functions/lte.js +0 -5
  381. package/node_modules/semver/functions/major.js +0 -5
  382. package/node_modules/semver/functions/minor.js +0 -5
  383. package/node_modules/semver/functions/neq.js +0 -5
  384. package/node_modules/semver/functions/parse.js +0 -18
  385. package/node_modules/semver/functions/patch.js +0 -5
  386. package/node_modules/semver/functions/prerelease.js +0 -8
  387. package/node_modules/semver/functions/rcompare.js +0 -5
  388. package/node_modules/semver/functions/rsort.js +0 -5
  389. package/node_modules/semver/functions/satisfies.js +0 -12
  390. package/node_modules/semver/functions/sort.js +0 -5
  391. package/node_modules/semver/functions/truncate.js +0 -48
  392. package/node_modules/semver/functions/valid.js +0 -8
  393. package/node_modules/semver/index.js +0 -93
  394. package/node_modules/semver/internal/constants.js +0 -37
  395. package/node_modules/semver/internal/debug.js +0 -11
  396. package/node_modules/semver/internal/identifiers.js +0 -29
  397. package/node_modules/semver/internal/lrucache.js +0 -42
  398. package/node_modules/semver/internal/parse-options.js +0 -17
  399. package/node_modules/semver/internal/re.js +0 -223
  400. package/node_modules/semver/package.json +0 -78
  401. package/node_modules/semver/preload.js +0 -4
  402. package/node_modules/semver/range.bnf +0 -17
  403. package/node_modules/semver/ranges/gtr.js +0 -6
  404. package/node_modules/semver/ranges/intersects.js +0 -9
  405. package/node_modules/semver/ranges/ltr.js +0 -6
  406. package/node_modules/semver/ranges/max-satisfying.js +0 -27
  407. package/node_modules/semver/ranges/min-satisfying.js +0 -26
  408. package/node_modules/semver/ranges/min-version.js +0 -63
  409. package/node_modules/semver/ranges/outside.js +0 -82
  410. package/node_modules/semver/ranges/simplify.js +0 -49
  411. package/node_modules/semver/ranges/subset.js +0 -249
  412. package/node_modules/semver/ranges/to-comparators.js +0 -10
  413. package/node_modules/semver/ranges/valid.js +0 -13
  414. package/node_modules/simple-concat/.travis.yml +0 -3
  415. package/node_modules/simple-concat/LICENSE +0 -20
  416. package/node_modules/simple-concat/README.md +0 -44
  417. package/node_modules/simple-concat/index.js +0 -15
  418. package/node_modules/simple-concat/package.json +0 -47
  419. package/node_modules/simple-concat/test/basic.js +0 -41
  420. package/node_modules/simple-get/.github/dependabot.yml +0 -15
  421. package/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  422. package/node_modules/simple-get/LICENSE +0 -20
  423. package/node_modules/simple-get/README.md +0 -333
  424. package/node_modules/simple-get/index.js +0 -108
  425. package/node_modules/simple-get/package.json +0 -67
  426. package/node_modules/string_decoder/LICENSE +0 -48
  427. package/node_modules/string_decoder/README.md +0 -47
  428. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  429. package/node_modules/string_decoder/package.json +0 -34
  430. package/node_modules/strip-json-comments/index.js +0 -70
  431. package/node_modules/strip-json-comments/license +0 -21
  432. package/node_modules/strip-json-comments/package.json +0 -42
  433. package/node_modules/strip-json-comments/readme.md +0 -64
  434. package/node_modules/tar-fs/.travis.yml +0 -6
  435. package/node_modules/tar-fs/LICENSE +0 -21
  436. package/node_modules/tar-fs/README.md +0 -165
  437. package/node_modules/tar-fs/index.js +0 -392
  438. package/node_modules/tar-fs/package.json +0 -46
  439. package/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  440. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  441. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  442. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  443. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  444. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  445. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  446. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  447. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  448. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  449. package/node_modules/tar-fs/test/index.js +0 -457
  450. package/node_modules/tar-stream/LICENSE +0 -21
  451. package/node_modules/tar-stream/README.md +0 -168
  452. package/node_modules/tar-stream/extract.js +0 -257
  453. package/node_modules/tar-stream/headers.js +0 -295
  454. package/node_modules/tar-stream/index.js +0 -2
  455. package/node_modules/tar-stream/pack.js +0 -255
  456. package/node_modules/tar-stream/package.json +0 -58
  457. package/node_modules/tar-stream/sandbox.js +0 -11
  458. package/node_modules/tunnel-agent/LICENSE +0 -55
  459. package/node_modules/tunnel-agent/README.md +0 -4
  460. package/node_modules/tunnel-agent/index.js +0 -244
  461. package/node_modules/tunnel-agent/package.json +0 -22
  462. package/node_modules/util-deprecate/History.md +0 -16
  463. package/node_modules/util-deprecate/LICENSE +0 -24
  464. package/node_modules/util-deprecate/README.md +0 -53
  465. package/node_modules/util-deprecate/browser.js +0 -67
  466. package/node_modules/util-deprecate/node.js +0 -6
  467. package/node_modules/util-deprecate/package.json +0 -27
  468. package/node_modules/wrappy/LICENSE +0 -15
  469. package/node_modules/wrappy/README.md +0 -36
  470. package/node_modules/wrappy/package.json +0 -29
  471. package/node_modules/wrappy/wrappy.js +0 -33
@@ -1,417 +0,0 @@
1
- const int Database::MAX_BUFFER_SIZE = (
2
- node::Buffer::kMaxLength > INT_MAX
3
- ? INT_MAX
4
- : static_cast<int>(node::Buffer::kMaxLength)
5
- );
6
-
7
- const int Database::MAX_STRING_SIZE = (
8
- v8::String::kMaxLength > INT_MAX
9
- ? INT_MAX
10
- : static_cast<int>(v8::String::kMaxLength)
11
- );
12
-
13
- Database::Database(
14
- v8::Isolate* isolate,
15
- Addon* addon,
16
- sqlite3* db_handle,
17
- v8::Local<v8::Value> logger
18
- ) :
19
- node::ObjectWrap(),
20
- db_handle(db_handle),
21
- open(true),
22
- busy(false),
23
- safe_ints(false),
24
- unsafe_mode(false),
25
- was_js_error(false),
26
- has_logger(logger->IsFunction()),
27
- iterators(0),
28
- addon(addon),
29
- logger(isolate, logger),
30
- stmts(),
31
- backups() {
32
- assert(db_handle != NULL);
33
- addon->dbs.insert(this);
34
- }
35
-
36
- Database::~Database() {
37
- if (open) addon->dbs.erase(this);
38
- CloseHandles();
39
- }
40
-
41
- // Whenever this is used, addon->dbs.erase() must be invoked beforehand.
42
- void Database::CloseHandles() {
43
- if (open) {
44
- open = false;
45
- for (Statement* stmt : stmts) stmt->CloseHandles();
46
- for (Backup* backup : backups) backup->CloseHandles();
47
- stmts.clear();
48
- backups.clear();
49
- int status = sqlite3_close(db_handle);
50
- assert(status == SQLITE_OK); ((void)status);
51
- }
52
- }
53
-
54
- void Database::ThrowDatabaseError() {
55
- if (was_js_error) was_js_error = false;
56
- else ThrowSqliteError(addon, db_handle);
57
- }
58
-
59
- void Database::ThrowSqliteError(Addon* addon, sqlite3* db_handle) {
60
- assert(db_handle != NULL);
61
- ThrowSqliteError(addon, sqlite3_errmsg(db_handle), sqlite3_extended_errcode(db_handle));
62
- }
63
-
64
- void Database::ThrowSqliteError(Addon* addon, const char* message, int code) {
65
- assert(message != NULL);
66
- assert((code & 0xff) != SQLITE_OK);
67
- assert((code & 0xff) != SQLITE_ROW);
68
- assert((code & 0xff) != SQLITE_DONE);
69
- EasyIsolate;
70
- v8::Local<v8::Value> args[2] = {
71
- StringFromUtf8(isolate, message, -1),
72
- addon->cs.Code(isolate, code)
73
- };
74
- isolate->ThrowException(addon->SqliteError.Get(isolate)
75
- ->NewInstance(OnlyContext, 2, args)
76
- .ToLocalChecked());
77
- }
78
-
79
- // Allows Statements to log their executed SQL.
80
- bool Database::Log(v8::Isolate* isolate, sqlite3_stmt* handle) {
81
- assert(was_js_error == false);
82
- if (!has_logger) return false;
83
- char* expanded = sqlite3_expanded_sql(handle);
84
- v8::Local<v8::Value> arg = StringFromUtf8(isolate, expanded ? expanded : sqlite3_sql(handle), -1);
85
- was_js_error = logger.Get(isolate).As<v8::Function>()
86
- ->Call(OnlyContext, v8::Undefined(isolate), 1, &arg)
87
- .IsEmpty();
88
- if (expanded) sqlite3_free(expanded);
89
- return was_js_error;
90
- }
91
-
92
- bool Database::Deserialize(
93
- v8::Local<v8::Object> buffer,
94
- Addon* addon,
95
- sqlite3* db_handle,
96
- bool readonly
97
- ) {
98
- size_t length = node::Buffer::Length(buffer);
99
- unsigned char* data = (unsigned char*)sqlite3_malloc64(length);
100
- unsigned int flags = SQLITE_DESERIALIZE_FREEONCLOSE | SQLITE_DESERIALIZE_RESIZEABLE;
101
-
102
- if (readonly) {
103
- flags |= SQLITE_DESERIALIZE_READONLY;
104
- }
105
- if (length) {
106
- if (!data) {
107
- ThrowError("Out of memory");
108
- return false;
109
- }
110
- memcpy(data, node::Buffer::Data(buffer), length);
111
- }
112
-
113
- int status = sqlite3_deserialize(db_handle, "main", data, length, length, flags);
114
- if (status != SQLITE_OK) {
115
- ThrowSqliteError(addon, status == SQLITE_ERROR ? "unable to deserialize database" : sqlite3_errstr(status), status);
116
- return false;
117
- }
118
-
119
- return true;
120
- }
121
-
122
- void Database::FreeSerialization(char* data, void* _) {
123
- sqlite3_free(data);
124
- }
125
-
126
- INIT(Database::Init) {
127
- v8::Local<v8::FunctionTemplate> t = NewConstructorTemplate(isolate, data, JS_new, "Database");
128
- SetPrototypeMethod(isolate, data, t, "prepare", JS_prepare);
129
- SetPrototypeMethod(isolate, data, t, "exec", JS_exec);
130
- SetPrototypeMethod(isolate, data, t, "backup", JS_backup);
131
- SetPrototypeMethod(isolate, data, t, "serialize", JS_serialize);
132
- SetPrototypeMethod(isolate, data, t, "function", JS_function);
133
- SetPrototypeMethod(isolate, data, t, "aggregate", JS_aggregate);
134
- SetPrototypeMethod(isolate, data, t, "table", JS_table);
135
- SetPrototypeMethod(isolate, data, t, "loadExtension", JS_loadExtension);
136
- SetPrototypeMethod(isolate, data, t, "close", JS_close);
137
- SetPrototypeMethod(isolate, data, t, "defaultSafeIntegers", JS_defaultSafeIntegers);
138
- SetPrototypeMethod(isolate, data, t, "unsafeMode", JS_unsafeMode);
139
- SetPrototypeGetter(isolate, data, t, "open", JS_open);
140
- SetPrototypeGetter(isolate, data, t, "inTransaction", JS_inTransaction);
141
- return t->GetFunction(OnlyContext).ToLocalChecked();
142
- }
143
-
144
- NODE_METHOD(Database::JS_new) {
145
- assert(info.IsConstructCall());
146
- REQUIRE_ARGUMENT_STRING(first, v8::Local<v8::String> filename);
147
- REQUIRE_ARGUMENT_STRING(second, v8::Local<v8::String> filenameGiven);
148
- REQUIRE_ARGUMENT_BOOLEAN(third, bool in_memory);
149
- REQUIRE_ARGUMENT_BOOLEAN(fourth, bool readonly);
150
- REQUIRE_ARGUMENT_BOOLEAN(fifth, bool must_exist);
151
- REQUIRE_ARGUMENT_INT32(sixth, int timeout);
152
- REQUIRE_ARGUMENT_ANY(seventh, v8::Local<v8::Value> logger);
153
- REQUIRE_ARGUMENT_ANY(eighth, v8::Local<v8::Value> buffer);
154
-
155
- UseAddon;
156
- UseIsolate;
157
- sqlite3* db_handle;
158
- v8::String::Utf8Value utf8(isolate, filename);
159
- int mask = readonly ? SQLITE_OPEN_READONLY
160
- : must_exist ? SQLITE_OPEN_READWRITE
161
- : (SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE);
162
-
163
- if (sqlite3_open_v2(*utf8, &db_handle, mask, NULL) != SQLITE_OK) {
164
- ThrowSqliteError(addon, db_handle);
165
- int status = sqlite3_close(db_handle);
166
- assert(status == SQLITE_OK); ((void)status);
167
- return;
168
- }
169
-
170
- assert(sqlite3_db_mutex(db_handle) == NULL);
171
- sqlite3_extended_result_codes(db_handle, 1);
172
- sqlite3_busy_timeout(db_handle, timeout);
173
- sqlite3_limit(db_handle, SQLITE_LIMIT_LENGTH, MAX_BUFFER_SIZE < MAX_STRING_SIZE ? MAX_BUFFER_SIZE : MAX_STRING_SIZE);
174
- sqlite3_limit(db_handle, SQLITE_LIMIT_SQL_LENGTH, MAX_STRING_SIZE);
175
- int status = sqlite3_db_config(db_handle, SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION, 1, NULL);
176
- assert(status == SQLITE_OK); ((void)status);
177
- status = sqlite3_db_config(db_handle, SQLITE_DBCONFIG_DEFENSIVE, 1, NULL);
178
- assert(status == SQLITE_OK); ((void)status);
179
-
180
- if (node::Buffer::HasInstance(buffer) && !Deserialize(buffer.As<v8::Object>(), addon, db_handle, readonly)) {
181
- int status = sqlite3_close(db_handle);
182
- assert(status == SQLITE_OK); ((void)status);
183
- return;
184
- }
185
-
186
- UseContext;
187
- Database* db = new Database(isolate, addon, db_handle, logger);
188
- db->Wrap(info.This());
189
- SetFrozen(isolate, ctx, info.This(), addon->cs.memory, v8::Boolean::New(isolate, in_memory));
190
- SetFrozen(isolate, ctx, info.This(), addon->cs.readonly, v8::Boolean::New(isolate, readonly));
191
- SetFrozen(isolate, ctx, info.This(), addon->cs.name, filenameGiven);
192
-
193
- info.GetReturnValue().Set(info.This());
194
- }
195
-
196
- NODE_METHOD(Database::JS_prepare) {
197
- REQUIRE_ARGUMENT_STRING(first, v8::Local<v8::String> source);
198
- REQUIRE_ARGUMENT_OBJECT(second, v8::Local<v8::Object> database);
199
- REQUIRE_ARGUMENT_BOOLEAN(third, bool pragmaMode);
200
- (void)source;
201
- (void)database;
202
- (void)pragmaMode;
203
- UseAddon;
204
- UseIsolate;
205
- v8::Local<v8::Function> c = addon->Statement.Get(isolate);
206
- addon->privileged_info = &info;
207
- v8::MaybeLocal<v8::Object> maybeStatement = c->NewInstance(OnlyContext, 0, NULL);
208
- addon->privileged_info = NULL;
209
- if (!maybeStatement.IsEmpty()) info.GetReturnValue().Set(maybeStatement.ToLocalChecked());
210
- }
211
-
212
- NODE_METHOD(Database::JS_exec) {
213
- Database* db = Unwrap<Database>(info.This());
214
- REQUIRE_ARGUMENT_STRING(first, v8::Local<v8::String> source);
215
- REQUIRE_DATABASE_OPEN(db);
216
- REQUIRE_DATABASE_NOT_BUSY(db);
217
- REQUIRE_DATABASE_NO_ITERATORS_UNLESS_UNSAFE(db);
218
- db->busy = true;
219
-
220
- UseIsolate;
221
- v8::String::Utf8Value utf8(isolate, source);
222
- const char* sql = *utf8;
223
- const char* tail;
224
-
225
- int status;
226
- const bool has_logger = db->has_logger;
227
- sqlite3* const db_handle = db->db_handle;
228
- sqlite3_stmt* handle;
229
-
230
- for (;;) {
231
- while (IS_SKIPPED(*sql)) ++sql;
232
- status = sqlite3_prepare_v2(db_handle, sql, -1, &handle, &tail);
233
- sql = tail;
234
- if (!handle) break;
235
- if (has_logger && db->Log(isolate, handle)) {
236
- sqlite3_finalize(handle);
237
- status = -1;
238
- break;
239
- }
240
- do status = sqlite3_step(handle);
241
- while (status == SQLITE_ROW);
242
- status = sqlite3_finalize(handle);
243
- if (status != SQLITE_OK) break;
244
- }
245
-
246
- db->busy = false;
247
- if (status != SQLITE_OK) {
248
- db->ThrowDatabaseError();
249
- }
250
- }
251
-
252
- NODE_METHOD(Database::JS_backup) {
253
- REQUIRE_ARGUMENT_OBJECT(first, v8::Local<v8::Object> database);
254
- REQUIRE_ARGUMENT_STRING(second, v8::Local<v8::String> attachedName);
255
- REQUIRE_ARGUMENT_STRING(third, v8::Local<v8::String> destFile);
256
- REQUIRE_ARGUMENT_BOOLEAN(fourth, bool unlink);
257
- (void)database;
258
- (void)attachedName;
259
- (void)destFile;
260
- (void)unlink;
261
- UseAddon;
262
- UseIsolate;
263
- v8::Local<v8::Function> c = addon->Backup.Get(isolate);
264
- addon->privileged_info = &info;
265
- v8::MaybeLocal<v8::Object> maybeBackup = c->NewInstance(OnlyContext, 0, NULL);
266
- addon->privileged_info = NULL;
267
- if (!maybeBackup.IsEmpty()) info.GetReturnValue().Set(maybeBackup.ToLocalChecked());
268
- }
269
-
270
- NODE_METHOD(Database::JS_serialize) {
271
- Database* db = Unwrap<Database>(info.This());
272
- REQUIRE_ARGUMENT_STRING(first, v8::Local<v8::String> attachedName);
273
- REQUIRE_DATABASE_OPEN(db);
274
- REQUIRE_DATABASE_NOT_BUSY(db);
275
- REQUIRE_DATABASE_NO_ITERATORS(db);
276
-
277
- UseIsolate;
278
- v8::String::Utf8Value attached_name(isolate, attachedName);
279
- sqlite3_int64 length = -1;
280
- unsigned char* data = sqlite3_serialize(db->db_handle, *attached_name, &length, 0);
281
-
282
- if (!data && length) {
283
- ThrowError("Out of memory");
284
- return;
285
- }
286
-
287
- info.GetReturnValue().Set(
288
- SAFE_NEW_BUFFER(isolate, reinterpret_cast<char*>(data), length, FreeSerialization, NULL).ToLocalChecked()
289
- );
290
- }
291
-
292
- NODE_METHOD(Database::JS_function) {
293
- Database* db = Unwrap<Database>(info.This());
294
- REQUIRE_ARGUMENT_FUNCTION(first, v8::Local<v8::Function> fn);
295
- REQUIRE_ARGUMENT_STRING(second, v8::Local<v8::String> nameString);
296
- REQUIRE_ARGUMENT_INT32(third, int argc);
297
- REQUIRE_ARGUMENT_INT32(fourth, int safe_ints);
298
- REQUIRE_ARGUMENT_BOOLEAN(fifth, bool deterministic);
299
- REQUIRE_ARGUMENT_BOOLEAN(sixth, bool direct_only);
300
- REQUIRE_DATABASE_OPEN(db);
301
- REQUIRE_DATABASE_NOT_BUSY(db);
302
- REQUIRE_DATABASE_NO_ITERATORS(db);
303
-
304
- UseIsolate;
305
- v8::String::Utf8Value name(isolate, nameString);
306
- int mask = SQLITE_UTF8;
307
- if (deterministic) mask |= SQLITE_DETERMINISTIC;
308
- if (direct_only) mask |= SQLITE_DIRECTONLY;
309
- safe_ints = safe_ints < 2 ? safe_ints : static_cast<int>(db->safe_ints);
310
-
311
- if (sqlite3_create_function_v2(db->db_handle, *name, argc, mask, new CustomFunction(isolate, db, *name, fn, safe_ints), CustomFunction::xFunc, NULL, NULL, CustomFunction::xDestroy) != SQLITE_OK) {
312
- db->ThrowDatabaseError();
313
- }
314
- }
315
-
316
- NODE_METHOD(Database::JS_aggregate) {
317
- Database* db = Unwrap<Database>(info.This());
318
- REQUIRE_ARGUMENT_ANY(first, v8::Local<v8::Value> start);
319
- REQUIRE_ARGUMENT_FUNCTION(second, v8::Local<v8::Function> step);
320
- REQUIRE_ARGUMENT_ANY(third, v8::Local<v8::Value> inverse);
321
- REQUIRE_ARGUMENT_ANY(fourth, v8::Local<v8::Value> result);
322
- REQUIRE_ARGUMENT_STRING(fifth, v8::Local<v8::String> nameString);
323
- REQUIRE_ARGUMENT_INT32(sixth, int argc);
324
- REQUIRE_ARGUMENT_INT32(seventh, int safe_ints);
325
- REQUIRE_ARGUMENT_BOOLEAN(eighth, bool deterministic);
326
- REQUIRE_ARGUMENT_BOOLEAN(ninth, bool direct_only);
327
- REQUIRE_DATABASE_OPEN(db);
328
- REQUIRE_DATABASE_NOT_BUSY(db);
329
- REQUIRE_DATABASE_NO_ITERATORS(db);
330
-
331
- UseIsolate;
332
- v8::String::Utf8Value name(isolate, nameString);
333
- auto xInverse = inverse->IsFunction() ? CustomAggregate::xInverse : NULL;
334
- auto xValue = xInverse ? CustomAggregate::xValue : NULL;
335
- int mask = SQLITE_UTF8;
336
- if (deterministic) mask |= SQLITE_DETERMINISTIC;
337
- if (direct_only) mask |= SQLITE_DIRECTONLY;
338
- safe_ints = safe_ints < 2 ? safe_ints : static_cast<int>(db->safe_ints);
339
-
340
- if (sqlite3_create_window_function(db->db_handle, *name, argc, mask, new CustomAggregate(isolate, db, *name, start, step, inverse, result, safe_ints), CustomAggregate::xStep, CustomAggregate::xFinal, xValue, xInverse, CustomAggregate::xDestroy) != SQLITE_OK) {
341
- db->ThrowDatabaseError();
342
- }
343
- }
344
-
345
- NODE_METHOD(Database::JS_table) {
346
- Database* db = Unwrap<Database>(info.This());
347
- REQUIRE_ARGUMENT_FUNCTION(first, v8::Local<v8::Function> factory);
348
- REQUIRE_ARGUMENT_STRING(second, v8::Local<v8::String> nameString);
349
- REQUIRE_ARGUMENT_BOOLEAN(third, bool eponymous);
350
- REQUIRE_DATABASE_OPEN(db);
351
- REQUIRE_DATABASE_NOT_BUSY(db);
352
- REQUIRE_DATABASE_NO_ITERATORS(db);
353
-
354
- UseIsolate;
355
- v8::String::Utf8Value name(isolate, nameString);
356
- sqlite3_module* module = eponymous ? &CustomTable::EPONYMOUS_MODULE : &CustomTable::MODULE;
357
-
358
- db->busy = true;
359
- if (sqlite3_create_module_v2(db->db_handle, *name, module, new CustomTable(isolate, db, *name, factory), CustomTable::Destructor) != SQLITE_OK) {
360
- db->ThrowDatabaseError();
361
- }
362
- db->busy = false;
363
- }
364
-
365
- NODE_METHOD(Database::JS_loadExtension) {
366
- Database* db = Unwrap<Database>(info.This());
367
- v8::Local<v8::String> entryPoint;
368
- REQUIRE_ARGUMENT_STRING(first, v8::Local<v8::String> filename);
369
- if (info.Length() > 1) { REQUIRE_ARGUMENT_STRING(second, entryPoint); }
370
- REQUIRE_DATABASE_OPEN(db);
371
- REQUIRE_DATABASE_NOT_BUSY(db);
372
- REQUIRE_DATABASE_NO_ITERATORS(db);
373
- UseIsolate;
374
- char* error;
375
- int status = sqlite3_load_extension(
376
- db->db_handle,
377
- *v8::String::Utf8Value(isolate, filename),
378
- entryPoint.IsEmpty() ? NULL : *v8::String::Utf8Value(isolate, entryPoint),
379
- &error
380
- );
381
- if (status != SQLITE_OK) {
382
- ThrowSqliteError(db->addon, error, status);
383
- }
384
- sqlite3_free(error);
385
- }
386
-
387
- NODE_METHOD(Database::JS_close) {
388
- Database* db = Unwrap<Database>(info.This());
389
- if (db->open) {
390
- REQUIRE_DATABASE_NOT_BUSY(db);
391
- REQUIRE_DATABASE_NO_ITERATORS(db);
392
- db->addon->dbs.erase(db);
393
- db->CloseHandles();
394
- }
395
- }
396
-
397
- NODE_METHOD(Database::JS_defaultSafeIntegers) {
398
- Database* db = Unwrap<Database>(info.This());
399
- if (info.Length() == 0) db->safe_ints = true;
400
- else { REQUIRE_ARGUMENT_BOOLEAN(first, db->safe_ints); }
401
- }
402
-
403
- NODE_METHOD(Database::JS_unsafeMode) {
404
- Database* db = Unwrap<Database>(info.This());
405
- if (info.Length() == 0) db->unsafe_mode = true;
406
- else { REQUIRE_ARGUMENT_BOOLEAN(first, db->unsafe_mode); }
407
- sqlite3_db_config(db->db_handle, SQLITE_DBCONFIG_DEFENSIVE, static_cast<int>(!db->unsafe_mode), NULL);
408
- }
409
-
410
- NODE_GETTER(Database::JS_open) {
411
- info.GetReturnValue().Set(Unwrap<Database>(PROPERTY_HOLDER(info))->open);
412
- }
413
-
414
- NODE_GETTER(Database::JS_inTransaction) {
415
- Database* db = Unwrap<Database>(PROPERTY_HOLDER(info));
416
- info.GetReturnValue().Set(db->open && !static_cast<bool>(sqlite3_get_autocommit(db->db_handle)));
417
- }
@@ -1,103 +0,0 @@
1
- class Database : public node::ObjectWrap {
2
- public:
3
-
4
- ~Database();
5
-
6
- // Whenever this is used, addon->dbs.erase() must be invoked beforehand.
7
- void CloseHandles();
8
-
9
- // Used to support ordered containers.
10
- class CompareDatabase { public:
11
- inline bool operator() (Database const * const a, Database const * const b) const {
12
- return a < b;
13
- }
14
- };
15
- class CompareStatement { public:
16
- inline bool operator() (Statement const * const a, Statement const * const b) const {
17
- return Statement::Compare(a, b);
18
- }
19
- };
20
- class CompareBackup { public:
21
- inline bool operator() (Backup const * const a, Backup const * const b) const {
22
- return Backup::Compare(a, b);
23
- }
24
- };
25
-
26
- // Proper error handling logic for when an sqlite3 operation fails.
27
- void ThrowDatabaseError();
28
- static void ThrowSqliteError(Addon* addon, sqlite3* db_handle);
29
- static void ThrowSqliteError(Addon* addon, const char* message, int code);
30
-
31
- // Allows Statements to log their executed SQL.
32
- bool Log(v8::Isolate* isolate, sqlite3_stmt* handle);
33
-
34
- // Allow Statements to manage themselves when created and garbage collected.
35
- inline void AddStatement(Statement* stmt) { stmts.insert(stmts.end(), stmt); }
36
- inline void RemoveStatement(Statement* stmt) { stmts.erase(stmt); }
37
-
38
- // Allow Backups to manage themselves when created and garbage collected.
39
- inline void AddBackup(Backup* backup) { backups.insert(backups.end(), backup); }
40
- inline void RemoveBackup(Backup* backup) { backups.erase(backup); }
41
-
42
- // A view for Statements to see and modify Database state.
43
- // The order of these fields must exactly match their actual order.
44
- struct State {
45
- const bool open;
46
- bool busy;
47
- const bool safe_ints;
48
- const bool unsafe_mode;
49
- bool was_js_error;
50
- const bool has_logger;
51
- unsigned short iterators;
52
- Addon* const addon;
53
- };
54
-
55
- inline State* GetState() { return reinterpret_cast<State*>(&open); }
56
- inline sqlite3* GetHandle() { return db_handle; }
57
- inline Addon* GetAddon() { return addon; }
58
-
59
- static INIT(Init);
60
-
61
- private:
62
-
63
- explicit Database(
64
- v8::Isolate* isolate,
65
- Addon* addon,
66
- sqlite3* db_handle,
67
- v8::Local<v8::Value> logger
68
- );
69
-
70
- static NODE_METHOD(JS_new);
71
- static NODE_METHOD(JS_prepare);
72
- static NODE_METHOD(JS_exec);
73
- static NODE_METHOD(JS_backup);
74
- static NODE_METHOD(JS_serialize);
75
- static NODE_METHOD(JS_function);
76
- static NODE_METHOD(JS_aggregate);
77
- static NODE_METHOD(JS_table);
78
- static NODE_METHOD(JS_loadExtension);
79
- static NODE_METHOD(JS_close);
80
- static NODE_METHOD(JS_defaultSafeIntegers);
81
- static NODE_METHOD(JS_unsafeMode);
82
- static NODE_GETTER(JS_open);
83
- static NODE_GETTER(JS_inTransaction);
84
-
85
- static bool Deserialize(v8::Local<v8::Object> buffer, Addon* addon, sqlite3* db_handle, bool readonly);
86
- static void FreeSerialization(char* data, void* _);
87
-
88
- static const int MAX_BUFFER_SIZE;
89
- static const int MAX_STRING_SIZE;
90
-
91
- sqlite3* const db_handle;
92
- bool open;
93
- bool busy;
94
- bool safe_ints;
95
- bool unsafe_mode;
96
- bool was_js_error;
97
- const bool has_logger;
98
- unsigned short iterators;
99
- Addon* const addon;
100
- const v8::Global<v8::Value> logger;
101
- std::set<Statement*, CompareStatement> stmts;
102
- std::set<Backup*, CompareBackup> backups;
103
- };
@@ -1,113 +0,0 @@
1
- StatementIterator::StatementIterator(Statement* stmt, bool bound) :
2
- node::ObjectWrap(),
3
- stmt(stmt),
4
- handle(stmt->handle),
5
- db_state(stmt->db->GetState()),
6
- bound(bound),
7
- safe_ints(stmt->safe_ints),
8
- mode(stmt->mode),
9
- alive(true),
10
- logged(!db_state->has_logger) {
11
- assert(stmt != NULL);
12
- assert(handle != NULL);
13
- assert(stmt->bound == bound);
14
- assert(stmt->alive == true);
15
- assert(stmt->locked == false);
16
- assert(db_state->iterators < USHRT_MAX);
17
- stmt->locked = true;
18
- db_state->iterators += 1;
19
- }
20
-
21
- // The ~Statement destructor currently covers any state this object creates.
22
- // Additionally, we actually DON'T want to revert stmt->locked or db_state
23
- // ->iterators in this destructor, to ensure deterministic database access.
24
- StatementIterator::~StatementIterator() {}
25
-
26
- void StatementIterator::Next(NODE_ARGUMENTS info) {
27
- assert(alive == true);
28
- db_state->busy = true;
29
- if (!logged) {
30
- logged = true;
31
- if (stmt->db->Log(OnlyIsolate, handle)) {
32
- db_state->busy = false;
33
- Throw();
34
- return;
35
- }
36
- }
37
- int status = sqlite3_step(handle);
38
- db_state->busy = false;
39
- if (status == SQLITE_ROW) {
40
- UseIsolate;
41
- UseContext;
42
- info.GetReturnValue().Set(
43
- NewRecord(isolate, ctx, Data::GetRowJS(isolate, ctx, handle, safe_ints, mode), db_state->addon, false)
44
- );
45
- } else {
46
- if (status == SQLITE_DONE) Return(info);
47
- else Throw();
48
- }
49
- }
50
-
51
- void StatementIterator::Return(NODE_ARGUMENTS info) {
52
- Cleanup();
53
- STATEMENT_RETURN_LOGIC(DoneRecord(OnlyIsolate, db_state->addon));
54
- }
55
-
56
- void StatementIterator::Throw() {
57
- Cleanup();
58
- Database* db = stmt->db;
59
- STATEMENT_THROW_LOGIC();
60
- }
61
-
62
- void StatementIterator::Cleanup() {
63
- assert(alive == true);
64
- alive = false;
65
- stmt->locked = false;
66
- db_state->iterators -= 1;
67
- sqlite3_reset(handle);
68
- }
69
-
70
- INIT(StatementIterator::Init) {
71
- v8::Local<v8::FunctionTemplate> t = NewConstructorTemplate(isolate, data, JS_new, "StatementIterator");
72
- SetPrototypeMethod(isolate, data, t, "next", JS_next);
73
- SetPrototypeMethod(isolate, data, t, "return", JS_return);
74
- SetPrototypeSymbolMethod(isolate, data, t, v8::Symbol::GetIterator(isolate), JS_symbolIterator);
75
- return t->GetFunction(OnlyContext).ToLocalChecked();
76
- }
77
-
78
- NODE_METHOD(StatementIterator::JS_new) {
79
- UseAddon;
80
- if (!addon->privileged_info) return ThrowTypeError("Disabled constructor");
81
- assert(info.IsConstructCall());
82
-
83
- StatementIterator* iter;
84
- {
85
- NODE_ARGUMENTS info = *addon->privileged_info;
86
- STATEMENT_START_LOGIC(REQUIRE_STATEMENT_RETURNS_DATA, DOES_ADD_ITERATOR);
87
- iter = new StatementIterator(stmt, bound);
88
- }
89
- UseIsolate;
90
- UseContext;
91
- iter->Wrap(info.This());
92
- SetFrozen(isolate, ctx, info.This(), addon->cs.statement, addon->privileged_info->This());
93
-
94
- info.GetReturnValue().Set(info.This());
95
- }
96
-
97
- NODE_METHOD(StatementIterator::JS_next) {
98
- StatementIterator* iter = Unwrap<StatementIterator>(info.This());
99
- REQUIRE_DATABASE_NOT_BUSY(iter->db_state);
100
- if (iter->alive) iter->Next(info);
101
- else info.GetReturnValue().Set(DoneRecord(OnlyIsolate, iter->db_state->addon));
102
- }
103
-
104
- NODE_METHOD(StatementIterator::JS_return) {
105
- StatementIterator* iter = Unwrap<StatementIterator>(info.This());
106
- REQUIRE_DATABASE_NOT_BUSY(iter->db_state);
107
- if (iter->alive) iter->Return(info);
108
- else info.GetReturnValue().Set(DoneRecord(OnlyIsolate, iter->db_state->addon));
109
- }
110
-
111
- NODE_METHOD(StatementIterator::JS_symbolIterator) {
112
- info.GetReturnValue().Set(info.This());
113
- }
@@ -1,50 +0,0 @@
1
- class StatementIterator : public node::ObjectWrap {
2
- public:
3
-
4
- // The ~Statement destructor currently covers any state this object creates.
5
- // Additionally, we actually DON'T want to revert stmt->locked or db_state
6
- // ->iterators in this destructor, to ensure deterministic database access.
7
- ~StatementIterator();
8
-
9
- static INIT(Init);
10
-
11
- private:
12
-
13
- explicit StatementIterator(Statement* stmt, bool bound);
14
-
15
- void Next(NODE_ARGUMENTS info);
16
- void Return(NODE_ARGUMENTS info);
17
- void Throw();
18
- void Cleanup();
19
-
20
- static inline v8::Local<v8::Object> NewRecord(
21
- v8::Isolate* isolate,
22
- v8::Local<v8::Context> ctx,
23
- v8::Local<v8::Value> value,
24
- Addon* addon,
25
- bool done
26
- ) {
27
- v8::Local<v8::Object> record = v8::Object::New(isolate);
28
- record->Set(ctx, addon->cs.value.Get(isolate), value).FromJust();
29
- record->Set(ctx, addon->cs.done.Get(isolate), v8::Boolean::New(isolate, done)).FromJust();
30
- return record;
31
- }
32
-
33
- static inline v8::Local<v8::Object> DoneRecord(v8::Isolate* isolate, Addon* addon) {
34
- return NewRecord(isolate, OnlyContext, v8::Undefined(isolate), addon, true);
35
- }
36
-
37
- static NODE_METHOD(JS_new);
38
- static NODE_METHOD(JS_next);
39
- static NODE_METHOD(JS_return);
40
- static NODE_METHOD(JS_symbolIterator);
41
-
42
- Statement* const stmt;
43
- sqlite3_stmt* const handle;
44
- Database::State* const db_state;
45
- const bool bound;
46
- const bool safe_ints;
47
- const char mode;
48
- bool alive;
49
- bool logged;
50
- };