@wecode-ai/weibo-openclaw-plugin 2.1.4 → 2.2.0

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 (355) hide show
  1. package/README.md +28 -1
  2. package/node_modules/@isaacs/fs-minipass/LICENSE +15 -0
  3. package/node_modules/@isaacs/fs-minipass/README.md +71 -0
  4. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts +118 -0
  5. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts.map +1 -0
  6. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +430 -0
  7. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js.map +1 -0
  8. package/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +3 -0
  9. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts +118 -0
  10. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts.map +1 -0
  11. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js +420 -0
  12. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js.map +1 -0
  13. package/node_modules/@isaacs/fs-minipass/dist/esm/package.json +3 -0
  14. package/node_modules/@isaacs/fs-minipass/package.json +72 -0
  15. package/node_modules/chownr/LICENSE.md +63 -0
  16. package/node_modules/chownr/README.md +3 -0
  17. package/node_modules/chownr/dist/commonjs/index.d.ts +3 -0
  18. package/node_modules/chownr/dist/commonjs/index.d.ts.map +1 -0
  19. package/node_modules/chownr/dist/commonjs/index.js +93 -0
  20. package/node_modules/chownr/dist/commonjs/index.js.map +1 -0
  21. package/node_modules/chownr/dist/commonjs/package.json +3 -0
  22. package/node_modules/chownr/dist/esm/index.d.ts +3 -0
  23. package/node_modules/chownr/dist/esm/index.d.ts.map +1 -0
  24. package/node_modules/chownr/dist/esm/index.js +85 -0
  25. package/node_modules/chownr/dist/esm/index.js.map +1 -0
  26. package/node_modules/chownr/dist/esm/package.json +3 -0
  27. package/node_modules/chownr/package.json +69 -0
  28. package/node_modules/minipass/LICENSE.md +55 -0
  29. package/node_modules/minipass/README.md +825 -0
  30. package/node_modules/minipass/dist/commonjs/index.d.ts +545 -0
  31. package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -0
  32. package/node_modules/minipass/dist/commonjs/index.js +1038 -0
  33. package/node_modules/minipass/dist/commonjs/index.js.map +1 -0
  34. package/node_modules/minipass/dist/commonjs/package.json +3 -0
  35. package/node_modules/minipass/dist/esm/index.d.ts +545 -0
  36. package/node_modules/minipass/dist/esm/index.d.ts.map +1 -0
  37. package/node_modules/minipass/dist/esm/index.js +1020 -0
  38. package/node_modules/minipass/dist/esm/index.js.map +1 -0
  39. package/node_modules/minipass/dist/esm/package.json +3 -0
  40. package/node_modules/minipass/package.json +77 -0
  41. package/node_modules/minizlib/LICENSE +26 -0
  42. package/node_modules/minizlib/README.md +64 -0
  43. package/node_modules/minizlib/dist/commonjs/constants.d.ts +2 -0
  44. package/node_modules/minizlib/dist/commonjs/constants.d.ts.map +1 -0
  45. package/node_modules/minizlib/dist/commonjs/constants.js +123 -0
  46. package/node_modules/minizlib/dist/commonjs/constants.js.map +1 -0
  47. package/node_modules/minizlib/dist/commonjs/index.d.ts +99 -0
  48. package/node_modules/minizlib/dist/commonjs/index.d.ts.map +1 -0
  49. package/node_modules/minizlib/dist/commonjs/index.js +416 -0
  50. package/node_modules/minizlib/dist/commonjs/index.js.map +1 -0
  51. package/node_modules/minizlib/dist/commonjs/package.json +3 -0
  52. package/node_modules/minizlib/dist/esm/constants.d.ts +2 -0
  53. package/node_modules/minizlib/dist/esm/constants.d.ts.map +1 -0
  54. package/node_modules/minizlib/dist/esm/constants.js +117 -0
  55. package/node_modules/minizlib/dist/esm/constants.js.map +1 -0
  56. package/node_modules/minizlib/dist/esm/index.d.ts +99 -0
  57. package/node_modules/minizlib/dist/esm/index.d.ts.map +1 -0
  58. package/node_modules/minizlib/dist/esm/index.js +363 -0
  59. package/node_modules/minizlib/dist/esm/index.js.map +1 -0
  60. package/node_modules/minizlib/dist/esm/package.json +3 -0
  61. package/node_modules/minizlib/package.json +80 -0
  62. package/node_modules/tar/LICENSE.md +55 -0
  63. package/node_modules/tar/README.md +1224 -0
  64. package/node_modules/tar/dist/commonjs/create.d.ts +3 -0
  65. package/node_modules/tar/dist/commonjs/create.d.ts.map +1 -0
  66. package/node_modules/tar/dist/commonjs/create.js +82 -0
  67. package/node_modules/tar/dist/commonjs/create.js.map +1 -0
  68. package/node_modules/tar/dist/commonjs/cwd-error.d.ts +8 -0
  69. package/node_modules/tar/dist/commonjs/cwd-error.d.ts.map +1 -0
  70. package/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
  71. package/node_modules/tar/dist/commonjs/cwd-error.js.map +1 -0
  72. package/node_modules/tar/dist/commonjs/extract.d.ts +3 -0
  73. package/node_modules/tar/dist/commonjs/extract.d.ts.map +1 -0
  74. package/node_modules/tar/dist/commonjs/extract.js +88 -0
  75. package/node_modules/tar/dist/commonjs/extract.js.map +1 -0
  76. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts +2 -0
  77. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +1 -0
  78. package/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
  79. package/node_modules/tar/dist/commonjs/get-write-flag.js.map +1 -0
  80. package/node_modules/tar/dist/commonjs/header.d.ts +53 -0
  81. package/node_modules/tar/dist/commonjs/header.d.ts.map +1 -0
  82. package/node_modules/tar/dist/commonjs/header.js +312 -0
  83. package/node_modules/tar/dist/commonjs/header.js.map +1 -0
  84. package/node_modules/tar/dist/commonjs/index.d.ts +20 -0
  85. package/node_modules/tar/dist/commonjs/index.d.ts.map +1 -0
  86. package/node_modules/tar/dist/commonjs/index.js +64 -0
  87. package/node_modules/tar/dist/commonjs/index.js.map +1 -0
  88. package/node_modules/tar/dist/commonjs/index.min.js +4 -0
  89. package/node_modules/tar/dist/commonjs/index.min.js.map +7 -0
  90. package/node_modules/tar/dist/commonjs/large-numbers.d.ts +3 -0
  91. package/node_modules/tar/dist/commonjs/large-numbers.d.ts.map +1 -0
  92. package/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
  93. package/node_modules/tar/dist/commonjs/large-numbers.js.map +1 -0
  94. package/node_modules/tar/dist/commonjs/list.d.ts +7 -0
  95. package/node_modules/tar/dist/commonjs/list.d.ts.map +1 -0
  96. package/node_modules/tar/dist/commonjs/list.js +145 -0
  97. package/node_modules/tar/dist/commonjs/list.js.map +1 -0
  98. package/node_modules/tar/dist/commonjs/make-command.d.ts +49 -0
  99. package/node_modules/tar/dist/commonjs/make-command.d.ts.map +1 -0
  100. package/node_modules/tar/dist/commonjs/make-command.js +52 -0
  101. package/node_modules/tar/dist/commonjs/make-command.js.map +1 -0
  102. package/node_modules/tar/dist/commonjs/mkdir.d.ts +25 -0
  103. package/node_modules/tar/dist/commonjs/mkdir.d.ts.map +1 -0
  104. package/node_modules/tar/dist/commonjs/mkdir.js +187 -0
  105. package/node_modules/tar/dist/commonjs/mkdir.js.map +1 -0
  106. package/node_modules/tar/dist/commonjs/mode-fix.d.ts +2 -0
  107. package/node_modules/tar/dist/commonjs/mode-fix.d.ts.map +1 -0
  108. package/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
  109. package/node_modules/tar/dist/commonjs/mode-fix.js.map +1 -0
  110. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +2 -0
  111. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts.map +1 -0
  112. package/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
  113. package/node_modules/tar/dist/commonjs/normalize-unicode.js.map +1 -0
  114. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +2 -0
  115. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts.map +1 -0
  116. package/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
  117. package/node_modules/tar/dist/commonjs/normalize-windows-path.js.map +1 -0
  118. package/node_modules/tar/dist/commonjs/options.d.ts +596 -0
  119. package/node_modules/tar/dist/commonjs/options.d.ts.map +1 -0
  120. package/node_modules/tar/dist/commonjs/options.js +66 -0
  121. package/node_modules/tar/dist/commonjs/options.js.map +1 -0
  122. package/node_modules/tar/dist/commonjs/pack.d.ts +102 -0
  123. package/node_modules/tar/dist/commonjs/pack.d.ts.map +1 -0
  124. package/node_modules/tar/dist/commonjs/pack.js +511 -0
  125. package/node_modules/tar/dist/commonjs/pack.js.map +1 -0
  126. package/node_modules/tar/dist/commonjs/package.json +3 -0
  127. package/node_modules/tar/dist/commonjs/parse.d.ts +85 -0
  128. package/node_modules/tar/dist/commonjs/parse.d.ts.map +1 -0
  129. package/node_modules/tar/dist/commonjs/parse.js +610 -0
  130. package/node_modules/tar/dist/commonjs/parse.js.map +1 -0
  131. package/node_modules/tar/dist/commonjs/path-reservations.d.ts +11 -0
  132. package/node_modules/tar/dist/commonjs/path-reservations.d.ts.map +1 -0
  133. package/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
  134. package/node_modules/tar/dist/commonjs/path-reservations.js.map +1 -0
  135. package/node_modules/tar/dist/commonjs/pax.d.ts +26 -0
  136. package/node_modules/tar/dist/commonjs/pax.d.ts.map +1 -0
  137. package/node_modules/tar/dist/commonjs/pax.js +158 -0
  138. package/node_modules/tar/dist/commonjs/pax.js.map +1 -0
  139. package/node_modules/tar/dist/commonjs/process-umask.d.ts +2 -0
  140. package/node_modules/tar/dist/commonjs/process-umask.d.ts.map +1 -0
  141. package/node_modules/tar/dist/commonjs/process-umask.js +7 -0
  142. package/node_modules/tar/dist/commonjs/process-umask.js.map +1 -0
  143. package/node_modules/tar/dist/commonjs/read-entry.d.ts +36 -0
  144. package/node_modules/tar/dist/commonjs/read-entry.d.ts.map +1 -0
  145. package/node_modules/tar/dist/commonjs/read-entry.js +136 -0
  146. package/node_modules/tar/dist/commonjs/read-entry.js.map +1 -0
  147. package/node_modules/tar/dist/commonjs/replace.d.ts +2 -0
  148. package/node_modules/tar/dist/commonjs/replace.d.ts.map +1 -0
  149. package/node_modules/tar/dist/commonjs/replace.js +227 -0
  150. package/node_modules/tar/dist/commonjs/replace.js.map +1 -0
  151. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +2 -0
  152. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts.map +1 -0
  153. package/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
  154. package/node_modules/tar/dist/commonjs/strip-absolute-path.js.map +1 -0
  155. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +2 -0
  156. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts.map +1 -0
  157. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
  158. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js.map +1 -0
  159. package/node_modules/tar/dist/commonjs/symlink-error.d.ts +9 -0
  160. package/node_modules/tar/dist/commonjs/symlink-error.d.ts.map +1 -0
  161. package/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
  162. package/node_modules/tar/dist/commonjs/symlink-error.js.map +1 -0
  163. package/node_modules/tar/dist/commonjs/types.d.ts +7 -0
  164. package/node_modules/tar/dist/commonjs/types.d.ts.map +1 -0
  165. package/node_modules/tar/dist/commonjs/types.js +50 -0
  166. package/node_modules/tar/dist/commonjs/types.js.map +1 -0
  167. package/node_modules/tar/dist/commonjs/unpack.d.ts +101 -0
  168. package/node_modules/tar/dist/commonjs/unpack.d.ts.map +1 -0
  169. package/node_modules/tar/dist/commonjs/unpack.js +932 -0
  170. package/node_modules/tar/dist/commonjs/unpack.js.map +1 -0
  171. package/node_modules/tar/dist/commonjs/update.d.ts +2 -0
  172. package/node_modules/tar/dist/commonjs/update.d.ts.map +1 -0
  173. package/node_modules/tar/dist/commonjs/update.js +33 -0
  174. package/node_modules/tar/dist/commonjs/update.js.map +1 -0
  175. package/node_modules/tar/dist/commonjs/warn-method.d.ts +24 -0
  176. package/node_modules/tar/dist/commonjs/warn-method.d.ts.map +1 -0
  177. package/node_modules/tar/dist/commonjs/warn-method.js +31 -0
  178. package/node_modules/tar/dist/commonjs/warn-method.js.map +1 -0
  179. package/node_modules/tar/dist/commonjs/winchars.d.ts +3 -0
  180. package/node_modules/tar/dist/commonjs/winchars.d.ts.map +1 -0
  181. package/node_modules/tar/dist/commonjs/winchars.js +14 -0
  182. package/node_modules/tar/dist/commonjs/winchars.js.map +1 -0
  183. package/node_modules/tar/dist/commonjs/write-entry.d.ts +129 -0
  184. package/node_modules/tar/dist/commonjs/write-entry.d.ts.map +1 -0
  185. package/node_modules/tar/dist/commonjs/write-entry.js +698 -0
  186. package/node_modules/tar/dist/commonjs/write-entry.js.map +1 -0
  187. package/node_modules/tar/dist/esm/create.d.ts +3 -0
  188. package/node_modules/tar/dist/esm/create.d.ts.map +1 -0
  189. package/node_modules/tar/dist/esm/create.js +76 -0
  190. package/node_modules/tar/dist/esm/create.js.map +1 -0
  191. package/node_modules/tar/dist/esm/cwd-error.d.ts +8 -0
  192. package/node_modules/tar/dist/esm/cwd-error.d.ts.map +1 -0
  193. package/node_modules/tar/dist/esm/cwd-error.js +14 -0
  194. package/node_modules/tar/dist/esm/cwd-error.js.map +1 -0
  195. package/node_modules/tar/dist/esm/extract.d.ts +3 -0
  196. package/node_modules/tar/dist/esm/extract.d.ts.map +1 -0
  197. package/node_modules/tar/dist/esm/extract.js +49 -0
  198. package/node_modules/tar/dist/esm/extract.js.map +1 -0
  199. package/node_modules/tar/dist/esm/get-write-flag.d.ts +2 -0
  200. package/node_modules/tar/dist/esm/get-write-flag.d.ts.map +1 -0
  201. package/node_modules/tar/dist/esm/get-write-flag.js +26 -0
  202. package/node_modules/tar/dist/esm/get-write-flag.js.map +1 -0
  203. package/node_modules/tar/dist/esm/header.d.ts +53 -0
  204. package/node_modules/tar/dist/esm/header.d.ts.map +1 -0
  205. package/node_modules/tar/dist/esm/header.js +275 -0
  206. package/node_modules/tar/dist/esm/header.js.map +1 -0
  207. package/node_modules/tar/dist/esm/index.d.ts +20 -0
  208. package/node_modules/tar/dist/esm/index.d.ts.map +1 -0
  209. package/node_modules/tar/dist/esm/index.js +20 -0
  210. package/node_modules/tar/dist/esm/index.js.map +1 -0
  211. package/node_modules/tar/dist/esm/index.min.js +4 -0
  212. package/node_modules/tar/dist/esm/index.min.js.map +7 -0
  213. package/node_modules/tar/dist/esm/large-numbers.d.ts +3 -0
  214. package/node_modules/tar/dist/esm/large-numbers.d.ts.map +1 -0
  215. package/node_modules/tar/dist/esm/large-numbers.js +94 -0
  216. package/node_modules/tar/dist/esm/large-numbers.js.map +1 -0
  217. package/node_modules/tar/dist/esm/list.d.ts +7 -0
  218. package/node_modules/tar/dist/esm/list.d.ts.map +1 -0
  219. package/node_modules/tar/dist/esm/list.js +105 -0
  220. package/node_modules/tar/dist/esm/list.js.map +1 -0
  221. package/node_modules/tar/dist/esm/make-command.d.ts +49 -0
  222. package/node_modules/tar/dist/esm/make-command.d.ts.map +1 -0
  223. package/node_modules/tar/dist/esm/make-command.js +48 -0
  224. package/node_modules/tar/dist/esm/make-command.js.map +1 -0
  225. package/node_modules/tar/dist/esm/mkdir.d.ts +25 -0
  226. package/node_modules/tar/dist/esm/mkdir.d.ts.map +1 -0
  227. package/node_modules/tar/dist/esm/mkdir.js +179 -0
  228. package/node_modules/tar/dist/esm/mkdir.js.map +1 -0
  229. package/node_modules/tar/dist/esm/mode-fix.d.ts +2 -0
  230. package/node_modules/tar/dist/esm/mode-fix.d.ts.map +1 -0
  231. package/node_modules/tar/dist/esm/mode-fix.js +25 -0
  232. package/node_modules/tar/dist/esm/mode-fix.js.map +1 -0
  233. package/node_modules/tar/dist/esm/normalize-unicode.d.ts +2 -0
  234. package/node_modules/tar/dist/esm/normalize-unicode.d.ts.map +1 -0
  235. package/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
  236. package/node_modules/tar/dist/esm/normalize-unicode.js.map +1 -0
  237. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts +2 -0
  238. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts.map +1 -0
  239. package/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
  240. package/node_modules/tar/dist/esm/normalize-windows-path.js.map +1 -0
  241. package/node_modules/tar/dist/esm/options.d.ts +596 -0
  242. package/node_modules/tar/dist/esm/options.d.ts.map +1 -0
  243. package/node_modules/tar/dist/esm/options.js +54 -0
  244. package/node_modules/tar/dist/esm/options.js.map +1 -0
  245. package/node_modules/tar/dist/esm/pack.d.ts +102 -0
  246. package/node_modules/tar/dist/esm/pack.d.ts.map +1 -0
  247. package/node_modules/tar/dist/esm/pack.js +469 -0
  248. package/node_modules/tar/dist/esm/pack.js.map +1 -0
  249. package/node_modules/tar/dist/esm/package.json +3 -0
  250. package/node_modules/tar/dist/esm/parse.d.ts +85 -0
  251. package/node_modules/tar/dist/esm/parse.d.ts.map +1 -0
  252. package/node_modules/tar/dist/esm/parse.js +606 -0
  253. package/node_modules/tar/dist/esm/parse.js.map +1 -0
  254. package/node_modules/tar/dist/esm/path-reservations.d.ts +11 -0
  255. package/node_modules/tar/dist/esm/path-reservations.d.ts.map +1 -0
  256. package/node_modules/tar/dist/esm/path-reservations.js +166 -0
  257. package/node_modules/tar/dist/esm/path-reservations.js.map +1 -0
  258. package/node_modules/tar/dist/esm/pax.d.ts +26 -0
  259. package/node_modules/tar/dist/esm/pax.d.ts.map +1 -0
  260. package/node_modules/tar/dist/esm/pax.js +154 -0
  261. package/node_modules/tar/dist/esm/pax.js.map +1 -0
  262. package/node_modules/tar/dist/esm/process-umask.d.ts +2 -0
  263. package/node_modules/tar/dist/esm/process-umask.d.ts.map +1 -0
  264. package/node_modules/tar/dist/esm/process-umask.js +3 -0
  265. package/node_modules/tar/dist/esm/process-umask.js.map +1 -0
  266. package/node_modules/tar/dist/esm/read-entry.d.ts +36 -0
  267. package/node_modules/tar/dist/esm/read-entry.d.ts.map +1 -0
  268. package/node_modules/tar/dist/esm/read-entry.js +132 -0
  269. package/node_modules/tar/dist/esm/read-entry.js.map +1 -0
  270. package/node_modules/tar/dist/esm/replace.d.ts +2 -0
  271. package/node_modules/tar/dist/esm/replace.d.ts.map +1 -0
  272. package/node_modules/tar/dist/esm/replace.js +221 -0
  273. package/node_modules/tar/dist/esm/replace.js.map +1 -0
  274. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts +2 -0
  275. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts.map +1 -0
  276. package/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
  277. package/node_modules/tar/dist/esm/strip-absolute-path.js.map +1 -0
  278. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +2 -0
  279. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts.map +1 -0
  280. package/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
  281. package/node_modules/tar/dist/esm/strip-trailing-slashes.js.map +1 -0
  282. package/node_modules/tar/dist/esm/symlink-error.d.ts +9 -0
  283. package/node_modules/tar/dist/esm/symlink-error.d.ts.map +1 -0
  284. package/node_modules/tar/dist/esm/symlink-error.js +15 -0
  285. package/node_modules/tar/dist/esm/symlink-error.js.map +1 -0
  286. package/node_modules/tar/dist/esm/types.d.ts +7 -0
  287. package/node_modules/tar/dist/esm/types.d.ts.map +1 -0
  288. package/node_modules/tar/dist/esm/types.js +45 -0
  289. package/node_modules/tar/dist/esm/types.js.map +1 -0
  290. package/node_modules/tar/dist/esm/unpack.d.ts +101 -0
  291. package/node_modules/tar/dist/esm/unpack.d.ts.map +1 -0
  292. package/node_modules/tar/dist/esm/unpack.js +891 -0
  293. package/node_modules/tar/dist/esm/unpack.js.map +1 -0
  294. package/node_modules/tar/dist/esm/update.d.ts +2 -0
  295. package/node_modules/tar/dist/esm/update.d.ts.map +1 -0
  296. package/node_modules/tar/dist/esm/update.js +30 -0
  297. package/node_modules/tar/dist/esm/update.js.map +1 -0
  298. package/node_modules/tar/dist/esm/warn-method.d.ts +24 -0
  299. package/node_modules/tar/dist/esm/warn-method.d.ts.map +1 -0
  300. package/node_modules/tar/dist/esm/warn-method.js +27 -0
  301. package/node_modules/tar/dist/esm/warn-method.js.map +1 -0
  302. package/node_modules/tar/dist/esm/winchars.d.ts +3 -0
  303. package/node_modules/tar/dist/esm/winchars.d.ts.map +1 -0
  304. package/node_modules/tar/dist/esm/winchars.js +9 -0
  305. package/node_modules/tar/dist/esm/winchars.js.map +1 -0
  306. package/node_modules/tar/dist/esm/write-entry.d.ts +129 -0
  307. package/node_modules/tar/dist/esm/write-entry.d.ts.map +1 -0
  308. package/node_modules/tar/dist/esm/write-entry.js +656 -0
  309. package/node_modules/tar/dist/esm/write-entry.js.map +1 -0
  310. package/node_modules/tar/package.json +297 -0
  311. package/node_modules/yallist/LICENSE.md +63 -0
  312. package/node_modules/yallist/README.md +205 -0
  313. package/node_modules/yallist/dist/commonjs/index.d.ts +39 -0
  314. package/node_modules/yallist/dist/commonjs/index.d.ts.map +1 -0
  315. package/node_modules/yallist/dist/commonjs/index.js +384 -0
  316. package/node_modules/yallist/dist/commonjs/index.js.map +1 -0
  317. package/node_modules/yallist/dist/commonjs/package.json +3 -0
  318. package/node_modules/yallist/dist/esm/index.d.ts +39 -0
  319. package/node_modules/yallist/dist/esm/index.d.ts.map +1 -0
  320. package/node_modules/yallist/dist/esm/index.js +379 -0
  321. package/node_modules/yallist/dist/esm/index.js.map +1 -0
  322. package/node_modules/yallist/dist/esm/package.json +3 -0
  323. package/node_modules/yallist/package.json +68 -0
  324. package/package.json +3 -1
  325. package/skills/manifest.json +12 -0
  326. package/skills/weibo-cron/SKILL.md +115 -48
  327. package/skills/weibo-crowd/SKILL.md +182 -16
  328. package/skills/weibo-crowd/references/SILICON-TEAHOUSE-RULES.md +196 -62
  329. package/skills/weibo-crowd/scripts/weibo-crowd.js +105 -27
  330. package/skills/weibo-hot-search/SKILL.md +2 -0
  331. package/skills/weibo-pic/SKILL.md +266 -0
  332. package/skills/weibo-pic/scripts/weibo-pic.js +798 -0
  333. package/skills/weibo-search/SKILL.md +2 -0
  334. package/skills/weibo-status/SKILL.md +2 -0
  335. package/skills/weibo-token/SKILL.md +2 -0
  336. package/skills/weibo-video/SKILL.md +2 -0
  337. package/src/client.d.ts.map +1 -1
  338. package/src/client.js +3 -0
  339. package/src/client.js.map +1 -1
  340. package/src/skill-updater.d.ts +14 -0
  341. package/src/skill-updater.d.ts.map +1 -0
  342. package/src/skill-updater.js +240 -0
  343. package/src/skill-updater.js.map +1 -0
  344. package/src/token.d.ts +2 -0
  345. package/src/token.d.ts.map +1 -1
  346. package/src/token.js +1 -0
  347. package/src/token.js.map +1 -1
  348. package/src/weibo-hot-search.js +1 -1
  349. package/src/weibo-hot-search.js.map +1 -1
  350. package/src/weibo-search.js +1 -1
  351. package/src/weibo-search.js.map +1 -1
  352. package/src/weibo-status.js +1 -1
  353. package/src/weibo-status.js.map +1 -1
  354. package/src/weibo-token-tool.js +1 -1
  355. package/src/weibo-token-tool.js.map +1 -1
@@ -0,0 +1,3 @@
1
+ export declare const encode: (num: number, buf: Buffer) => Buffer<ArrayBufferLike>;
2
+ export declare const parse: (buf: Buffer) => number;
3
+ //# sourceMappingURL=large-numbers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"large-numbers.d.ts","sourceRoot":"","sources":["../../src/large-numbers.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,4BAa9C,CAAA;AA6BD,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,WAiBhC,CAAA"}
@@ -0,0 +1,94 @@
1
+ // Tar can encode large and negative numbers using a leading byte of
2
+ // 0xff for negative, and 0x80 for positive.
3
+ export const encode = (num, buf) => {
4
+ if (!Number.isSafeInteger(num)) {
5
+ // The number is so large that javascript cannot represent it with integer
6
+ // precision.
7
+ throw Error('cannot encode number outside of javascript safe integer range');
8
+ }
9
+ else if (num < 0) {
10
+ encodeNegative(num, buf);
11
+ }
12
+ else {
13
+ encodePositive(num, buf);
14
+ }
15
+ return buf;
16
+ };
17
+ const encodePositive = (num, buf) => {
18
+ buf[0] = 0x80;
19
+ for (var i = buf.length; i > 1; i--) {
20
+ buf[i - 1] = num & 0xff;
21
+ num = Math.floor(num / 0x100);
22
+ }
23
+ };
24
+ const encodeNegative = (num, buf) => {
25
+ buf[0] = 0xff;
26
+ var flipped = false;
27
+ num = num * -1;
28
+ for (var i = buf.length; i > 1; i--) {
29
+ var byte = num & 0xff;
30
+ num = Math.floor(num / 0x100);
31
+ if (flipped) {
32
+ buf[i - 1] = onesComp(byte);
33
+ }
34
+ else if (byte === 0) {
35
+ buf[i - 1] = 0;
36
+ }
37
+ else {
38
+ flipped = true;
39
+ buf[i - 1] = twosComp(byte);
40
+ }
41
+ }
42
+ };
43
+ export const parse = (buf) => {
44
+ const pre = buf[0];
45
+ const value = pre === 0x80 ? pos(buf.subarray(1, buf.length))
46
+ : pre === 0xff ? twos(buf)
47
+ : null;
48
+ if (value === null) {
49
+ throw Error('invalid base256 encoding');
50
+ }
51
+ if (!Number.isSafeInteger(value)) {
52
+ // The number is so large that javascript cannot represent it with integer
53
+ // precision.
54
+ throw Error('parsed number outside of javascript safe integer range');
55
+ }
56
+ return value;
57
+ };
58
+ const twos = (buf) => {
59
+ var len = buf.length;
60
+ var sum = 0;
61
+ var flipped = false;
62
+ for (var i = len - 1; i > -1; i--) {
63
+ var byte = Number(buf[i]);
64
+ var f;
65
+ if (flipped) {
66
+ f = onesComp(byte);
67
+ }
68
+ else if (byte === 0) {
69
+ f = byte;
70
+ }
71
+ else {
72
+ flipped = true;
73
+ f = twosComp(byte);
74
+ }
75
+ if (f !== 0) {
76
+ sum -= f * Math.pow(256, len - i - 1);
77
+ }
78
+ }
79
+ return sum;
80
+ };
81
+ const pos = (buf) => {
82
+ var len = buf.length;
83
+ var sum = 0;
84
+ for (var i = len - 1; i > -1; i--) {
85
+ var byte = Number(buf[i]);
86
+ if (byte !== 0) {
87
+ sum += byte * Math.pow(256, len - i - 1);
88
+ }
89
+ }
90
+ return sum;
91
+ };
92
+ const onesComp = (byte) => (0xff ^ byte) & 0xff;
93
+ const twosComp = (byte) => ((0xff ^ byte) + 1) & 0xff;
94
+ //# sourceMappingURL=large-numbers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"large-numbers.js","sourceRoot":"","sources":["../../src/large-numbers.ts"],"names":[],"mappings":"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","sourcesContent":["// Tar can encode large and negative numbers using a leading byte of\n// 0xff for negative, and 0x80 for positive.\n\nexport const encode = (num: number, buf: Buffer) => {\n if (!Number.isSafeInteger(num)) {\n // The number is so large that javascript cannot represent it with integer\n // precision.\n throw Error(\n 'cannot encode number outside of javascript safe integer range',\n )\n } else if (num < 0) {\n encodeNegative(num, buf)\n } else {\n encodePositive(num, buf)\n }\n return buf\n}\n\nconst encodePositive = (num: number, buf: Buffer) => {\n buf[0] = 0x80\n\n for (var i = buf.length; i > 1; i--) {\n buf[i - 1] = num & 0xff\n num = Math.floor(num / 0x100)\n }\n}\n\nconst encodeNegative = (num: number, buf: Buffer) => {\n buf[0] = 0xff\n var flipped = false\n num = num * -1\n for (var i = buf.length; i > 1; i--) {\n var byte = num & 0xff\n num = Math.floor(num / 0x100)\n if (flipped) {\n buf[i - 1] = onesComp(byte)\n } else if (byte === 0) {\n buf[i - 1] = 0\n } else {\n flipped = true\n buf[i - 1] = twosComp(byte)\n }\n }\n}\n\nexport const parse = (buf: Buffer) => {\n const pre = buf[0]\n const value =\n pre === 0x80 ? pos(buf.subarray(1, buf.length))\n : pre === 0xff ? twos(buf)\n : null\n if (value === null) {\n throw Error('invalid base256 encoding')\n }\n\n if (!Number.isSafeInteger(value)) {\n // The number is so large that javascript cannot represent it with integer\n // precision.\n throw Error('parsed number outside of javascript safe integer range')\n }\n\n return value\n}\n\nconst twos = (buf: Buffer) => {\n var len = buf.length\n var sum = 0\n var flipped = false\n for (var i = len - 1; i > -1; i--) {\n var byte = Number(buf[i])\n var f\n if (flipped) {\n f = onesComp(byte)\n } else if (byte === 0) {\n f = byte\n } else {\n flipped = true\n f = twosComp(byte)\n }\n if (f !== 0) {\n sum -= f * Math.pow(256, len - i - 1)\n }\n }\n return sum\n}\n\nconst pos = (buf: Buffer) => {\n var len = buf.length\n var sum = 0\n for (var i = len - 1; i > -1; i--) {\n var byte = Number(buf[i])\n if (byte !== 0) {\n sum += byte * Math.pow(256, len - i - 1)\n }\n }\n return sum\n}\n\nconst onesComp = (byte: number) => (0xff ^ byte) & 0xff\n\nconst twosComp = (byte: number) => ((0xff ^ byte) + 1) & 0xff\n"]}
@@ -0,0 +1,7 @@
1
+ import type { TarOptions } from './options.js';
2
+ import { Parser } from './parse.js';
3
+ export declare const filesFilter: (opt: TarOptions, files: string[]) => void;
4
+ export declare const list: import("./make-command.js").TarCommand<Parser, Parser & {
5
+ sync: true;
6
+ }>;
7
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/list.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAgBnC,eAAO,MAAM,WAAW,GAAI,KAAK,UAAU,EAAE,OAAO,MAAM,EAAE,SAwB3D,CAAA;AA+DD,eAAO,MAAM,IAAI;UAG4B,IAAI;EAMhD,CAAA"}
@@ -0,0 +1,105 @@
1
+ // tar -t
2
+ import * as fsm from '@isaacs/fs-minipass';
3
+ import fs from 'node:fs';
4
+ import { dirname, parse } from 'path';
5
+ import { makeCommand } from './make-command.js';
6
+ import { Parser } from './parse.js';
7
+ import { stripTrailingSlashes } from './strip-trailing-slashes.js';
8
+ const onReadEntryFunction = (opt) => {
9
+ const onReadEntry = opt.onReadEntry;
10
+ opt.onReadEntry =
11
+ onReadEntry ?
12
+ e => {
13
+ onReadEntry(e);
14
+ e.resume();
15
+ }
16
+ : e => e.resume();
17
+ };
18
+ // construct a filter that limits the file entries listed
19
+ // include child entries if a dir is included
20
+ export const filesFilter = (opt, files) => {
21
+ const map = new Map(files.map(f => [stripTrailingSlashes(f), true]));
22
+ const filter = opt.filter;
23
+ const mapHas = (file, r = '') => {
24
+ const root = r || parse(file).root || '.';
25
+ let ret;
26
+ if (file === root)
27
+ ret = false;
28
+ else {
29
+ const m = map.get(file);
30
+ ret = m !== undefined ? m : mapHas(dirname(file), root);
31
+ }
32
+ map.set(file, ret);
33
+ return ret;
34
+ };
35
+ opt.filter =
36
+ filter ?
37
+ (file, entry) => filter(file, entry) && mapHas(stripTrailingSlashes(file))
38
+ : file => mapHas(stripTrailingSlashes(file));
39
+ };
40
+ const listFileSync = (opt) => {
41
+ const p = new Parser(opt);
42
+ const file = opt.file;
43
+ let fd;
44
+ try {
45
+ fd = fs.openSync(file, 'r');
46
+ const stat = fs.fstatSync(fd);
47
+ const readSize = opt.maxReadSize || 16 * 1024 * 1024;
48
+ if (stat.size < readSize) {
49
+ const buf = Buffer.allocUnsafe(stat.size);
50
+ const read = fs.readSync(fd, buf, 0, stat.size, 0);
51
+ p.end(read === buf.byteLength ? buf : buf.subarray(0, read));
52
+ }
53
+ else {
54
+ let pos = 0;
55
+ const buf = Buffer.allocUnsafe(readSize);
56
+ while (pos < stat.size) {
57
+ const bytesRead = fs.readSync(fd, buf, 0, readSize, pos);
58
+ if (bytesRead === 0)
59
+ break;
60
+ pos += bytesRead;
61
+ p.write(buf.subarray(0, bytesRead));
62
+ }
63
+ p.end();
64
+ }
65
+ }
66
+ finally {
67
+ if (typeof fd === 'number') {
68
+ try {
69
+ fs.closeSync(fd);
70
+ /* c8 ignore next */
71
+ }
72
+ catch { }
73
+ }
74
+ }
75
+ };
76
+ const listFile = (opt, _files) => {
77
+ const parse = new Parser(opt);
78
+ const readSize = opt.maxReadSize || 16 * 1024 * 1024;
79
+ const file = opt.file;
80
+ const p = new Promise((resolve, reject) => {
81
+ parse.on('error', reject);
82
+ parse.on('end', resolve);
83
+ fs.stat(file, (er, stat) => {
84
+ if (er) {
85
+ reject(er);
86
+ }
87
+ else {
88
+ const stream = new fsm.ReadStream(file, {
89
+ readSize: readSize,
90
+ size: stat.size,
91
+ });
92
+ stream.on('error', reject);
93
+ stream.pipe(parse);
94
+ }
95
+ });
96
+ });
97
+ return p;
98
+ };
99
+ export const list = makeCommand(listFileSync, listFile, opt => new Parser(opt), opt => new Parser(opt), (opt, files) => {
100
+ if (files?.length)
101
+ filesFilter(opt, files);
102
+ if (!opt.noResume)
103
+ onReadEntryFunction(opt);
104
+ });
105
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/list.ts"],"names":[],"mappings":"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","sourcesContent":["// tar -t\nimport * as fsm from '@isaacs/fs-minipass'\nimport fs from 'node:fs'\nimport { dirname, parse } from 'path'\nimport { makeCommand } from './make-command.js'\nimport type {\n TarOptions,\n TarOptionsFile,\n TarOptionsSyncFile,\n} from './options.js'\nimport { Parser } from './parse.js'\nimport { stripTrailingSlashes } from './strip-trailing-slashes.js'\n\nconst onReadEntryFunction = (opt: TarOptions) => {\n const onReadEntry = opt.onReadEntry\n opt.onReadEntry =\n onReadEntry ?\n e => {\n onReadEntry(e)\n e.resume()\n }\n : e => e.resume()\n}\n\n// construct a filter that limits the file entries listed\n// include child entries if a dir is included\nexport const filesFilter = (opt: TarOptions, files: string[]) => {\n const map = new Map<string, boolean>(\n files.map(f => [stripTrailingSlashes(f), true]),\n )\n const filter = opt.filter\n\n const mapHas = (file: string, r: string = ''): boolean => {\n const root = r || parse(file).root || '.'\n let ret: boolean\n if (file === root) ret = false\n else {\n const m = map.get(file)\n ret = m !== undefined ? m : mapHas(dirname(file), root)\n }\n\n map.set(file, ret)\n return ret\n }\n\n opt.filter =\n filter ?\n (file, entry) =>\n filter(file, entry) && mapHas(stripTrailingSlashes(file))\n : file => mapHas(stripTrailingSlashes(file))\n}\n\nconst listFileSync = (opt: TarOptionsSyncFile) => {\n const p = new Parser(opt)\n const file = opt.file\n let fd: number | undefined\n try {\n fd = fs.openSync(file, 'r')\n const stat: fs.Stats = fs.fstatSync(fd)\n const readSize: number = opt.maxReadSize || 16 * 1024 * 1024\n if (stat.size < readSize) {\n const buf = Buffer.allocUnsafe(stat.size)\n const read = fs.readSync(fd, buf, 0, stat.size, 0)\n p.end(read === buf.byteLength ? buf : buf.subarray(0, read))\n } else {\n let pos = 0\n const buf = Buffer.allocUnsafe(readSize)\n while (pos < stat.size) {\n const bytesRead = fs.readSync(fd, buf, 0, readSize, pos)\n if (bytesRead === 0) break\n pos += bytesRead\n p.write(buf.subarray(0, bytesRead))\n }\n p.end()\n }\n } finally {\n if (typeof fd === 'number') {\n try {\n fs.closeSync(fd)\n /* c8 ignore next */\n } catch {}\n }\n }\n}\n\nconst listFile = (\n opt: TarOptionsFile,\n _files: string[],\n): Promise<void> => {\n const parse = new Parser(opt)\n const readSize = opt.maxReadSize || 16 * 1024 * 1024\n\n const file = opt.file\n const p = new Promise<void>((resolve, reject) => {\n parse.on('error', reject)\n parse.on('end', resolve)\n\n fs.stat(file, (er, stat) => {\n if (er) {\n reject(er)\n } else {\n const stream = new fsm.ReadStream(file, {\n readSize: readSize,\n size: stat.size,\n })\n stream.on('error', reject)\n stream.pipe(parse)\n }\n })\n })\n return p\n}\n\nexport const list = makeCommand(\n listFileSync,\n listFile,\n opt => new Parser(opt) as Parser & { sync: true },\n opt => new Parser(opt),\n (opt, files) => {\n if (files?.length) filesFilter(opt, files)\n if (!opt.noResume) onReadEntryFunction(opt)\n },\n)\n"]}
@@ -0,0 +1,49 @@
1
+ import type { TarOptions, TarOptionsAsyncFile, TarOptionsAsyncNoFile, TarOptionsSyncFile, TarOptionsSyncNoFile, TarOptionsWithAliases, TarOptionsWithAliasesAsync, TarOptionsWithAliasesAsyncFile, TarOptionsWithAliasesAsyncNoFile, TarOptionsWithAliasesFile, TarOptionsWithAliasesNoFile, TarOptionsWithAliasesSync, TarOptionsWithAliasesSyncFile, TarOptionsWithAliasesSyncNoFile } from './options.js';
2
+ export type CB = (er?: Error) => unknown;
3
+ export type TarCommand<AsyncClass, SyncClass extends {
4
+ sync: true;
5
+ }> = {
6
+ (): AsyncClass;
7
+ (opt: TarOptionsWithAliasesAsyncNoFile): AsyncClass;
8
+ (entries: string[]): AsyncClass;
9
+ (opt: TarOptionsWithAliasesAsyncNoFile, entries: string[]): AsyncClass;
10
+ } & {
11
+ (opt: TarOptionsWithAliasesSyncNoFile): SyncClass;
12
+ (opt: TarOptionsWithAliasesSyncNoFile, entries: string[]): SyncClass;
13
+ } & {
14
+ (opt: TarOptionsWithAliasesAsyncFile): Promise<void>;
15
+ (opt: TarOptionsWithAliasesAsyncFile, entries: string[]): Promise<void>;
16
+ (opt: TarOptionsWithAliasesAsyncFile, cb: CB): Promise<void>;
17
+ (opt: TarOptionsWithAliasesAsyncFile, entries: string[], cb: CB): Promise<void>;
18
+ } & {
19
+ (opt: TarOptionsWithAliasesSyncFile): void;
20
+ (opt: TarOptionsWithAliasesSyncFile, entries: string[]): void;
21
+ } & {
22
+ (opt: TarOptionsWithAliasesSync): typeof opt extends (TarOptionsWithAliasesFile) ? void : typeof opt extends TarOptionsWithAliasesNoFile ? SyncClass : void | SyncClass;
23
+ (opt: TarOptionsWithAliasesSync, entries: string[]): typeof opt extends TarOptionsWithAliasesFile ? void : typeof opt extends TarOptionsWithAliasesNoFile ? SyncClass : void | SyncClass;
24
+ } & {
25
+ (opt: TarOptionsWithAliasesAsync): typeof opt extends (TarOptionsWithAliasesFile) ? Promise<void> : typeof opt extends TarOptionsWithAliasesNoFile ? AsyncClass : Promise<void> | AsyncClass;
26
+ (opt: TarOptionsWithAliasesAsync, entries: string[]): typeof opt extends TarOptionsWithAliasesFile ? Promise<void> : typeof opt extends TarOptionsWithAliasesNoFile ? AsyncClass : Promise<void> | AsyncClass;
27
+ (opt: TarOptionsWithAliasesAsync, cb: CB): Promise<void>;
28
+ (opt: TarOptionsWithAliasesAsync, entries: string[], cb: CB): typeof opt extends TarOptionsWithAliasesFile ? Promise<void> : typeof opt extends TarOptionsWithAliasesNoFile ? never : Promise<void>;
29
+ } & {
30
+ (opt: TarOptionsWithAliasesFile): Promise<void> | void;
31
+ (opt: TarOptionsWithAliasesFile, entries: string[]): typeof opt extends TarOptionsWithAliasesSync ? void : typeof opt extends TarOptionsWithAliasesAsync ? Promise<void> : Promise<void> | void;
32
+ (opt: TarOptionsWithAliasesFile, cb: CB): Promise<void>;
33
+ (opt: TarOptionsWithAliasesFile, entries: string[], cb: CB): typeof opt extends TarOptionsWithAliasesSync ? never : typeof opt extends TarOptionsWithAliasesAsync ? Promise<void> : Promise<void>;
34
+ } & {
35
+ (opt: TarOptionsWithAliasesNoFile): typeof opt extends (TarOptionsWithAliasesSync) ? SyncClass : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass : SyncClass | AsyncClass;
36
+ (opt: TarOptionsWithAliasesNoFile, entries: string[]): typeof opt extends TarOptionsWithAliasesSync ? SyncClass : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass : SyncClass | AsyncClass;
37
+ } & {
38
+ (opt: TarOptionsWithAliases): typeof opt extends (TarOptionsWithAliasesFile) ? typeof opt extends TarOptionsWithAliasesSync ? void : typeof opt extends TarOptionsWithAliasesAsync ? Promise<void> : void | Promise<void> : typeof opt extends TarOptionsWithAliasesNoFile ? typeof opt extends TarOptionsWithAliasesSync ? SyncClass : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass : SyncClass | AsyncClass : typeof opt extends TarOptionsWithAliasesSync ? SyncClass | void : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass | Promise<void> : SyncClass | void | AsyncClass | Promise<void>;
39
+ } & {
40
+ syncFile: (opt: TarOptionsSyncFile, entries: string[]) => void;
41
+ asyncFile: (opt: TarOptionsAsyncFile, entries: string[], cb?: CB) => Promise<void>;
42
+ syncNoFile: (opt: TarOptionsSyncNoFile, entries: string[]) => SyncClass;
43
+ asyncNoFile: (opt: TarOptionsAsyncNoFile, entries: string[]) => AsyncClass;
44
+ validate?: (opt: TarOptions, entries?: string[]) => void;
45
+ };
46
+ export declare const makeCommand: <AsyncClass, SyncClass extends {
47
+ sync: true;
48
+ }>(syncFile: (opt: TarOptionsSyncFile, entries: string[]) => void, asyncFile: (opt: TarOptionsAsyncFile, entries: string[], cb?: CB) => Promise<void>, syncNoFile: (opt: TarOptionsSyncNoFile, entries: string[]) => SyncClass, asyncNoFile: (opt: TarOptionsAsyncNoFile, entries: string[]) => AsyncClass, validate?: (opt: TarOptions, entries?: string[]) => void) => TarCommand<AsyncClass, SyncClass>;
49
+ //# sourceMappingURL=make-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-command.d.ts","sourceRoot":"","sources":["../../src/make-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { dealias, isAsyncFile, isAsyncNoFile, isSyncFile, isSyncNoFile, } from './options.js';
2
+ export const makeCommand = (syncFile, asyncFile, syncNoFile, asyncNoFile, validate) => {
3
+ return Object.assign((opt_ = [], entries, cb) => {
4
+ if (Array.isArray(opt_)) {
5
+ entries = opt_;
6
+ opt_ = {};
7
+ }
8
+ if (typeof entries === 'function') {
9
+ cb = entries;
10
+ entries = undefined;
11
+ }
12
+ entries = !entries ? [] : Array.from(entries);
13
+ const opt = dealias(opt_);
14
+ validate?.(opt, entries);
15
+ if (isSyncFile(opt)) {
16
+ if (typeof cb === 'function') {
17
+ throw new TypeError('callback not supported for sync tar functions');
18
+ }
19
+ return syncFile(opt, entries);
20
+ }
21
+ else if (isAsyncFile(opt)) {
22
+ const p = asyncFile(opt, entries);
23
+ return cb ? p.then(() => cb(), cb) : p;
24
+ }
25
+ else if (isSyncNoFile(opt)) {
26
+ if (typeof cb === 'function') {
27
+ throw new TypeError('callback not supported for sync tar functions');
28
+ }
29
+ return syncNoFile(opt, entries);
30
+ }
31
+ else if (isAsyncNoFile(opt)) {
32
+ if (typeof cb === 'function') {
33
+ throw new TypeError('callback only supported with file option');
34
+ }
35
+ return asyncNoFile(opt, entries);
36
+ /* c8 ignore start */
37
+ }
38
+ throw new Error('impossible options??');
39
+ /* c8 ignore stop */
40
+ }, {
41
+ syncFile,
42
+ asyncFile,
43
+ syncNoFile,
44
+ asyncNoFile,
45
+ validate,
46
+ });
47
+ };
48
+ //# sourceMappingURL=make-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-command.js","sourceRoot":"","sources":["../../src/make-command.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,OAAO,EACP,WAAW,EACX,aAAa,EACb,UAAU,EACV,YAAY,GACb,MAAM,cAAc,CAAA;AA+HrB,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,QAA8D,EAC9D,SAIkB,EAClB,UAAuE,EACvE,WAGe,EACf,QAAwD,EACrB,EAAE;IACrC,OAAO,MAAM,CAAC,MAAM,CAClB,CACE,OAAyC,EAAE,EAC3C,OAAuB,EACvB,EAAO,EACP,EAAE;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,GAAG,IAAI,CAAA;YACd,IAAI,GAAG,EAAE,CAAA;QACX,CAAC;QAED,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,EAAE,GAAG,OAAO,CAAA;YACZ,OAAO,GAAG,SAAS,CAAA;QACrB,CAAC;QAED,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE7C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAEzB,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAExB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CACjB,+CAA+C,CAChD,CAAA;YACH,CAAC;YACD,OAAO,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC/B,CAAC;aAAM,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YACjC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,CAAC;aAAM,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CACjB,+CAA+C,CAChD,CAAA;YACH,CAAC;YACD,OAAO,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACjC,CAAC;aAAM,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC7B,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAA;YACjE,CAAC;YACD,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAChC,qBAAqB;QACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QAEvC,oBAAoB;IACtB,CAAC,EACD;QACE,QAAQ;QACR,SAAS;QACT,UAAU;QACV,WAAW;QACX,QAAQ;KACT,CACmC,CAAA;AACxC,CAAC,CAAA","sourcesContent":["import type {\n TarOptions,\n TarOptionsAsyncFile,\n TarOptionsAsyncNoFile,\n TarOptionsSyncFile,\n TarOptionsSyncNoFile,\n TarOptionsWithAliases,\n TarOptionsWithAliasesAsync,\n TarOptionsWithAliasesAsyncFile,\n TarOptionsWithAliasesAsyncNoFile,\n TarOptionsWithAliasesFile,\n TarOptionsWithAliasesNoFile,\n TarOptionsWithAliasesSync,\n TarOptionsWithAliasesSyncFile,\n TarOptionsWithAliasesSyncNoFile,\n} from './options.js'\nimport {\n dealias,\n isAsyncFile,\n isAsyncNoFile,\n isSyncFile,\n isSyncNoFile,\n} from './options.js'\n\nexport type CB = (er?: Error) => unknown\n\nexport type TarCommand<AsyncClass, SyncClass extends { sync: true }> = {\n // async and no file specified\n (): AsyncClass\n (opt: TarOptionsWithAliasesAsyncNoFile): AsyncClass\n (entries: string[]): AsyncClass\n (opt: TarOptionsWithAliasesAsyncNoFile, entries: string[]): AsyncClass\n} & {\n // sync and no file\n (opt: TarOptionsWithAliasesSyncNoFile): SyncClass\n (opt: TarOptionsWithAliasesSyncNoFile, entries: string[]): SyncClass\n} & {\n // async and file\n (opt: TarOptionsWithAliasesAsyncFile): Promise<void>\n (opt: TarOptionsWithAliasesAsyncFile, entries: string[]): Promise<void>\n (opt: TarOptionsWithAliasesAsyncFile, cb: CB): Promise<void>\n (\n opt: TarOptionsWithAliasesAsyncFile,\n entries: string[],\n cb: CB,\n ): Promise<void>\n} & {\n // sync and file\n (opt: TarOptionsWithAliasesSyncFile): void\n (opt: TarOptionsWithAliasesSyncFile, entries: string[]): void\n} & {\n // sync, maybe file\n (opt: TarOptionsWithAliasesSync): typeof opt extends (\n TarOptionsWithAliasesFile\n ) ?\n void\n : typeof opt extends TarOptionsWithAliasesNoFile ? SyncClass\n : void | SyncClass\n (\n opt: TarOptionsWithAliasesSync,\n entries: string[],\n ): typeof opt extends TarOptionsWithAliasesFile ? void\n : typeof opt extends TarOptionsWithAliasesNoFile ? SyncClass\n : void | SyncClass\n} & {\n // async, maybe file\n (opt: TarOptionsWithAliasesAsync): typeof opt extends (\n TarOptionsWithAliasesFile\n ) ?\n Promise<void>\n : typeof opt extends TarOptionsWithAliasesNoFile ? AsyncClass\n : Promise<void> | AsyncClass\n (\n opt: TarOptionsWithAliasesAsync,\n entries: string[],\n ): typeof opt extends TarOptionsWithAliasesFile ? Promise<void>\n : typeof opt extends TarOptionsWithAliasesNoFile ? AsyncClass\n : Promise<void> | AsyncClass\n (opt: TarOptionsWithAliasesAsync, cb: CB): Promise<void>\n (\n opt: TarOptionsWithAliasesAsync,\n entries: string[],\n cb: CB,\n ): typeof opt extends TarOptionsWithAliasesFile ? Promise<void>\n : typeof opt extends TarOptionsWithAliasesNoFile ? never\n : Promise<void>\n} & {\n // maybe sync, file\n (opt: TarOptionsWithAliasesFile): Promise<void> | void\n (\n opt: TarOptionsWithAliasesFile,\n entries: string[],\n ): typeof opt extends TarOptionsWithAliasesSync ? void\n : typeof opt extends TarOptionsWithAliasesAsync ? Promise<void>\n : Promise<void> | void\n (opt: TarOptionsWithAliasesFile, cb: CB): Promise<void>\n (\n opt: TarOptionsWithAliasesFile,\n entries: string[],\n cb: CB,\n ): typeof opt extends TarOptionsWithAliasesSync ? never\n : typeof opt extends TarOptionsWithAliasesAsync ? Promise<void>\n : Promise<void>\n} & {\n // maybe sync, no file\n (opt: TarOptionsWithAliasesNoFile): typeof opt extends (\n TarOptionsWithAliasesSync\n ) ?\n SyncClass\n : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass\n : SyncClass | AsyncClass\n (\n opt: TarOptionsWithAliasesNoFile,\n entries: string[],\n ): typeof opt extends TarOptionsWithAliasesSync ? SyncClass\n : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass\n : SyncClass | AsyncClass\n} & {\n // maybe sync, maybe file\n (opt: TarOptionsWithAliases): typeof opt extends (\n TarOptionsWithAliasesFile\n ) ?\n typeof opt extends TarOptionsWithAliasesSync ? void\n : typeof opt extends TarOptionsWithAliasesAsync ? Promise<void>\n : void | Promise<void>\n : typeof opt extends TarOptionsWithAliasesNoFile ?\n typeof opt extends TarOptionsWithAliasesSync ? SyncClass\n : typeof opt extends TarOptionsWithAliasesAsync ? AsyncClass\n : SyncClass | AsyncClass\n : typeof opt extends TarOptionsWithAliasesSync ? SyncClass | void\n : typeof opt extends TarOptionsWithAliasesAsync ?\n AsyncClass | Promise<void>\n : SyncClass | void | AsyncClass | Promise<void>\n} & {\n // extras\n syncFile: (opt: TarOptionsSyncFile, entries: string[]) => void\n asyncFile: (\n opt: TarOptionsAsyncFile,\n entries: string[],\n cb?: CB,\n ) => Promise<void>\n syncNoFile: (opt: TarOptionsSyncNoFile, entries: string[]) => SyncClass\n asyncNoFile: (\n opt: TarOptionsAsyncNoFile,\n entries: string[],\n ) => AsyncClass\n validate?: (opt: TarOptions, entries?: string[]) => void\n}\n\nexport const makeCommand = <AsyncClass, SyncClass extends { sync: true }>(\n syncFile: (opt: TarOptionsSyncFile, entries: string[]) => void,\n asyncFile: (\n opt: TarOptionsAsyncFile,\n entries: string[],\n cb?: CB,\n ) => Promise<void>,\n syncNoFile: (opt: TarOptionsSyncNoFile, entries: string[]) => SyncClass,\n asyncNoFile: (\n opt: TarOptionsAsyncNoFile,\n entries: string[],\n ) => AsyncClass,\n validate?: (opt: TarOptions, entries?: string[]) => void,\n): TarCommand<AsyncClass, SyncClass> => {\n return Object.assign(\n (\n opt_: TarOptionsWithAliases | string[] = [],\n entries?: string[] | CB,\n cb?: CB,\n ) => {\n if (Array.isArray(opt_)) {\n entries = opt_\n opt_ = {}\n }\n\n if (typeof entries === 'function') {\n cb = entries\n entries = undefined\n }\n\n entries = !entries ? [] : Array.from(entries)\n\n const opt = dealias(opt_)\n\n validate?.(opt, entries)\n\n if (isSyncFile(opt)) {\n if (typeof cb === 'function') {\n throw new TypeError(\n 'callback not supported for sync tar functions',\n )\n }\n return syncFile(opt, entries)\n } else if (isAsyncFile(opt)) {\n const p = asyncFile(opt, entries)\n return cb ? p.then(() => cb(), cb) : p\n } else if (isSyncNoFile(opt)) {\n if (typeof cb === 'function') {\n throw new TypeError(\n 'callback not supported for sync tar functions',\n )\n }\n return syncNoFile(opt, entries)\n } else if (isAsyncNoFile(opt)) {\n if (typeof cb === 'function') {\n throw new TypeError('callback only supported with file option')\n }\n return asyncNoFile(opt, entries)\n /* c8 ignore start */\n }\n throw new Error('impossible options??')\n\n /* c8 ignore stop */\n },\n {\n syncFile,\n asyncFile,\n syncNoFile,\n asyncNoFile,\n validate,\n },\n ) as TarCommand<AsyncClass, SyncClass>\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { CwdError } from './cwd-error.js';
2
+ import { SymlinkError } from './symlink-error.js';
3
+ export type MkdirOptions = {
4
+ uid?: number;
5
+ gid?: number;
6
+ processUid?: number;
7
+ processGid?: number;
8
+ umask?: number;
9
+ preserve: boolean;
10
+ unlink: boolean;
11
+ cwd: string;
12
+ mode: number;
13
+ };
14
+ export type MkdirError = NodeJS.ErrnoException | CwdError | SymlinkError;
15
+ /**
16
+ * Wrapper around fs/promises.mkdir for tar's needs.
17
+ *
18
+ * The main purpose is to avoid creating directories if we know that
19
+ * they already exist (and track which ones exist for this purpose),
20
+ * and prevent entries from being extracted into symlinked folders,
21
+ * if `preservePaths` is not set.
22
+ */
23
+ export declare const mkdir: (dir: string, opt: MkdirOptions, cb: (er?: null | MkdirError, made?: string) => void) => void | Promise<void>;
24
+ export declare const mkdirSync: (dir: string, opt: MkdirOptions) => void | SymlinkError;
25
+ //# sourceMappingURL=mkdir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkdir.d.ts","sourceRoot":"","sources":["../../src/mkdir.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,GAAG,QAAQ,GAAG,YAAY,CAAA;AAiBxE;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,yBAkDpD,CAAA;AA8ED,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,KAAK,YAAY,wBAmEvD,CAAA"}
@@ -0,0 +1,179 @@
1
+ import { chownr, chownrSync } from 'chownr';
2
+ import fs from 'node:fs';
3
+ import fsp from 'node:fs/promises';
4
+ import path from 'node:path';
5
+ import { CwdError } from './cwd-error.js';
6
+ import { normalizeWindowsPath } from './normalize-windows-path.js';
7
+ import { SymlinkError } from './symlink-error.js';
8
+ const checkCwd = (dir, cb) => {
9
+ fs.stat(dir, (er, st) => {
10
+ if (er || !st.isDirectory()) {
11
+ er = new CwdError(dir, er?.code || 'ENOTDIR');
12
+ }
13
+ cb(er);
14
+ });
15
+ };
16
+ /**
17
+ * Wrapper around fs/promises.mkdir for tar's needs.
18
+ *
19
+ * The main purpose is to avoid creating directories if we know that
20
+ * they already exist (and track which ones exist for this purpose),
21
+ * and prevent entries from being extracted into symlinked folders,
22
+ * if `preservePaths` is not set.
23
+ */
24
+ export const mkdir = (dir, opt, cb) => {
25
+ dir = normalizeWindowsPath(dir);
26
+ // if there's any overlap between mask and mode,
27
+ // then we'll need an explicit chmod
28
+ /* c8 ignore next */
29
+ const umask = opt.umask ?? 0o22;
30
+ const mode = opt.mode | 0o0700;
31
+ const needChmod = (mode & umask) !== 0;
32
+ const uid = opt.uid;
33
+ const gid = opt.gid;
34
+ const doChown = typeof uid === 'number' &&
35
+ typeof gid === 'number' &&
36
+ (uid !== opt.processUid || gid !== opt.processGid);
37
+ const preserve = opt.preserve;
38
+ const unlink = opt.unlink;
39
+ const cwd = normalizeWindowsPath(opt.cwd);
40
+ const done = (er, created) => {
41
+ if (er) {
42
+ cb(er);
43
+ }
44
+ else {
45
+ if (created && doChown) {
46
+ chownr(created, uid, gid, er => done(er));
47
+ }
48
+ else if (needChmod) {
49
+ fs.chmod(dir, mode, cb);
50
+ }
51
+ else {
52
+ cb();
53
+ }
54
+ }
55
+ };
56
+ if (dir === cwd) {
57
+ return checkCwd(dir, done);
58
+ }
59
+ if (preserve) {
60
+ return fsp.mkdir(dir, { mode, recursive: true }).then(made => done(null, made ?? undefined), // oh, ts
61
+ done);
62
+ }
63
+ const sub = normalizeWindowsPath(path.relative(cwd, dir));
64
+ const parts = sub.split('/');
65
+ mkdir_(cwd, parts, mode, unlink, cwd, undefined, done);
66
+ };
67
+ const mkdir_ = (base, parts, mode, unlink, cwd, created, cb) => {
68
+ if (parts.length === 0) {
69
+ return cb(null, created);
70
+ }
71
+ const p = parts.shift();
72
+ const part = normalizeWindowsPath(path.resolve(base + '/' + p));
73
+ fs.mkdir(part, mode, onmkdir(part, parts, mode, unlink, cwd, created, cb));
74
+ };
75
+ const onmkdir = (part, parts, mode, unlink, cwd, created, cb) => (er) => {
76
+ if (er) {
77
+ fs.lstat(part, (statEr, st) => {
78
+ if (statEr) {
79
+ statEr.path = statEr.path && normalizeWindowsPath(statEr.path);
80
+ cb(statEr);
81
+ }
82
+ else if (st.isDirectory()) {
83
+ mkdir_(part, parts, mode, unlink, cwd, created, cb);
84
+ }
85
+ else if (unlink) {
86
+ fs.unlink(part, er => {
87
+ if (er) {
88
+ return cb(er);
89
+ }
90
+ fs.mkdir(part, mode, onmkdir(part, parts, mode, unlink, cwd, created, cb));
91
+ });
92
+ }
93
+ else if (st.isSymbolicLink()) {
94
+ return cb(new SymlinkError(part, part + '/' + parts.join('/')));
95
+ }
96
+ else {
97
+ cb(er);
98
+ }
99
+ });
100
+ }
101
+ else {
102
+ created = created || part;
103
+ mkdir_(part, parts, mode, unlink, cwd, created, cb);
104
+ }
105
+ };
106
+ const checkCwdSync = (dir) => {
107
+ let ok = false;
108
+ let code;
109
+ try {
110
+ ok = fs.statSync(dir).isDirectory();
111
+ }
112
+ catch (er) {
113
+ code = er?.code;
114
+ }
115
+ finally {
116
+ if (!ok) {
117
+ throw new CwdError(dir, code ?? 'ENOTDIR');
118
+ }
119
+ }
120
+ };
121
+ export const mkdirSync = (dir, opt) => {
122
+ dir = normalizeWindowsPath(dir);
123
+ // if there's any overlap between mask and mode,
124
+ // then we'll need an explicit chmod
125
+ /* c8 ignore next */
126
+ const umask = opt.umask ?? 0o22;
127
+ const mode = opt.mode | 0o700;
128
+ const needChmod = (mode & umask) !== 0;
129
+ const uid = opt.uid;
130
+ const gid = opt.gid;
131
+ const doChown = typeof uid === 'number' &&
132
+ typeof gid === 'number' &&
133
+ (uid !== opt.processUid || gid !== opt.processGid);
134
+ const preserve = opt.preserve;
135
+ const unlink = opt.unlink;
136
+ const cwd = normalizeWindowsPath(opt.cwd);
137
+ const done = (created) => {
138
+ if (created && doChown) {
139
+ chownrSync(created, uid, gid);
140
+ }
141
+ if (needChmod) {
142
+ fs.chmodSync(dir, mode);
143
+ }
144
+ };
145
+ if (dir === cwd) {
146
+ checkCwdSync(cwd);
147
+ return done();
148
+ }
149
+ if (preserve) {
150
+ return done(fs.mkdirSync(dir, { mode, recursive: true }) ?? undefined);
151
+ }
152
+ const sub = normalizeWindowsPath(path.relative(cwd, dir));
153
+ const parts = sub.split('/');
154
+ let created;
155
+ for (let p = parts.shift(), part = cwd; p && (part += '/' + p); p = parts.shift()) {
156
+ part = normalizeWindowsPath(path.resolve(part));
157
+ try {
158
+ fs.mkdirSync(part, mode);
159
+ created = created || part;
160
+ }
161
+ catch {
162
+ const st = fs.lstatSync(part);
163
+ if (st.isDirectory()) {
164
+ continue;
165
+ }
166
+ else if (unlink) {
167
+ fs.unlinkSync(part);
168
+ fs.mkdirSync(part, mode);
169
+ created = created || part;
170
+ continue;
171
+ }
172
+ else if (st.isSymbolicLink()) {
173
+ return new SymlinkError(part, part + '/' + parts.join('/'));
174
+ }
175
+ }
176
+ }
177
+ return done(created);
178
+ };
179
+ //# sourceMappingURL=mkdir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkdir.js","sourceRoot":"","sources":["../../src/mkdir.ts"],"names":[],"mappings":"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","sourcesContent":["import { chownr, chownrSync } from 'chownr'\nimport fs from 'node:fs'\nimport fsp from 'node:fs/promises'\nimport path from 'node:path'\nimport { CwdError } from './cwd-error.js'\nimport { normalizeWindowsPath } from './normalize-windows-path.js'\nimport { SymlinkError } from './symlink-error.js'\n\nexport type MkdirOptions = {\n uid?: number\n gid?: number\n processUid?: number\n processGid?: number\n umask?: number\n preserve: boolean\n unlink: boolean\n cwd: string\n mode: number\n}\n\nexport type MkdirError = NodeJS.ErrnoException | CwdError | SymlinkError\n\nconst checkCwd = (\n dir: string,\n cb: (er?: null | MkdirError) => unknown,\n) => {\n fs.stat(dir, (er, st) => {\n if (er || !st.isDirectory()) {\n er = new CwdError(\n dir,\n (er as NodeJS.ErrnoException)?.code || 'ENOTDIR',\n )\n }\n cb(er)\n })\n}\n\n/**\n * Wrapper around fs/promises.mkdir for tar's needs.\n *\n * The main purpose is to avoid creating directories if we know that\n * they already exist (and track which ones exist for this purpose),\n * and prevent entries from being extracted into symlinked folders,\n * if `preservePaths` is not set.\n */\nexport const mkdir = (\n dir: string,\n opt: MkdirOptions,\n cb: (er?: null | MkdirError, made?: string) => void,\n) => {\n dir = normalizeWindowsPath(dir)\n\n // if there's any overlap between mask and mode,\n // then we'll need an explicit chmod\n /* c8 ignore next */\n const umask = opt.umask ?? 0o22\n const mode = opt.mode | 0o0700\n const needChmod = (mode & umask) !== 0\n\n const uid = opt.uid\n const gid = opt.gid\n const doChown =\n typeof uid === 'number' &&\n typeof gid === 'number' &&\n (uid !== opt.processUid || gid !== opt.processGid)\n\n const preserve = opt.preserve\n const unlink = opt.unlink\n const cwd = normalizeWindowsPath(opt.cwd)\n\n const done = (er?: null | MkdirError, created?: string) => {\n if (er) {\n cb(er)\n } else {\n if (created && doChown) {\n chownr(created, uid, gid, er => done(er as NodeJS.ErrnoException))\n } else if (needChmod) {\n fs.chmod(dir, mode, cb)\n } else {\n cb()\n }\n }\n }\n\n if (dir === cwd) {\n return checkCwd(dir, done)\n }\n\n if (preserve) {\n return fsp.mkdir(dir, { mode, recursive: true }).then(\n made => done(null, made ?? undefined), // oh, ts\n done,\n )\n }\n\n const sub = normalizeWindowsPath(path.relative(cwd, dir))\n const parts = sub.split('/')\n mkdir_(cwd, parts, mode, unlink, cwd, undefined, done)\n}\n\nconst mkdir_ = (\n base: string,\n parts: string[],\n mode: number,\n unlink: boolean,\n cwd: string,\n created: string | undefined,\n cb: (er?: null | MkdirError, made?: string) => void,\n): void => {\n if (parts.length === 0) {\n return cb(null, created)\n }\n const p = parts.shift()\n const part = normalizeWindowsPath(path.resolve(base + '/' + p))\n fs.mkdir(\n part,\n mode,\n onmkdir(part, parts, mode, unlink, cwd, created, cb),\n )\n}\n\nconst onmkdir =\n (\n part: string,\n parts: string[],\n mode: number,\n unlink: boolean,\n cwd: string,\n created: string | undefined,\n cb: (er?: null | MkdirError, made?: string) => void,\n ) =>\n (er?: null | NodeJS.ErrnoException) => {\n if (er) {\n fs.lstat(part, (statEr, st) => {\n if (statEr) {\n statEr.path = statEr.path && normalizeWindowsPath(statEr.path)\n cb(statEr)\n } else if (st.isDirectory()) {\n mkdir_(part, parts, mode, unlink, cwd, created, cb)\n } else if (unlink) {\n fs.unlink(part, er => {\n if (er) {\n return cb(er)\n }\n fs.mkdir(\n part,\n mode,\n onmkdir(part, parts, mode, unlink, cwd, created, cb),\n )\n })\n } else if (st.isSymbolicLink()) {\n return cb(new SymlinkError(part, part + '/' + parts.join('/')))\n } else {\n cb(er)\n }\n })\n } else {\n created = created || part\n mkdir_(part, parts, mode, unlink, cwd, created, cb)\n }\n }\n\nconst checkCwdSync = (dir: string) => {\n let ok = false\n let code\n try {\n ok = fs.statSync(dir).isDirectory()\n } catch (er) {\n code = (er as NodeJS.ErrnoException)?.code\n } finally {\n if (!ok) {\n throw new CwdError(dir, code ?? 'ENOTDIR')\n }\n }\n}\n\nexport const mkdirSync = (dir: string, opt: MkdirOptions) => {\n dir = normalizeWindowsPath(dir)\n // if there's any overlap between mask and mode,\n // then we'll need an explicit chmod\n /* c8 ignore next */\n const umask = opt.umask ?? 0o22\n const mode = opt.mode | 0o700\n const needChmod = (mode & umask) !== 0\n\n const uid = opt.uid\n const gid = opt.gid\n const doChown =\n typeof uid === 'number' &&\n typeof gid === 'number' &&\n (uid !== opt.processUid || gid !== opt.processGid)\n\n const preserve = opt.preserve\n const unlink = opt.unlink\n const cwd = normalizeWindowsPath(opt.cwd)\n\n const done = (created?: string | undefined) => {\n if (created && doChown) {\n chownrSync(created, uid, gid)\n }\n if (needChmod) {\n fs.chmodSync(dir, mode)\n }\n }\n\n if (dir === cwd) {\n checkCwdSync(cwd)\n return done()\n }\n\n if (preserve) {\n return done(fs.mkdirSync(dir, { mode, recursive: true }) ?? undefined)\n }\n\n const sub = normalizeWindowsPath(path.relative(cwd, dir))\n const parts = sub.split('/')\n let created\n for (\n let p = parts.shift(), part = cwd;\n p && (part += '/' + p);\n p = parts.shift()\n ) {\n part = normalizeWindowsPath(path.resolve(part))\n\n try {\n fs.mkdirSync(part, mode)\n created = created || part\n } catch {\n const st = fs.lstatSync(part)\n if (st.isDirectory()) {\n continue\n } else if (unlink) {\n fs.unlinkSync(part)\n fs.mkdirSync(part, mode)\n created = created || part\n continue\n } else if (st.isSymbolicLink()) {\n return new SymlinkError(part, part + '/' + parts.join('/'))\n }\n }\n }\n\n return done(created)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const modeFix: (mode: number, isDir: boolean, portable: boolean) => number;
2
+ //# sourceMappingURL=mode-fix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode-fix.d.ts","sourceRoot":"","sources":["../../src/mode-fix.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,GAClB,MAAM,MAAM,EACZ,OAAO,OAAO,EACd,UAAU,OAAO,WA0BlB,CAAA"}