nativescript 8.9.0-alpha.3 → 8.9.0-dev.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 (342) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/android-tools-info.js +9 -20
  3. package/lib/base-package-manager.js +47 -64
  4. package/lib/bun-package-manager.js +65 -88
  5. package/lib/color.js +2 -2
  6. package/lib/commands/add-platform.js +14 -30
  7. package/lib/commands/apple-login.js +18 -29
  8. package/lib/commands/appstore-list.js +34 -45
  9. package/lib/commands/appstore-upload.js +52 -65
  10. package/lib/commands/build.js +55 -87
  11. package/lib/commands/clean.js +161 -176
  12. package/lib/commands/command-base.js +14 -27
  13. package/lib/commands/config.js +48 -67
  14. package/lib/commands/create-project.js +210 -229
  15. package/lib/commands/debug.js +66 -88
  16. package/lib/commands/deploy.js +28 -44
  17. package/lib/commands/embedding/embed.js +33 -52
  18. package/lib/commands/extensibility/install-extension.js +5 -16
  19. package/lib/commands/extensibility/list-extensions.js +13 -24
  20. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  21. package/lib/commands/fonts.js +30 -41
  22. package/lib/commands/generate-assets.js +13 -28
  23. package/lib/commands/generate-help.js +2 -13
  24. package/lib/commands/generate.js +12 -60
  25. package/lib/commands/info.js +2 -13
  26. package/lib/commands/install.js +34 -49
  27. package/lib/commands/list-platforms.js +14 -25
  28. package/lib/commands/migrate.js +15 -26
  29. package/lib/commands/native-add.js +23 -46
  30. package/lib/commands/platform-clean.js +19 -32
  31. package/lib/commands/plugin/add-plugin.js +12 -25
  32. package/lib/commands/plugin/build-plugin.js +31 -44
  33. package/lib/commands/plugin/create-plugin.js +110 -133
  34. package/lib/commands/plugin/list-plugins.js +22 -33
  35. package/lib/commands/plugin/remove-plugin.js +20 -33
  36. package/lib/commands/plugin/update-plugin.js +20 -33
  37. package/lib/commands/post-install.js +20 -33
  38. package/lib/commands/prepare.js +19 -35
  39. package/lib/commands/preview.js +49 -62
  40. package/lib/commands/remove-platform.js +7 -18
  41. package/lib/commands/resources/resources-update.js +13 -26
  42. package/lib/commands/run.js +55 -76
  43. package/lib/commands/start.js +6 -19
  44. package/lib/commands/test-init.js +123 -134
  45. package/lib/commands/test.js +66 -89
  46. package/lib/commands/typings.js +126 -142
  47. package/lib/commands/update-platform.js +22 -35
  48. package/lib/commands/update.js +30 -43
  49. package/lib/common/child-process.js +53 -72
  50. package/lib/common/codeGeneration/code-entity.js +1 -1
  51. package/lib/common/codeGeneration/code-printer.js +1 -1
  52. package/lib/common/command-params.js +7 -18
  53. package/lib/common/commands/analytics.js +27 -40
  54. package/lib/common/commands/autocompletion.js +39 -56
  55. package/lib/common/commands/device/device-log-stream.js +12 -23
  56. package/lib/common/commands/device/get-file.js +22 -33
  57. package/lib/common/commands/device/list-applications.js +12 -23
  58. package/lib/common/commands/device/list-devices.js +72 -87
  59. package/lib/common/commands/device/list-files.js +23 -34
  60. package/lib/common/commands/device/put-file.js +22 -33
  61. package/lib/common/commands/device/run-application.js +12 -25
  62. package/lib/common/commands/device/stop-application.js +11 -22
  63. package/lib/common/commands/device/uninstall-application.js +6 -17
  64. package/lib/common/commands/generate-messages.js +17 -28
  65. package/lib/common/commands/help.js +20 -33
  66. package/lib/common/commands/package-manager-get.js +6 -17
  67. package/lib/common/commands/package-manager-set.js +9 -20
  68. package/lib/common/commands/post-install.js +2 -13
  69. package/lib/common/commands/preuninstall.js +23 -38
  70. package/lib/common/commands/proxy/proxy-base.js +8 -19
  71. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  72. package/lib/common/commands/proxy/proxy-get.js +3 -14
  73. package/lib/common/commands/proxy/proxy-set.js +87 -100
  74. package/lib/common/constants.js +11 -11
  75. package/lib/common/decorators.js +10 -22
  76. package/lib/common/dispatchers.js +79 -96
  77. package/lib/common/errors.js +89 -104
  78. package/lib/common/file-system.js +108 -130
  79. package/lib/common/header.js +1 -2
  80. package/lib/common/helpers.js +149 -178
  81. package/lib/common/host-info.js +37 -50
  82. package/lib/common/http-client.js +93 -108
  83. package/lib/common/logger/appenders/cli-appender.js +1 -2
  84. package/lib/common/logger/appenders/emit-appender.js +1 -2
  85. package/lib/common/logger/layouts/cli-layout.js +1 -2
  86. package/lib/common/logger/logger.js +4 -4
  87. package/lib/common/mobile/android/android-application-manager.js +121 -142
  88. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  89. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  90. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  91. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  92. package/lib/common/mobile/android/android-device.js +68 -85
  93. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  94. package/lib/common/mobile/android/android-ini-file-parser.js +8 -6
  95. package/lib/common/mobile/android/android-log-filter.js +1 -1
  96. package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
  97. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  98. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  99. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  100. package/lib/common/mobile/android/logcat-helper.js +108 -127
  101. package/lib/common/mobile/application-manager-base.js +84 -107
  102. package/lib/common/mobile/device-log-provider-base.js +7 -18
  103. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  104. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  105. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  106. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  107. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  108. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  109. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  110. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  111. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  112. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  113. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  114. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  115. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  116. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  117. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  118. package/lib/common/mobile/mobile-core/devices-service.js +386 -436
  119. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  120. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  121. package/lib/common/mobile/mobile-helper.js +15 -26
  122. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  123. package/lib/common/opener.js +2 -2
  124. package/lib/common/prompter.js +90 -105
  125. package/lib/common/queue.js +9 -20
  126. package/lib/common/services/auto-completion-service.js +39 -52
  127. package/lib/common/services/cancellation.js +17 -28
  128. package/lib/common/services/commands-service.js +146 -169
  129. package/lib/common/services/help-service.js +132 -157
  130. package/lib/common/services/hooks-service.js +93 -108
  131. package/lib/common/services/ios-notification-service.js +21 -34
  132. package/lib/common/services/json-file-settings-service.js +52 -71
  133. package/lib/common/services/lock-service.js +35 -52
  134. package/lib/common/services/message-contract-generator.js +35 -46
  135. package/lib/common/services/micro-templating-service.js +4 -15
  136. package/lib/common/services/net-service.js +90 -107
  137. package/lib/common/services/project-files-manager.js +10 -23
  138. package/lib/common/services/proxy-service.js +13 -24
  139. package/lib/common/services/qr.js +13 -24
  140. package/lib/common/services/settings-service.js +1 -1
  141. package/lib/common/services/xcode-select-service.js +20 -35
  142. package/lib/common/utils.js +2 -2
  143. package/lib/common/validators/project-name-validator.js +1 -1
  144. package/lib/common/validators/validation-result.js +1 -1
  145. package/lib/common/verify-node-version.js +2 -3
  146. package/lib/common/yok.js +23 -36
  147. package/lib/config.js +36 -51
  148. package/lib/constants.js +24 -24
  149. package/lib/controllers/build-controller.js +82 -99
  150. package/lib/controllers/debug-controller.js +107 -128
  151. package/lib/controllers/deploy-controller.js +15 -23
  152. package/lib/controllers/migrate-controller.js +722 -795
  153. package/lib/controllers/platform-controller.js +70 -85
  154. package/lib/controllers/prepare-controller.js +232 -261
  155. package/lib/controllers/run-controller.js +397 -411
  156. package/lib/controllers/update-controller-base.js +16 -29
  157. package/lib/controllers/update-controller.js +94 -119
  158. package/lib/data/prepare-data.js +4 -1
  159. package/lib/definitions/ios.d.ts +9 -1
  160. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  161. package/lib/detached-processes/cleanup-process.js +16 -25
  162. package/lib/device-path-provider.js +23 -34
  163. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  164. package/lib/device-sockets/ios/notification.js +1 -1
  165. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  166. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  167. package/lib/helpers/deploy-command-helper.js +44 -49
  168. package/lib/helpers/key-command-helper.js +4 -13
  169. package/lib/helpers/livesync-command-helper.js +137 -152
  170. package/lib/helpers/network-connectivity-validator.js +6 -17
  171. package/lib/helpers/options-track-helper.js +6 -17
  172. package/lib/helpers/platform-command-helper.js +99 -120
  173. package/lib/key-commands/index.js +150 -200
  174. package/lib/nativescript-cli.js +5 -14
  175. package/lib/node-package-manager.js +81 -104
  176. package/lib/options.js +3 -12
  177. package/lib/package-installation-manager.js +130 -165
  178. package/lib/package-manager.js +63 -86
  179. package/lib/platform-command-param.js +4 -15
  180. package/lib/pnpm-package-manager.js +59 -78
  181. package/lib/project-data.js +1 -1
  182. package/lib/providers/project-files-provider.js +1 -1
  183. package/lib/services/analytics/analytics-broker-process.js +13 -22
  184. package/lib/services/analytics/analytics-broker.js +17 -30
  185. package/lib/services/analytics/analytics-service.js +163 -199
  186. package/lib/services/analytics/google-analytics-provider.js +41 -56
  187. package/lib/services/analytics-settings-service.js +15 -32
  188. package/lib/services/android/android-bundle-tool-service.js +43 -60
  189. package/lib/services/android/gradle-build-args-service.js +9 -20
  190. package/lib/services/android/gradle-build-service.js +22 -35
  191. package/lib/services/android/gradle-command-service.js +22 -35
  192. package/lib/services/android-device-debug-service.js +90 -117
  193. package/lib/services/android-plugin-build-service.js +205 -231
  194. package/lib/services/android-project-service.js +126 -171
  195. package/lib/services/android-resources-migration-service.js +51 -64
  196. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  197. package/lib/services/apple-portal/apple-portal-session-service.js +195 -214
  198. package/lib/services/apple-portal/srp/srp-wrapper.js +43 -58
  199. package/lib/services/assets-generation/assets-generation-service.js +103 -117
  200. package/lib/services/build-artifacts-service.js +9 -20
  201. package/lib/services/build-info-file-service.js +20 -35
  202. package/lib/services/cleanup-service.js +47 -76
  203. package/lib/services/cocoapods-service.js +111 -132
  204. package/lib/services/device/device-install-app-service.js +54 -71
  205. package/lib/services/doctor-service.js +99 -118
  206. package/lib/services/extensibility-service.js +81 -100
  207. package/lib/services/files-hash-service.js +26 -43
  208. package/lib/services/hmr-status-service.js +1 -1
  209. package/lib/services/initialize-service.js +37 -50
  210. package/lib/services/ios/export-options-plist-service.js +38 -51
  211. package/lib/services/ios/ios-signing-service.js +168 -187
  212. package/lib/services/ios/spm-service.js +43 -53
  213. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  214. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  215. package/lib/services/ios/xcodebuild-service.js +52 -71
  216. package/lib/services/ios-debugger-port-service.js +24 -37
  217. package/lib/services/ios-device-debug-service.js +75 -102
  218. package/lib/services/ios-entitlements-service.js +31 -42
  219. package/lib/services/ios-extensions-service.js +18 -29
  220. package/lib/services/ios-project-service.js +419 -460
  221. package/lib/services/ios-provision-service.js +108 -129
  222. package/lib/services/ios-watch-app-service.js +21 -32
  223. package/lib/services/ip-service.js +38 -53
  224. package/lib/services/itmstransporter-service.js +129 -152
  225. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  226. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  227. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
  228. package/lib/services/livesync/android-livesync-service.js +14 -35
  229. package/lib/services/livesync/android-livesync-tool.js +90 -113
  230. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  231. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  232. package/lib/services/livesync/ios-livesync-service.js +42 -58
  233. package/lib/services/livesync/platform-livesync-service-base.js +94 -119
  234. package/lib/services/log-parser-service.js +1 -1
  235. package/lib/services/log-source-map-service.js +30 -41
  236. package/lib/services/marking-mode-service.js +15 -28
  237. package/lib/services/npm-config-service.js +1 -1
  238. package/lib/services/pacote-service.js +51 -66
  239. package/lib/services/performance-service.js +1 -1
  240. package/lib/services/platform/add-platform-service.js +50 -71
  241. package/lib/services/platform/platform-validation-service.js +22 -33
  242. package/lib/services/platform/prepare-native-platform-service.js +49 -62
  243. package/lib/services/platform-environment-requirements.js +26 -37
  244. package/lib/services/plugins-service.js +122 -147
  245. package/lib/services/project-backup-service.js +1 -1
  246. package/lib/services/project-changes-service.js +124 -141
  247. package/lib/services/project-cleanup-service.js +64 -77
  248. package/lib/services/project-config-service.js +71 -80
  249. package/lib/services/project-data-service.js +101 -118
  250. package/lib/services/project-name-service.js +28 -43
  251. package/lib/services/project-service.js +84 -103
  252. package/lib/services/project-templates-service.js +52 -67
  253. package/lib/services/start-service.js +41 -59
  254. package/lib/services/temp-service.js +8 -21
  255. package/lib/services/terminal-spinner-service.js +15 -26
  256. package/lib/services/test-execution-service.js +59 -72
  257. package/lib/services/test-initialization-service.js +2 -2
  258. package/lib/services/timeline-profiler-service.js +1 -1
  259. package/lib/services/versions-service.js +119 -138
  260. package/lib/services/webpack/webpack-compiler-service.js +214 -234
  261. package/lib/services/xcconfig-service.js +8 -19
  262. package/lib/sys-info.js +45 -62
  263. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  264. package/lib/yarn-package-manager.js +59 -78
  265. package/lib/yarn2-package-manager.js +60 -79
  266. package/package.json +66 -81
  267. package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
  268. package/node_modules/@npmcli/move-file/README.md +0 -69
  269. package/node_modules/@npmcli/move-file/lib/index.js +0 -185
  270. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
  271. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  272. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  273. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  274. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  275. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  276. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  277. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  278. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  279. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  280. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  281. package/node_modules/@npmcli/move-file/package.json +0 -47
  282. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  283. package/node_modules/balanced-match/LICENSE.md +0 -21
  284. package/node_modules/balanced-match/README.md +0 -97
  285. package/node_modules/balanced-match/index.js +0 -62
  286. package/node_modules/balanced-match/package.json +0 -48
  287. package/node_modules/concat-map/.travis.yml +0 -4
  288. package/node_modules/concat-map/LICENSE +0 -18
  289. package/node_modules/concat-map/README.markdown +0 -62
  290. package/node_modules/concat-map/example/map.js +0 -6
  291. package/node_modules/concat-map/index.js +0 -13
  292. package/node_modules/concat-map/package.json +0 -43
  293. package/node_modules/concat-map/test/map.js +0 -39
  294. package/node_modules/fs.realpath/LICENSE +0 -43
  295. package/node_modules/fs.realpath/README.md +0 -33
  296. package/node_modules/fs.realpath/index.js +0 -66
  297. package/node_modules/fs.realpath/old.js +0 -303
  298. package/node_modules/fs.realpath/package.json +0 -26
  299. package/node_modules/inflight/LICENSE +0 -15
  300. package/node_modules/inflight/README.md +0 -37
  301. package/node_modules/inflight/inflight.js +0 -54
  302. package/node_modules/inflight/package.json +0 -29
  303. package/node_modules/inherits/LICENSE +0 -16
  304. package/node_modules/inherits/README.md +0 -42
  305. package/node_modules/inherits/inherits.js +0 -9
  306. package/node_modules/inherits/inherits_browser.js +0 -27
  307. package/node_modules/inherits/package.json +0 -29
  308. package/node_modules/once/LICENSE +0 -15
  309. package/node_modules/once/README.md +0 -79
  310. package/node_modules/once/once.js +0 -42
  311. package/node_modules/once/package.json +0 -33
  312. package/node_modules/path-is-absolute/index.js +0 -20
  313. package/node_modules/path-is-absolute/license +0 -21
  314. package/node_modules/path-is-absolute/package.json +0 -43
  315. package/node_modules/path-is-absolute/readme.md +0 -59
  316. package/node_modules/rimraf/LICENSE +0 -15
  317. package/node_modules/rimraf/README.md +0 -101
  318. package/node_modules/rimraf/bin.js +0 -68
  319. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  320. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  321. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  322. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  323. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  324. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  325. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  326. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  327. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  328. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  329. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  330. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  331. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  332. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  333. package/node_modules/rimraf/package.json +0 -32
  334. package/node_modules/rimraf/rimraf.js +0 -360
  335. package/node_modules/stringify-package/LICENSE +0 -13
  336. package/node_modules/stringify-package/README.md +0 -55
  337. package/node_modules/stringify-package/index.js +0 -18
  338. package/node_modules/stringify-package/package.json +0 -38
  339. package/node_modules/wrappy/LICENSE +0 -15
  340. package/node_modules/wrappy/README.md +0 -36
  341. package/node_modules/wrappy/package.json +0 -29
  342. package/node_modules/wrappy/wrappy.js +0 -33
@@ -1,55 +0,0 @@
1
- {
2
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
3
- "name": "glob",
4
- "description": "a little globber",
5
- "version": "7.2.3",
6
- "publishConfig": {
7
- "tag": "v7-legacy"
8
- },
9
- "repository": {
10
- "type": "git",
11
- "url": "git://github.com/isaacs/node-glob.git"
12
- },
13
- "main": "glob.js",
14
- "files": [
15
- "glob.js",
16
- "sync.js",
17
- "common.js"
18
- ],
19
- "engines": {
20
- "node": "*"
21
- },
22
- "dependencies": {
23
- "fs.realpath": "^1.0.0",
24
- "inflight": "^1.0.4",
25
- "inherits": "2",
26
- "minimatch": "^3.1.1",
27
- "once": "^1.3.0",
28
- "path-is-absolute": "^1.0.0"
29
- },
30
- "devDependencies": {
31
- "memfs": "^3.2.0",
32
- "mkdirp": "0",
33
- "rimraf": "^2.2.8",
34
- "tap": "^15.0.6",
35
- "tick": "0.0.6"
36
- },
37
- "tap": {
38
- "before": "test/00-setup.js",
39
- "after": "test/zz-cleanup.js",
40
- "jobs": 1
41
- },
42
- "scripts": {
43
- "prepublish": "npm run benchclean",
44
- "profclean": "rm -f v8.log profile.txt",
45
- "test": "tap",
46
- "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js",
47
- "bench": "bash benchmark.sh",
48
- "prof": "bash prof.sh && cat profile.txt",
49
- "benchclean": "node benchclean.js"
50
- },
51
- "license": "ISC",
52
- "funding": {
53
- "url": "https://github.com/sponsors/isaacs"
54
- }
55
- }
@@ -1,486 +0,0 @@
1
- module.exports = globSync
2
- globSync.GlobSync = GlobSync
3
-
4
- var rp = require('fs.realpath')
5
- var minimatch = require('minimatch')
6
- var Minimatch = minimatch.Minimatch
7
- var Glob = require('./glob.js').Glob
8
- var util = require('util')
9
- var path = require('path')
10
- var assert = require('assert')
11
- var isAbsolute = require('path-is-absolute')
12
- var common = require('./common.js')
13
- var setopts = common.setopts
14
- var ownProp = common.ownProp
15
- var childrenIgnored = common.childrenIgnored
16
- var isIgnored = common.isIgnored
17
-
18
- function globSync (pattern, options) {
19
- if (typeof options === 'function' || arguments.length === 3)
20
- throw new TypeError('callback provided to sync glob\n'+
21
- 'See: https://github.com/isaacs/node-glob/issues/167')
22
-
23
- return new GlobSync(pattern, options).found
24
- }
25
-
26
- function GlobSync (pattern, options) {
27
- if (!pattern)
28
- throw new Error('must provide pattern')
29
-
30
- if (typeof options === 'function' || arguments.length === 3)
31
- throw new TypeError('callback provided to sync glob\n'+
32
- 'See: https://github.com/isaacs/node-glob/issues/167')
33
-
34
- if (!(this instanceof GlobSync))
35
- return new GlobSync(pattern, options)
36
-
37
- setopts(this, pattern, options)
38
-
39
- if (this.noprocess)
40
- return this
41
-
42
- var n = this.minimatch.set.length
43
- this.matches = new Array(n)
44
- for (var i = 0; i < n; i ++) {
45
- this._process(this.minimatch.set[i], i, false)
46
- }
47
- this._finish()
48
- }
49
-
50
- GlobSync.prototype._finish = function () {
51
- assert.ok(this instanceof GlobSync)
52
- if (this.realpath) {
53
- var self = this
54
- this.matches.forEach(function (matchset, index) {
55
- var set = self.matches[index] = Object.create(null)
56
- for (var p in matchset) {
57
- try {
58
- p = self._makeAbs(p)
59
- var real = rp.realpathSync(p, self.realpathCache)
60
- set[real] = true
61
- } catch (er) {
62
- if (er.syscall === 'stat')
63
- set[self._makeAbs(p)] = true
64
- else
65
- throw er
66
- }
67
- }
68
- })
69
- }
70
- common.finish(this)
71
- }
72
-
73
-
74
- GlobSync.prototype._process = function (pattern, index, inGlobStar) {
75
- assert.ok(this instanceof GlobSync)
76
-
77
- // Get the first [n] parts of pattern that are all strings.
78
- var n = 0
79
- while (typeof pattern[n] === 'string') {
80
- n ++
81
- }
82
- // now n is the index of the first one that is *not* a string.
83
-
84
- // See if there's anything else
85
- var prefix
86
- switch (n) {
87
- // if not, then this is rather simple
88
- case pattern.length:
89
- this._processSimple(pattern.join('/'), index)
90
- return
91
-
92
- case 0:
93
- // pattern *starts* with some non-trivial item.
94
- // going to readdir(cwd), but not include the prefix in matches.
95
- prefix = null
96
- break
97
-
98
- default:
99
- // pattern has some string bits in the front.
100
- // whatever it starts with, whether that's 'absolute' like /foo/bar,
101
- // or 'relative' like '../baz'
102
- prefix = pattern.slice(0, n).join('/')
103
- break
104
- }
105
-
106
- var remain = pattern.slice(n)
107
-
108
- // get the list of entries.
109
- var read
110
- if (prefix === null)
111
- read = '.'
112
- else if (isAbsolute(prefix) ||
113
- isAbsolute(pattern.map(function (p) {
114
- return typeof p === 'string' ? p : '[*]'
115
- }).join('/'))) {
116
- if (!prefix || !isAbsolute(prefix))
117
- prefix = '/' + prefix
118
- read = prefix
119
- } else
120
- read = prefix
121
-
122
- var abs = this._makeAbs(read)
123
-
124
- //if ignored, skip processing
125
- if (childrenIgnored(this, read))
126
- return
127
-
128
- var isGlobStar = remain[0] === minimatch.GLOBSTAR
129
- if (isGlobStar)
130
- this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
131
- else
132
- this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
133
- }
134
-
135
-
136
- GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
137
- var entries = this._readdir(abs, inGlobStar)
138
-
139
- // if the abs isn't a dir, then nothing can match!
140
- if (!entries)
141
- return
142
-
143
- // It will only match dot entries if it starts with a dot, or if
144
- // dot is set. Stuff like @(.foo|.bar) isn't allowed.
145
- var pn = remain[0]
146
- var negate = !!this.minimatch.negate
147
- var rawGlob = pn._glob
148
- var dotOk = this.dot || rawGlob.charAt(0) === '.'
149
-
150
- var matchedEntries = []
151
- for (var i = 0; i < entries.length; i++) {
152
- var e = entries[i]
153
- if (e.charAt(0) !== '.' || dotOk) {
154
- var m
155
- if (negate && !prefix) {
156
- m = !e.match(pn)
157
- } else {
158
- m = e.match(pn)
159
- }
160
- if (m)
161
- matchedEntries.push(e)
162
- }
163
- }
164
-
165
- var len = matchedEntries.length
166
- // If there are no matched entries, then nothing matches.
167
- if (len === 0)
168
- return
169
-
170
- // if this is the last remaining pattern bit, then no need for
171
- // an additional stat *unless* the user has specified mark or
172
- // stat explicitly. We know they exist, since readdir returned
173
- // them.
174
-
175
- if (remain.length === 1 && !this.mark && !this.stat) {
176
- if (!this.matches[index])
177
- this.matches[index] = Object.create(null)
178
-
179
- for (var i = 0; i < len; i ++) {
180
- var e = matchedEntries[i]
181
- if (prefix) {
182
- if (prefix.slice(-1) !== '/')
183
- e = prefix + '/' + e
184
- else
185
- e = prefix + e
186
- }
187
-
188
- if (e.charAt(0) === '/' && !this.nomount) {
189
- e = path.join(this.root, e)
190
- }
191
- this._emitMatch(index, e)
192
- }
193
- // This was the last one, and no stats were needed
194
- return
195
- }
196
-
197
- // now test all matched entries as stand-ins for that part
198
- // of the pattern.
199
- remain.shift()
200
- for (var i = 0; i < len; i ++) {
201
- var e = matchedEntries[i]
202
- var newPattern
203
- if (prefix)
204
- newPattern = [prefix, e]
205
- else
206
- newPattern = [e]
207
- this._process(newPattern.concat(remain), index, inGlobStar)
208
- }
209
- }
210
-
211
-
212
- GlobSync.prototype._emitMatch = function (index, e) {
213
- if (isIgnored(this, e))
214
- return
215
-
216
- var abs = this._makeAbs(e)
217
-
218
- if (this.mark)
219
- e = this._mark(e)
220
-
221
- if (this.absolute) {
222
- e = abs
223
- }
224
-
225
- if (this.matches[index][e])
226
- return
227
-
228
- if (this.nodir) {
229
- var c = this.cache[abs]
230
- if (c === 'DIR' || Array.isArray(c))
231
- return
232
- }
233
-
234
- this.matches[index][e] = true
235
-
236
- if (this.stat)
237
- this._stat(e)
238
- }
239
-
240
-
241
- GlobSync.prototype._readdirInGlobStar = function (abs) {
242
- // follow all symlinked directories forever
243
- // just proceed as if this is a non-globstar situation
244
- if (this.follow)
245
- return this._readdir(abs, false)
246
-
247
- var entries
248
- var lstat
249
- var stat
250
- try {
251
- lstat = this.fs.lstatSync(abs)
252
- } catch (er) {
253
- if (er.code === 'ENOENT') {
254
- // lstat failed, doesn't exist
255
- return null
256
- }
257
- }
258
-
259
- var isSym = lstat && lstat.isSymbolicLink()
260
- this.symlinks[abs] = isSym
261
-
262
- // If it's not a symlink or a dir, then it's definitely a regular file.
263
- // don't bother doing a readdir in that case.
264
- if (!isSym && lstat && !lstat.isDirectory())
265
- this.cache[abs] = 'FILE'
266
- else
267
- entries = this._readdir(abs, false)
268
-
269
- return entries
270
- }
271
-
272
- GlobSync.prototype._readdir = function (abs, inGlobStar) {
273
- var entries
274
-
275
- if (inGlobStar && !ownProp(this.symlinks, abs))
276
- return this._readdirInGlobStar(abs)
277
-
278
- if (ownProp(this.cache, abs)) {
279
- var c = this.cache[abs]
280
- if (!c || c === 'FILE')
281
- return null
282
-
283
- if (Array.isArray(c))
284
- return c
285
- }
286
-
287
- try {
288
- return this._readdirEntries(abs, this.fs.readdirSync(abs))
289
- } catch (er) {
290
- this._readdirError(abs, er)
291
- return null
292
- }
293
- }
294
-
295
- GlobSync.prototype._readdirEntries = function (abs, entries) {
296
- // if we haven't asked to stat everything, then just
297
- // assume that everything in there exists, so we can avoid
298
- // having to stat it a second time.
299
- if (!this.mark && !this.stat) {
300
- for (var i = 0; i < entries.length; i ++) {
301
- var e = entries[i]
302
- if (abs === '/')
303
- e = abs + e
304
- else
305
- e = abs + '/' + e
306
- this.cache[e] = true
307
- }
308
- }
309
-
310
- this.cache[abs] = entries
311
-
312
- // mark and cache dir-ness
313
- return entries
314
- }
315
-
316
- GlobSync.prototype._readdirError = function (f, er) {
317
- // handle errors, and cache the information
318
- switch (er.code) {
319
- case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
320
- case 'ENOTDIR': // totally normal. means it *does* exist.
321
- var abs = this._makeAbs(f)
322
- this.cache[abs] = 'FILE'
323
- if (abs === this.cwdAbs) {
324
- var error = new Error(er.code + ' invalid cwd ' + this.cwd)
325
- error.path = this.cwd
326
- error.code = er.code
327
- throw error
328
- }
329
- break
330
-
331
- case 'ENOENT': // not terribly unusual
332
- case 'ELOOP':
333
- case 'ENAMETOOLONG':
334
- case 'UNKNOWN':
335
- this.cache[this._makeAbs(f)] = false
336
- break
337
-
338
- default: // some unusual error. Treat as failure.
339
- this.cache[this._makeAbs(f)] = false
340
- if (this.strict)
341
- throw er
342
- if (!this.silent)
343
- console.error('glob error', er)
344
- break
345
- }
346
- }
347
-
348
- GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
349
-
350
- var entries = this._readdir(abs, inGlobStar)
351
-
352
- // no entries means not a dir, so it can never have matches
353
- // foo.txt/** doesn't match foo.txt
354
- if (!entries)
355
- return
356
-
357
- // test without the globstar, and with every child both below
358
- // and replacing the globstar.
359
- var remainWithoutGlobStar = remain.slice(1)
360
- var gspref = prefix ? [ prefix ] : []
361
- var noGlobStar = gspref.concat(remainWithoutGlobStar)
362
-
363
- // the noGlobStar pattern exits the inGlobStar state
364
- this._process(noGlobStar, index, false)
365
-
366
- var len = entries.length
367
- var isSym = this.symlinks[abs]
368
-
369
- // If it's a symlink, and we're in a globstar, then stop
370
- if (isSym && inGlobStar)
371
- return
372
-
373
- for (var i = 0; i < len; i++) {
374
- var e = entries[i]
375
- if (e.charAt(0) === '.' && !this.dot)
376
- continue
377
-
378
- // these two cases enter the inGlobStar state
379
- var instead = gspref.concat(entries[i], remainWithoutGlobStar)
380
- this._process(instead, index, true)
381
-
382
- var below = gspref.concat(entries[i], remain)
383
- this._process(below, index, true)
384
- }
385
- }
386
-
387
- GlobSync.prototype._processSimple = function (prefix, index) {
388
- // XXX review this. Shouldn't it be doing the mounting etc
389
- // before doing stat? kinda weird?
390
- var exists = this._stat(prefix)
391
-
392
- if (!this.matches[index])
393
- this.matches[index] = Object.create(null)
394
-
395
- // If it doesn't exist, then just mark the lack of results
396
- if (!exists)
397
- return
398
-
399
- if (prefix && isAbsolute(prefix) && !this.nomount) {
400
- var trail = /[\/\\]$/.test(prefix)
401
- if (prefix.charAt(0) === '/') {
402
- prefix = path.join(this.root, prefix)
403
- } else {
404
- prefix = path.resolve(this.root, prefix)
405
- if (trail)
406
- prefix += '/'
407
- }
408
- }
409
-
410
- if (process.platform === 'win32')
411
- prefix = prefix.replace(/\\/g, '/')
412
-
413
- // Mark this as a match
414
- this._emitMatch(index, prefix)
415
- }
416
-
417
- // Returns either 'DIR', 'FILE', or false
418
- GlobSync.prototype._stat = function (f) {
419
- var abs = this._makeAbs(f)
420
- var needDir = f.slice(-1) === '/'
421
-
422
- if (f.length > this.maxLength)
423
- return false
424
-
425
- if (!this.stat && ownProp(this.cache, abs)) {
426
- var c = this.cache[abs]
427
-
428
- if (Array.isArray(c))
429
- c = 'DIR'
430
-
431
- // It exists, but maybe not how we need it
432
- if (!needDir || c === 'DIR')
433
- return c
434
-
435
- if (needDir && c === 'FILE')
436
- return false
437
-
438
- // otherwise we have to stat, because maybe c=true
439
- // if we know it exists, but not what it is.
440
- }
441
-
442
- var exists
443
- var stat = this.statCache[abs]
444
- if (!stat) {
445
- var lstat
446
- try {
447
- lstat = this.fs.lstatSync(abs)
448
- } catch (er) {
449
- if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
450
- this.statCache[abs] = false
451
- return false
452
- }
453
- }
454
-
455
- if (lstat && lstat.isSymbolicLink()) {
456
- try {
457
- stat = this.fs.statSync(abs)
458
- } catch (er) {
459
- stat = lstat
460
- }
461
- } else {
462
- stat = lstat
463
- }
464
- }
465
-
466
- this.statCache[abs] = stat
467
-
468
- var c = true
469
- if (stat)
470
- c = stat.isDirectory() ? 'DIR' : 'FILE'
471
-
472
- this.cache[abs] = this.cache[abs] || c
473
-
474
- if (needDir && c === 'FILE')
475
- return false
476
-
477
- return c
478
- }
479
-
480
- GlobSync.prototype._mark = function (p) {
481
- return common.mark(this, p)
482
- }
483
-
484
- GlobSync.prototype._makeAbs = function (f) {
485
- return common.makeAbs(this, f)
486
- }
@@ -1,15 +0,0 @@
1
- The ISC License
2
-
3
- Copyright (c) Isaac Z. Schlueter and Contributors
4
-
5
- Permission to use, copy, modify, and/or distribute this software for any
6
- purpose with or without fee is hereby granted, provided that the above
7
- copyright notice and this permission notice appear in all copies.
8
-
9
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
15
- IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.