projen 0.92.10 → 0.92.11

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 (251) hide show
  1. package/.jsii +13752 -324
  2. package/lib/awscdk/auto-discover.js +5 -5
  3. package/lib/awscdk/awscdk-app-java.js +1 -1
  4. package/lib/awscdk/awscdk-app-py.js +1 -1
  5. package/lib/awscdk/awscdk-app-ts.js +3 -3
  6. package/lib/awscdk/awscdk-construct.js +2 -2
  7. package/lib/awscdk/awscdk-deps-java.js +1 -1
  8. package/lib/awscdk/awscdk-deps-js.js +1 -1
  9. package/lib/awscdk/awscdk-deps-py.js +1 -1
  10. package/lib/awscdk/awscdk-deps.js +1 -1
  11. package/lib/awscdk/cdk-config.js +1 -1
  12. package/lib/awscdk/cdk-tasks.js +1 -1
  13. package/lib/awscdk/integration-test.js +1 -1
  14. package/lib/awscdk/lambda-extension.js +1 -1
  15. package/lib/awscdk/lambda-function.js +2 -2
  16. package/lib/build/build-workflow.js +1 -1
  17. package/lib/cdk/auto-discover-base.js +4 -4
  18. package/lib/cdk/construct-lib.js +1 -1
  19. package/lib/cdk/integration-test-base.js +1 -1
  20. package/lib/cdk/jsii-docgen.js +1 -1
  21. package/lib/cdk/jsii-project.js +1 -1
  22. package/lib/cdk8s/auto-discover.js +2 -2
  23. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  24. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  25. package/lib/cdk8s/cdk8s-construct.js +1 -1
  26. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  27. package/lib/cdk8s/cdk8s-deps.js +1 -1
  28. package/lib/cdk8s/integration-test.js +1 -1
  29. package/lib/cdktf/cdktf-construct.js +1 -1
  30. package/lib/circleci/circleci.js +1 -1
  31. package/lib/cleanup.js +4 -3
  32. package/lib/component.js +1 -1
  33. package/lib/dependencies.js +1 -1
  34. package/lib/dev-env.js +1 -1
  35. package/lib/docker-compose/docker-compose-service.js +1 -1
  36. package/lib/docker-compose/docker-compose.js +1 -1
  37. package/lib/file.js +1 -1
  38. package/lib/gitattributes.js +1 -1
  39. package/lib/github/actions-provider.js +1 -1
  40. package/lib/github/auto-approve.js +1 -1
  41. package/lib/github/auto-merge.js +1 -1
  42. package/lib/github/auto-queue.js +1 -1
  43. package/lib/github/dependabot.js +1 -1
  44. package/lib/github/github-credentials.js +1 -1
  45. package/lib/github/github-project.js +1 -1
  46. package/lib/github/github.js +1 -1
  47. package/lib/github/merge-queue.js +1 -1
  48. package/lib/github/mergify.js +1 -1
  49. package/lib/github/pr-template.js +1 -1
  50. package/lib/github/pull-request-backport.js +1 -1
  51. package/lib/github/pull-request-lint.js +1 -1
  52. package/lib/github/stale.js +1 -1
  53. package/lib/github/task-workflow-job.js +1 -1
  54. package/lib/github/task-workflow.js +1 -1
  55. package/lib/github/workflow-actions.js +1 -1
  56. package/lib/github/workflow-jobs.js +1 -1
  57. package/lib/github/workflow-steps.js +1 -1
  58. package/lib/github/workflows.js +1 -1
  59. package/lib/gitlab/configuration.js +1 -1
  60. package/lib/gitlab/gitlab-configuration.js +1 -1
  61. package/lib/gitlab/nested-configuration.js +1 -1
  62. package/lib/gitpod.js +1 -1
  63. package/lib/ignore-file.js +1 -1
  64. package/lib/ini.js +1 -1
  65. package/lib/java/java-project.js +1 -1
  66. package/lib/java/junit.js +1 -1
  67. package/lib/java/maven-compile.js +1 -1
  68. package/lib/java/maven-packaging.js +1 -1
  69. package/lib/java/maven-sample.js +1 -1
  70. package/lib/java/pom.js +2 -2
  71. package/lib/java/projenrc.js +1 -1
  72. package/lib/javascript/biome/biome-config.d.ts +2522 -0
  73. package/lib/javascript/biome/biome-config.js +10 -0
  74. package/lib/javascript/biome/biome.d.ts +67 -0
  75. package/lib/javascript/biome/biome.js +128 -0
  76. package/lib/javascript/bundler.js +1 -1
  77. package/lib/javascript/eslint.js +1 -1
  78. package/lib/javascript/index.d.ts +2 -0
  79. package/lib/javascript/index.js +4 -1
  80. package/lib/javascript/jest.js +4 -4
  81. package/lib/javascript/license-checker.js +1 -1
  82. package/lib/javascript/node-package.js +1 -1
  83. package/lib/javascript/node-project.d.ts +13 -0
  84. package/lib/javascript/node-project.js +9 -2
  85. package/lib/javascript/npm-config.js +1 -1
  86. package/lib/javascript/prettier.js +1 -1
  87. package/lib/javascript/projenrc.d.ts +1 -1
  88. package/lib/javascript/projenrc.js +5 -2
  89. package/lib/javascript/typescript-config.js +2 -2
  90. package/lib/javascript/upgrade-dependencies.js +2 -2
  91. package/lib/javascript/yarnrc.js +1 -1
  92. package/lib/json-patch.js +1 -1
  93. package/lib/json.js +1 -1
  94. package/lib/license.js +1 -1
  95. package/lib/logger.js +1 -1
  96. package/lib/makefile.js +1 -1
  97. package/lib/object-file.js +3 -3
  98. package/lib/project-build.js +1 -1
  99. package/lib/project-tree.js +1 -1
  100. package/lib/project.js +5 -4
  101. package/lib/projects.js +1 -1
  102. package/lib/projenrc-json.js +2 -2
  103. package/lib/projenrc.js +1 -1
  104. package/lib/python/pip.js +1 -1
  105. package/lib/python/poetry.js +2 -2
  106. package/lib/python/projenrc.js +1 -1
  107. package/lib/python/pytest-sample.js +1 -1
  108. package/lib/python/pytest.js +1 -1
  109. package/lib/python/python-project.js +1 -1
  110. package/lib/python/python-sample.js +1 -1
  111. package/lib/python/requirements-file.js +1 -1
  112. package/lib/python/setuppy.js +1 -1
  113. package/lib/python/setuptools.js +1 -1
  114. package/lib/python/venv.js +1 -1
  115. package/lib/readme.js +1 -1
  116. package/lib/release/publisher.js +1 -1
  117. package/lib/release/release-trigger.js +1 -1
  118. package/lib/release/release.js +1 -1
  119. package/lib/renovatebot.js +1 -1
  120. package/lib/sample-file.js +6 -5
  121. package/lib/semver.js +1 -1
  122. package/lib/source-code.js +1 -1
  123. package/lib/task-runtime.js +1 -1
  124. package/lib/task.js +1 -1
  125. package/lib/tasks.js +1 -1
  126. package/lib/testing.js +1 -1
  127. package/lib/textfile.js +1 -1
  128. package/lib/toml.js +1 -1
  129. package/lib/typescript/projenrc-ts.js +1 -1
  130. package/lib/typescript/projenrc.js +4 -2
  131. package/lib/typescript/typescript-typedoc.js +1 -1
  132. package/lib/typescript/typescript.js +13 -7
  133. package/lib/util/synth.js +5 -4
  134. package/lib/util.d.ts +20 -2
  135. package/lib/util.js +20 -8
  136. package/lib/version.js +2 -2
  137. package/lib/vscode/devcontainer.js +1 -1
  138. package/lib/vscode/extensions.js +1 -1
  139. package/lib/vscode/launch-config.js +1 -1
  140. package/lib/vscode/settings.js +1 -1
  141. package/lib/vscode/vscode.js +1 -1
  142. package/lib/web/next.js +3 -3
  143. package/lib/web/postcss.js +1 -1
  144. package/lib/web/react.js +4 -4
  145. package/lib/web/tailwind.js +1 -1
  146. package/lib/xmlfile.js +1 -1
  147. package/lib/yaml.js +1 -1
  148. package/node_modules/pump/index.js +1 -1
  149. package/node_modules/pump/package.json +1 -1
  150. package/package.json +6 -3
  151. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  152. package/node_modules/balanced-match/LICENSE.md +0 -21
  153. package/node_modules/balanced-match/README.md +0 -97
  154. package/node_modules/balanced-match/index.js +0 -62
  155. package/node_modules/balanced-match/package.json +0 -48
  156. package/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
  157. package/node_modules/brace-expansion/LICENSE +0 -21
  158. package/node_modules/brace-expansion/README.md +0 -135
  159. package/node_modules/brace-expansion/index.js +0 -203
  160. package/node_modules/brace-expansion/package.json +0 -46
  161. package/node_modules/fs.realpath/LICENSE +0 -43
  162. package/node_modules/fs.realpath/README.md +0 -33
  163. package/node_modules/fs.realpath/index.js +0 -66
  164. package/node_modules/fs.realpath/old.js +0 -303
  165. package/node_modules/fs.realpath/package.json +0 -26
  166. package/node_modules/glob/LICENSE +0 -15
  167. package/node_modules/glob/README.md +0 -399
  168. package/node_modules/glob/common.js +0 -244
  169. package/node_modules/glob/glob.js +0 -790
  170. package/node_modules/glob/node_modules/minimatch/LICENSE +0 -15
  171. package/node_modules/glob/node_modules/minimatch/README.md +0 -259
  172. package/node_modules/glob/node_modules/minimatch/lib/path.js +0 -4
  173. package/node_modules/glob/node_modules/minimatch/minimatch.js +0 -944
  174. package/node_modules/glob/node_modules/minimatch/package.json +0 -35
  175. package/node_modules/glob/package.json +0 -55
  176. package/node_modules/glob/sync.js +0 -486
  177. package/node_modules/inflight/LICENSE +0 -15
  178. package/node_modules/inflight/README.md +0 -37
  179. package/node_modules/inflight/inflight.js +0 -54
  180. package/node_modules/inflight/package.json +0 -29
  181. package/node_modules/inherits/LICENSE +0 -16
  182. package/node_modules/inherits/README.md +0 -42
  183. package/node_modules/inherits/inherits.js +0 -9
  184. package/node_modules/inherits/inherits_browser.js +0 -27
  185. package/node_modules/inherits/package.json +0 -29
  186. /package/node_modules/{fast-glob/node_modules/glob-parent → glob-parent}/LICENSE +0 -0
  187. /package/node_modules/{fast-glob/node_modules/glob-parent → glob-parent}/README.md +0 -0
  188. /package/node_modules/{fast-glob/node_modules/glob-parent → glob-parent}/index.js +0 -0
  189. /package/node_modules/{fast-glob/node_modules/glob-parent → glob-parent}/package.json +0 -0
  190. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/LICENSE +0 -0
  191. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/README.md +0 -0
  192. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/index.js +0 -0
  193. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/append/constant.js +0 -0
  194. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/append.js +0 -0
  195. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/count.js +0 -0
  196. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/help.js +0 -0
  197. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/store/constant.js +0 -0
  198. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/store/false.js +0 -0
  199. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/store/true.js +0 -0
  200. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/store.js +0 -0
  201. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/subparsers.js +0 -0
  202. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/version.js +0 -0
  203. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action.js +0 -0
  204. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action_container.js +0 -0
  205. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/argparse.js +0 -0
  206. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/argument/error.js +0 -0
  207. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/argument/exclusive.js +0 -0
  208. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/argument/group.js +0 -0
  209. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/argument_parser.js +0 -0
  210. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/const.js +0 -0
  211. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/help/added_formatters.js +0 -0
  212. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/help/formatter.js +0 -0
  213. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/namespace.js +0 -0
  214. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/utils.js +0 -0
  215. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/package.json +0 -0
  216. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/LICENSE +0 -0
  217. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/README.md +0 -0
  218. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/bin/js-yaml.js +0 -0
  219. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/dist/js-yaml.js +0 -0
  220. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/dist/js-yaml.min.js +0 -0
  221. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/index.js +0 -0
  222. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/common.js +0 -0
  223. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/dumper.js +0 -0
  224. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/exception.js +0 -0
  225. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/loader.js +0 -0
  226. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/mark.js +0 -0
  227. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema/core.js +0 -0
  228. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema/default_full.js +0 -0
  229. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema/default_safe.js +0 -0
  230. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema/failsafe.js +0 -0
  231. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema/json.js +0 -0
  232. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema.js +0 -0
  233. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/binary.js +0 -0
  234. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/bool.js +0 -0
  235. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/float.js +0 -0
  236. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/int.js +0 -0
  237. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/js/function.js +0 -0
  238. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/js/regexp.js +0 -0
  239. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/js/undefined.js +0 -0
  240. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/map.js +0 -0
  241. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/merge.js +0 -0
  242. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/null.js +0 -0
  243. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/omap.js +0 -0
  244. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/pairs.js +0 -0
  245. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/seq.js +0 -0
  246. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/set.js +0 -0
  247. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/str.js +0 -0
  248. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/timestamp.js +0 -0
  249. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type.js +0 -0
  250. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml.js +0 -0
  251. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/package.json +0 -0
@@ -1,35 +0,0 @@
1
- {
2
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
3
- "name": "minimatch",
4
- "description": "a glob matcher in javascript",
5
- "publishConfig": {
6
- "tag": "legacy-v5"
7
- },
8
- "version": "5.1.6",
9
- "repository": {
10
- "type": "git",
11
- "url": "git://github.com/isaacs/minimatch.git"
12
- },
13
- "main": "minimatch.js",
14
- "scripts": {
15
- "test": "tap",
16
- "snap": "tap",
17
- "preversion": "npm test",
18
- "postversion": "npm publish",
19
- "prepublishOnly": "git push origin --follow-tags"
20
- },
21
- "engines": {
22
- "node": ">=10"
23
- },
24
- "dependencies": {
25
- "brace-expansion": "^2.0.1"
26
- },
27
- "devDependencies": {
28
- "tap": "^16.3.2"
29
- },
30
- "license": "ISC",
31
- "files": [
32
- "minimatch.js",
33
- "lib"
34
- ]
35
- }
@@ -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": "8.1.0",
6
- "repository": {
7
- "type": "git",
8
- "url": "git://github.com/isaacs/node-glob.git"
9
- },
10
- "main": "glob.js",
11
- "files": [
12
- "glob.js",
13
- "sync.js",
14
- "common.js"
15
- ],
16
- "engines": {
17
- "node": ">=12"
18
- },
19
- "dependencies": {
20
- "fs.realpath": "^1.0.0",
21
- "inflight": "^1.0.4",
22
- "inherits": "2",
23
- "minimatch": "^5.0.1",
24
- "once": "^1.3.0"
25
- },
26
- "devDependencies": {
27
- "memfs": "^3.2.0",
28
- "mkdirp": "0",
29
- "rimraf": "^2.2.8",
30
- "tap": "^16.0.1",
31
- "tick": "0.0.6"
32
- },
33
- "tap": {
34
- "before": "test/00-setup.js",
35
- "after": "test/zz-cleanup.js",
36
- "statements": 90,
37
- "branches": 90,
38
- "functions": 90,
39
- "lines": 90,
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').isAbsolute
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
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.
@@ -1,37 +0,0 @@
1
- # inflight
2
-
3
- Add callbacks to requests in flight to avoid async duplication
4
-
5
- ## USAGE
6
-
7
- ```javascript
8
- var inflight = require('inflight')
9
-
10
- // some request that does some stuff
11
- function req(key, callback) {
12
- // key is any random string. like a url or filename or whatever.
13
- //
14
- // will return either a falsey value, indicating that the
15
- // request for this key is already in flight, or a new callback
16
- // which when called will call all callbacks passed to inflightk
17
- // with the same key
18
- callback = inflight(key, callback)
19
-
20
- // If we got a falsey value back, then there's already a req going
21
- if (!callback) return
22
-
23
- // this is where you'd fetch the url or whatever
24
- // callback is also once()-ified, so it can safely be assigned
25
- // to multiple events etc. First call wins.
26
- setTimeout(function() {
27
- callback(null, key)
28
- }, 100)
29
- }
30
-
31
- // only assigns a single setTimeout
32
- // when it dings, all cbs get called
33
- req('foo', cb1)
34
- req('foo', cb2)
35
- req('foo', cb3)
36
- req('foo', cb4)
37
- ```
@@ -1,54 +0,0 @@
1
- var wrappy = require('wrappy')
2
- var reqs = Object.create(null)
3
- var once = require('once')
4
-
5
- module.exports = wrappy(inflight)
6
-
7
- function inflight (key, cb) {
8
- if (reqs[key]) {
9
- reqs[key].push(cb)
10
- return null
11
- } else {
12
- reqs[key] = [cb]
13
- return makeres(key)
14
- }
15
- }
16
-
17
- function makeres (key) {
18
- return once(function RES () {
19
- var cbs = reqs[key]
20
- var len = cbs.length
21
- var args = slice(arguments)
22
-
23
- // XXX It's somewhat ambiguous whether a new callback added in this
24
- // pass should be queued for later execution if something in the
25
- // list of callbacks throws, or if it should just be discarded.
26
- // However, it's such an edge case that it hardly matters, and either
27
- // choice is likely as surprising as the other.
28
- // As it happens, we do go ahead and schedule it for later execution.
29
- try {
30
- for (var i = 0; i < len; i++) {
31
- cbs[i].apply(null, args)
32
- }
33
- } finally {
34
- if (cbs.length > len) {
35
- // added more in the interim.
36
- // de-zalgo, just in case, but don't call again.
37
- cbs.splice(0, len)
38
- process.nextTick(function () {
39
- RES.apply(null, args)
40
- })
41
- } else {
42
- delete reqs[key]
43
- }
44
- }
45
- })
46
- }
47
-
48
- function slice (args) {
49
- var length = args.length
50
- var array = []
51
-
52
- for (var i = 0; i < length; i++) array[i] = args[i]
53
- return array
54
- }
@@ -1,29 +0,0 @@
1
- {
2
- "name": "inflight",
3
- "version": "1.0.6",
4
- "description": "Add callbacks to requests in flight to avoid async duplication",
5
- "main": "inflight.js",
6
- "files": [
7
- "inflight.js"
8
- ],
9
- "dependencies": {
10
- "once": "^1.3.0",
11
- "wrappy": "1"
12
- },
13
- "devDependencies": {
14
- "tap": "^7.1.2"
15
- },
16
- "scripts": {
17
- "test": "tap test.js --100"
18
- },
19
- "repository": {
20
- "type": "git",
21
- "url": "https://github.com/npm/inflight.git"
22
- },
23
- "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
24
- "bugs": {
25
- "url": "https://github.com/isaacs/inflight/issues"
26
- },
27
- "homepage": "https://github.com/isaacs/inflight",
28
- "license": "ISC"
29
- }