clawatch 1.0.22 → 1.0.23

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 (298) hide show
  1. package/backend/dist/db.d.ts +33 -3
  2. package/backend/dist/db.d.ts.map +1 -1
  3. package/backend/dist/db.js +134 -10
  4. package/backend/dist/db.js.map +1 -1
  5. package/backend/dist/index.js +38 -32
  6. package/backend/dist/index.js.map +1 -1
  7. package/backend/dist/seed.js +115 -109
  8. package/backend/dist/seed.js.map +1 -1
  9. package/backend/node_modules/.package-lock.json +4 -380
  10. package/backend/node_modules/sql.js/.devcontainer/Dockerfile +76 -0
  11. package/backend/node_modules/sql.js/.devcontainer/devcontainer.json +20 -0
  12. package/backend/node_modules/sql.js/.jsdoc.config.json +38 -0
  13. package/backend/node_modules/sql.js/.nojekyll +0 -0
  14. package/backend/node_modules/sql.js/AUTHORS +8 -0
  15. package/backend/node_modules/sql.js/dist/sql-asm-debug.js +140890 -0
  16. package/backend/node_modules/sql.js/dist/sql-asm-memory-growth.js +204 -0
  17. package/backend/node_modules/sql.js/dist/sql-asm.js +202 -0
  18. package/backend/node_modules/sql.js/dist/sql-wasm-browser-debug.js +7157 -0
  19. package/backend/node_modules/sql.js/dist/sql-wasm-browser-debug.wasm +0 -0
  20. package/backend/node_modules/sql.js/dist/sql-wasm-browser.js +183 -0
  21. package/backend/node_modules/sql.js/dist/sql-wasm-browser.wasm +0 -0
  22. package/backend/node_modules/sql.js/dist/sql-wasm-debug.js +7265 -0
  23. package/backend/node_modules/sql.js/dist/sql-wasm-debug.wasm +0 -0
  24. package/backend/node_modules/sql.js/dist/sql-wasm.js +185 -0
  25. package/backend/node_modules/sql.js/dist/sql-wasm.wasm +0 -0
  26. package/backend/node_modules/sql.js/dist/worker.sql-asm-debug.js +141011 -0
  27. package/backend/node_modules/sql.js/dist/worker.sql-asm.js +323 -0
  28. package/backend/node_modules/sql.js/dist/worker.sql-wasm-debug.js +7386 -0
  29. package/backend/node_modules/sql.js/dist/worker.sql-wasm.js +306 -0
  30. package/backend/node_modules/sql.js/eslint.config.cjs +57 -0
  31. package/backend/node_modules/sql.js/logo.svg +13 -0
  32. package/backend/node_modules/sql.js/package.json +58 -0
  33. package/backend/package-lock.json +5 -392
  34. package/backend/package.json +1 -2
  35. package/dist/cli.js +0 -38
  36. package/dist/cli.js.map +1 -1
  37. package/frontend/.next/BUILD_ID +1 -1
  38. package/frontend/.next/build-manifest.json +2 -2
  39. package/frontend/.next/server/app/_global-error.html +2 -2
  40. package/frontend/.next/server/app/_global-error.rsc +1 -1
  41. package/frontend/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  42. package/frontend/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  43. package/frontend/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  44. package/frontend/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  45. package/frontend/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  46. package/frontend/.next/server/app/_not-found.html +1 -1
  47. package/frontend/.next/server/app/_not-found.rsc +1 -1
  48. package/frontend/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  49. package/frontend/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  50. package/frontend/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  51. package/frontend/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  52. package/frontend/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  53. package/frontend/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  54. package/frontend/.next/server/app/dashboard.html +1 -1
  55. package/frontend/.next/server/app/dashboard.rsc +1 -1
  56. package/frontend/.next/server/app/dashboard.segments/_full.segment.rsc +1 -1
  57. package/frontend/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  58. package/frontend/.next/server/app/dashboard.segments/_index.segment.rsc +1 -1
  59. package/frontend/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  60. package/frontend/.next/server/app/dashboard.segments/dashboard/__PAGE__.segment.rsc +1 -1
  61. package/frontend/.next/server/app/dashboard.segments/dashboard.segment.rsc +1 -1
  62. package/frontend/.next/server/app/index.html +1 -1
  63. package/frontend/.next/server/app/index.rsc +1 -1
  64. package/frontend/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  65. package/frontend/.next/server/app/index.segments/_full.segment.rsc +1 -1
  66. package/frontend/.next/server/app/index.segments/_head.segment.rsc +1 -1
  67. package/frontend/.next/server/app/index.segments/_index.segment.rsc +1 -1
  68. package/frontend/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  69. package/frontend/.next/server/pages/404.html +1 -1
  70. package/frontend/.next/server/pages/500.html +2 -2
  71. package/package.json +2 -2
  72. package/backend/node_modules/base64-js/base64js.min.js +0 -1
  73. package/backend/node_modules/base64-js/index.d.ts +0 -3
  74. package/backend/node_modules/base64-js/index.js +0 -150
  75. package/backend/node_modules/base64-js/package.json +0 -47
  76. package/backend/node_modules/better-sqlite3/binding.gyp +0 -38
  77. package/backend/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  78. package/backend/node_modules/better-sqlite3/deps/common.gypi +0 -68
  79. package/backend/node_modules/better-sqlite3/deps/copy.js +0 -31
  80. package/backend/node_modules/better-sqlite3/deps/defines.gypi +0 -41
  81. package/backend/node_modules/better-sqlite3/deps/download.sh +0 -122
  82. package/backend/node_modules/better-sqlite3/deps/patches/1208.patch +0 -15
  83. package/backend/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +0 -261480
  84. package/backend/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +0 -13715
  85. package/backend/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +0 -719
  86. package/backend/node_modules/better-sqlite3/deps/sqlite3.gyp +0 -80
  87. package/backend/node_modules/better-sqlite3/deps/test_extension.c +0 -21
  88. package/backend/node_modules/better-sqlite3/lib/database.js +0 -90
  89. package/backend/node_modules/better-sqlite3/lib/index.js +0 -3
  90. package/backend/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
  91. package/backend/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
  92. package/backend/node_modules/better-sqlite3/lib/methods/function.js +0 -31
  93. package/backend/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
  94. package/backend/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
  95. package/backend/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
  96. package/backend/node_modules/better-sqlite3/lib/methods/table.js +0 -189
  97. package/backend/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
  98. package/backend/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
  99. package/backend/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
  100. package/backend/node_modules/better-sqlite3/lib/util.js +0 -12
  101. package/backend/node_modules/better-sqlite3/package.json +0 -54
  102. package/backend/node_modules/better-sqlite3/src/better_sqlite3.cpp +0 -2186
  103. package/backend/node_modules/better-sqlite3/src/better_sqlite3.hpp +0 -1036
  104. package/backend/node_modules/bindings/bindings.js +0 -221
  105. package/backend/node_modules/bindings/package.json +0 -28
  106. package/backend/node_modules/buffer/index.d.ts +0 -186
  107. package/backend/node_modules/buffer/index.js +0 -1817
  108. package/backend/node_modules/buffer/package.json +0 -96
  109. package/backend/node_modules/chownr/chownr.js +0 -167
  110. package/backend/node_modules/chownr/package.json +0 -29
  111. package/backend/node_modules/decompress-response/index.d.ts +0 -22
  112. package/backend/node_modules/decompress-response/index.js +0 -58
  113. package/backend/node_modules/decompress-response/license +0 -9
  114. package/backend/node_modules/decompress-response/package.json +0 -56
  115. package/backend/node_modules/deep-extend/index.js +0 -1
  116. package/backend/node_modules/deep-extend/lib/deep-extend.js +0 -150
  117. package/backend/node_modules/deep-extend/package.json +0 -62
  118. package/backend/node_modules/detect-libc/index.d.ts +0 -14
  119. package/backend/node_modules/detect-libc/lib/detect-libc.js +0 -313
  120. package/backend/node_modules/detect-libc/lib/elf.js +0 -39
  121. package/backend/node_modules/detect-libc/lib/filesystem.js +0 -51
  122. package/backend/node_modules/detect-libc/lib/process.js +0 -24
  123. package/backend/node_modules/detect-libc/package.json +0 -44
  124. package/backend/node_modules/expand-template/.travis.yml +0 -6
  125. package/backend/node_modules/expand-template/index.js +0 -26
  126. package/backend/node_modules/expand-template/package.json +0 -29
  127. package/backend/node_modules/expand-template/test.js +0 -67
  128. package/backend/node_modules/file-uri-to-path/.travis.yml +0 -30
  129. package/backend/node_modules/file-uri-to-path/index.d.ts +0 -2
  130. package/backend/node_modules/file-uri-to-path/index.js +0 -66
  131. package/backend/node_modules/file-uri-to-path/package.json +0 -32
  132. package/backend/node_modules/fs-constants/browser.js +0 -1
  133. package/backend/node_modules/fs-constants/index.js +0 -1
  134. package/backend/node_modules/fs-constants/package.json +0 -19
  135. package/backend/node_modules/github-from-package/.travis.yml +0 -4
  136. package/backend/node_modules/github-from-package/index.js +0 -17
  137. package/backend/node_modules/github-from-package/package.json +0 -30
  138. package/backend/node_modules/github-from-package/readme.markdown +0 -53
  139. package/backend/node_modules/ieee754/index.d.ts +0 -10
  140. package/backend/node_modules/ieee754/index.js +0 -85
  141. package/backend/node_modules/ieee754/package.json +0 -52
  142. package/backend/node_modules/ini/ini.js +0 -206
  143. package/backend/node_modules/ini/package.json +0 -33
  144. package/backend/node_modules/mimic-response/index.d.ts +0 -17
  145. package/backend/node_modules/mimic-response/index.js +0 -77
  146. package/backend/node_modules/mimic-response/license +0 -9
  147. package/backend/node_modules/mimic-response/package.json +0 -42
  148. package/backend/node_modules/minimist/.github/FUNDING.yml +0 -12
  149. package/backend/node_modules/minimist/.nycrc +0 -14
  150. package/backend/node_modules/minimist/index.js +0 -263
  151. package/backend/node_modules/minimist/package.json +0 -75
  152. package/backend/node_modules/mkdirp-classic/index.js +0 -98
  153. package/backend/node_modules/mkdirp-classic/package.json +0 -18
  154. package/backend/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
  155. package/backend/node_modules/napi-build-utils/index.js +0 -214
  156. package/backend/node_modules/napi-build-utils/package.json +0 -42
  157. package/backend/node_modules/node-abi/abi_registry.json +0 -432
  158. package/backend/node_modules/node-abi/index.js +0 -179
  159. package/backend/node_modules/node-abi/package.json +0 -45
  160. package/backend/node_modules/prebuild-install/asset.js +0 -44
  161. package/backend/node_modules/prebuild-install/bin.js +0 -78
  162. package/backend/node_modules/prebuild-install/download.js +0 -142
  163. package/backend/node_modules/prebuild-install/error.js +0 -14
  164. package/backend/node_modules/prebuild-install/help.txt +0 -16
  165. package/backend/node_modules/prebuild-install/index.js +0 -1
  166. package/backend/node_modules/prebuild-install/log.js +0 -33
  167. package/backend/node_modules/prebuild-install/node_modules/pump/.github/FUNDING.yml +0 -2
  168. package/backend/node_modules/prebuild-install/node_modules/pump/.travis.yml +0 -5
  169. package/backend/node_modules/prebuild-install/node_modules/pump/LICENSE +0 -21
  170. package/backend/node_modules/prebuild-install/node_modules/pump/README.md +0 -74
  171. package/backend/node_modules/prebuild-install/node_modules/pump/SECURITY.md +0 -5
  172. package/backend/node_modules/prebuild-install/node_modules/pump/empty.js +0 -1
  173. package/backend/node_modules/prebuild-install/node_modules/pump/index.js +0 -86
  174. package/backend/node_modules/prebuild-install/node_modules/pump/package.json +0 -30
  175. package/backend/node_modules/prebuild-install/node_modules/pump/test-browser.js +0 -66
  176. package/backend/node_modules/prebuild-install/node_modules/pump/test-node.js +0 -53
  177. package/backend/node_modules/prebuild-install/package.json +0 -67
  178. package/backend/node_modules/prebuild-install/proxy.js +0 -35
  179. package/backend/node_modules/prebuild-install/rc.js +0 -64
  180. package/backend/node_modules/prebuild-install/util.js +0 -143
  181. package/backend/node_modules/rc/browser.js +0 -7
  182. package/backend/node_modules/rc/cli.js +0 -4
  183. package/backend/node_modules/rc/index.js +0 -53
  184. package/backend/node_modules/rc/lib/utils.js +0 -104
  185. package/backend/node_modules/rc/package.json +0 -29
  186. package/backend/node_modules/semver/bin/semver.js +0 -191
  187. package/backend/node_modules/semver/classes/comparator.js +0 -143
  188. package/backend/node_modules/semver/classes/index.js +0 -7
  189. package/backend/node_modules/semver/classes/range.js +0 -557
  190. package/backend/node_modules/semver/classes/semver.js +0 -333
  191. package/backend/node_modules/semver/functions/clean.js +0 -8
  192. package/backend/node_modules/semver/functions/cmp.js +0 -54
  193. package/backend/node_modules/semver/functions/coerce.js +0 -62
  194. package/backend/node_modules/semver/functions/compare-build.js +0 -9
  195. package/backend/node_modules/semver/functions/compare-loose.js +0 -5
  196. package/backend/node_modules/semver/functions/compare.js +0 -7
  197. package/backend/node_modules/semver/functions/diff.js +0 -60
  198. package/backend/node_modules/semver/functions/eq.js +0 -5
  199. package/backend/node_modules/semver/functions/gt.js +0 -5
  200. package/backend/node_modules/semver/functions/gte.js +0 -5
  201. package/backend/node_modules/semver/functions/inc.js +0 -21
  202. package/backend/node_modules/semver/functions/lt.js +0 -5
  203. package/backend/node_modules/semver/functions/lte.js +0 -5
  204. package/backend/node_modules/semver/functions/major.js +0 -5
  205. package/backend/node_modules/semver/functions/minor.js +0 -5
  206. package/backend/node_modules/semver/functions/neq.js +0 -5
  207. package/backend/node_modules/semver/functions/parse.js +0 -18
  208. package/backend/node_modules/semver/functions/patch.js +0 -5
  209. package/backend/node_modules/semver/functions/prerelease.js +0 -8
  210. package/backend/node_modules/semver/functions/rcompare.js +0 -5
  211. package/backend/node_modules/semver/functions/rsort.js +0 -5
  212. package/backend/node_modules/semver/functions/satisfies.js +0 -12
  213. package/backend/node_modules/semver/functions/sort.js +0 -5
  214. package/backend/node_modules/semver/functions/valid.js +0 -8
  215. package/backend/node_modules/semver/index.js +0 -91
  216. package/backend/node_modules/semver/internal/constants.js +0 -37
  217. package/backend/node_modules/semver/internal/debug.js +0 -11
  218. package/backend/node_modules/semver/internal/identifiers.js +0 -29
  219. package/backend/node_modules/semver/internal/lrucache.js +0 -42
  220. package/backend/node_modules/semver/internal/parse-options.js +0 -17
  221. package/backend/node_modules/semver/internal/re.js +0 -223
  222. package/backend/node_modules/semver/package.json +0 -78
  223. package/backend/node_modules/semver/preload.js +0 -4
  224. package/backend/node_modules/semver/range.bnf +0 -16
  225. package/backend/node_modules/semver/ranges/gtr.js +0 -6
  226. package/backend/node_modules/semver/ranges/intersects.js +0 -9
  227. package/backend/node_modules/semver/ranges/ltr.js +0 -6
  228. package/backend/node_modules/semver/ranges/max-satisfying.js +0 -27
  229. package/backend/node_modules/semver/ranges/min-satisfying.js +0 -26
  230. package/backend/node_modules/semver/ranges/min-version.js +0 -63
  231. package/backend/node_modules/semver/ranges/outside.js +0 -82
  232. package/backend/node_modules/semver/ranges/simplify.js +0 -49
  233. package/backend/node_modules/semver/ranges/subset.js +0 -249
  234. package/backend/node_modules/semver/ranges/to-comparators.js +0 -10
  235. package/backend/node_modules/semver/ranges/valid.js +0 -13
  236. package/backend/node_modules/simple-concat/.travis.yml +0 -3
  237. package/backend/node_modules/simple-concat/index.js +0 -15
  238. package/backend/node_modules/simple-concat/package.json +0 -47
  239. package/backend/node_modules/simple-get/.github/dependabot.yml +0 -15
  240. package/backend/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  241. package/backend/node_modules/simple-get/index.js +0 -108
  242. package/backend/node_modules/simple-get/package.json +0 -67
  243. package/backend/node_modules/strip-json-comments/index.js +0 -70
  244. package/backend/node_modules/strip-json-comments/license +0 -21
  245. package/backend/node_modules/strip-json-comments/package.json +0 -42
  246. package/backend/node_modules/tar-fs/.travis.yml +0 -6
  247. package/backend/node_modules/tar-fs/index.js +0 -363
  248. package/backend/node_modules/tar-fs/node_modules/pump/.github/FUNDING.yml +0 -2
  249. package/backend/node_modules/tar-fs/node_modules/pump/.travis.yml +0 -5
  250. package/backend/node_modules/tar-fs/node_modules/pump/LICENSE +0 -21
  251. package/backend/node_modules/tar-fs/node_modules/pump/README.md +0 -74
  252. package/backend/node_modules/tar-fs/node_modules/pump/SECURITY.md +0 -5
  253. package/backend/node_modules/tar-fs/node_modules/pump/empty.js +0 -1
  254. package/backend/node_modules/tar-fs/node_modules/pump/index.js +0 -86
  255. package/backend/node_modules/tar-fs/node_modules/pump/package.json +0 -30
  256. package/backend/node_modules/tar-fs/node_modules/pump/test-browser.js +0 -66
  257. package/backend/node_modules/tar-fs/node_modules/pump/test-node.js +0 -53
  258. package/backend/node_modules/tar-fs/package.json +0 -41
  259. package/backend/node_modules/tar-stream/extract.js +0 -257
  260. package/backend/node_modules/tar-stream/headers.js +0 -295
  261. package/backend/node_modules/tar-stream/index.js +0 -2
  262. package/backend/node_modules/tar-stream/node_modules/bl/.travis.yml +0 -17
  263. package/backend/node_modules/tar-stream/node_modules/bl/BufferList.js +0 -396
  264. package/backend/node_modules/tar-stream/node_modules/bl/LICENSE.md +0 -13
  265. package/backend/node_modules/tar-stream/node_modules/bl/README.md +0 -247
  266. package/backend/node_modules/tar-stream/node_modules/bl/bl.js +0 -84
  267. package/backend/node_modules/tar-stream/node_modules/bl/package.json +0 -37
  268. package/backend/node_modules/tar-stream/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  269. package/backend/node_modules/tar-stream/node_modules/readable-stream/GOVERNANCE.md +0 -136
  270. package/backend/node_modules/tar-stream/node_modules/readable-stream/LICENSE +0 -47
  271. package/backend/node_modules/tar-stream/node_modules/readable-stream/README.md +0 -106
  272. package/backend/node_modules/tar-stream/node_modules/readable-stream/errors-browser.js +0 -127
  273. package/backend/node_modules/tar-stream/node_modules/readable-stream/errors.js +0 -116
  274. package/backend/node_modules/tar-stream/node_modules/readable-stream/experimentalWarning.js +0 -17
  275. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  276. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  277. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  278. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  279. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  280. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  281. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  282. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  283. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  284. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  285. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  286. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  287. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  288. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  289. package/backend/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  290. package/backend/node_modules/tar-stream/node_modules/readable-stream/package.json +0 -68
  291. package/backend/node_modules/tar-stream/node_modules/readable-stream/readable-browser.js +0 -9
  292. package/backend/node_modules/tar-stream/node_modules/readable-stream/readable.js +0 -16
  293. package/backend/node_modules/tar-stream/pack.js +0 -255
  294. package/backend/node_modules/tar-stream/package.json +0 -58
  295. package/backend/node_modules/tar-stream/sandbox.js +0 -11
  296. /package/frontend/.next/static/{3i-dBEEyQLocTNHX5oPZn → a36G8G-fn_tjHP7E62qvj}/_buildManifest.js +0 -0
  297. /package/frontend/.next/static/{3i-dBEEyQLocTNHX5oPZn → a36G8G-fn_tjHP7E62qvj}/_clientMiddlewareManifest.json +0 -0
  298. /package/frontend/.next/static/{3i-dBEEyQLocTNHX5oPZn → a36G8G-fn_tjHP7E62qvj}/_ssgManifest.js +0 -0
@@ -1,313 +0,0 @@
1
- // Copyright 2017 Lovell Fuller and others.
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- 'use strict';
5
-
6
- const childProcess = require('child_process');
7
- const { isLinux, getReport } = require('./process');
8
- const { LDD_PATH, SELF_PATH, readFile, readFileSync } = require('./filesystem');
9
- const { interpreterPath } = require('./elf');
10
-
11
- let cachedFamilyInterpreter;
12
- let cachedFamilyFilesystem;
13
- let cachedVersionFilesystem;
14
-
15
- const command = 'getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true';
16
- let commandOut = '';
17
-
18
- const safeCommand = () => {
19
- if (!commandOut) {
20
- return new Promise((resolve) => {
21
- childProcess.exec(command, (err, out) => {
22
- commandOut = err ? ' ' : out;
23
- resolve(commandOut);
24
- });
25
- });
26
- }
27
- return commandOut;
28
- };
29
-
30
- const safeCommandSync = () => {
31
- if (!commandOut) {
32
- try {
33
- commandOut = childProcess.execSync(command, { encoding: 'utf8' });
34
- } catch (_err) {
35
- commandOut = ' ';
36
- }
37
- }
38
- return commandOut;
39
- };
40
-
41
- /**
42
- * A String constant containing the value `glibc`.
43
- * @type {string}
44
- * @public
45
- */
46
- const GLIBC = 'glibc';
47
-
48
- /**
49
- * A Regexp constant to get the GLIBC Version.
50
- * @type {string}
51
- */
52
- const RE_GLIBC_VERSION = /LIBC[a-z0-9 \-).]*?(\d+\.\d+)/i;
53
-
54
- /**
55
- * A String constant containing the value `musl`.
56
- * @type {string}
57
- * @public
58
- */
59
- const MUSL = 'musl';
60
-
61
- const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-');
62
-
63
- const familyFromReport = () => {
64
- const report = getReport();
65
- if (report.header && report.header.glibcVersionRuntime) {
66
- return GLIBC;
67
- }
68
- if (Array.isArray(report.sharedObjects)) {
69
- if (report.sharedObjects.some(isFileMusl)) {
70
- return MUSL;
71
- }
72
- }
73
- return null;
74
- };
75
-
76
- const familyFromCommand = (out) => {
77
- const [getconf, ldd1] = out.split(/[\r\n]+/);
78
- if (getconf && getconf.includes(GLIBC)) {
79
- return GLIBC;
80
- }
81
- if (ldd1 && ldd1.includes(MUSL)) {
82
- return MUSL;
83
- }
84
- return null;
85
- };
86
-
87
- const familyFromInterpreterPath = (path) => {
88
- if (path) {
89
- if (path.includes('/ld-musl-')) {
90
- return MUSL;
91
- } else if (path.includes('/ld-linux-')) {
92
- return GLIBC;
93
- }
94
- }
95
- return null;
96
- };
97
-
98
- const getFamilyFromLddContent = (content) => {
99
- content = content.toString();
100
- if (content.includes('musl')) {
101
- return MUSL;
102
- }
103
- if (content.includes('GNU C Library')) {
104
- return GLIBC;
105
- }
106
- return null;
107
- };
108
-
109
- const familyFromFilesystem = async () => {
110
- if (cachedFamilyFilesystem !== undefined) {
111
- return cachedFamilyFilesystem;
112
- }
113
- cachedFamilyFilesystem = null;
114
- try {
115
- const lddContent = await readFile(LDD_PATH);
116
- cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);
117
- } catch (e) {}
118
- return cachedFamilyFilesystem;
119
- };
120
-
121
- const familyFromFilesystemSync = () => {
122
- if (cachedFamilyFilesystem !== undefined) {
123
- return cachedFamilyFilesystem;
124
- }
125
- cachedFamilyFilesystem = null;
126
- try {
127
- const lddContent = readFileSync(LDD_PATH);
128
- cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);
129
- } catch (e) {}
130
- return cachedFamilyFilesystem;
131
- };
132
-
133
- const familyFromInterpreter = async () => {
134
- if (cachedFamilyInterpreter !== undefined) {
135
- return cachedFamilyInterpreter;
136
- }
137
- cachedFamilyInterpreter = null;
138
- try {
139
- const selfContent = await readFile(SELF_PATH);
140
- const path = interpreterPath(selfContent);
141
- cachedFamilyInterpreter = familyFromInterpreterPath(path);
142
- } catch (e) {}
143
- return cachedFamilyInterpreter;
144
- };
145
-
146
- const familyFromInterpreterSync = () => {
147
- if (cachedFamilyInterpreter !== undefined) {
148
- return cachedFamilyInterpreter;
149
- }
150
- cachedFamilyInterpreter = null;
151
- try {
152
- const selfContent = readFileSync(SELF_PATH);
153
- const path = interpreterPath(selfContent);
154
- cachedFamilyInterpreter = familyFromInterpreterPath(path);
155
- } catch (e) {}
156
- return cachedFamilyInterpreter;
157
- };
158
-
159
- /**
160
- * Resolves with the libc family when it can be determined, `null` otherwise.
161
- * @returns {Promise<?string>}
162
- */
163
- const family = async () => {
164
- let family = null;
165
- if (isLinux()) {
166
- family = await familyFromInterpreter();
167
- if (!family) {
168
- family = await familyFromFilesystem();
169
- if (!family) {
170
- family = familyFromReport();
171
- }
172
- if (!family) {
173
- const out = await safeCommand();
174
- family = familyFromCommand(out);
175
- }
176
- }
177
- }
178
- return family;
179
- };
180
-
181
- /**
182
- * Returns the libc family when it can be determined, `null` otherwise.
183
- * @returns {?string}
184
- */
185
- const familySync = () => {
186
- let family = null;
187
- if (isLinux()) {
188
- family = familyFromInterpreterSync();
189
- if (!family) {
190
- family = familyFromFilesystemSync();
191
- if (!family) {
192
- family = familyFromReport();
193
- }
194
- if (!family) {
195
- const out = safeCommandSync();
196
- family = familyFromCommand(out);
197
- }
198
- }
199
- }
200
- return family;
201
- };
202
-
203
- /**
204
- * Resolves `true` only when the platform is Linux and the libc family is not `glibc`.
205
- * @returns {Promise<boolean>}
206
- */
207
- const isNonGlibcLinux = async () => isLinux() && await family() !== GLIBC;
208
-
209
- /**
210
- * Returns `true` only when the platform is Linux and the libc family is not `glibc`.
211
- * @returns {boolean}
212
- */
213
- const isNonGlibcLinuxSync = () => isLinux() && familySync() !== GLIBC;
214
-
215
- const versionFromFilesystem = async () => {
216
- if (cachedVersionFilesystem !== undefined) {
217
- return cachedVersionFilesystem;
218
- }
219
- cachedVersionFilesystem = null;
220
- try {
221
- const lddContent = await readFile(LDD_PATH);
222
- const versionMatch = lddContent.match(RE_GLIBC_VERSION);
223
- if (versionMatch) {
224
- cachedVersionFilesystem = versionMatch[1];
225
- }
226
- } catch (e) {}
227
- return cachedVersionFilesystem;
228
- };
229
-
230
- const versionFromFilesystemSync = () => {
231
- if (cachedVersionFilesystem !== undefined) {
232
- return cachedVersionFilesystem;
233
- }
234
- cachedVersionFilesystem = null;
235
- try {
236
- const lddContent = readFileSync(LDD_PATH);
237
- const versionMatch = lddContent.match(RE_GLIBC_VERSION);
238
- if (versionMatch) {
239
- cachedVersionFilesystem = versionMatch[1];
240
- }
241
- } catch (e) {}
242
- return cachedVersionFilesystem;
243
- };
244
-
245
- const versionFromReport = () => {
246
- const report = getReport();
247
- if (report.header && report.header.glibcVersionRuntime) {
248
- return report.header.glibcVersionRuntime;
249
- }
250
- return null;
251
- };
252
-
253
- const versionSuffix = (s) => s.trim().split(/\s+/)[1];
254
-
255
- const versionFromCommand = (out) => {
256
- const [getconf, ldd1, ldd2] = out.split(/[\r\n]+/);
257
- if (getconf && getconf.includes(GLIBC)) {
258
- return versionSuffix(getconf);
259
- }
260
- if (ldd1 && ldd2 && ldd1.includes(MUSL)) {
261
- return versionSuffix(ldd2);
262
- }
263
- return null;
264
- };
265
-
266
- /**
267
- * Resolves with the libc version when it can be determined, `null` otherwise.
268
- * @returns {Promise<?string>}
269
- */
270
- const version = async () => {
271
- let version = null;
272
- if (isLinux()) {
273
- version = await versionFromFilesystem();
274
- if (!version) {
275
- version = versionFromReport();
276
- }
277
- if (!version) {
278
- const out = await safeCommand();
279
- version = versionFromCommand(out);
280
- }
281
- }
282
- return version;
283
- };
284
-
285
- /**
286
- * Returns the libc version when it can be determined, `null` otherwise.
287
- * @returns {?string}
288
- */
289
- const versionSync = () => {
290
- let version = null;
291
- if (isLinux()) {
292
- version = versionFromFilesystemSync();
293
- if (!version) {
294
- version = versionFromReport();
295
- }
296
- if (!version) {
297
- const out = safeCommandSync();
298
- version = versionFromCommand(out);
299
- }
300
- }
301
- return version;
302
- };
303
-
304
- module.exports = {
305
- GLIBC,
306
- MUSL,
307
- family,
308
- familySync,
309
- isNonGlibcLinux,
310
- isNonGlibcLinuxSync,
311
- version,
312
- versionSync
313
- };
@@ -1,39 +0,0 @@
1
- // Copyright 2017 Lovell Fuller and others.
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- 'use strict';
5
-
6
- const interpreterPath = (elf) => {
7
- if (elf.length < 64) {
8
- return null;
9
- }
10
- if (elf.readUInt32BE(0) !== 0x7F454C46) {
11
- // Unexpected magic bytes
12
- return null;
13
- }
14
- if (elf.readUInt8(4) !== 2) {
15
- // Not a 64-bit ELF
16
- return null;
17
- }
18
- if (elf.readUInt8(5) !== 1) {
19
- // Not little-endian
20
- return null;
21
- }
22
- const offset = elf.readUInt32LE(32);
23
- const size = elf.readUInt16LE(54);
24
- const count = elf.readUInt16LE(56);
25
- for (let i = 0; i < count; i++) {
26
- const headerOffset = offset + (i * size);
27
- const type = elf.readUInt32LE(headerOffset);
28
- if (type === 3) {
29
- const fileOffset = elf.readUInt32LE(headerOffset + 8);
30
- const fileSize = elf.readUInt32LE(headerOffset + 32);
31
- return elf.subarray(fileOffset, fileOffset + fileSize).toString().replace(/\0.*$/g, '');
32
- }
33
- }
34
- return null;
35
- };
36
-
37
- module.exports = {
38
- interpreterPath
39
- };
@@ -1,51 +0,0 @@
1
- // Copyright 2017 Lovell Fuller and others.
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- 'use strict';
5
-
6
- const fs = require('fs');
7
-
8
- const LDD_PATH = '/usr/bin/ldd';
9
- const SELF_PATH = '/proc/self/exe';
10
- const MAX_LENGTH = 2048;
11
-
12
- /**
13
- * Read the content of a file synchronous
14
- *
15
- * @param {string} path
16
- * @returns {Buffer}
17
- */
18
- const readFileSync = (path) => {
19
- const fd = fs.openSync(path, 'r');
20
- const buffer = Buffer.alloc(MAX_LENGTH);
21
- const bytesRead = fs.readSync(fd, buffer, 0, MAX_LENGTH, 0);
22
- fs.close(fd, () => {});
23
- return buffer.subarray(0, bytesRead);
24
- };
25
-
26
- /**
27
- * Read the content of a file
28
- *
29
- * @param {string} path
30
- * @returns {Promise<Buffer>}
31
- */
32
- const readFile = (path) => new Promise((resolve, reject) => {
33
- fs.open(path, 'r', (err, fd) => {
34
- if (err) {
35
- reject(err);
36
- } else {
37
- const buffer = Buffer.alloc(MAX_LENGTH);
38
- fs.read(fd, buffer, 0, MAX_LENGTH, 0, (_, bytesRead) => {
39
- resolve(buffer.subarray(0, bytesRead));
40
- fs.close(fd, () => {});
41
- });
42
- }
43
- });
44
- });
45
-
46
- module.exports = {
47
- LDD_PATH,
48
- SELF_PATH,
49
- readFileSync,
50
- readFile
51
- };
@@ -1,24 +0,0 @@
1
- // Copyright 2017 Lovell Fuller and others.
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- 'use strict';
5
-
6
- const isLinux = () => process.platform === 'linux';
7
-
8
- let report = null;
9
- const getReport = () => {
10
- if (!report) {
11
- /* istanbul ignore next */
12
- if (isLinux() && process.report) {
13
- const orig = process.report.excludeNetwork;
14
- process.report.excludeNetwork = true;
15
- report = process.report.getReport();
16
- process.report.excludeNetwork = orig;
17
- } else {
18
- report = {};
19
- }
20
- }
21
- return report;
22
- };
23
-
24
- module.exports = { isLinux, getReport };
@@ -1,44 +0,0 @@
1
- {
2
- "name": "detect-libc",
3
- "version": "2.1.2",
4
- "description": "Node.js module to detect the C standard library (libc) implementation family and version",
5
- "main": "lib/detect-libc.js",
6
- "files": [
7
- "lib/",
8
- "index.d.ts"
9
- ],
10
- "scripts": {
11
- "test": "semistandard && nyc --reporter=text --check-coverage --branches=100 ava test/unit.js",
12
- "changelog": "conventional-changelog -i CHANGELOG.md -s",
13
- "bench": "node benchmark/detect-libc",
14
- "bench:calls": "node benchmark/call-familySync.js && sleep 1 && node benchmark/call-isNonGlibcLinuxSync.js && sleep 1 && node benchmark/call-versionSync.js"
15
- },
16
- "repository": {
17
- "type": "git",
18
- "url": "git://github.com/lovell/detect-libc.git"
19
- },
20
- "keywords": [
21
- "libc",
22
- "glibc",
23
- "musl"
24
- ],
25
- "author": "Lovell Fuller <npm@lovell.info>",
26
- "contributors": [
27
- "Niklas Salmoukas <niklas@salmoukas.com>",
28
- "Vinícius Lourenço <vinyygamerlol@gmail.com>"
29
- ],
30
- "license": "Apache-2.0",
31
- "devDependencies": {
32
- "ava": "^2.4.0",
33
- "benchmark": "^2.1.4",
34
- "conventional-changelog-cli": "^5.0.0",
35
- "eslint-config-standard": "^13.0.1",
36
- "nyc": "^15.1.0",
37
- "proxyquire": "^2.1.3",
38
- "semistandard": "^14.2.3"
39
- },
40
- "engines": {
41
- "node": ">=8"
42
- },
43
- "types": "index.d.ts"
44
- }
@@ -1,6 +0,0 @@
1
- language: node_js
2
-
3
- node_js:
4
- - 6
5
- - 8
6
- - 10
@@ -1,26 +0,0 @@
1
- module.exports = function (opts) {
2
- var sep = opts ? opts.sep : '{}'
3
- var len = sep.length
4
-
5
- var whitespace = '\\s*'
6
- var left = escape(sep.substring(0, len / 2)) + whitespace
7
- var right = whitespace + escape(sep.substring(len / 2, len))
8
-
9
- return function (template, values) {
10
- Object.keys(values).forEach(function (key) {
11
- var value = String(values[key]).replace(/\$/g, '$$$$')
12
- template = template.replace(regExp(key), value)
13
- })
14
- return template
15
- }
16
-
17
- function escape (s) {
18
- return [].map.call(s, function (char) {
19
- return '\\' + char
20
- }).join('')
21
- }
22
-
23
- function regExp (key) {
24
- return new RegExp(left + key + right, 'g')
25
- }
26
- }
@@ -1,29 +0,0 @@
1
- {
2
- "name": "expand-template",
3
- "version": "2.0.3",
4
- "description": "Expand placeholders in a template string",
5
- "main": "index.js",
6
- "repository": {
7
- "type": "git",
8
- "url": "https://github.com/ralphtheninja/expand-template.git"
9
- },
10
- "homepage": "https://github.com/ralphtheninja/expand-template",
11
- "scripts": {
12
- "test": "tape test.js && standard"
13
- },
14
- "keywords": [
15
- "template",
16
- "expand",
17
- "replace"
18
- ],
19
- "author": "LM <ralphtheninja@riseup.net>",
20
- "license": "(MIT OR WTFPL)",
21
- "dependencies": {},
22
- "devDependencies": {
23
- "standard": "^12.0.0",
24
- "tape": "^4.2.2"
25
- },
26
- "engines": {
27
- "node": ">=6"
28
- }
29
- }
@@ -1,67 +0,0 @@
1
- var test = require('tape')
2
- var Expand = require('./')
3
-
4
- test('default expands {} placeholders', function (t) {
5
- var expand = Expand()
6
- t.equal(typeof expand, 'function', 'is a function')
7
- t.equal(expand('{foo}/{bar}', {
8
- foo: 'BAR', bar: 'FOO'
9
- }), 'BAR/FOO')
10
- t.equal(expand('{foo}{foo}{foo}', {
11
- foo: 'FOO'
12
- }), 'FOOFOOFOO', 'expands one placeholder many times')
13
- t.end()
14
- })
15
-
16
- test('support for custom separators', function (t) {
17
- var expand = Expand({ sep: '[]' })
18
- t.equal(expand('[foo]/[bar]', {
19
- foo: 'BAR', bar: 'FOO'
20
- }), 'BAR/FOO')
21
- t.equal(expand('[foo][foo][foo]', {
22
- foo: 'FOO'
23
- }), 'FOOFOOFOO', 'expands one placeholder many times')
24
- t.end()
25
- })
26
-
27
- test('support for longer custom separators', function (t) {
28
- var expand = Expand({ sep: '[[]]' })
29
- t.equal(expand('[[foo]]/[[bar]]', {
30
- foo: 'BAR', bar: 'FOO'
31
- }), 'BAR/FOO')
32
- t.equal(expand('[[foo]][[foo]][[foo]]', {
33
- foo: 'FOO'
34
- }), 'FOOFOOFOO', 'expands one placeholder many times')
35
- t.end()
36
- })
37
-
38
- test('whitespace-insensitive', function (t) {
39
- var expand = Expand({ sep: '[]' })
40
- t.equal(expand('[ foo ]/[ bar ]', {
41
- foo: 'BAR', bar: 'FOO'
42
- }), 'BAR/FOO')
43
- t.equal(expand('[ foo ][ foo ][ foo]', {
44
- foo: 'FOO'
45
- }), 'FOOFOOFOO', 'expands one placeholder many times')
46
- t.end()
47
- })
48
-
49
- test('dollar escape', function (t) {
50
- var expand = Expand()
51
- t.equal(expand('before {foo} after', {
52
- foo: '$'
53
- }), 'before $ after')
54
- t.equal(expand('before {foo} after', {
55
- foo: '$&'
56
- }), 'before $& after')
57
- t.equal(expand('before {foo} after', {
58
- foo: '$`'
59
- }), 'before $` after')
60
- t.equal(expand('before {foo} after', {
61
- foo: '$\''
62
- }), 'before $\' after')
63
- t.equal(expand('before {foo} after', {
64
- foo: '$0'
65
- }), 'before $0 after')
66
- t.end()
67
- })
@@ -1,30 +0,0 @@
1
- sudo: false
2
-
3
- language: node_js
4
-
5
- node_js:
6
- - "0.8"
7
- - "0.10"
8
- - "0.12"
9
- - "1"
10
- - "2"
11
- - "3"
12
- - "4"
13
- - "5"
14
- - "6"
15
- - "7"
16
- - "8"
17
-
18
- install:
19
- - PATH="`npm bin`:`npm bin -g`:$PATH"
20
- # Node 0.8 comes with a too obsolete npm
21
- - if [[ "`node --version`" =~ ^v0\.8\. ]]; then npm install -g npm@1.4.28 ; fi
22
- # Install dependencies and build
23
- - npm install
24
-
25
- script:
26
- # Output useful info for debugging
27
- - node --version
28
- - npm --version
29
- # Run tests
30
- - npm test
@@ -1,2 +0,0 @@
1
- declare function fileUriToPath(uri: string): string;
2
- export = fileUriToPath;
@@ -1,66 +0,0 @@
1
-
2
- /**
3
- * Module dependencies.
4
- */
5
-
6
- var sep = require('path').sep || '/';
7
-
8
- /**
9
- * Module exports.
10
- */
11
-
12
- module.exports = fileUriToPath;
13
-
14
- /**
15
- * File URI to Path function.
16
- *
17
- * @param {String} uri
18
- * @return {String} path
19
- * @api public
20
- */
21
-
22
- function fileUriToPath (uri) {
23
- if ('string' != typeof uri ||
24
- uri.length <= 7 ||
25
- 'file://' != uri.substring(0, 7)) {
26
- throw new TypeError('must pass in a file:// URI to convert to a file path');
27
- }
28
-
29
- var rest = decodeURI(uri.substring(7));
30
- var firstSlash = rest.indexOf('/');
31
- var host = rest.substring(0, firstSlash);
32
- var path = rest.substring(firstSlash + 1);
33
-
34
- // 2. Scheme Definition
35
- // As a special case, <host> can be the string "localhost" or the empty
36
- // string; this is interpreted as "the machine from which the URL is
37
- // being interpreted".
38
- if ('localhost' == host) host = '';
39
-
40
- if (host) {
41
- host = sep + sep + host;
42
- }
43
-
44
- // 3.2 Drives, drive letters, mount points, file system root
45
- // Drive letters are mapped into the top of a file URI in various ways,
46
- // depending on the implementation; some applications substitute
47
- // vertical bar ("|") for the colon after the drive letter, yielding
48
- // "file:///c|/tmp/test.txt". In some cases, the colon is left
49
- // unchanged, as in "file:///c:/tmp/test.txt". In other cases, the
50
- // colon is simply omitted, as in "file:///c/tmp/test.txt".
51
- path = path.replace(/^(.+)\|/, '$1:');
52
-
53
- // for Windows, we need to invert the path separators from what a URI uses
54
- if (sep == '\\') {
55
- path = path.replace(/\//g, '\\');
56
- }
57
-
58
- if (/^.+\:/.test(path)) {
59
- // has Windows drive at beginning of path
60
- } else {
61
- // unix path…
62
- path = sep + path;
63
- }
64
-
65
- return host + path;
66
- }