projen 0.101.3 → 0.101.5

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 (343) hide show
  1. package/.jsii +928 -160
  2. package/lib/ai-instructions.js +2 -2
  3. package/lib/awscdk/auto-discover.js +6 -6
  4. package/lib/awscdk/awscdk-app-java.js +1 -1
  5. package/lib/awscdk/awscdk-app-py.js +1 -1
  6. package/lib/awscdk/awscdk-app-ts.js +1 -1
  7. package/lib/awscdk/awscdk-construct.js +1 -1
  8. package/lib/awscdk/awscdk-deps-java.js +1 -1
  9. package/lib/awscdk/awscdk-deps-js.js +1 -1
  10. package/lib/awscdk/awscdk-deps-py.js +1 -1
  11. package/lib/awscdk/awscdk-deps.js +1 -1
  12. package/lib/awscdk/cdk-config.js +3 -3
  13. package/lib/awscdk/cdk-tasks.js +1 -1
  14. package/lib/awscdk/integration-test.js +1 -1
  15. package/lib/awscdk/lambda-extension.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/awscdk/private/feature-flags-v2.const.d.ts +1 -1
  18. package/lib/awscdk/private/feature-flags-v2.const.js +2 -2
  19. package/lib/build/build-workflow.js +1 -1
  20. package/lib/cdk/auto-discover-base.js +2 -2
  21. package/lib/cdk/construct-lib.js +1 -1
  22. package/lib/cdk/integration-test-base.js +1 -1
  23. package/lib/cdk/jsii-build.js +1 -1
  24. package/lib/cdk/jsii-docgen.js +1 -1
  25. package/lib/cdk/jsii-project.js +1 -1
  26. package/lib/cdk8s/auto-discover.js +2 -2
  27. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  28. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  29. package/lib/cdk8s/cdk8s-construct.js +1 -1
  30. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  31. package/lib/cdk8s/cdk8s-deps.js +1 -1
  32. package/lib/cdk8s/integration-test.js +1 -1
  33. package/lib/cdktf/cdktf-construct.js +1 -1
  34. package/lib/circleci/circleci.js +1 -1
  35. package/lib/cli/cmds/run-task.js +2 -2
  36. package/lib/component.d.ts +70 -0
  37. package/lib/component.js +183 -3
  38. package/lib/dependencies.js +1 -1
  39. package/lib/dev-env.js +1 -1
  40. package/lib/docker-compose/docker-compose-service.js +1 -1
  41. package/lib/docker-compose/docker-compose.js +1 -1
  42. package/lib/file.js +1 -1
  43. package/lib/gitattributes.js +1 -1
  44. package/lib/github/actions-provider.js +1 -1
  45. package/lib/github/auto-approve.js +1 -1
  46. package/lib/github/auto-merge.js +1 -1
  47. package/lib/github/auto-queue.js +1 -1
  48. package/lib/github/dependabot.js +1 -1
  49. package/lib/github/dependency-review.js +1 -1
  50. package/lib/github/github-credentials.js +1 -1
  51. package/lib/github/github-project.js +1 -1
  52. package/lib/github/github.js +1 -1
  53. package/lib/github/merge-queue.js +1 -1
  54. package/lib/github/mergify.js +1 -1
  55. package/lib/github/pr-template.js +1 -1
  56. package/lib/github/pull-request-backport.js +1 -1
  57. package/lib/github/pull-request-lint.js +1 -1
  58. package/lib/github/stale.js +1 -1
  59. package/lib/github/task-workflow-job.js +1 -1
  60. package/lib/github/task-workflow.js +1 -1
  61. package/lib/github/workflow-actions.js +1 -1
  62. package/lib/github/workflow-jobs.js +1 -1
  63. package/lib/github/workflow-steps.js +1 -1
  64. package/lib/github/workflows.js +1 -1
  65. package/lib/gitlab/configuration.js +1 -1
  66. package/lib/gitlab/gitlab-configuration.js +1 -1
  67. package/lib/gitlab/nested-configuration.js +1 -1
  68. package/lib/gitpod.js +1 -1
  69. package/lib/ignore-file.js +1 -1
  70. package/lib/index.d.ts +1 -0
  71. package/lib/index.js +1 -1
  72. package/lib/ini.js +1 -1
  73. package/lib/java/java-project.js +1 -1
  74. package/lib/java/junit.js +1 -1
  75. package/lib/java/maven-compile.js +1 -1
  76. package/lib/java/maven-packaging.js +1 -1
  77. package/lib/java/maven-sample.js +1 -1
  78. package/lib/java/pom.js +2 -2
  79. package/lib/java/projenrc.js +1 -1
  80. package/lib/javascript/biome/biome.js +1 -1
  81. package/lib/javascript/bundler.js +1 -1
  82. package/lib/javascript/eslint.js +1 -1
  83. package/lib/javascript/jest.js +4 -4
  84. package/lib/javascript/license-checker.js +1 -1
  85. package/lib/javascript/node-package.js +1 -1
  86. package/lib/javascript/node-project.js +3 -3
  87. package/lib/javascript/npm-config.js +1 -1
  88. package/lib/javascript/prettier.js +1 -1
  89. package/lib/javascript/projenrc.js +1 -1
  90. package/lib/javascript/typescript-config.js +2 -2
  91. package/lib/javascript/upgrade-dependencies.js +16 -14
  92. package/lib/javascript/util.d.ts +1 -1
  93. package/lib/javascript/util.js +5 -5
  94. package/lib/javascript/yarnrc.js +1 -1
  95. package/lib/json-patch.js +1 -1
  96. package/lib/json.js +1 -1
  97. package/lib/license.js +1 -1
  98. package/lib/logger.js +1 -1
  99. package/lib/makefile.js +1 -1
  100. package/lib/object-file.js +1 -1
  101. package/lib/project-build.js +1 -1
  102. package/lib/project-tree.js +1 -1
  103. package/lib/project.js +8 -3
  104. package/lib/projects.js +1 -1
  105. package/lib/projenrc-json.js +1 -1
  106. package/lib/projenrc.js +1 -1
  107. package/lib/python/pip.js +1 -1
  108. package/lib/python/poetry.js +2 -2
  109. package/lib/python/projenrc.js +1 -1
  110. package/lib/python/pyproject-toml-file.js +1 -1
  111. package/lib/python/pytest-sample.js +1 -1
  112. package/lib/python/pytest.js +1 -1
  113. package/lib/python/python-project.d.ts +1 -1
  114. package/lib/python/python-project.js +2 -2
  115. package/lib/python/python-sample.js +1 -1
  116. package/lib/python/requirements-file.js +1 -1
  117. package/lib/python/setuppy.js +1 -1
  118. package/lib/python/setuptools.js +1 -1
  119. package/lib/python/uv.js +1 -1
  120. package/lib/python/venv.js +1 -1
  121. package/lib/readme.js +1 -1
  122. package/lib/release/publisher.js +1 -1
  123. package/lib/release/release-trigger.js +1 -1
  124. package/lib/release/release.js +1 -1
  125. package/lib/renovatebot.js +1 -1
  126. package/lib/run-task.cjs +57 -9
  127. package/lib/sample-file.js +2 -2
  128. package/lib/script-runner.d.ts +35 -0
  129. package/lib/script-runner.js +22 -0
  130. package/lib/source-code.js +1 -1
  131. package/lib/task-shell.js +1 -1
  132. package/lib/task.js +1 -1
  133. package/lib/tasks.js +1 -1
  134. package/lib/testing.js +1 -1
  135. package/lib/textfile.js +1 -1
  136. package/lib/toml.js +1 -1
  137. package/lib/typescript/index.d.ts +1 -0
  138. package/lib/typescript/index.js +2 -1
  139. package/lib/typescript/projenrc-ts.d.ts +11 -3
  140. package/lib/typescript/projenrc-ts.js +38 -6
  141. package/lib/typescript/projenrc.d.ts +14 -3
  142. package/lib/typescript/projenrc.js +36 -18
  143. package/lib/typescript/typescript-runner.d.ts +146 -0
  144. package/lib/typescript/typescript-runner.js +134 -0
  145. package/lib/typescript/typescript-typedoc.js +1 -1
  146. package/lib/typescript/typescript.d.ts +14 -0
  147. package/lib/typescript/typescript.js +12 -6
  148. package/lib/util/recreate.d.ts +30 -0
  149. package/lib/util/recreate.js +38 -0
  150. package/lib/version.js +2 -2
  151. package/lib/vscode/devcontainer.js +1 -1
  152. package/lib/vscode/extensions.js +1 -1
  153. package/lib/vscode/launch-config.js +1 -1
  154. package/lib/vscode/settings.js +1 -1
  155. package/lib/vscode/vscode.js +1 -1
  156. package/lib/web/next.js +3 -3
  157. package/lib/web/postcss.js +1 -1
  158. package/lib/web/react.js +3 -3
  159. package/lib/web/tailwind.js +1 -1
  160. package/lib/xmlfile.js +1 -1
  161. package/lib/yaml.js +1 -1
  162. package/node_modules/dax/{script/deps/jsr.io/@david/shell/0.5.2 → esm/deps/jsr.io/@david/shell/0.5.4}/internal.d.ts.map +1 -1
  163. package/node_modules/dax/{script/deps/jsr.io/@david/shell/0.5.2 → esm/deps/jsr.io/@david/shell/0.5.4}/mod.d.ts.map +1 -1
  164. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/byteRingBuffer.d.ts.map +1 -1
  165. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/command.d.ts.map +1 -1
  166. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commandHandler.d.ts.map +1 -1
  167. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/args.d.ts.map +1 -1
  168. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cat.d.ts.map +1 -1
  169. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cd.d.ts.map +1 -1
  170. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cpMv.d.ts.map +1 -1
  171. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/echo.d.ts.map +1 -1
  172. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/executable.d.ts.map +1 -1
  173. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/exit.d.ts.map +1 -1
  174. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/export.d.ts.map +1 -1
  175. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/mkdir.d.ts.map +1 -1
  176. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/printenv.d.ts.map +1 -1
  177. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/pwd.d.ts.map +1 -1
  178. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/rm.d.ts.map +1 -1
  179. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/set.d.ts.map +1 -1
  180. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/shopt.d.ts.map +1 -1
  181. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/sleep.d.ts.map +1 -1
  182. package/node_modules/dax/{script/deps/jsr.io/@david/shell/0.5.2 → esm/deps/jsr.io/@david/shell/0.5.4}/src/commands/test.d.ts.map +1 -1
  183. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/touch.d.ts.map +1 -1
  184. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/unset.d.ts.map +1 -1
  185. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/which.d.ts.map +1 -1
  186. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/common.d.ts.map +1 -1
  187. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/dollar.d.ts.map +1 -1
  188. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/fsFile.d.ts.map +1 -1
  189. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/glob.d.ts.map +1 -1
  190. package/node_modules/dax/esm/deps/jsr.io/@david/shell/0.5.4/src/lib/rs_lib.d.ts.map +1 -0
  191. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/lib/rs_lib.internal.d.ts.map +1 -1
  192. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/lineRingBuffer.d.ts.map +1 -1
  193. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/pipes.d.ts.map +1 -1
  194. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/result.d.ts.map +1 -1
  195. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/shell.d.ts +1 -1
  196. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/shell.d.ts.map +1 -1
  197. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/signal.d.ts.map +1 -1
  198. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/spawn.d.ts.map +1 -1
  199. package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/streams.d.ts.map +1 -1
  200. package/node_modules/dax/{script/deps/jsr.io/@david/which/0.7.0 → esm/deps/jsr.io/@david/which/0.7.1}/mod.d.ts.map +1 -1
  201. package/node_modules/dax/esm/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/_common/glob_to_reg_exp.d.ts.map +1 -1
  202. package/node_modules/dax/esm/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/glob_to_regexp.d.ts.map +1 -1
  203. package/node_modules/dax/{script/deps/jsr.io/@std/path/1.1.5 → esm/deps/jsr.io/@std/path/1.1.6}/posix/glob_to_regexp.d.ts.map +1 -1
  204. package/node_modules/dax/{script/deps/jsr.io/@std/path/1.1.5 → esm/deps/jsr.io/@std/path/1.1.6}/windows/glob_to_regexp.d.ts.map +1 -1
  205. package/node_modules/dax/esm/mod.d.ts +5 -5
  206. package/node_modules/dax/esm/mod.js +92 -45
  207. package/node_modules/dax/esm/src/common.d.ts +1 -1
  208. package/node_modules/dax/esm/src/console/utils.d.ts +1 -1
  209. package/node_modules/dax/esm/src/request.d.ts +2 -2
  210. package/node_modules/dax/package.json +1 -1
  211. package/node_modules/dax/{esm/deps/jsr.io/@david/shell/0.5.2 → script/deps/jsr.io/@david/shell/0.5.4}/internal.d.ts.map +1 -1
  212. package/node_modules/dax/{esm/deps/jsr.io/@david/shell/0.5.2 → script/deps/jsr.io/@david/shell/0.5.4}/mod.d.ts.map +1 -1
  213. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/byteRingBuffer.d.ts.map +1 -1
  214. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/command.d.ts.map +1 -1
  215. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commandHandler.d.ts.map +1 -1
  216. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/args.d.ts.map +1 -1
  217. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cat.d.ts.map +1 -1
  218. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cd.d.ts.map +1 -1
  219. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cpMv.d.ts.map +1 -1
  220. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/echo.d.ts.map +1 -1
  221. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/executable.d.ts.map +1 -1
  222. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/exit.d.ts.map +1 -1
  223. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/export.d.ts.map +1 -1
  224. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/mkdir.d.ts.map +1 -1
  225. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/printenv.d.ts.map +1 -1
  226. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/pwd.d.ts.map +1 -1
  227. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/rm.d.ts.map +1 -1
  228. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/set.d.ts.map +1 -1
  229. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/shopt.d.ts.map +1 -1
  230. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/sleep.d.ts.map +1 -1
  231. package/node_modules/dax/{esm/deps/jsr.io/@david/shell/0.5.2 → script/deps/jsr.io/@david/shell/0.5.4}/src/commands/test.d.ts.map +1 -1
  232. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/touch.d.ts.map +1 -1
  233. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/unset.d.ts.map +1 -1
  234. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/which.d.ts.map +1 -1
  235. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/common.d.ts.map +1 -1
  236. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/dollar.d.ts.map +1 -1
  237. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/fsFile.d.ts.map +1 -1
  238. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/glob.d.ts.map +1 -1
  239. package/node_modules/dax/script/deps/jsr.io/@david/shell/0.5.4/src/lib/rs_lib.d.ts.map +1 -0
  240. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/lib/rs_lib.internal.d.ts.map +1 -1
  241. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/lineRingBuffer.d.ts.map +1 -1
  242. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/pipes.d.ts.map +1 -1
  243. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/result.d.ts.map +1 -1
  244. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/shell.d.ts +1 -1
  245. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/shell.d.ts.map +1 -1
  246. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/signal.d.ts.map +1 -1
  247. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/spawn.d.ts.map +1 -1
  248. package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/streams.d.ts.map +1 -1
  249. package/node_modules/dax/{esm/deps/jsr.io/@david/which/0.7.0 → script/deps/jsr.io/@david/which/0.7.1}/mod.d.ts.map +1 -1
  250. package/node_modules/dax/script/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/_common/glob_to_reg_exp.d.ts.map +1 -1
  251. package/node_modules/dax/script/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/glob_to_regexp.d.ts.map +1 -1
  252. package/node_modules/dax/{esm/deps/jsr.io/@std/path/1.1.5 → script/deps/jsr.io/@std/path/1.1.6}/posix/glob_to_regexp.d.ts.map +1 -1
  253. package/node_modules/dax/{esm/deps/jsr.io/@std/path/1.1.5 → script/deps/jsr.io/@std/path/1.1.6}/windows/glob_to_regexp.d.ts.map +1 -1
  254. package/node_modules/dax/script/mod.d.ts +5 -5
  255. package/node_modules/dax/script/mod.js +131 -82
  256. package/node_modules/dax/script/src/common.d.ts +1 -1
  257. package/node_modules/dax/script/src/console/utils.d.ts +1 -1
  258. package/node_modules/dax/script/src/request.d.ts +2 -2
  259. package/package.json +8 -7
  260. package/node_modules/dax/esm/deps/jsr.io/@david/shell/0.5.2/src/lib/rs_lib.d.ts.map +0 -1
  261. package/node_modules/dax/script/deps/jsr.io/@david/shell/0.5.2/src/lib/rs_lib.d.ts.map +0 -1
  262. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/internal.d.ts +0 -0
  263. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/mod.d.ts +0 -0
  264. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/byteRingBuffer.d.ts +0 -0
  265. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/command.d.ts +0 -0
  266. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commandHandler.d.ts +0 -0
  267. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/args.d.ts +0 -0
  268. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cat.d.ts +0 -0
  269. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cd.d.ts +0 -0
  270. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cpMv.d.ts +0 -0
  271. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/echo.d.ts +0 -0
  272. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/executable.d.ts +0 -0
  273. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/exit.d.ts +0 -0
  274. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/export.d.ts +0 -0
  275. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/mkdir.d.ts +0 -0
  276. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/printenv.d.ts +0 -0
  277. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/pwd.d.ts +0 -0
  278. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/rm.d.ts +0 -0
  279. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/set.d.ts +0 -0
  280. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/shopt.d.ts +0 -0
  281. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/sleep.d.ts +0 -0
  282. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/test.d.ts +0 -0
  283. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/touch.d.ts +0 -0
  284. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/unset.d.ts +0 -0
  285. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/which.d.ts +0 -0
  286. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/common.d.ts +0 -0
  287. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/dollar.d.ts +0 -0
  288. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/fsFile.d.ts +0 -0
  289. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/glob.d.ts +0 -0
  290. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/lib/rs_lib.d.ts +0 -0
  291. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/lib/rs_lib.internal.d.ts +0 -0
  292. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/lineRingBuffer.d.ts +0 -0
  293. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/pipes.d.ts +0 -0
  294. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/result.d.ts +0 -0
  295. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/signal.d.ts +0 -0
  296. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/spawn.d.ts +0 -0
  297. /package/node_modules/dax/esm/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/streams.d.ts +0 -0
  298. /package/node_modules/dax/esm/deps/jsr.io/@david/which/{0.7.0 → 0.7.1}/mod.d.ts +0 -0
  299. /package/node_modules/dax/esm/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/_common/glob_to_reg_exp.d.ts +0 -0
  300. /package/node_modules/dax/esm/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/glob_to_regexp.d.ts +0 -0
  301. /package/node_modules/dax/esm/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/posix/glob_to_regexp.d.ts +0 -0
  302. /package/node_modules/dax/esm/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/windows/glob_to_regexp.d.ts +0 -0
  303. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/internal.d.ts +0 -0
  304. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/mod.d.ts +0 -0
  305. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/byteRingBuffer.d.ts +0 -0
  306. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/command.d.ts +0 -0
  307. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commandHandler.d.ts +0 -0
  308. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/args.d.ts +0 -0
  309. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cat.d.ts +0 -0
  310. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cd.d.ts +0 -0
  311. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/cpMv.d.ts +0 -0
  312. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/echo.d.ts +0 -0
  313. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/executable.d.ts +0 -0
  314. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/exit.d.ts +0 -0
  315. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/export.d.ts +0 -0
  316. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/mkdir.d.ts +0 -0
  317. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/printenv.d.ts +0 -0
  318. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/pwd.d.ts +0 -0
  319. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/rm.d.ts +0 -0
  320. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/set.d.ts +0 -0
  321. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/shopt.d.ts +0 -0
  322. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/sleep.d.ts +0 -0
  323. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/test.d.ts +0 -0
  324. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/touch.d.ts +0 -0
  325. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/unset.d.ts +0 -0
  326. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/commands/which.d.ts +0 -0
  327. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/common.d.ts +0 -0
  328. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/dollar.d.ts +0 -0
  329. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/fsFile.d.ts +0 -0
  330. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/glob.d.ts +0 -0
  331. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/lib/rs_lib.d.ts +0 -0
  332. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/lib/rs_lib.internal.d.ts +0 -0
  333. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/lineRingBuffer.d.ts +0 -0
  334. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/pipes.d.ts +0 -0
  335. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/result.d.ts +0 -0
  336. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/signal.d.ts +0 -0
  337. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/spawn.d.ts +0 -0
  338. /package/node_modules/dax/script/deps/jsr.io/@david/shell/{0.5.2 → 0.5.4}/src/streams.d.ts +0 -0
  339. /package/node_modules/dax/script/deps/jsr.io/@david/which/{0.7.0 → 0.7.1}/mod.d.ts +0 -0
  340. /package/node_modules/dax/script/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/_common/glob_to_reg_exp.d.ts +0 -0
  341. /package/node_modules/dax/script/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/glob_to_regexp.d.ts +0 -0
  342. /package/node_modules/dax/script/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/posix/glob_to_regexp.d.ts +0 -0
  343. /package/node_modules/dax/script/deps/jsr.io/@std/path/{1.1.5 → 1.1.6}/windows/glob_to_regexp.d.ts +0 -0
package/lib/readme.js CHANGED
@@ -10,7 +10,7 @@ const sample_file_1 = require("./sample-file");
10
10
  * @param text - The initial contents of the README.md file. Defaults to '# replace this'
11
11
  */
12
12
  class SampleReadme extends sample_file_1.SampleFile {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleReadme", version: "0.101.3" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleReadme", version: "0.101.5" };
14
14
  constructor(project, props) {
15
15
  super(project, props?.filename ?? "README.md", {
16
16
  contents: props?.contents ?? "# replace this",
@@ -48,7 +48,7 @@ const PUBLISH_JOB_PREFIX = "release_";
48
48
  * Under the hood, it uses https://github.com/cdklabs/publib
49
49
  */
50
50
  class Publisher extends component_1.Component {
51
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.release.Publisher", version: "0.101.3" };
51
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.release.Publisher", version: "0.101.5" };
52
52
  static PUBLISH_GIT_TASK_NAME = "publish:git";
53
53
  buildJobId;
54
54
  artifactName;
@@ -7,7 +7,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7
7
  * and release artifact automation
8
8
  */
9
9
  class ReleaseTrigger {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.release.ReleaseTrigger", version: "0.101.3" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.release.ReleaseTrigger", version: "0.101.5" };
11
11
  /**
12
12
  * Creates a manual release trigger.
13
13
  *
@@ -64,7 +64,7 @@ const DEPENDENT_JOB_CONDITIONAL = `needs.${BUILD_JOBID}.outputs.${TAG_EXISTS_OUT
64
64
  * By default, no branches are released. To add branches, call `addBranch()`.
65
65
  */
66
66
  class Release extends component_1.Component {
67
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.release.Release", version: "0.101.3" };
67
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.release.Release", version: "0.101.5" };
68
68
  static ANTI_TAMPER_CMD = "git diff --ignore-space-at-eol --exit-code";
69
69
  /**
70
70
  * Returns the `Release` component of a project or `undefined` if the project
@@ -68,7 +68,7 @@ var RenovatebotMinimumReleaseAgeBehaviour;
68
68
  * Ignores the versions controlled by Projen.
69
69
  */
70
70
  class Renovatebot extends component_1.Component {
71
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Renovatebot", version: "0.101.3" };
71
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Renovatebot", version: "0.101.5" };
72
72
  /**
73
73
  * The file holding the renovatebot configuration
74
74
  */
package/lib/run-task.cjs CHANGED
@@ -1615,6 +1615,7 @@ var require_package = __commonJS({
1615
1615
  "integ:java": "node ./projen.js integ:java",
1616
1616
  "integ:node": "node ./projen.js integ:node",
1617
1617
  "integ:python": "node ./projen.js integ:python",
1618
+ "integ:windows-shell-syntax": "node ./projen.js integ:windows-shell-syntax",
1618
1619
  package: "node ./projen.js package",
1619
1620
  "package-all": "node ./projen.js package-all",
1620
1621
  "package:go": "node ./projen.js package:go",
@@ -1641,7 +1642,7 @@ var require_package = __commonJS({
1641
1642
  },
1642
1643
  devDependencies: {
1643
1644
  "@biomejs/biome": "^2",
1644
- "@jsii/check-node": "^1.137.0",
1645
+ "@jsii/check-node": "^1.138.0",
1645
1646
  "@types/conventional-changelog-config-spec": "^2.1.5",
1646
1647
  "@types/ini": "^1.3.34",
1647
1648
  "@types/jest": "^30",
@@ -1651,7 +1652,7 @@ var require_package = __commonJS({
1651
1652
  "@types/yargs": "^16.0.11",
1652
1653
  "@typescript-eslint/eslint-plugin": "^8",
1653
1654
  "@typescript-eslint/parser": "^8",
1654
- "aws-cdk-lib": "^2.260.0",
1655
+ "aws-cdk-lib": "^2.261.0",
1655
1656
  "commit-and-tag-version": "^12",
1656
1657
  esbuild: "^0.28.1",
1657
1658
  eslint: "^9",
@@ -1662,16 +1663,16 @@ var require_package = __commonJS({
1662
1663
  jest: "^30",
1663
1664
  "jest-junit": "^17",
1664
1665
  jsii: "6.0.x",
1665
- "jsii-diff": "^1.137.0",
1666
+ "jsii-diff": "^1.138.0",
1666
1667
  "jsii-docgen": "^10.5.0",
1667
- "jsii-pacmak": "^1.137.0",
1668
+ "jsii-pacmak": "^1.138.0",
1668
1669
  "jsii-rosetta": "6.0.x",
1669
1670
  json2jsii: "^0.5.19",
1670
1671
  "license-checker": "^25.0.1",
1671
1672
  markmac: "^0.1.659",
1672
1673
  prettier: "^3",
1673
1674
  "ts-jest": "^29",
1674
- "ts-node": "^10.9.2",
1675
+ tsx: "^4.23.0",
1675
1676
  typescript: "6.0.x"
1676
1677
  },
1677
1678
  peerDependencies: {
@@ -1684,7 +1685,7 @@ var require_package = __commonJS({
1684
1685
  "comment-json": "4.2.2",
1685
1686
  constructs: "^10.5.0",
1686
1687
  "conventional-changelog-config-spec": "^2.1.0",
1687
- dax: "^0.48.3",
1688
+ dax: "^0.48.6",
1688
1689
  "fast-glob": "^3.3.3",
1689
1690
  "fast-json-patch": "^3.1.1",
1690
1691
  ini: "^2.0.0",
@@ -1733,7 +1734,7 @@ var require_package = __commonJS({
1733
1734
  publishConfig: {
1734
1735
  access: "public"
1735
1736
  },
1736
- version: "0.101.3",
1737
+ version: "0.101.5",
1737
1738
  jest: {
1738
1739
  coverageProvider: "v8",
1739
1740
  coverageReporters: [
@@ -2817,11 +2818,20 @@ function splitEnvValue(value, isWindows5) {
2817
2818
  return value.split(envValueSeparator).map((item) => item.trim()).filter((item) => item.length > 0);
2818
2819
  }
2819
2820
  function normalizeDir(dirPath, pathSeparator) {
2821
+ if (pathSeparator === "\\" && dirPath.includes("/")) {
2822
+ dirPath = normalizeWindowsSeparators(dirPath, pathSeparator);
2823
+ }
2820
2824
  if (!dirPath.endsWith(pathSeparator)) {
2821
2825
  dirPath += pathSeparator;
2822
2826
  }
2823
2827
  return dirPath;
2824
2828
  }
2829
+ function normalizeWindowsSeparators(dirPath, pathSeparator) {
2830
+ const isUncRoot = /^[/\\]{2}/.test(dirPath);
2831
+ const head = isUncRoot ? pathSeparator + pathSeparator : "";
2832
+ const rest = isUncRoot ? dirPath.slice(2) : dirPath;
2833
+ return head + rest.replaceAll("/", pathSeparator).replace(/\\+/g, pathSeparator);
2834
+ }
2825
2835
  function checkWindows() {
2826
2836
  const global = dntGlobalThis;
2827
2837
  const platform = global.process?.platform;
@@ -8369,9 +8379,15 @@ async function pipeReadableToWriterSync(readable, writer, signal) {
8369
8379
  function spawnCommand(path62, options) {
8370
8380
  let receivedSignal;
8371
8381
  const isWindowsBatch = isWindows3 && /\.(cmd|bat)$/i.test(path62);
8372
- const child = cp.spawn(isWindowsBatch ? "cmd.exe" : path62, isWindowsBatch ? ["/d", "/s", "/c", path62, ...options.args] : options.args, {
8382
+ const child = cp.spawn(isWindowsBatch ? "cmd.exe" : path62, isWindowsBatch ? getWindowsBatchArgs(path62, options.args) : options.args, {
8373
8383
  cwd: options.cwd,
8374
8384
  env: options.env,
8385
+ // cmd.exe parses its command line differently than the
8386
+ // `CommandLineToArgvW` convention that Node's default escaping assumes, so
8387
+ // escape the arguments ourselves (see `getWindowsBatchArgs`) and tell Node
8388
+ // to pass them through verbatim. Without this, a `.cmd`/`.bat` path or
8389
+ // argument containing a space is split by cmd.exe.
8390
+ windowsVerbatimArguments: isWindowsBatch,
8375
8391
  stdio: [
8376
8392
  toNodeStdio(options.stdin),
8377
8393
  toNodeStdio(options.stdout),
@@ -8408,6 +8424,28 @@ function spawnCommand(path62, options) {
8408
8424
  }
8409
8425
  };
8410
8426
  }
8427
+ function getWindowsBatchArgs(path62, args) {
8428
+ const doubleEscapeMetaChars = /node_modules[\\/]\.bin[\\/][^\\/]+\.cmd$/i.test(path62);
8429
+ const command = [
8430
+ escapeCmdCommand(path62),
8431
+ ...args.map((arg) => escapeCmdArgument(arg, doubleEscapeMetaChars))
8432
+ ].join(" ");
8433
+ return ["/d", "/s", "/c", `"${command}"`];
8434
+ }
8435
+ var cmdMetaCharsRegex = /([()\][%!^"`<>&|;, *?])/g;
8436
+ function escapeCmdCommand(arg) {
8437
+ return arg.replace(cmdMetaCharsRegex, "^$1");
8438
+ }
8439
+ function escapeCmdArgument(arg, doubleEscapeMetaChars) {
8440
+ arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"');
8441
+ arg = arg.replace(/(?=(\\+?)?)\1$/, "$1$1");
8442
+ arg = `"${arg}"`;
8443
+ arg = arg.replace(cmdMetaCharsRegex, "^$1");
8444
+ if (doubleEscapeMetaChars) {
8445
+ arg = arg.replace(cmdMetaCharsRegex, "^$1");
8446
+ }
8447
+ return arg;
8448
+ }
8411
8449
  function toNodeStdio(stdio) {
8412
8450
  switch (stdio) {
8413
8451
  case "inherit":
@@ -10302,7 +10340,8 @@ async function evaluateWordParts(wordParts, context, quoted = false) {
10302
10340
  break;
10303
10341
  }
10304
10342
  case "command":
10305
- throw new Error(`Not implemented: ${stringPart.kind}`);
10343
+ evaluationResult = await evaluateCommandSubstitution(stringPart.value, context);
10344
+ break;
10306
10345
  }
10307
10346
  if (evaluationResult != null) {
10308
10347
  const parts = evaluationResult.split(" ").map((t) => ({
@@ -10326,6 +10365,15 @@ async function evaluateWordParts(wordParts, context, quoted = false) {
10326
10365
  }
10327
10366
  return result;
10328
10367
  }
10368
+ async function evaluateCommandSubstitution(list, context) {
10369
+ const buffer = new Buffer2();
10370
+ const subContext = context.withInner({
10371
+ stdout: new ShellPipeWriter("piped", buffer)
10372
+ });
10373
+ await executeSequentialList(list, subContext);
10374
+ const text = new import_node_util2.TextDecoder().decode(buffer.bytes({ copy: false }));
10375
+ return text.replace(/\s+/g, " ").trim();
10376
+ }
10329
10377
  function isDisposable(value) {
10330
10378
  return value != null && typeof value[Symbol.dispose] === "function";
10331
10379
  }
@@ -45,7 +45,7 @@ const util_1 = require("./util");
45
45
  * Use this for creating example code files or other resources.
46
46
  */
47
47
  class SampleFile extends component_1.Component {
48
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleFile", version: "0.101.3" };
48
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleFile", version: "0.101.5" };
49
49
  filePath;
50
50
  options;
51
51
  /**
@@ -96,7 +96,7 @@ exports.SampleFile = SampleFile;
96
96
  * Renders the given files into the directory if the directory does not exist. Use this to create sample code files
97
97
  */
98
98
  class SampleDir extends component_1.Component {
99
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleDir", version: "0.101.3" };
99
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SampleDir", version: "0.101.5" };
100
100
  dir;
101
101
  options;
102
102
  /**
@@ -0,0 +1,35 @@
1
+ import { FutureComponent } from "./component";
2
+ import type { DependencyRequest } from "./dependencies";
3
+ import type { TaskStep } from "./task-model";
4
+ /**
5
+ * The resolved configuration for running a script.
6
+ */
7
+ export interface RunScriptConfig {
8
+ /**
9
+ * Dependencies required to run the script.
10
+ */
11
+ readonly dependencies: DependencyRequest[];
12
+ /**
13
+ * The task steps to execute the script.
14
+ */
15
+ readonly steps: TaskStep[];
16
+ }
17
+ /**
18
+ * A script runner that can produce the configuration to execute a file of a
19
+ * particular type.
20
+ */
21
+ export interface IScriptRunner {
22
+ /**
23
+ * Produce the configuration to run the given entrypoint.
24
+ */
25
+ configFor(entrypoint: string): RunScriptConfig;
26
+ }
27
+ /**
28
+ * A script runner that executes the entrypoint file directly.
29
+ *
30
+ * A runner is a {@link FutureComponent}: it can be created standalone (e.g. in
31
+ * `.projenrc.ts`) and is attached to a project by whoever consumes it.
32
+ */
33
+ export declare class ScriptRunner extends FutureComponent implements IScriptRunner {
34
+ configFor(entrypoint: string): RunScriptConfig;
35
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScriptRunner = void 0;
4
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
+ const component_1 = require("./component");
6
+ /**
7
+ * A script runner that executes the entrypoint file directly.
8
+ *
9
+ * A runner is a {@link FutureComponent}: it can be created standalone (e.g. in
10
+ * `.projenrc.ts`) and is attached to a project by whoever consumes it.
11
+ */
12
+ class ScriptRunner extends component_1.FutureComponent {
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ScriptRunner", version: "0.101.5" };
14
+ configFor(entrypoint) {
15
+ return {
16
+ dependencies: [],
17
+ steps: [{ execArgs: [entrypoint] }],
18
+ };
19
+ }
20
+ }
21
+ exports.ScriptRunner = ScriptRunner;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LXJ1bm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zY3JpcHQtcnVubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwyQ0FBOEM7QUE4QjlDOzs7OztHQUtHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsMkJBQWU7O0lBQ3hDLFNBQVMsQ0FBQyxVQUFrQjtRQUNqQyxPQUFPO1lBQ0wsWUFBWSxFQUFFLEVBQUU7WUFDaEIsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1NBQ3BDLENBQUM7SUFDSixDQUFDOztBQU5ILG9DQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnV0dXJlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IERlcGVuZGVuY3lSZXF1ZXN0IH0gZnJvbSBcIi4vZGVwZW5kZW5jaWVzXCI7XG5pbXBvcnQgdHlwZSB7IFRhc2tTdGVwIH0gZnJvbSBcIi4vdGFzay1tb2RlbFwiO1xuXG4vKipcbiAqIFRoZSByZXNvbHZlZCBjb25maWd1cmF0aW9uIGZvciBydW5uaW5nIGEgc2NyaXB0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1blNjcmlwdENvbmZpZyB7XG4gIC8qKlxuICAgKiBEZXBlbmRlbmNpZXMgcmVxdWlyZWQgdG8gcnVuIHRoZSBzY3JpcHQuXG4gICAqL1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM6IERlcGVuZGVuY3lSZXF1ZXN0W107XG5cbiAgLyoqXG4gICAqIFRoZSB0YXNrIHN0ZXBzIHRvIGV4ZWN1dGUgdGhlIHNjcmlwdC5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZXBzOiBUYXNrU3RlcFtdO1xufVxuXG4vKipcbiAqIEEgc2NyaXB0IHJ1bm5lciB0aGF0IGNhbiBwcm9kdWNlIHRoZSBjb25maWd1cmF0aW9uIHRvIGV4ZWN1dGUgYSBmaWxlIG9mIGFcbiAqIHBhcnRpY3VsYXIgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2NyaXB0UnVubmVyIHtcbiAgLyoqXG4gICAqIFByb2R1Y2UgdGhlIGNvbmZpZ3VyYXRpb24gdG8gcnVuIHRoZSBnaXZlbiBlbnRyeXBvaW50LlxuICAgKi9cbiAgY29uZmlnRm9yKGVudHJ5cG9pbnQ6IHN0cmluZyk6IFJ1blNjcmlwdENvbmZpZztcbn1cblxuLyoqXG4gKiBBIHNjcmlwdCBydW5uZXIgdGhhdCBleGVjdXRlcyB0aGUgZW50cnlwb2ludCBmaWxlIGRpcmVjdGx5LlxuICpcbiAqIEEgcnVubmVyIGlzIGEge0BsaW5rIEZ1dHVyZUNvbXBvbmVudH06IGl0IGNhbiBiZSBjcmVhdGVkIHN0YW5kYWxvbmUgKGUuZy4gaW5cbiAqIGAucHJvamVucmMudHNgKSBhbmQgaXMgYXR0YWNoZWQgdG8gYSBwcm9qZWN0IGJ5IHdob2V2ZXIgY29uc3VtZXMgaXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTY3JpcHRSdW5uZXIgZXh0ZW5kcyBGdXR1cmVDb21wb25lbnQgaW1wbGVtZW50cyBJU2NyaXB0UnVubmVyIHtcbiAgcHVibGljIGNvbmZpZ0ZvcihlbnRyeXBvaW50OiBzdHJpbmcpOiBSdW5TY3JpcHRDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBkZXBlbmRlbmNpZXM6IFtdLFxuICAgICAgc3RlcHM6IFt7IGV4ZWNBcmdzOiBbZW50cnlwb2ludF0gfV0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -9,7 +9,7 @@ const textfile_1 = require("./textfile");
9
9
  */
10
10
  class SourceCode extends component_1.Component {
11
11
  filePath;
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SourceCode", version: "0.101.3" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SourceCode", version: "0.101.5" };
13
13
  file;
14
14
  indentLevel = 0;
15
15
  indent;
package/lib/task-shell.js CHANGED
@@ -19,7 +19,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
19
19
  */
20
20
  class TaskShell {
21
21
  value;
22
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TaskShell", version: "0.101.3" };
22
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TaskShell", version: "0.101.5" };
23
23
  /**
24
24
  * The built-in cross-platform shell (the default). It interprets POSIX-style
25
25
  * task syntax (`mkdir -p`, `&&`, `$VAR`, ...) identically on every platform,
package/lib/task.js CHANGED
@@ -8,7 +8,7 @@ const logging_1 = require("./logging");
8
8
  * commands and subtasks.
9
9
  */
10
10
  class Task {
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Task", version: "0.101.3" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Task", version: "0.101.5" };
12
12
  /**
13
13
  * Task name.
14
14
  */
package/lib/tasks.js CHANGED
@@ -48,7 +48,7 @@ const task_runner_1 = require("./task-runner");
48
48
  * synthesized into `.projen/tasks.json`.
49
49
  */
50
50
  class Tasks extends component_1.Component {
51
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Tasks", version: "0.101.3" };
51
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Tasks", version: "0.101.5" };
52
52
  _tasks;
53
53
  _env;
54
54
  _shell;
package/lib/testing.js CHANGED
@@ -10,7 +10,7 @@ const synth_1 = require("./util/synth");
10
10
  * @example `expect(Testing.synth(someProject)).toMatchSnapshot()`
11
11
  */
12
12
  class Testing {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Testing", version: "0.101.3" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Testing", version: "0.101.5" };
14
14
  /**
15
15
  * Produces a simple JS object that represents the contents of the projects with field names being file paths.
16
16
  * @param project the project to produce a snapshot for
package/lib/textfile.js CHANGED
@@ -7,7 +7,7 @@ const file_1 = require("./file");
7
7
  * A text file.
8
8
  */
9
9
  class TextFile extends file_1.FileBase {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TextFile", version: "0.101.3" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TextFile", version: "0.101.5" };
11
11
  lines;
12
12
  /**
13
13
  * Defines a text file.
package/lib/toml.js CHANGED
@@ -41,7 +41,7 @@ const object_file_1 = require("./object-file");
41
41
  * Represents a TOML file.
42
42
  */
43
43
  class TomlFile extends object_file_1.ObjectFile {
44
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TomlFile", version: "0.101.3" };
44
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TomlFile", version: "0.101.5" };
45
45
  constructor(scope, filePath, options) {
46
46
  super(scope, filePath, options);
47
47
  }
@@ -1,4 +1,5 @@
1
1
  export * from "./projenrc";
2
2
  export * from "./projenrc-ts";
3
3
  export * from "./typescript";
4
+ export * from "./typescript-runner";
4
5
  export * from "./typescript-typedoc";
@@ -17,5 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./projenrc"), exports);
18
18
  __exportStar(require("./projenrc-ts"), exports);
19
19
  __exportStar(require("./typescript"), exports);
20
+ __exportStar(require("./typescript-runner"), exports);
20
21
  __exportStar(require("./typescript-typedoc"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXNjcmlwdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLGdEQUE4QjtBQUM5QiwrQ0FBNkI7QUFDN0IsdURBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcHJvamVucmNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb2plbnJjLXRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc2NyaXB0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc2NyaXB0LXR5cGVkb2NcIjtcbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXNjcmlwdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJCO0FBQzNCLGdEQUE4QjtBQUM5QiwrQ0FBNkI7QUFDN0Isc0RBQW9DO0FBQ3BDLHVEQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3Byb2plbnJjXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm9qZW5yYy10c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNjcmlwdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNjcmlwdC1ydW5uZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzY3JpcHQtdHlwZWRvY1wiO1xuIl19
@@ -1,4 +1,5 @@
1
1
  import { TypescriptConfig } from "../javascript";
2
+ import { TypeScriptRunner } from "./typescript-runner";
2
3
  import type { Project } from "../project";
3
4
  import { ProjenrcFile } from "../projenrc";
4
5
  export interface ProjenrcTsOptions {
@@ -15,20 +16,25 @@ export interface ProjenrcTsOptions {
15
16
  */
16
17
  readonly projenCodeDir?: string;
17
18
  /**
18
- * The name of the tsconfig file that will be used by ts-node
19
+ * The name of the tsconfig file that will be used by the runner
19
20
  * when compiling projen source files.
20
21
  *
21
22
  * @default "tsconfig.projen.json"
23
+ * @deprecated Use `runner` to configure the tsconfigFileName directly.
22
24
  */
23
25
  readonly tsconfigFileName?: string;
26
+ /**
27
+ * The runner to use for executing TypeScript files.
28
+ *
29
+ * @default TypeScriptRunner.tsNode()
30
+ */
31
+ readonly runner?: TypeScriptRunner;
24
32
  }
25
33
  /**
26
34
  * A projenrc file written in TypeScript
27
35
  *
28
36
  * This component can be instantiated in any type of project
29
37
  * and has no expectations around the project's main language.
30
- *
31
- * Requires that `npx` is available.
32
38
  */
33
39
  export declare class ProjenrcTs extends ProjenrcFile {
34
40
  /**
@@ -37,7 +43,9 @@ export declare class ProjenrcTs extends ProjenrcFile {
37
43
  readonly tsconfig: TypescriptConfig;
38
44
  readonly filePath: string;
39
45
  private readonly _projenCodeDir;
46
+ private readonly _runner;
40
47
  constructor(project: Project, options?: ProjenrcTsOptions);
48
+ private getRunner;
41
49
  preSynthesize(): void;
42
50
  private generateProjenrc;
43
51
  }
@@ -5,6 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const fs_1 = require("fs");
6
6
  const path_1 = require("path");
7
7
  const javascript_1 = require("../javascript");
8
+ const typescript_runner_1 = require("./typescript-runner");
8
9
  const render_options_1 = require("../javascript/render-options");
9
10
  const projenrc_1 = require("../projenrc");
10
11
  const DEFAULT_FILENAME = ".projenrc.ts";
@@ -13,17 +14,16 @@ const DEFAULT_FILENAME = ".projenrc.ts";
13
14
  *
14
15
  * This component can be instantiated in any type of project
15
16
  * and has no expectations around the project's main language.
16
- *
17
- * Requires that `npx` is available.
18
17
  */
19
18
  class ProjenrcTs extends projenrc_1.ProjenrcFile {
20
- static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.ProjenrcTs", version: "0.101.3" };
19
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.ProjenrcTs", version: "0.101.5" };
21
20
  /**
22
21
  * TypeScript configuration file used to compile projen source files
23
22
  */
24
23
  tsconfig;
25
24
  filePath;
26
25
  _projenCodeDir;
26
+ _runner;
27
27
  constructor(project, options = {}) {
28
28
  super(project);
29
29
  this.filePath = options.filename ?? DEFAULT_FILENAME;
@@ -34,10 +34,42 @@ class ProjenrcTs extends projenrc_1.ProjenrcFile {
34
34
  fileName: options.tsconfigFileName ?? "tsconfig.projen.json",
35
35
  compilerOptions: {},
36
36
  });
37
- // Use npx since project's deps manager is not guaranteed to be JS-based
38
- project.defaultTask?.exec(`npx -y ts-node --project ${this.tsconfig.fileName} ${this.filePath}`);
37
+ // A runner is a future component, make sure it is attached
38
+ this._runner = this.getRunner(options).tryAttach(project);
39
+ // Build the run config
40
+ const { dependencies, steps } = this._runner.configFor(this.filePath);
41
+ // If the runner has dependencies, run each step through an `npx` shell
42
+ // (`npx -y -p <deps> -c "<command>"`) to make them available without install.
43
+ if (dependencies.length > 0) {
44
+ const shell = [
45
+ "npx",
46
+ "-y",
47
+ ...dependencies.flatMap((d) => [
48
+ "-p",
49
+ d.version ? `${d.name}@${d.version}` : d.name,
50
+ ]),
51
+ "-c",
52
+ ];
53
+ for (const step of steps) {
54
+ project.defaultTask?.addSteps({ ...step, shell });
55
+ }
56
+ }
57
+ else {
58
+ project.defaultTask?.addSteps(...steps);
59
+ }
39
60
  this.generateProjenrc();
40
61
  }
62
+ getRunner(options) {
63
+ // use a provide runner as is
64
+ if (options.runner) {
65
+ return options.runner;
66
+ }
67
+ // use a default runner with the correct tsconfig and type-checking enabled
68
+ return typescript_runner_1.TypeScriptRunner.tsNode({
69
+ tsconfig: this.tsconfig.fileName,
70
+ typeCheck: true,
71
+ });
72
+ }
41
73
  preSynthesize() {
42
74
  super.preSynthesize();
43
75
  this.tsconfig.addInclude(this.filePath);
@@ -73,4 +105,4 @@ class ProjenrcTs extends projenrc_1.ProjenrcFile {
73
105
  }
74
106
  }
75
107
  exports.ProjenrcTs = ProjenrcTs;
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVucmMtdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXNjcmlwdC9wcm9qZW5yYy10cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkJBQStDO0FBQy9DLCtCQUErQjtBQUUvQiw4Q0FBaUQ7QUFDakQsaUVBQXVFO0FBRXZFLDBDQUEyQztBQTBCM0MsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFFeEM7Ozs7Ozs7R0FPRztBQUNILE1BQWEsVUFBVyxTQUFRLHVCQUFZOztJQUMxQzs7T0FFRztJQUNhLFFBQVEsQ0FBbUI7SUFDM0IsUUFBUSxDQUFTO0lBQ2hCLGNBQWMsQ0FBUztJQUV4QyxZQUFZLE9BQWdCLEVBQUUsVUFBNkIsRUFBRTtRQUMzRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLFVBQVUsQ0FBQztRQUUxRCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUU5QyxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLDZCQUFnQixDQUFDLE9BQU8sRUFBRTtZQUM1QyxRQUFRLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixJQUFJLHNCQUFzQjtZQUM1RCxlQUFlLEVBQUUsRUFBRTtTQUNwQixDQUFDLENBQUM7UUFFSCx3RUFBd0U7UUFDeEUsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQ3ZCLDRCQUE0QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQ3RFLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRWUsYUFBYTtRQUMzQixLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsVUFBVSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFBLGNBQU8sRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFBLGVBQVUsRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxpQkFBaUI7UUFDM0IsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUzQyxNQUFNLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUEsd0NBQXVCLEVBQUM7WUFDM0QsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLElBQUksRUFBRSxTQUFTLENBQUMsSUFBNEI7WUFDNUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO1NBQzdCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXBDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssQ0FBQyxJQUFJLENBQUMsdUJBQXVCLFNBQVMsSUFBSSxlQUFlLElBQUksQ0FBQyxDQUFDO1FBQ3BFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUvQixJQUFBLGtCQUFhLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3RCLDBDQUEwQyxNQUFNLEVBQUUsQ0FDbkQsQ0FBQztJQUNKLENBQUM7O0FBeEVILGdDQXlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBJbnZlbnRvcnlQcm9qZWN0VHlwZSB9IGZyb20gXCIuLi9pbnZlbnRvcnlcIjtcbmltcG9ydCB7IFR5cGVzY3JpcHRDb25maWcgfSBmcm9tIFwiLi4vamF2YXNjcmlwdFwiO1xuaW1wb3J0IHsgcmVuZGVySmF2YVNjcmlwdE9wdGlvbnMgfSBmcm9tIFwiLi4vamF2YXNjcmlwdC9yZW5kZXItb3B0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IFByb2plbnJjRmlsZSB9IGZyb20gXCIuLi9wcm9qZW5yY1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plbnJjVHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9qZW5yYyBmaWxlLlxuICAgKiBAZGVmYXVsdCBcIi5wcm9qZW5yYy50c1wiXG4gICAqL1xuICByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkaXJlY3RvcnkgdHJlZSB0aGF0IG1heSBjb250YWluICoudHMgZmlsZXMgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tXG4gICAqIHlvdXIgcHJvamVucmMgdHlwZXNjcmlwdCBmaWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInByb2plbnJjXCJcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkNvZGVEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0c2NvbmZpZyBmaWxlIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRzLW5vZGVcbiAgICogd2hlbiBjb21waWxpbmcgcHJvamVuIHNvdXJjZSBmaWxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJ0c2NvbmZpZy5wcm9qZW4uanNvblwiXG4gICAqL1xuICByZWFkb25seSB0c2NvbmZpZ0ZpbGVOYW1lPzogc3RyaW5nO1xufVxuXG5jb25zdCBERUZBVUxUX0ZJTEVOQU1FID0gXCIucHJvamVucmMudHNcIjtcblxuLyoqXG4gKiBBIHByb2plbnJjIGZpbGUgd3JpdHRlbiBpbiBUeXBlU2NyaXB0XG4gKlxuICogVGhpcyBjb21wb25lbnQgY2FuIGJlIGluc3RhbnRpYXRlZCBpbiBhbnkgdHlwZSBvZiBwcm9qZWN0XG4gKiBhbmQgaGFzIG5vIGV4cGVjdGF0aW9ucyBhcm91bmQgdGhlIHByb2plY3QncyBtYWluIGxhbmd1YWdlLlxuICpcbiAqIFJlcXVpcmVzIHRoYXQgYG5weGAgaXMgYXZhaWxhYmxlLlxuICovXG5leHBvcnQgY2xhc3MgUHJvamVucmNUcyBleHRlbmRzIFByb2plbnJjRmlsZSB7XG4gIC8qKlxuICAgKiBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gZmlsZSB1c2VkIHRvIGNvbXBpbGUgcHJvamVuIHNvdXJjZSBmaWxlc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRzY29uZmlnOiBUeXBlc2NyaXB0Q29uZmlnO1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZVBhdGg6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvamVuQ29kZURpcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IFByb2plbnJjVHNPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuZmlsZVBhdGggPSBvcHRpb25zLmZpbGVuYW1lID8/IERFRkFVTFRfRklMRU5BTUU7XG4gICAgdGhpcy5fcHJvamVuQ29kZURpciA9IG9wdGlvbnMucHJvamVuQ29kZURpciA/PyBcInByb2plbnJjXCI7XG5cbiAgICBwcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke3RoaXMuZmlsZVBhdGh9YCk7XG5cbiAgICAvLyBDcmVhdGUgYSBkZWRpY2F0ZWQgdHNjb25maWcgZm9yIHByb2plbiBzb3VyY2UgZmlsZXNcbiAgICB0aGlzLnRzY29uZmlnID0gbmV3IFR5cGVzY3JpcHRDb25maWcocHJvamVjdCwge1xuICAgICAgZmlsZU5hbWU6IG9wdGlvbnMudHNjb25maWdGaWxlTmFtZSA/PyBcInRzY29uZmlnLnByb2plbi5qc29uXCIsXG4gICAgICBjb21waWxlck9wdGlvbnM6IHt9LFxuICAgIH0pO1xuXG4gICAgLy8gVXNlIG5weCBzaW5jZSBwcm9qZWN0J3MgZGVwcyBtYW5hZ2VyIGlzIG5vdCBndWFyYW50ZWVkIHRvIGJlIEpTLWJhc2VkXG4gICAgcHJvamVjdC5kZWZhdWx0VGFzaz8uZXhlYyhcbiAgICAgIGBucHggLXkgdHMtbm9kZSAtLXByb2plY3QgJHt0aGlzLnRzY29uZmlnLmZpbGVOYW1lfSAke3RoaXMuZmlsZVBhdGh9YCxcbiAgICApO1xuXG4gICAgdGhpcy5nZW5lcmF0ZVByb2plbnJjKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcHJlU3ludGhlc2l6ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKCk7XG5cbiAgICB0aGlzLnRzY29uZmlnLmFkZEluY2x1ZGUodGhpcy5maWxlUGF0aCk7XG4gICAgdGhpcy50c2NvbmZpZy5hZGRJbmNsdWRlKGAke3RoaXMuX3Byb2plbkNvZGVEaXJ9LyoqLyoudHNgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVQcm9qZW5yYygpIHtcbiAgICBjb25zdCByY2ZpbGUgPSByZXNvbHZlKHRoaXMucHJvamVjdC5vdXRkaXIsIHRoaXMuZmlsZVBhdGgpO1xuICAgIGlmIChleGlzdHNTeW5jKHJjZmlsZSkpIHtcbiAgICAgIHJldHVybjsgLy8gYWxyZWFkeSBleGlzdHNcbiAgICB9XG5cbiAgICBjb25zdCBib290c3RyYXAgPSB0aGlzLnByb2plY3QuaW5pdFByb2plY3Q7XG4gICAgaWYgKCFib290c3RyYXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJ0cyA9IGJvb3RzdHJhcC5mcW4uc3BsaXQoXCIuXCIpO1xuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBwYXJ0c1swXTtcbiAgICBjb25zdCBpbXBvcnROYW1lID0gcGFydHNbMV07XG4gICAgY29uc3QgY2xhc3NOYW1lID0gcGFydHMuc2xpY2UoMSkuam9pbihcIi5cIik7XG5cbiAgICBjb25zdCB7IHJlbmRlcmVkT3B0aW9ucywgaW1wb3J0cyB9ID0gcmVuZGVySmF2YVNjcmlwdE9wdGlvbnMoe1xuICAgICAgYXJnczogYm9vdHN0cmFwLmFyZ3MsXG4gICAgICB0eXBlOiBib290c3RyYXAudHlwZSBhcyBJbnZlbnRvcnlQcm9qZWN0VHlwZSxcbiAgICAgIGNvbW1lbnRzOiBib290c3RyYXAuY29tbWVudHMsXG4gICAgfSk7XG5cbiAgICBpbXBvcnRzLmFkZChtb2R1bGVOYW1lLCBpbXBvcnROYW1lKTtcblxuICAgIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgICBsaW5lcy5wdXNoKC4uLmltcG9ydHMuYXNFc21JbXBvcnRzKCkpO1xuICAgIGxpbmVzLnB1c2goKTtcbiAgICBsaW5lcy5wdXNoKGBjb25zdCBwcm9qZWN0ID0gbmV3ICR7Y2xhc3NOYW1lfSgke3JlbmRlcmVkT3B0aW9uc30pO2ApO1xuICAgIGxpbmVzLnB1c2goKTtcbiAgICBsaW5lcy5wdXNoKFwicHJvamVjdC5zeW50aCgpO1wiKTtcblxuICAgIHdyaXRlRmlsZVN5bmMocmNmaWxlLCBsaW5lcy5qb2luKFwiXFxuXCIpKTtcbiAgICB0aGlzLnByb2plY3QubG9nZ2VyLmluZm8oXG4gICAgICBgUHJvamVjdCBkZWZpbml0aW9uIGZpbGUgd2FzIGNyZWF0ZWQgYXQgJHtyY2ZpbGV9YCxcbiAgICApO1xuICB9XG59XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVucmMtdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXNjcmlwdC9wcm9qZW5yYy10cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkJBQStDO0FBQy9DLCtCQUErQjtBQUUvQiw4Q0FBaUQ7QUFDakQsMkRBQXVEO0FBQ3ZELGlFQUF1RTtBQUV2RSwwQ0FBMkM7QUFrQzNDLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDO0FBRXhDOzs7OztHQUtHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsdUJBQVk7O0lBQzFDOztPQUVHO0lBQ2EsUUFBUSxDQUFtQjtJQUMzQixRQUFRLENBQVM7SUFFaEIsY0FBYyxDQUFTO0lBQ3ZCLE9BQU8sQ0FBbUI7SUFFM0MsWUFBWSxPQUFnQixFQUFFLFVBQTZCLEVBQUU7UUFDM0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLGdCQUFnQixDQUFDO1FBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxVQUFVLENBQUM7UUFFMUQsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFOUMsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSw2QkFBZ0IsQ0FBQyxPQUFPLEVBQUU7WUFDNUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxzQkFBc0I7WUFDNUQsZUFBZSxFQUFFLEVBQUU7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUQsdUJBQXVCO1FBQ3ZCLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXRFLHVFQUF1RTtRQUN2RSw4RUFBOEU7UUFDOUUsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sS0FBSyxHQUFHO2dCQUNaLEtBQUs7Z0JBQ0wsSUFBSTtnQkFDSixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUM3QixJQUFJO29CQUNKLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2lCQUM5QyxDQUFDO2dCQUNGLElBQUk7YUFDTCxDQUFDO1lBQ0YsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxTQUFTLENBQUMsT0FBMEI7UUFDMUMsNkJBQTZCO1FBQzdCLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN4QixDQUFDO1FBRUQsMkVBQTJFO1FBQzNFLE9BQU8sb0NBQWdCLENBQUMsTUFBTSxDQUFDO1lBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVE7WUFDaEMsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVlLGFBQWE7UUFDM0IsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLFVBQVUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBQSxjQUFPLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELElBQUksSUFBQSxlQUFVLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLENBQUMsaUJBQWlCO1FBQzNCLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0MsTUFBTSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFBLHdDQUF1QixFQUFDO1lBQzNELElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQTRCO1lBQzVDLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtTQUM3QixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVwQyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDYixLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixTQUFTLElBQUksZUFBZSxJQUFJLENBQUMsQ0FBQztRQUNwRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDYixLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFL0IsSUFBQSxrQkFBYSxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QiwwQ0FBMEMsTUFBTSxFQUFFLENBQ25ELENBQUM7SUFDSixDQUFDOztBQTNHSCxnQ0E0R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB0eXBlIHsgSW52ZW50b3J5UHJvamVjdFR5cGUgfSBmcm9tIFwiLi4vaW52ZW50b3J5XCI7XG5pbXBvcnQgeyBUeXBlc2NyaXB0Q29uZmlnIH0gZnJvbSBcIi4uL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IFR5cGVTY3JpcHRSdW5uZXIgfSBmcm9tIFwiLi90eXBlc2NyaXB0LXJ1bm5lclwiO1xuaW1wb3J0IHsgcmVuZGVySmF2YVNjcmlwdE9wdGlvbnMgfSBmcm9tIFwiLi4vamF2YXNjcmlwdC9yZW5kZXItb3B0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IFByb2plbnJjRmlsZSB9IGZyb20gXCIuLi9wcm9qZW5yY1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb2plbnJjVHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9qZW5yYyBmaWxlLlxuICAgKiBAZGVmYXVsdCBcIi5wcm9qZW5yYy50c1wiXG4gICAqL1xuICByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkaXJlY3RvcnkgdHJlZSB0aGF0IG1heSBjb250YWluICoudHMgZmlsZXMgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tXG4gICAqIHlvdXIgcHJvamVucmMgdHlwZXNjcmlwdCBmaWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInByb2plbnJjXCJcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkNvZGVEaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB0c2NvbmZpZyBmaWxlIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBydW5uZXJcbiAgICogd2hlbiBjb21waWxpbmcgcHJvamVuIHNvdXJjZSBmaWxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJ0c2NvbmZpZy5wcm9qZW4uanNvblwiXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcnVubmVyYCB0byBjb25maWd1cmUgdGhlIHRzY29uZmlnRmlsZU5hbWUgZGlyZWN0bHkuXG4gICAqL1xuICByZWFkb25seSB0c2NvbmZpZ0ZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcnVubmVyIHRvIHVzZSBmb3IgZXhlY3V0aW5nIFR5cGVTY3JpcHQgZmlsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFR5cGVTY3JpcHRSdW5uZXIudHNOb2RlKClcbiAgICovXG4gIHJlYWRvbmx5IHJ1bm5lcj86IFR5cGVTY3JpcHRSdW5uZXI7XG59XG5cbmNvbnN0IERFRkFVTFRfRklMRU5BTUUgPSBcIi5wcm9qZW5yYy50c1wiO1xuXG4vKipcbiAqIEEgcHJvamVucmMgZmlsZSB3cml0dGVuIGluIFR5cGVTY3JpcHRcbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBjYW4gYmUgaW5zdGFudGlhdGVkIGluIGFueSB0eXBlIG9mIHByb2plY3RcbiAqIGFuZCBoYXMgbm8gZXhwZWN0YXRpb25zIGFyb3VuZCB0aGUgcHJvamVjdCdzIG1haW4gbGFuZ3VhZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9qZW5yY1RzIGV4dGVuZHMgUHJvamVucmNGaWxlIHtcbiAgLyoqXG4gICAqIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlIHVzZWQgdG8gY29tcGlsZSBwcm9qZW4gc291cmNlIGZpbGVzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHNjb25maWc6IFR5cGVzY3JpcHRDb25maWc7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlUGF0aDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Byb2plbkNvZGVEaXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfcnVubmVyOiBUeXBlU2NyaXB0UnVubmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIG9wdGlvbnM6IFByb2plbnJjVHNPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuZmlsZVBhdGggPSBvcHRpb25zLmZpbGVuYW1lID8/IERFRkFVTFRfRklMRU5BTUU7XG4gICAgdGhpcy5fcHJvamVuQ29kZURpciA9IG9wdGlvbnMucHJvamVuQ29kZURpciA/PyBcInByb2plbnJjXCI7XG5cbiAgICBwcm9qZWN0LmFkZFBhY2thZ2VJZ25vcmUoYC8ke3RoaXMuZmlsZVBhdGh9YCk7XG5cbiAgICAvLyBDcmVhdGUgYSBkZWRpY2F0ZWQgdHNjb25maWcgZm9yIHByb2plbiBzb3VyY2UgZmlsZXNcbiAgICB0aGlzLnRzY29uZmlnID0gbmV3IFR5cGVzY3JpcHRDb25maWcocHJvamVjdCwge1xuICAgICAgZmlsZU5hbWU6IG9wdGlvbnMudHNjb25maWdGaWxlTmFtZSA/PyBcInRzY29uZmlnLnByb2plbi5qc29uXCIsXG4gICAgICBjb21waWxlck9wdGlvbnM6IHt9LFxuICAgIH0pO1xuXG4gICAgLy8gQSBydW5uZXIgaXMgYSBmdXR1cmUgY29tcG9uZW50LCBtYWtlIHN1cmUgaXQgaXMgYXR0YWNoZWRcbiAgICB0aGlzLl9ydW5uZXIgPSB0aGlzLmdldFJ1bm5lcihvcHRpb25zKS50cnlBdHRhY2gocHJvamVjdCk7XG5cbiAgICAvLyBCdWlsZCB0aGUgcnVuIGNvbmZpZ1xuICAgIGNvbnN0IHsgZGVwZW5kZW5jaWVzLCBzdGVwcyB9ID0gdGhpcy5fcnVubmVyLmNvbmZpZ0Zvcih0aGlzLmZpbGVQYXRoKTtcblxuICAgIC8vIElmIHRoZSBydW5uZXIgaGFzIGRlcGVuZGVuY2llcywgcnVuIGVhY2ggc3RlcCB0aHJvdWdoIGFuIGBucHhgIHNoZWxsXG4gICAgLy8gKGBucHggLXkgLXAgPGRlcHM+IC1jIFwiPGNvbW1hbmQ+XCJgKSB0byBtYWtlIHRoZW0gYXZhaWxhYmxlIHdpdGhvdXQgaW5zdGFsbC5cbiAgICBpZiAoZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNoZWxsID0gW1xuICAgICAgICBcIm5weFwiLFxuICAgICAgICBcIi15XCIsXG4gICAgICAgIC4uLmRlcGVuZGVuY2llcy5mbGF0TWFwKChkKSA9PiBbXG4gICAgICAgICAgXCItcFwiLFxuICAgICAgICAgIGQudmVyc2lvbiA/IGAke2QubmFtZX1AJHtkLnZlcnNpb259YCA6IGQubmFtZSxcbiAgICAgICAgXSksXG4gICAgICAgIFwiLWNcIixcbiAgICAgIF07XG4gICAgICBmb3IgKGNvbnN0IHN0ZXAgb2Ygc3RlcHMpIHtcbiAgICAgICAgcHJvamVjdC5kZWZhdWx0VGFzaz8uYWRkU3RlcHMoeyAuLi5zdGVwLCBzaGVsbCB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcHJvamVjdC5kZWZhdWx0VGFzaz8uYWRkU3RlcHMoLi4uc3RlcHMpO1xuICAgIH1cblxuICAgIHRoaXMuZ2VuZXJhdGVQcm9qZW5yYygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSdW5uZXIob3B0aW9uczogUHJvamVucmNUc09wdGlvbnMpOiBUeXBlU2NyaXB0UnVubmVyIHtcbiAgICAvLyB1c2UgYSBwcm92aWRlIHJ1bm5lciBhcyBpc1xuICAgIGlmIChvcHRpb25zLnJ1bm5lcikge1xuICAgICAgcmV0dXJuIG9wdGlvbnMucnVubmVyO1xuICAgIH1cblxuICAgIC8vIHVzZSBhIGRlZmF1bHQgcnVubmVyIHdpdGggdGhlIGNvcnJlY3QgdHNjb25maWcgYW5kIHR5cGUtY2hlY2tpbmcgZW5hYmxlZFxuICAgIHJldHVybiBUeXBlU2NyaXB0UnVubmVyLnRzTm9kZSh7XG4gICAgICB0c2NvbmZpZzogdGhpcy50c2NvbmZpZy5maWxlTmFtZSxcbiAgICAgIHR5cGVDaGVjazogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcblxuICAgIHRoaXMudHNjb25maWcuYWRkSW5jbHVkZSh0aGlzLmZpbGVQYXRoKTtcbiAgICB0aGlzLnRzY29uZmlnLmFkZEluY2x1ZGUoYCR7dGhpcy5fcHJvamVuQ29kZURpcn0vKiovKi50c2ApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVByb2plbnJjKCkge1xuICAgIGNvbnN0IHJjZmlsZSA9IHJlc29sdmUodGhpcy5wcm9qZWN0Lm91dGRpciwgdGhpcy5maWxlUGF0aCk7XG4gICAgaWYgKGV4aXN0c1N5bmMocmNmaWxlKSkge1xuICAgICAgcmV0dXJuOyAvLyBhbHJlYWR5IGV4aXN0c1xuICAgIH1cblxuICAgIGNvbnN0IGJvb3RzdHJhcCA9IHRoaXMucHJvamVjdC5pbml0UHJvamVjdDtcbiAgICBpZiAoIWJvb3RzdHJhcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnRzID0gYm9vdHN0cmFwLmZxbi5zcGxpdChcIi5cIik7XG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IHBhcnRzWzBdO1xuICAgIGNvbnN0IGltcG9ydE5hbWUgPSBwYXJ0c1sxXTtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBwYXJ0cy5zbGljZSgxKS5qb2luKFwiLlwiKTtcblxuICAgIGNvbnN0IHsgcmVuZGVyZWRPcHRpb25zLCBpbXBvcnRzIH0gPSByZW5kZXJKYXZhU2NyaXB0T3B0aW9ucyh7XG4gICAgICBhcmdzOiBib290c3RyYXAuYXJncyxcbiAgICAgIHR5cGU6IGJvb3RzdHJhcC50eXBlIGFzIEludmVudG9yeVByb2plY3RUeXBlLFxuICAgICAgY29tbWVudHM6IGJvb3RzdHJhcC5jb21tZW50cyxcbiAgICB9KTtcblxuICAgIGltcG9ydHMuYWRkKG1vZHVsZU5hbWUsIGltcG9ydE5hbWUpO1xuXG4gICAgY29uc3QgbGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIGxpbmVzLnB1c2goLi4uaW1wb3J0cy5hc0VzbUltcG9ydHMoKSk7XG4gICAgbGluZXMucHVzaCgpO1xuICAgIGxpbmVzLnB1c2goYGNvbnN0IHByb2plY3QgPSBuZXcgJHtjbGFzc05hbWV9KCR7cmVuZGVyZWRPcHRpb25zfSk7YCk7XG4gICAgbGluZXMucHVzaCgpO1xuICAgIGxpbmVzLnB1c2goXCJwcm9qZWN0LnN5bnRoKCk7XCIpO1xuXG4gICAgd3JpdGVGaWxlU3luYyhyY2ZpbGUsIGxpbmVzLmpvaW4oXCJcXG5cIikpO1xuICAgIHRoaXMucHJvamVjdC5sb2dnZXIuaW5mbyhcbiAgICAgIGBQcm9qZWN0IGRlZmluaXRpb24gZmlsZSB3YXMgY3JlYXRlZCBhdCAke3JjZmlsZX1gLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { TypescriptConfig } from "../javascript";
2
+ import type { TypeScriptProject } from "./typescript";
2
3
  import { ProjenrcFile } from "../projenrc";
3
- import type { TypeScriptProject } from "../typescript";
4
+ import { TypeScriptRunner } from "./typescript-runner";
4
5
  export interface ProjenrcOptions {
5
6
  /**
6
7
  * The name of the projenrc file.
@@ -18,20 +19,30 @@ export interface ProjenrcOptions {
18
19
  * Whether to use `SWC` for ts-node.
19
20
  *
20
21
  * @default false
22
+ * @deprecated Use `runner: TypeScriptRunner.tsNode({ swc: true })` instead.
21
23
  */
22
24
  readonly swc?: boolean;
25
+ /**
26
+ * The runner to use for executing TypeScript files.
27
+ *
28
+ * @default - the project's runner
29
+ */
30
+ readonly runner?: TypeScriptRunner;
23
31
  }
24
32
  /**
25
- * Sets up a typescript project to use TypeScript for projenrc.
33
+ * A projenrc file written in TypeScript
34
+ *
35
+ * This component is used within TypeScriptProject.
26
36
  */
27
37
  export declare class Projenrc extends ProjenrcFile {
28
38
  readonly filePath: string;
29
39
  readonly tsconfig: TypescriptConfig;
30
40
  private readonly _projenCodeDir;
31
41
  private readonly _tsProject;
32
- private readonly _swc;
42
+ private readonly _runner;
33
43
  constructor(project: TypeScriptProject, options?: ProjenrcOptions);
34
44
  private addDefaultTask;
45
+ private getRunner;
35
46
  preSynthesize(): void;
36
47
  private generateProjenrc;
37
48
  }