appium-mac2-driver 4.3.5 → 4.3.6

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 (340) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/WebDriverAgentMac/WebDriverAgentLib/Utilities/FBXPath.m +48 -2
  3. package/WebDriverAgentMac/WebDriverAgentMac.xcodeproj/project.pbxproj +4 -0
  4. package/build/lib/wda-mac.d.ts.map +1 -1
  5. package/build/lib/wda-mac.js +4 -5
  6. package/build/lib/wda-mac.js.map +1 -1
  7. package/lib/wda-mac.ts +4 -5
  8. package/node_modules/@appium/logger/CHANGELOG.md +8 -0
  9. package/node_modules/@appium/logger/package.json +3 -3
  10. package/node_modules/@appium/strongbox/build/lib/index.d.ts.map +1 -1
  11. package/node_modules/@appium/strongbox/build/lib/index.js +6 -1
  12. package/node_modules/@appium/strongbox/build/lib/index.js.map +1 -1
  13. package/node_modules/@appium/strongbox/lib/index.ts +6 -1
  14. package/node_modules/@appium/strongbox/package.json +2 -2
  15. package/node_modules/@appium/support/build/lib/fs.d.ts.map +1 -1
  16. package/node_modules/@appium/support/build/lib/fs.js +7 -0
  17. package/node_modules/@appium/support/build/lib/fs.js.map +1 -1
  18. package/node_modules/@appium/support/build/lib/index.d.ts.map +1 -1
  19. package/node_modules/@appium/support/build/lib/net.d.ts.map +1 -1
  20. package/node_modules/@appium/support/build/lib/net.js +6 -2
  21. package/node_modules/@appium/support/build/lib/net.js.map +1 -1
  22. package/node_modules/@appium/support/build/lib/util.d.ts.map +1 -1
  23. package/node_modules/@appium/support/build/lib/util.js +10 -4
  24. package/node_modules/@appium/support/build/lib/util.js.map +1 -1
  25. package/node_modules/@appium/support/build/lib/zip.d.ts.map +1 -1
  26. package/node_modules/@appium/support/build/lib/zip.js +2 -7
  27. package/node_modules/@appium/support/build/lib/zip.js.map +1 -1
  28. package/node_modules/@appium/support/lib/fs.ts +8 -1
  29. package/node_modules/@appium/support/lib/net.ts +7 -2
  30. package/node_modules/@appium/support/lib/util.ts +9 -3
  31. package/node_modules/@appium/support/lib/zip.ts +3 -9
  32. package/node_modules/@appium/support/package.json +9 -9
  33. package/node_modules/@appium/types/package.json +4 -4
  34. package/node_modules/@img/sharp-darwin-arm64/index.cjs +1 -1
  35. package/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64-0.35.5.node +0 -0
  36. package/node_modules/@img/sharp-darwin-arm64/package.json +2 -2
  37. package/node_modules/@img/sharp-libvips-darwin-arm64/README.md +1 -1
  38. package/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +2 -2
  39. package/node_modules/@img/sharp-libvips-darwin-arm64/lib/{libvips-cpp.8.18.6.dylib → libvips-cpp.8.18.7.dylib} +0 -0
  40. package/node_modules/@img/sharp-libvips-darwin-arm64/package.json +2 -2
  41. package/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +11 -11
  42. package/node_modules/appium-xcode/CHANGELOG.md +28 -0
  43. package/node_modules/appium-xcode/README.md +1 -1
  44. package/node_modules/appium-xcode/package.json +14 -18
  45. package/node_modules/b4a/browser.js +5 -0
  46. package/node_modules/b4a/index.d.ts +144 -0
  47. package/node_modules/b4a/index.js +5 -0
  48. package/node_modules/b4a/package.json +4 -1
  49. package/node_modules/b4a/runtime.d.ts +14 -0
  50. package/node_modules/bare-fs/binding.c +53 -24
  51. package/node_modules/bare-fs/index.d.ts +12 -10
  52. package/node_modules/bare-fs/index.js +13 -4
  53. package/node_modules/bare-fs/package.json +2 -1
  54. package/node_modules/bare-fs/prebuilds/android-arm/bare-fs.bare +0 -0
  55. package/node_modules/bare-fs/prebuilds/android-arm64/bare-fs.bare +0 -0
  56. package/node_modules/bare-fs/prebuilds/android-ia32/bare-fs.bare +0 -0
  57. package/node_modules/bare-fs/prebuilds/android-x64/bare-fs.bare +0 -0
  58. package/node_modules/bare-fs/prebuilds/darwin-arm64/bare-fs.bare +0 -0
  59. package/node_modules/bare-fs/prebuilds/darwin-x64/bare-fs.bare +0 -0
  60. package/node_modules/bare-fs/prebuilds/ios-arm64/bare-fs.bare +0 -0
  61. package/node_modules/bare-fs/prebuilds/ios-arm64-simulator/bare-fs.bare +0 -0
  62. package/node_modules/bare-fs/prebuilds/ios-x64-simulator/bare-fs.bare +0 -0
  63. package/node_modules/bare-fs/prebuilds/linux-arm64/bare-fs.bare +0 -0
  64. package/node_modules/bare-fs/prebuilds/linux-x64/bare-fs.bare +0 -0
  65. package/node_modules/bare-fs/prebuilds/win32-arm64/bare-fs.bare +0 -0
  66. package/node_modules/bare-fs/prebuilds/win32-x64/bare-fs.bare +0 -0
  67. package/node_modules/bplist-creator/README.md +26 -6
  68. package/node_modules/bplist-creator/dist/index.cjs +508 -0
  69. package/node_modules/bplist-creator/dist/index.cjs.map +7 -0
  70. package/node_modules/bplist-creator/dist/index.d.cts +12 -0
  71. package/node_modules/bplist-creator/dist/index.d.ts +12 -0
  72. package/node_modules/bplist-creator/dist/index.mjs +472 -0
  73. package/node_modules/bplist-creator/dist/index.mjs.map +7 -0
  74. package/node_modules/bplist-creator/package.json +43 -9
  75. package/node_modules/bplist-parser/README.md +37 -3
  76. package/node_modules/bplist-parser/dist/index.cjs +385 -0
  77. package/node_modules/bplist-parser/dist/index.cjs.map +7 -0
  78. package/node_modules/bplist-parser/dist/index.d.cts +13 -0
  79. package/node_modules/bplist-parser/dist/index.d.ts +13 -0
  80. package/node_modules/bplist-parser/{bplistParser.js → dist/index.mjs} +141 -171
  81. package/node_modules/bplist-parser/dist/index.mjs.map +7 -0
  82. package/node_modules/bplist-parser/package.json +39 -12
  83. package/node_modules/brace-expansion/dist/commonjs/index.d.ts +4 -0
  84. package/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +1 -1
  85. package/node_modules/brace-expansion/dist/commonjs/index.js +69 -25
  86. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  87. package/node_modules/brace-expansion/dist/esm/index.d.ts +4 -0
  88. package/node_modules/brace-expansion/dist/esm/index.d.ts.map +1 -1
  89. package/node_modules/brace-expansion/dist/esm/index.js +68 -24
  90. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  91. package/node_modules/brace-expansion/package.json +2 -1
  92. package/node_modules/follow-redirects/index.js +10 -1
  93. package/node_modules/follow-redirects/package.json +1 -1
  94. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel-react-native.d.ts.map +1 -0
  95. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel-react-native.js.map +1 -0
  96. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel.d.ts +5 -0
  97. package/node_modules/lru-cache/dist/commonjs/react-native/diagnostics-channel.js +7 -0
  98. package/node_modules/lru-cache/dist/commonjs/react-native/index.d.ts +1400 -0
  99. package/node_modules/lru-cache/dist/commonjs/react-native/index.d.ts.map +1 -0
  100. package/node_modules/lru-cache/dist/commonjs/react-native/index.js +1733 -0
  101. package/node_modules/lru-cache/dist/commonjs/react-native/index.js.map +1 -0
  102. package/node_modules/lru-cache/dist/commonjs/react-native/perf.d.ts +12 -0
  103. package/node_modules/lru-cache/dist/commonjs/react-native/perf.d.ts.map +1 -0
  104. package/node_modules/lru-cache/dist/commonjs/react-native/perf.js +10 -0
  105. package/node_modules/lru-cache/dist/commonjs/react-native/perf.js.map +1 -0
  106. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel-react-native.d.ts.map +1 -0
  107. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel-react-native.js.map +1 -0
  108. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel.d.ts +5 -0
  109. package/node_modules/lru-cache/dist/esm/react-native/diagnostics-channel.js +4 -0
  110. package/node_modules/lru-cache/dist/esm/react-native/index.d.ts +1400 -0
  111. package/node_modules/lru-cache/dist/esm/react-native/index.d.ts.map +1 -0
  112. package/node_modules/lru-cache/dist/esm/react-native/index.js +1729 -0
  113. package/node_modules/lru-cache/dist/esm/react-native/index.js.map +1 -0
  114. package/node_modules/lru-cache/dist/esm/react-native/perf.d.ts +12 -0
  115. package/node_modules/lru-cache/dist/esm/react-native/perf.d.ts.map +1 -0
  116. package/node_modules/lru-cache/dist/esm/react-native/perf.js +7 -0
  117. package/node_modules/lru-cache/dist/esm/react-native/perf.js.map +1 -0
  118. package/node_modules/lru-cache/package.json +27 -1
  119. package/node_modules/p-limit/index.d.ts +2 -0
  120. package/node_modules/p-limit/index.js +17 -1
  121. package/node_modules/p-limit/package.json +1 -1
  122. package/node_modules/p-limit/readme.md +2 -0
  123. package/node_modules/sharp/dist/index.d.cts +2 -2
  124. package/node_modules/sharp/dist/index.d.mts +3 -3
  125. package/node_modules/sharp/dist/is.cjs +8 -2
  126. package/node_modules/sharp/dist/is.mjs +8 -2
  127. package/node_modules/sharp/dist/operation.cjs +2 -2
  128. package/node_modules/sharp/dist/operation.mjs +2 -2
  129. package/node_modules/sharp/dist/output.cjs +1 -0
  130. package/node_modules/sharp/dist/output.mjs +1 -0
  131. package/node_modules/sharp/dist/resize.cjs +14 -14
  132. package/node_modules/sharp/dist/resize.mjs +14 -14
  133. package/node_modules/sharp/dist/sharp.cjs +3 -3
  134. package/node_modules/sharp/dist/sharp.mjs +3 -3
  135. package/node_modules/sharp/lib/index.d.ts +2 -2
  136. package/node_modules/sharp/package.json +35 -35
  137. package/node_modules/sharp/src/binding.gyp +1 -1
  138. package/node_modules/sharp/src/common.cc +4 -4
  139. package/node_modules/sharp/src/common.h +2 -2
  140. package/node_modules/sharp/src/pipeline.cc +31 -6
  141. package/node_modules/sharp/src/utilities.cc +1 -1
  142. package/node_modules/spdx-license-ids/index.json +13 -0
  143. package/node_modules/spdx-license-ids/package.json +1 -1
  144. package/node_modules/stream-buffers/.codeclimate.yml +12 -0
  145. package/node_modules/stream-buffers/.eslintignore +1 -0
  146. package/node_modules/stream-buffers/.eslintrc +25 -0
  147. package/node_modules/stream-buffers/.github/workflows/codeql-analysis.yml +71 -0
  148. package/node_modules/stream-buffers/.github/workflows/node.js.yml +31 -0
  149. package/node_modules/stream-buffers/.mailmap +1 -0
  150. package/node_modules/stream-buffers/.nvmrc +1 -0
  151. package/node_modules/stream-buffers/README.md +65 -65
  152. package/node_modules/stream-buffers/lib/constants.js +8 -6
  153. package/node_modules/stream-buffers/lib/readable_streambuffer.js +114 -136
  154. package/node_modules/stream-buffers/lib/streambuffer.js +5 -3
  155. package/node_modules/stream-buffers/lib/writable_streambuffer.js +72 -97
  156. package/node_modules/stream-buffers/package.json +7 -5
  157. package/node_modules/type-fest/index.d.ts +7 -7
  158. package/node_modules/type-fest/package.json +2 -1
  159. package/node_modules/type-fest/readme.md +7 -16
  160. package/node_modules/type-fest/source/all-extend.d.ts +9 -7
  161. package/node_modules/type-fest/source/array-reverse.d.ts +13 -12
  162. package/node_modules/type-fest/source/array-tail.d.ts +3 -3
  163. package/node_modules/type-fest/source/delimiter-case.d.ts +1 -1
  164. package/node_modules/type-fest/source/get.d.ts +1 -1
  165. package/node_modules/type-fest/source/int-closed-range.d.ts +4 -1
  166. package/node_modules/type-fest/source/int-range.d.ts +56 -9
  167. package/node_modules/type-fest/source/internal/array.d.ts +14 -13
  168. package/node_modules/type-fest/source/internal/numeric.d.ts +0 -38
  169. package/node_modules/type-fest/source/internal/object.d.ts +30 -1
  170. package/node_modules/type-fest/source/is-boolean-literal.d.ts +39 -0
  171. package/node_modules/type-fest/source/is-literal.d.ts +43 -269
  172. package/node_modules/type-fest/source/is-numeric-literal.d.ts +50 -0
  173. package/node_modules/type-fest/source/is-string-literal.d.ts +72 -0
  174. package/node_modules/type-fest/source/is-symbol-literal.d.ts +39 -0
  175. package/node_modules/type-fest/source/is-tuple.d.ts +3 -3
  176. package/node_modules/type-fest/source/jsonify.d.ts +1 -5
  177. package/node_modules/type-fest/source/merge-deep.d.ts +3 -3
  178. package/node_modules/type-fest/source/remove-prefix.d.ts +1 -1
  179. package/node_modules/type-fest/source/remove-suffix.d.ts +1 -1
  180. package/node_modules/type-fest/source/rename-keys.d.ts +163 -0
  181. package/node_modules/type-fest/source/set-required.d.ts +10 -9
  182. package/node_modules/type-fest/source/shared-union-fields-deep.d.ts +6 -4
  183. package/node_modules/type-fest/source/some-extend.d.ts +9 -7
  184. package/node_modules/type-fest/source/split-on-rest-element.d.ts +14 -13
  185. package/node_modules/type-fest/source/split.d.ts +22 -11
  186. package/node_modules/type-fest/source/string-repeat.d.ts +1 -1
  187. package/node_modules/type-fest/source/string-to-array.d.ts +1 -1
  188. package/node_modules/type-fest/source/tsconfig-json.d.ts +1 -1
  189. package/node_modules/type-fest/source/typed-array.d.ts +6 -0
  190. package/node_modules/type-fest/source/union-max.d.ts +56 -0
  191. package/node_modules/type-fest/source/writable.d.ts +2 -2
  192. package/package.json +3 -3
  193. package/node_modules/@appium/support/node_modules/asyncbox/LICENSE +0 -203
  194. package/node_modules/@appium/support/node_modules/asyncbox/README.md +0 -215
  195. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts +0 -103
  196. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.d.ts.map +0 -1
  197. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.js +0 -301
  198. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/asyncbox.js.map +0 -1
  199. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.d.ts +0 -84
  200. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.d.ts.map +0 -1
  201. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.js +0 -3
  202. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/lib/types.js.map +0 -1
  203. package/node_modules/@appium/support/node_modules/asyncbox/build/cjs/package.json +0 -3
  204. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts +0 -103
  205. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.d.ts.map +0 -1
  206. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.js +0 -288
  207. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/asyncbox.js.map +0 -1
  208. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.d.ts +0 -84
  209. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.d.ts.map +0 -1
  210. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.js +0 -2
  211. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/lib/types.js.map +0 -1
  212. package/node_modules/@appium/support/node_modules/asyncbox/build/esm/package.json +0 -3
  213. package/node_modules/@appium/support/node_modules/asyncbox/lib/asyncbox.ts +0 -365
  214. package/node_modules/@appium/support/node_modules/asyncbox/lib/types.ts +0 -88
  215. package/node_modules/@appium/support/node_modules/asyncbox/package.json +0 -74
  216. package/node_modules/@appium/support/node_modules/axios/CHANGELOG.md +0 -1872
  217. package/node_modules/@appium/support/node_modules/axios/LICENSE +0 -7
  218. package/node_modules/@appium/support/node_modules/axios/MIGRATION_GUIDE.md +0 -877
  219. package/node_modules/@appium/support/node_modules/axios/README.md +0 -2623
  220. package/node_modules/@appium/support/node_modules/axios/dist/axios.js +0 -5509
  221. package/node_modules/@appium/support/node_modules/axios/dist/axios.min.js +0 -5
  222. package/node_modules/@appium/support/node_modules/axios/dist/axios.min.js.map +0 -1
  223. package/node_modules/@appium/support/node_modules/axios/dist/browser/axios.cjs +0 -5469
  224. package/node_modules/@appium/support/node_modules/axios/dist/esm/axios.js +0 -5490
  225. package/node_modules/@appium/support/node_modules/axios/dist/esm/axios.min.js +0 -3
  226. package/node_modules/@appium/support/node_modules/axios/dist/esm/axios.min.js.map +0 -1
  227. package/node_modules/@appium/support/node_modules/axios/dist/node/axios.cjs +0 -6356
  228. package/node_modules/@appium/support/node_modules/axios/index.d.cts +0 -762
  229. package/node_modules/@appium/support/node_modules/axios/index.d.ts +0 -783
  230. package/node_modules/@appium/support/node_modules/axios/index.js +0 -45
  231. package/node_modules/@appium/support/node_modules/axios/lib/adapters/README.md +0 -36
  232. package/node_modules/@appium/support/node_modules/axios/lib/adapters/adapters.js +0 -132
  233. package/node_modules/@appium/support/node_modules/axios/lib/adapters/fetch.js +0 -643
  234. package/node_modules/@appium/support/node_modules/axios/lib/adapters/http.js +0 -1406
  235. package/node_modules/@appium/support/node_modules/axios/lib/adapters/xhr.js +0 -228
  236. package/node_modules/@appium/support/node_modules/axios/lib/axios.js +0 -89
  237. package/node_modules/@appium/support/node_modules/axios/lib/cancel/CancelToken.js +0 -135
  238. package/node_modules/@appium/support/node_modules/axios/lib/cancel/CanceledError.js +0 -22
  239. package/node_modules/@appium/support/node_modules/axios/lib/cancel/isCancel.js +0 -5
  240. package/node_modules/@appium/support/node_modules/axios/lib/core/Axios.js +0 -301
  241. package/node_modules/@appium/support/node_modules/axios/lib/core/AxiosError.js +0 -219
  242. package/node_modules/@appium/support/node_modules/axios/lib/core/AxiosHeaders.js +0 -474
  243. package/node_modules/@appium/support/node_modules/axios/lib/core/InterceptorManager.js +0 -72
  244. package/node_modules/@appium/support/node_modules/axios/lib/core/README.md +0 -8
  245. package/node_modules/@appium/support/node_modules/axios/lib/core/buildFullPath.js +0 -88
  246. package/node_modules/@appium/support/node_modules/axios/lib/core/dispatchRequest.js +0 -89
  247. package/node_modules/@appium/support/node_modules/axios/lib/core/mergeConfig.js +0 -174
  248. package/node_modules/@appium/support/node_modules/axios/lib/core/setFormDataHeaders.js +0 -27
  249. package/node_modules/@appium/support/node_modules/axios/lib/core/settle.js +0 -27
  250. package/node_modules/@appium/support/node_modules/axios/lib/core/transformData.js +0 -28
  251. package/node_modules/@appium/support/node_modules/axios/lib/defaults/index.js +0 -177
  252. package/node_modules/@appium/support/node_modules/axios/lib/defaults/transitional.js +0 -10
  253. package/node_modules/@appium/support/node_modules/axios/lib/env/README.md +0 -3
  254. package/node_modules/@appium/support/node_modules/axios/lib/env/classes/FormData.js +0 -2
  255. package/node_modules/@appium/support/node_modules/axios/lib/env/data.js +0 -1
  256. package/node_modules/@appium/support/node_modules/axios/lib/helpers/AxiosTransformStream.js +0 -156
  257. package/node_modules/@appium/support/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +0 -59
  258. package/node_modules/@appium/support/node_modules/axios/lib/helpers/Http2Sessions.js +0 -119
  259. package/node_modules/@appium/support/node_modules/axios/lib/helpers/HttpStatusCode.js +0 -78
  260. package/node_modules/@appium/support/node_modules/axios/lib/helpers/README.md +0 -7
  261. package/node_modules/@appium/support/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +0 -29
  262. package/node_modules/@appium/support/node_modules/axios/lib/helpers/bind.js +0 -14
  263. package/node_modules/@appium/support/node_modules/axios/lib/helpers/buildURL.js +0 -69
  264. package/node_modules/@appium/support/node_modules/axios/lib/helpers/callbackify.js +0 -18
  265. package/node_modules/@appium/support/node_modules/axios/lib/helpers/combineURLs.js +0 -23
  266. package/node_modules/@appium/support/node_modules/axios/lib/helpers/composeSignals.js +0 -68
  267. package/node_modules/@appium/support/node_modules/axios/lib/helpers/cookies.js +0 -64
  268. package/node_modules/@appium/support/node_modules/axios/lib/helpers/deprecatedMethod.js +0 -31
  269. package/node_modules/@appium/support/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +0 -166
  270. package/node_modules/@appium/support/node_modules/axios/lib/helpers/formDataToJSON.js +0 -125
  271. package/node_modules/@appium/support/node_modules/axios/lib/helpers/formDataToStream.js +0 -119
  272. package/node_modules/@appium/support/node_modules/axios/lib/helpers/fromDataURI.js +0 -68
  273. package/node_modules/@appium/support/node_modules/axios/lib/helpers/isAbsoluteURL.js +0 -19
  274. package/node_modules/@appium/support/node_modules/axios/lib/helpers/isAxiosError.js +0 -14
  275. package/node_modules/@appium/support/node_modules/axios/lib/helpers/isURLSameOrigin.js +0 -16
  276. package/node_modules/@appium/support/node_modules/axios/lib/helpers/null.js +0 -2
  277. package/node_modules/@appium/support/node_modules/axios/lib/helpers/parseHeaders.js +0 -71
  278. package/node_modules/@appium/support/node_modules/axios/lib/helpers/parseProtocol.js +0 -6
  279. package/node_modules/@appium/support/node_modules/axios/lib/helpers/progressEventReducer.js +0 -54
  280. package/node_modules/@appium/support/node_modules/axios/lib/helpers/readBlob.js +0 -15
  281. package/node_modules/@appium/support/node_modules/axios/lib/helpers/resolveConfig.js +0 -105
  282. package/node_modules/@appium/support/node_modules/axios/lib/helpers/sanitizeHeaderValue.js +0 -60
  283. package/node_modules/@appium/support/node_modules/axios/lib/helpers/shouldBypassProxy.js +0 -329
  284. package/node_modules/@appium/support/node_modules/axios/lib/helpers/speedometer.js +0 -55
  285. package/node_modules/@appium/support/node_modules/axios/lib/helpers/spread.js +0 -28
  286. package/node_modules/@appium/support/node_modules/axios/lib/helpers/throttle.js +0 -44
  287. package/node_modules/@appium/support/node_modules/axios/lib/helpers/toFormData.js +0 -286
  288. package/node_modules/@appium/support/node_modules/axios/lib/helpers/toURLEncodedForm.js +0 -19
  289. package/node_modules/@appium/support/node_modules/axios/lib/helpers/trackStream.js +0 -89
  290. package/node_modules/@appium/support/node_modules/axios/lib/helpers/validator.js +0 -112
  291. package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/classes/Blob.js +0 -3
  292. package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/classes/FormData.js +0 -3
  293. package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js +0 -4
  294. package/node_modules/@appium/support/node_modules/axios/lib/platform/browser/index.js +0 -13
  295. package/node_modules/@appium/support/node_modules/axios/lib/platform/common/utils.js +0 -52
  296. package/node_modules/@appium/support/node_modules/axios/lib/platform/index.js +0 -7
  297. package/node_modules/@appium/support/node_modules/axios/lib/platform/node/classes/Buffer.js +0 -11
  298. package/node_modules/@appium/support/node_modules/axios/lib/platform/node/classes/FormData.js +0 -3
  299. package/node_modules/@appium/support/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +0 -4
  300. package/node_modules/@appium/support/node_modules/axios/lib/platform/node/index.js +0 -37
  301. package/node_modules/@appium/support/node_modules/axios/lib/utils.js +0 -1029
  302. package/node_modules/@appium/support/node_modules/axios/package.json +0 -203
  303. package/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64-0.35.4.node +0 -0
  304. package/node_modules/big-integer/BigInteger.d.ts +0 -2393
  305. package/node_modules/big-integer/BigInteger.js +0 -1453
  306. package/node_modules/big-integer/BigInteger.min.js +0 -1
  307. package/node_modules/big-integer/LICENSE +0 -24
  308. package/node_modules/big-integer/README.md +0 -589
  309. package/node_modules/big-integer/bower.json +0 -29
  310. package/node_modules/big-integer/package.json +0 -48
  311. package/node_modules/big-integer/tsconfig.json +0 -24
  312. package/node_modules/bplist-creator/bplistCreator.d.ts +0 -8
  313. package/node_modules/bplist-creator/bplistCreator.js +0 -460
  314. package/node_modules/bplist-creator/test/airplay.bplist +0 -0
  315. package/node_modules/bplist-creator/test/binaryData.bplist +0 -0
  316. package/node_modules/bplist-creator/test/creatorTest.js +0 -211
  317. package/node_modules/bplist-creator/test/iTunes-small.bplist +0 -0
  318. package/node_modules/bplist-creator/test/integers.bplist +0 -0
  319. package/node_modules/bplist-creator/test/sample1.bplist +0 -0
  320. package/node_modules/bplist-creator/test/sample2.bplist +0 -0
  321. package/node_modules/bplist-creator/test/uid.bplist +0 -0
  322. package/node_modules/bplist-creator/test/utf16.bplist +0 -0
  323. package/node_modules/bplist-parser/.editorconfig +0 -12
  324. package/node_modules/bplist-parser/.eslintignore +0 -1
  325. package/node_modules/bplist-parser/.eslintrc.js +0 -296
  326. package/node_modules/bplist-parser/bplistParser.d.ts +0 -8
  327. package/node_modules/stream-buffers/.travis.yml +0 -28
  328. package/node_modules/stream-buffers/coverage/coverage.json +0 -1
  329. package/node_modules/stream-buffers/coverage/lcov-report/base.css +0 -182
  330. package/node_modules/stream-buffers/coverage/lcov-report/index.html +0 -73
  331. package/node_modules/stream-buffers/coverage/lcov-report/lib/constants.js.html +0 -63
  332. package/node_modules/stream-buffers/coverage/lcov-report/lib/index.html +0 -112
  333. package/node_modules/stream-buffers/coverage/lcov-report/lib/readable_streambuffer.js.html +0 -453
  334. package/node_modules/stream-buffers/coverage/lcov-report/lib/streambuffer.js.html +0 -54
  335. package/node_modules/stream-buffers/coverage/lcov-report/lib/writable_streambuffer.js.html +0 -336
  336. package/node_modules/stream-buffers/coverage/lcov-report/prettify.css +0 -1
  337. package/node_modules/stream-buffers/coverage/lcov-report/prettify.js +0 -1
  338. package/node_modules/stream-buffers/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  339. package/node_modules/stream-buffers/coverage/lcov-report/sorter.js +0 -156
  340. package/node_modules/stream-buffers/coverage/lcov.info +0 -305
@@ -7,8 +7,9 @@ import type {IsAny} from '../is-any.d.ts';
7
7
  import type {If} from '../if.d.ts';
8
8
  import type {IsNever} from '../is-never.d.ts';
9
9
  import type {StringToNumber} from '../string-to-number.d.ts';
10
+ import type {Primitive} from '../primitive.d.ts';
10
11
  import type {FilterDefinedKeys, FilterOptionalKeys} from './keys.d.ts';
11
- import type {MapsSetsOrArrays, NonRecursiveType} from './type.d.ts';
12
+ import type {IfNotAnyOrNever, MapsSetsOrArrays, NonRecursiveType} from './type.d.ts';
12
13
  import type {ToString} from './string.d.ts';
13
14
 
14
15
  /**
@@ -274,6 +275,34 @@ export type CollapseLiterals<T> = {} extends T
274
275
  ? U
275
276
  : T;
276
277
 
278
+ /**
279
+ Returns the base type of a branded type.
280
+
281
+ @example
282
+ ```
283
+ type Brand = {readonly __brand: unique symbol};
284
+
285
+ type A = UnwrapBrand<string & Brand>;
286
+ //=> string
287
+
288
+ type B = UnwrapBrand<number & Brand>;
289
+ //=> number
290
+
291
+ type C = UnwrapBrand<PropertyKey & Brand>;
292
+ //=> PropertyKey
293
+
294
+ type D = UnwrapBrand<(1 | 200n | 'foo' | 'bar') & Brand>;
295
+ //=> 1 | 200n | 'foo' | 'bar'
296
+ ```
297
+ */
298
+ export type UnwrapBrand<T> = IfNotAnyOrNever<T, {ifNot: _UnwrapBrand<T, Primitive>}>;
299
+
300
+ type _UnwrapBrand<T, Base> = T extends Primitive
301
+ ? T extends infer U & Pick<T, Exclude<keyof T, KeysOfUnion<Base>>>
302
+ ? U
303
+ : T
304
+ : T;
305
+
277
306
  /**
278
307
  Normalize keys by including string and number representations wherever applicable.
279
308
 
@@ -0,0 +1,39 @@
1
+ import type {CollapseLiterals, UnwrapBrand} from './internal/object.d.ts';
2
+ import type {IfNotAnyOrNever} from './internal/type.d.ts';
3
+
4
+ /**
5
+ Returns a boolean for whether the given type is a `true` or `false` [literal type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types).
6
+
7
+ @example
8
+ ```
9
+ import type {IsBooleanLiteral} from 'type-fest';
10
+
11
+ type A = IsBooleanLiteral<true>;
12
+ //=> true
13
+
14
+ type B = IsBooleanLiteral<false>;
15
+ //=> true
16
+
17
+ type C = IsBooleanLiteral<boolean>;
18
+ //=> false
19
+
20
+ type D = IsBooleanLiteral<true | false>;
21
+ //=> false
22
+ ```
23
+
24
+ @category Type Guard
25
+ @category Utilities
26
+ */
27
+ export type IsBooleanLiteral<T> = IfNotAnyOrNever<T, {
28
+ ifNot: _IsBooleanLiteral<CollapseLiterals<UnwrapBrand<T>>>;
29
+ ifAny: false;
30
+ ifNever: false;
31
+ }>;
32
+
33
+ type _IsBooleanLiteral<T> = boolean extends T
34
+ ? false
35
+ : T extends boolean
36
+ ? true
37
+ : false;
38
+
39
+ export {};
@@ -1,272 +1,14 @@
1
- import type {Primitive} from './primitive.d.ts';
2
- import type {_Numeric} from './numeric.d.ts';
3
- import type {CollapseLiterals, IfNotAnyOrNever, IsNotFalse, IsPrimitive} from './internal/index.d.ts';
1
+ import type {IsStringLiteral} from './is-string-literal.d.ts';
2
+ import type {IsNumericLiteral} from './is-numeric-literal.d.ts';
3
+ import type {IsBooleanLiteral} from './is-boolean-literal.d.ts';
4
+ import type {IsSymbolLiteral} from './is-symbol-literal.d.ts';
4
5
  import type {IsNever} from './is-never.d.ts';
5
- import type {TagContainer, UnwrapTagged} from './tagged.d.ts';
6
-
7
- /**
8
- Returns a boolean for whether the given type `T` is the specified `LiteralType`.
9
-
10
- @link https://stackoverflow.com/a/52806744/10292952
11
-
12
- @example
13
- ```
14
- type A = LiteralCheck<1, number>;
15
- //=> true
16
-
17
- type B = LiteralCheck<number, number>;
18
- //=> false
19
-
20
- type C = LiteralCheck<1, string>;
21
- //=> false
22
- ```
23
- */
24
- type LiteralCheck<T, LiteralType extends Primitive> = (
25
- IsNever<T> extends false // Must be wider than `never`
26
- ? [T] extends [LiteralType & infer U] // Remove any branding
27
- ? [U] extends [LiteralType] // Must be narrower than `LiteralType`
28
- ? [LiteralType] extends [U] // Cannot be wider than `LiteralType`
29
- ? false
30
- : true
31
- : false
32
- : false
33
- : false
34
- );
35
-
36
- /**
37
- Returns a boolean for whether the given type `T` is one of the specified literal types in `LiteralUnionType`.
38
-
39
- @example
40
- ```
41
- type A = LiteralChecks<1, Numeric>;
42
- //=> true
43
-
44
- type B = LiteralChecks<1n, Numeric>;
45
- //=> true
46
-
47
- type C = LiteralChecks<bigint, Numeric>;
48
- //=> false
49
- ```
50
- */
51
- type LiteralChecks<T, LiteralUnionType> = (
52
- // Conditional type to force union distribution.
53
- // If `T` is none of the literal types in the union `LiteralUnionType`, then `LiteralCheck<T, LiteralType>` will evaluate to `false` for the whole union.
54
- // If `T` is one of the literal types in the union, it will evaluate to `boolean` (i.e. `true | false`)
55
- IsNotFalse<LiteralUnionType extends Primitive
56
- ? LiteralCheck<T, LiteralUnionType>
57
- : never
58
- >
59
- );
60
-
61
- /**
62
- Returns a boolean for whether the given type is a `string` [literal type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types).
63
-
64
- Useful for:
65
- - providing strongly-typed string manipulation functions
66
- - constraining strings to be a string literal
67
- - type utilities, such as when constructing parsers and ASTs
68
-
69
- The implementation of this type is inspired by the trick mentioned in this [StackOverflow answer](https://stackoverflow.com/a/68261113/420747).
70
-
71
- @example
72
- ```
73
- import type {IsStringLiteral} from 'type-fest';
74
-
75
- type CapitalizedString<T extends string> = IsStringLiteral<T> extends true ? Capitalize<T> : string;
76
-
77
- // https://github.com/yankeeinlondon/native-dash/blob/master/src/capitalize.ts
78
- function capitalize<T extends Readonly<string>>(input: T): CapitalizedString<T> {
79
- return (input.slice(0, 1).toUpperCase() + input.slice(1)) as CapitalizedString<T>;
80
- }
81
-
82
- const output = capitalize('hello, world!');
83
- //=> 'Hello, world!'
84
- ```
85
-
86
- @example
87
- ```
88
- // String types with infinite set of possible values return `false`.
89
-
90
- import type {IsStringLiteral} from 'type-fest';
91
-
92
- type AllUppercaseStrings = IsStringLiteral<Uppercase<string>>;
93
- //=> false
94
-
95
- type StringsStartingWithOn = IsStringLiteral<`on${string}`>;
96
- //=> false
97
-
98
- // This behaviour is particularly useful in string manipulation utilities, as infinite string types often require separate handling.
99
-
100
- type Length<S extends string, Counter extends never[] = []> =
101
- IsStringLiteral<S> extends false
102
- ? number // return `number` for infinite string types
103
- : S extends `${string}${infer Tail}`
104
- ? Length<Tail, [...Counter, never]>
105
- : Counter['length'];
106
-
107
- type L1 = Length<Lowercase<string>>;
108
- //=> number
109
-
110
- type L2 = Length<`${number}`>;
111
- //=> number
112
- ```
113
-
114
- @category Type Guard
115
- @category Utilities
116
- */
117
- export type IsStringLiteral<S> = IfNotAnyOrNever<S, {
118
- ifNot: _IsStringLiteral<CollapseLiterals<S extends TagContainer<any> ? UnwrapTagged<S> : S>>;
119
- ifAny: false;
120
- ifNever: false;
121
- }>;
122
-
123
- export type _IsStringLiteral<S> =
124
- // If `T` is an infinite string type (e.g., `on${string}`), `Record<T, never>` produces an index signature,
125
- // and since `{}` extends index signatures, the result becomes `false`.
126
- S extends string
127
- ? {} extends Record<S, never>
128
- ? false
129
- : true
130
- : false;
131
-
132
- /**
133
- Returns a boolean for whether the given type is a `number` or `bigint` [literal type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types).
134
-
135
- Useful for:
136
- - providing strongly-typed functions when given literal arguments
137
- - type utilities, such as when constructing parsers and ASTs
138
-
139
- @example
140
- ```
141
- import type {IsNumericLiteral, IsStringLiteral} from 'type-fest';
142
-
143
- // https://github.com/inocan-group/inferred-types/blob/master/modules/types/src/boolean-logic/operators/EndsWith.ts
144
- type EndsWith<TValue, TEndsWith extends string> =
145
- TValue extends string
146
- ? IsStringLiteral<TEndsWith> extends true
147
- ? IsStringLiteral<TValue> extends true
148
- ? TValue extends `${string}${TEndsWith}`
149
- ? true
150
- : false
151
- : boolean
152
- : boolean
153
- : TValue extends number
154
- ? IsNumericLiteral<TValue> extends true
155
- ? EndsWith<`${TValue}`, TEndsWith>
156
- : false
157
- : false;
158
-
159
- function endsWith<Input extends string | number, End extends string>(input: Input, end: End) {
160
- return `${input}`.endsWith(end) as EndsWith<Input, End>;
161
- }
162
-
163
- endsWith('abc', 'c');
164
- //=> true
165
-
166
- endsWith(123_456, '456');
167
- //=> true
168
-
169
- const end = '123' as string;
170
-
171
- endsWith('abc123', end);
172
- //=> boolean
173
- ```
174
-
175
- @category Type Guard
176
- @category Utilities
177
- */
178
- export type IsNumericLiteral<T> = LiteralChecks<T, _Numeric>;
179
-
180
- /**
181
- Returns a boolean for whether the given type is a `true` or `false` [literal type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types).
182
-
183
- Useful for:
184
- - providing strongly-typed functions when given literal arguments
185
- - type utilities, such as when constructing parsers and ASTs
186
-
187
- @example
188
- ```
189
- import type {IsBooleanLiteral} from 'type-fest';
190
-
191
- const id = 123;
192
-
193
- type GetId<AsString extends boolean> =
194
- IsBooleanLiteral<AsString> extends true
195
- ? AsString extends true
196
- ? `${typeof id}`
197
- : typeof id
198
- : number | string;
199
-
200
- function getId<AsString extends boolean = false>(options?: {asString: AsString}) {
201
- return (options?.asString ? `${id}` : id) as GetId<AsString>;
202
- }
203
-
204
- const numberId = getId();
205
- //=> 123
206
-
207
- const stringId = getId({asString: true});
208
- //=> '123'
209
-
210
- declare const runtimeBoolean: boolean;
211
- const eitherId = getId({asString: runtimeBoolean});
212
- //=> string | number
213
- ```
214
-
215
- @category Type Guard
216
- @category Utilities
217
- */
218
- export type IsBooleanLiteral<T> = LiteralCheck<T, boolean>;
219
-
220
- /**
221
- Returns a boolean for whether the given type is a `symbol` [literal type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types).
222
-
223
- Useful for:
224
- - providing strongly-typed functions when given literal arguments
225
- - type utilities, such as when constructing parsers and ASTs
226
-
227
- @example
228
- ```
229
- import type {IsSymbolLiteral} from 'type-fest';
230
-
231
- type Get<Object_ extends Record<symbol, number>, Key extends keyof Object_> =
232
- IsSymbolLiteral<Key> extends true
233
- ? Object_[Key]
234
- : number;
235
-
236
- function get<Object_ extends Record<symbol, number>, Key extends keyof Object_>(o: Object_, key: Key) {
237
- return o[key] as Get<Object_, Key>;
238
- }
239
-
240
- const symbolLiteral = Symbol('literal');
241
- let symbolValue = Symbol('value1');
242
- symbolValue = Symbol('value2');
243
-
244
- get({[symbolLiteral]: 1} as const, symbolLiteral);
245
- //=> 1
246
-
247
- get({[symbolValue]: 1} as const, symbolValue);
248
- //=> number
249
- ```
250
-
251
- @category Type Guard
252
- @category Utilities
253
- */
254
- export type IsSymbolLiteral<T> = LiteralCheck<T, symbol>;
255
-
256
- /** Helper type for `IsLiteral`. */
257
- type IsLiteralUnion<T> =
258
- | IsStringLiteral<T>
259
- | IsNumericLiteral<T>
260
- | IsBooleanLiteral<T>
261
- | IsSymbolLiteral<T>;
6
+ import type {IfNotAnyOrNever} from './internal/type.d.ts';
7
+ import type {CollapseLiterals, UnwrapBrand} from './internal/object.d.ts';
262
8
 
263
9
  /**
264
10
  Returns a boolean for whether the given type is a [literal type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types).
265
11
 
266
- Useful for:
267
- - providing strongly-typed functions when given literal arguments
268
- - type utilities, such as when constructing parsers and ASTs
269
-
270
12
  @example
271
13
  ```
272
14
  import type {IsLiteral} from 'type-fest';
@@ -302,16 +44,48 @@ type I = IsLiteral<symbol>;
302
44
  type J = IsLiteral<true>;
303
45
  //=> true
304
46
 
305
- type K = IsLiteral<boolean>;
47
+ type K = IsLiteral<false>;
48
+ //=> true
49
+
50
+ type L = IsLiteral<boolean>;
306
51
  //=> false
52
+
53
+ type M = IsLiteral<1 | 'foo' | false>;
54
+ //=> true
55
+
56
+ type N = IsLiteral<string | number | symbol>;
57
+ //=> false
58
+
59
+ type O = IsLiteral<1000n | string | true>;
60
+ //=> boolean
307
61
  ```
308
62
 
309
63
  @category Type Guard
310
64
  @category Utilities
311
65
  */
312
- export type IsLiteral<T> =
313
- IsPrimitive<T> extends true
314
- ? IsNotFalse<IsLiteralUnion<T>>
315
- : false;
66
+ export type IsLiteral<T> = IfNotAnyOrNever<T, {
67
+ ifNot: _IsLiteral<CollapseLiterals<UnwrapBrand<T>>>;
68
+ ifAny: false;
69
+ ifNever: false;
70
+ }>;
71
+
72
+ type _IsLiteral<T> =
73
+ | (Extract<T, boolean> extends infer Bools
74
+ // We can't instantiate `IsBooleanLiteral` with `never`,
75
+ // because that will add an extraneous `false` to the result if there are no booleans.
76
+ ? IsNever<Bools> extends true
77
+ ? never
78
+ : IsBooleanLiteral<Bools>
79
+ : never)
80
+ | (IsLiteralNonBools<Exclude<T, boolean>>);
81
+
82
+ type IsLiteralNonBools<T> =
83
+ T extends number | bigint
84
+ ? IsNumericLiteral<T>
85
+ : T extends string
86
+ ? IsStringLiteral<T>
87
+ : T extends symbol
88
+ ? IsSymbolLiteral<T>
89
+ : false;
316
90
 
317
91
  export {};
@@ -0,0 +1,50 @@
1
+ import type {CollapseLiterals, UnwrapBrand} from './internal/object.d.ts';
2
+ import type {IfNotAnyOrNever} from './internal/type.d.ts';
3
+
4
+ /**
5
+ Returns a boolean for whether the given type is a `number` or `bigint` [literal type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types).
6
+
7
+ @example
8
+ ```
9
+ import type {IsNumericLiteral} from 'type-fest';
10
+
11
+ type A = IsNumericLiteral<0>;
12
+ //=> true
13
+
14
+ type B = IsNumericLiteral<number>;
15
+ //=> false
16
+
17
+ type C = IsNumericLiteral<100n>;
18
+ //=> true
19
+
20
+ type D = IsNumericLiteral<bigint>;
21
+ //=> false
22
+
23
+ type E = IsNumericLiteral<1 | 2 | 10n | 20n>;
24
+ //=> true
25
+
26
+ type F = IsNumericLiteral<number | bigint>;
27
+ //=> false
28
+
29
+ type G = IsNumericLiteral<1 | bigint>;
30
+ //=> boolean
31
+ ```
32
+
33
+ @category Type Guard
34
+ @category Utilities
35
+ */
36
+ export type IsNumericLiteral<T> = IfNotAnyOrNever<T, {
37
+ ifNot: _IsNumericLiteral<CollapseLiterals<UnwrapBrand<T>>>;
38
+ ifAny: false;
39
+ ifNever: false;
40
+ }>;
41
+
42
+ type _IsNumericLiteral<T> = T extends number | bigint
43
+ ? number extends T
44
+ ? false
45
+ : bigint extends T
46
+ ? false
47
+ : true
48
+ : false;
49
+
50
+ export {};
@@ -0,0 +1,72 @@
1
+ import type {CollapseLiterals, UnwrapBrand} from './internal/object.d.ts';
2
+ import type {IfNotAnyOrNever} from './internal/type.d.ts';
3
+
4
+ /**
5
+ Returns a boolean for whether the given type is a `string` [literal type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types).
6
+
7
+ The implementation of this type is inspired by the trick mentioned in this [StackOverflow answer](https://stackoverflow.com/a/68261113/420747).
8
+
9
+ @example
10
+ ```
11
+ import type {IsStringLiteral} from 'type-fest';
12
+
13
+ type A = IsStringLiteral<'foo'>;
14
+ //=> true
15
+
16
+ type B = IsStringLiteral<string>;
17
+ //=> false
18
+
19
+ // String types with infinite set of possible values return `false`
20
+ type C = IsStringLiteral<`on${string}`>;
21
+ //=> false
22
+
23
+ type D = IsStringLiteral<Uppercase<string>>;
24
+ //=> false
25
+
26
+ type E = IsStringLiteral<'foo' | 'bar' | 'baz'>;
27
+ //=> true
28
+
29
+ type F = IsStringLiteral<'sm' | 'md' | 'lg' | `${number}px`>;
30
+ //=> boolean
31
+ ```
32
+
33
+ @example
34
+ ```
35
+ import type {IsStringLiteral} from 'type-fest';
36
+
37
+ type StringLength<S extends string, Counter extends never[] = []> =
38
+ IsStringLiteral<S> extends true
39
+ ? S extends `${string}${infer Tail}`
40
+ ? StringLength<Tail, [...Counter, never]>
41
+ : Counter['length']
42
+ : number; // return `number` for non-literal string types
43
+
44
+ type L1 = StringLength<'foobar'>;
45
+ //=> 6
46
+
47
+ type L2 = StringLength<Lowercase<string>>;
48
+ //=> number
49
+
50
+ type L3 = StringLength<`${number}`>;
51
+ //=> number
52
+ ```
53
+
54
+ @category Type Guard
55
+ @category Utilities
56
+ */
57
+ export type IsStringLiteral<S> = IfNotAnyOrNever<S, {
58
+ ifNot: _IsStringLiteral<CollapseLiterals<UnwrapBrand<S>>>;
59
+ ifAny: false;
60
+ ifNever: false;
61
+ }>;
62
+
63
+ type _IsStringLiteral<S> =
64
+ // If `S` is an infinite string type (e.g., `on${string}`), `Record<S, never>` produces an index signature,
65
+ // and since `{}` extends index signatures, the result becomes `false`.
66
+ S extends string
67
+ ? {} extends Record<S, never>
68
+ ? false
69
+ : true
70
+ : false;
71
+
72
+ export {};
@@ -0,0 +1,39 @@
1
+ import type {CollapseLiterals, UnwrapBrand} from './internal/object.d.ts';
2
+ import type {IfNotAnyOrNever} from './internal/type.d.ts';
3
+
4
+ /**
5
+ Returns a boolean for whether the given type is a `symbol` [literal type](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types).
6
+
7
+ @example
8
+ ```
9
+ import type {IsSymbolLiteral} from 'type-fest';
10
+
11
+ declare const symbolLiteral1: unique symbol;
12
+ declare const symbolLiteral2: unique symbol;
13
+
14
+ type A = IsSymbolLiteral<typeof symbolLiteral1>;
15
+ //=> true
16
+
17
+ type B = IsSymbolLiteral<symbol>;
18
+ //=> false
19
+
20
+ type C = IsSymbolLiteral<typeof symbolLiteral1 | typeof symbolLiteral2>;
21
+ //=> true
22
+ ```
23
+
24
+ @category Type Guard
25
+ @category Utilities
26
+ */
27
+ export type IsSymbolLiteral<T> = IfNotAnyOrNever<T, {
28
+ ifNot: _IsSymbolLiteral<CollapseLiterals<UnwrapBrand<T>>>;
29
+ ifAny: false;
30
+ ifNever: false;
31
+ }>;
32
+
33
+ type _IsSymbolLiteral<T> = T extends symbol
34
+ ? symbol extends T
35
+ ? false
36
+ : true
37
+ : false;
38
+
39
+ export {};
@@ -81,9 +81,9 @@ type _IsTuple<
81
81
  TArray extends unknown // For distributing `TArray`
82
82
  ? number extends TArray['length']
83
83
  ? Options['fixedLengthOnly'] extends false
84
- ? If<IsNever<keyof TArray & `${number}`>,
85
- TArray extends readonly [...any, any] ? true : false, // To handle cases where a non-rest element follows a rest element, e.g., `[...number[], number]`
86
- true>
84
+ ? '0' extends keyof TArray
85
+ ? true
86
+ : TArray extends readonly [...any, any] ? true : false // To handle cases where a non-rest element follows a rest element, e.g., `[...number[], number]`
87
87
  : false
88
88
  : true
89
89
  : false
@@ -25,15 +25,11 @@ type JsonifyList<T extends UnknownArray> = T extends readonly []
25
25
  ? JsonValue[]
26
26
  : Array<T[number] extends NotJsonable ? null : Jsonify<UndefinedToNull<T[number]>>>;
27
27
 
28
- type FilterJsonableKeys<T extends object> = {
29
- [Key in keyof T]: T[Key] extends NotJsonable ? never : Key;
30
- }[keyof T];
31
-
32
28
  /**
33
29
  JSON serialize objects (not including arrays) and classes.
34
30
  */
35
31
  type JsonifyObject<T extends object> = {
36
- [Key in keyof Pick<T, FilterJsonableKeys<T>>]: Jsonify<T[Key]>;
32
+ [Key in keyof T as T[Key] extends NotJsonable ? never : Key]: Jsonify<T[Key]>;
37
33
  };
38
34
 
39
35
  /**
@@ -18,9 +18,9 @@ type Writable<TArray extends UnknownArray> = {-readonly [Key in keyof TArray]: T
18
18
 
19
19
  // Using the default `ArrayTail` type causes issues, refer https://github.com/sindresorhus/type-fest/pull/1175/files#r2134694728.
20
20
  type ArrayTail<TArray extends UnknownArray> = TArray extends unknown // For distributing `TArray`
21
- ? keyof TArray & `${number}` extends never
22
- ? []
23
- : Writable<_ArrayTail<TArray>>
21
+ ? '0' extends keyof TArray
22
+ ? Writable<_ArrayTail<TArray>>
23
+ : []
24
24
  : never; // Should never happen
25
25
 
26
26
  type SimplifyDeepExcludeArray<T> = SimplifyDeep<T, UnknownArray>;
@@ -1,6 +1,6 @@
1
1
  import type {ApplyDefaultOptions} from './internal/object.d.ts';
2
2
  import type {IfNotAnyOrNever, Not} from './internal/type.d.ts';
3
- import type {IsStringLiteral} from './is-literal.d.ts';
3
+ import type {IsStringLiteral} from './is-string-literal.d.ts';
4
4
  import type {IsNever} from './is-never.d.ts';
5
5
  import type {Or} from './or.d.ts';
6
6
  import type {If} from './if.d.ts';
@@ -1,6 +1,6 @@
1
1
  import type {ApplyDefaultOptions} from './internal/object.d.ts';
2
2
  import type {IfNotAnyOrNever, Not} from './internal/type.d.ts';
3
- import type {IsStringLiteral} from './is-literal.d.ts';
3
+ import type {IsStringLiteral} from './is-string-literal.d.ts';
4
4
  import type {IsNever} from './is-never.d.ts';
5
5
  import type {Or} from './or.d.ts';
6
6
  import type {If} from './if.d.ts';