@cdktn/provider-project 0.7.24

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 (330) hide show
  1. package/.jsii +419 -0
  2. package/API.md +4154 -0
  3. package/CLAUDE.md +172 -0
  4. package/LICENSE +355 -0
  5. package/README.md +82 -0
  6. package/lib/alert-open-prs.d.ts +14 -0
  7. package/lib/alert-open-prs.js +67 -0
  8. package/lib/auto-approve.d.ts +11 -0
  9. package/lib/auto-approve.js +70 -0
  10. package/lib/auto-close-community-issues.d.ts +15 -0
  11. package/lib/auto-close-community-issues.js +104 -0
  12. package/lib/automerge.d.ts +11 -0
  13. package/lib/automerge.js +67 -0
  14. package/lib/cdktf-config.d.ts +33 -0
  15. package/lib/cdktf-config.js +134 -0
  16. package/lib/copyright-headers.d.ts +4 -0
  17. package/lib/copyright-headers.js +44 -0
  18. package/lib/customized-license.d.ts +8 -0
  19. package/lib/customized-license.js +19 -0
  20. package/lib/dependabot.d.ts +8 -0
  21. package/lib/dependabot.js +40 -0
  22. package/lib/deprecate-packages.d.ts +14 -0
  23. package/lib/deprecate-packages.js +91 -0
  24. package/lib/force-release.d.ts +12 -0
  25. package/lib/force-release.js +112 -0
  26. package/lib/github-issues.d.ts +15 -0
  27. package/lib/github-issues.js +33 -0
  28. package/lib/index.d.ts +53 -0
  29. package/lib/index.js +447 -0
  30. package/lib/lock-issues.d.ts +13 -0
  31. package/lib/lock-issues.js +54 -0
  32. package/lib/package-info.d.ts +14 -0
  33. package/lib/package-info.js +7 -0
  34. package/lib/provider-upgrade.d.ts +17 -0
  35. package/lib/provider-upgrade.js +145 -0
  36. package/lib/readme.d.ts +21 -0
  37. package/lib/readme.js +147 -0
  38. package/lib/scripts/check-for-upgrades.d.ts +15 -0
  39. package/lib/scripts/check-for-upgrades.js +186 -0
  40. package/lib/scripts/should-release.d.ts +13 -0
  41. package/lib/scripts/should-release.js +96 -0
  42. package/lib/util/random-cron.d.ts +18 -0
  43. package/lib/util/random-cron.js +33 -0
  44. package/mise.toml +2 -0
  45. package/node_modules/camel-case/LICENSE +21 -0
  46. package/node_modules/camel-case/README.md +47 -0
  47. package/node_modules/camel-case/dist/index.d.ts +5 -0
  48. package/node_modules/camel-case/dist/index.js +23 -0
  49. package/node_modules/camel-case/dist/index.js.map +1 -0
  50. package/node_modules/camel-case/dist/index.spec.d.ts +1 -0
  51. package/node_modules/camel-case/dist/index.spec.js +26 -0
  52. package/node_modules/camel-case/dist/index.spec.js.map +1 -0
  53. package/node_modules/camel-case/dist.es2015/index.d.ts +5 -0
  54. package/node_modules/camel-case/dist.es2015/index.js +17 -0
  55. package/node_modules/camel-case/dist.es2015/index.js.map +1 -0
  56. package/node_modules/camel-case/dist.es2015/index.spec.d.ts +1 -0
  57. package/node_modules/camel-case/dist.es2015/index.spec.js +24 -0
  58. package/node_modules/camel-case/dist.es2015/index.spec.js.map +1 -0
  59. package/node_modules/camel-case/package.json +89 -0
  60. package/node_modules/capital-case/LICENSE +21 -0
  61. package/node_modules/capital-case/README.md +37 -0
  62. package/node_modules/capital-case/dist/index.d.ts +4 -0
  63. package/node_modules/capital-case/dist/index.js +16 -0
  64. package/node_modules/capital-case/dist/index.js.map +1 -0
  65. package/node_modules/capital-case/dist/index.spec.d.ts +1 -0
  66. package/node_modules/capital-case/dist/index.spec.js +24 -0
  67. package/node_modules/capital-case/dist/index.spec.js.map +1 -0
  68. package/node_modules/capital-case/dist.es2015/index.d.ts +4 -0
  69. package/node_modules/capital-case/dist.es2015/index.js +11 -0
  70. package/node_modules/capital-case/dist.es2015/index.js.map +1 -0
  71. package/node_modules/capital-case/dist.es2015/index.spec.d.ts +1 -0
  72. package/node_modules/capital-case/dist.es2015/index.spec.js +22 -0
  73. package/node_modules/capital-case/dist.es2015/index.spec.js.map +1 -0
  74. package/node_modules/capital-case/package.json +90 -0
  75. package/node_modules/change-case/LICENSE +21 -0
  76. package/node_modules/change-case/README.md +44 -0
  77. package/node_modules/change-case/dist/index.d.ts +11 -0
  78. package/node_modules/change-case/dist/index.js +15 -0
  79. package/node_modules/change-case/dist/index.js.map +1 -0
  80. package/node_modules/change-case/dist/index.spec.d.ts +1 -0
  81. package/node_modules/change-case/dist/index.spec.js +9 -0
  82. package/node_modules/change-case/dist/index.spec.js.map +1 -0
  83. package/node_modules/change-case/dist.es2015/index.d.ts +11 -0
  84. package/node_modules/change-case/dist.es2015/index.js +12 -0
  85. package/node_modules/change-case/dist.es2015/index.js.map +1 -0
  86. package/node_modules/change-case/dist.es2015/index.spec.d.ts +1 -0
  87. package/node_modules/change-case/dist.es2015/index.spec.js +7 -0
  88. package/node_modules/change-case/dist.es2015/index.spec.js.map +1 -0
  89. package/node_modules/change-case/package.json +101 -0
  90. package/node_modules/constant-case/LICENSE +21 -0
  91. package/node_modules/constant-case/README.md +37 -0
  92. package/node_modules/constant-case/dist/index.d.ts +3 -0
  93. package/node_modules/constant-case/dist/index.js +12 -0
  94. package/node_modules/constant-case/dist/index.js.map +1 -0
  95. package/node_modules/constant-case/dist/index.spec.d.ts +1 -0
  96. package/node_modules/constant-case/dist/index.spec.js +26 -0
  97. package/node_modules/constant-case/dist/index.spec.js.map +1 -0
  98. package/node_modules/constant-case/dist.es2015/index.d.ts +3 -0
  99. package/node_modules/constant-case/dist.es2015/index.js +8 -0
  100. package/node_modules/constant-case/dist.es2015/index.js.map +1 -0
  101. package/node_modules/constant-case/dist.es2015/index.spec.d.ts +1 -0
  102. package/node_modules/constant-case/dist.es2015/index.spec.js +24 -0
  103. package/node_modules/constant-case/dist.es2015/index.spec.js.map +1 -0
  104. package/node_modules/constant-case/package.json +90 -0
  105. package/node_modules/dot-case/LICENSE +21 -0
  106. package/node_modules/dot-case/README.md +37 -0
  107. package/node_modules/dot-case/dist/index.d.ts +3 -0
  108. package/node_modules/dot-case/dist/index.js +11 -0
  109. package/node_modules/dot-case/dist/index.js.map +1 -0
  110. package/node_modules/dot-case/dist/index.spec.d.ts +1 -0
  111. package/node_modules/dot-case/dist/index.spec.js +26 -0
  112. package/node_modules/dot-case/dist/index.spec.js.map +1 -0
  113. package/node_modules/dot-case/dist.es2015/index.d.ts +3 -0
  114. package/node_modules/dot-case/dist.es2015/index.js +7 -0
  115. package/node_modules/dot-case/dist.es2015/index.js.map +1 -0
  116. package/node_modules/dot-case/dist.es2015/index.spec.d.ts +1 -0
  117. package/node_modules/dot-case/dist.es2015/index.spec.js +24 -0
  118. package/node_modules/dot-case/dist.es2015/index.spec.js.map +1 -0
  119. package/node_modules/dot-case/package.json +89 -0
  120. package/node_modules/fs-extra/LICENSE +15 -0
  121. package/node_modules/fs-extra/README.md +262 -0
  122. package/node_modules/fs-extra/lib/copy/copy-sync.js +169 -0
  123. package/node_modules/fs-extra/lib/copy/copy.js +235 -0
  124. package/node_modules/fs-extra/lib/copy/index.js +7 -0
  125. package/node_modules/fs-extra/lib/empty/index.js +39 -0
  126. package/node_modules/fs-extra/lib/ensure/file.js +69 -0
  127. package/node_modules/fs-extra/lib/ensure/index.js +23 -0
  128. package/node_modules/fs-extra/lib/ensure/link.js +64 -0
  129. package/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
  130. package/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
  131. package/node_modules/fs-extra/lib/ensure/symlink.js +82 -0
  132. package/node_modules/fs-extra/lib/fs/index.js +128 -0
  133. package/node_modules/fs-extra/lib/index.js +16 -0
  134. package/node_modules/fs-extra/lib/json/index.js +16 -0
  135. package/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
  136. package/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
  137. package/node_modules/fs-extra/lib/json/output-json.js +12 -0
  138. package/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  139. package/node_modules/fs-extra/lib/mkdirs/make-dir.js +27 -0
  140. package/node_modules/fs-extra/lib/mkdirs/utils.js +21 -0
  141. package/node_modules/fs-extra/lib/move/index.js +7 -0
  142. package/node_modules/fs-extra/lib/move/move-sync.js +54 -0
  143. package/node_modules/fs-extra/lib/move/move.js +75 -0
  144. package/node_modules/fs-extra/lib/output-file/index.js +40 -0
  145. package/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  146. package/node_modules/fs-extra/lib/remove/index.js +22 -0
  147. package/node_modules/fs-extra/lib/remove/rimraf.js +302 -0
  148. package/node_modules/fs-extra/lib/util/stat.js +154 -0
  149. package/node_modules/fs-extra/lib/util/utimes.js +26 -0
  150. package/node_modules/fs-extra/package.json +67 -0
  151. package/node_modules/graceful-fs/LICENSE +15 -0
  152. package/node_modules/graceful-fs/README.md +143 -0
  153. package/node_modules/graceful-fs/clone.js +23 -0
  154. package/node_modules/graceful-fs/graceful-fs.js +448 -0
  155. package/node_modules/graceful-fs/legacy-streams.js +118 -0
  156. package/node_modules/graceful-fs/package.json +53 -0
  157. package/node_modules/graceful-fs/polyfills.js +355 -0
  158. package/node_modules/header-case/LICENSE +21 -0
  159. package/node_modules/header-case/README.md +37 -0
  160. package/node_modules/header-case/dist/index.d.ts +3 -0
  161. package/node_modules/header-case/dist/index.js +11 -0
  162. package/node_modules/header-case/dist/index.js.map +1 -0
  163. package/node_modules/header-case/dist/index.spec.d.ts +1 -0
  164. package/node_modules/header-case/dist/index.spec.js +24 -0
  165. package/node_modules/header-case/dist/index.spec.js.map +1 -0
  166. package/node_modules/header-case/dist.es2015/index.d.ts +3 -0
  167. package/node_modules/header-case/dist.es2015/index.js +7 -0
  168. package/node_modules/header-case/dist.es2015/index.js.map +1 -0
  169. package/node_modules/header-case/dist.es2015/index.spec.d.ts +1 -0
  170. package/node_modules/header-case/dist.es2015/index.spec.js +22 -0
  171. package/node_modules/header-case/dist.es2015/index.spec.js.map +1 -0
  172. package/node_modules/header-case/package.json +89 -0
  173. package/node_modules/jsonfile/LICENSE +15 -0
  174. package/node_modules/jsonfile/README.md +230 -0
  175. package/node_modules/jsonfile/index.js +88 -0
  176. package/node_modules/jsonfile/package.json +40 -0
  177. package/node_modules/jsonfile/utils.js +14 -0
  178. package/node_modules/lower-case/LICENSE +21 -0
  179. package/node_modules/lower-case/README.md +35 -0
  180. package/node_modules/lower-case/dist/index.d.ts +8 -0
  181. package/node_modules/lower-case/dist/index.js +53 -0
  182. package/node_modules/lower-case/dist/index.js.map +1 -0
  183. package/node_modules/lower-case/dist/index.spec.d.ts +1 -0
  184. package/node_modules/lower-case/dist/index.spec.js +36 -0
  185. package/node_modules/lower-case/dist/index.spec.js.map +1 -0
  186. package/node_modules/lower-case/dist.es2015/index.d.ts +8 -0
  187. package/node_modules/lower-case/dist.es2015/index.js +48 -0
  188. package/node_modules/lower-case/dist.es2015/index.js.map +1 -0
  189. package/node_modules/lower-case/dist.es2015/index.spec.d.ts +1 -0
  190. package/node_modules/lower-case/dist.es2015/index.spec.js +34 -0
  191. package/node_modules/lower-case/dist.es2015/index.spec.js.map +1 -0
  192. package/node_modules/lower-case/package.json +87 -0
  193. package/node_modules/no-case/LICENSE +21 -0
  194. package/node_modules/no-case/README.md +37 -0
  195. package/node_modules/no-case/dist/index.d.ts +10 -0
  196. package/node_modules/no-case/dist/index.js +35 -0
  197. package/node_modules/no-case/dist/index.js.map +1 -0
  198. package/node_modules/no-case/dist/index.spec.d.ts +1 -0
  199. package/node_modules/no-case/dist/index.spec.js +59 -0
  200. package/node_modules/no-case/dist/index.spec.js.map +1 -0
  201. package/node_modules/no-case/dist.es2015/index.d.ts +10 -0
  202. package/node_modules/no-case/dist.es2015/index.js +31 -0
  203. package/node_modules/no-case/dist.es2015/index.js.map +1 -0
  204. package/node_modules/no-case/dist.es2015/index.spec.d.ts +1 -0
  205. package/node_modules/no-case/dist.es2015/index.spec.js +57 -0
  206. package/node_modules/no-case/dist.es2015/index.spec.js.map +1 -0
  207. package/node_modules/no-case/package.json +85 -0
  208. package/node_modules/param-case/LICENSE +21 -0
  209. package/node_modules/param-case/README.md +37 -0
  210. package/node_modules/param-case/dist/index.d.ts +3 -0
  211. package/node_modules/param-case/dist/index.js +11 -0
  212. package/node_modules/param-case/dist/index.js.map +1 -0
  213. package/node_modules/param-case/dist/index.spec.d.ts +1 -0
  214. package/node_modules/param-case/dist/index.spec.js +24 -0
  215. package/node_modules/param-case/dist/index.spec.js.map +1 -0
  216. package/node_modules/param-case/dist.es2015/index.d.ts +3 -0
  217. package/node_modules/param-case/dist.es2015/index.js +7 -0
  218. package/node_modules/param-case/dist.es2015/index.js.map +1 -0
  219. package/node_modules/param-case/dist.es2015/index.spec.d.ts +1 -0
  220. package/node_modules/param-case/dist.es2015/index.spec.js +22 -0
  221. package/node_modules/param-case/dist.es2015/index.spec.js.map +1 -0
  222. package/node_modules/param-case/package.json +91 -0
  223. package/node_modules/pascal-case/LICENSE +21 -0
  224. package/node_modules/pascal-case/README.md +47 -0
  225. package/node_modules/pascal-case/dist/index.d.ts +5 -0
  226. package/node_modules/pascal-case/dist/index.js +24 -0
  227. package/node_modules/pascal-case/dist/index.js.map +1 -0
  228. package/node_modules/pascal-case/dist/index.spec.d.ts +1 -0
  229. package/node_modules/pascal-case/dist/index.spec.js +25 -0
  230. package/node_modules/pascal-case/dist/index.spec.js.map +1 -0
  231. package/node_modules/pascal-case/dist.es2015/index.d.ts +5 -0
  232. package/node_modules/pascal-case/dist.es2015/index.js +18 -0
  233. package/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
  234. package/node_modules/pascal-case/dist.es2015/index.spec.d.ts +1 -0
  235. package/node_modules/pascal-case/dist.es2015/index.spec.js +23 -0
  236. package/node_modules/pascal-case/dist.es2015/index.spec.js.map +1 -0
  237. package/node_modules/pascal-case/package.json +90 -0
  238. package/node_modules/path-case/LICENSE +21 -0
  239. package/node_modules/path-case/README.md +37 -0
  240. package/node_modules/path-case/dist/index.d.ts +3 -0
  241. package/node_modules/path-case/dist/index.js +11 -0
  242. package/node_modules/path-case/dist/index.js.map +1 -0
  243. package/node_modules/path-case/dist/index.spec.d.ts +1 -0
  244. package/node_modules/path-case/dist/index.spec.js +24 -0
  245. package/node_modules/path-case/dist/index.spec.js.map +1 -0
  246. package/node_modules/path-case/dist.es2015/index.d.ts +3 -0
  247. package/node_modules/path-case/dist.es2015/index.js +7 -0
  248. package/node_modules/path-case/dist.es2015/index.js.map +1 -0
  249. package/node_modules/path-case/dist.es2015/index.spec.d.ts +1 -0
  250. package/node_modules/path-case/dist.es2015/index.spec.js +22 -0
  251. package/node_modules/path-case/dist.es2015/index.spec.js.map +1 -0
  252. package/node_modules/path-case/package.json +88 -0
  253. package/node_modules/sentence-case/LICENSE +21 -0
  254. package/node_modules/sentence-case/README.md +37 -0
  255. package/node_modules/sentence-case/dist/index.d.ts +4 -0
  256. package/node_modules/sentence-case/dist/index.js +19 -0
  257. package/node_modules/sentence-case/dist/index.js.map +1 -0
  258. package/node_modules/sentence-case/dist/index.spec.d.ts +1 -0
  259. package/node_modules/sentence-case/dist/index.spec.js +24 -0
  260. package/node_modules/sentence-case/dist/index.spec.js.map +1 -0
  261. package/node_modules/sentence-case/dist.es2015/index.d.ts +4 -0
  262. package/node_modules/sentence-case/dist.es2015/index.js +14 -0
  263. package/node_modules/sentence-case/dist.es2015/index.js.map +1 -0
  264. package/node_modules/sentence-case/dist.es2015/index.spec.d.ts +1 -0
  265. package/node_modules/sentence-case/dist.es2015/index.spec.js +22 -0
  266. package/node_modules/sentence-case/dist.es2015/index.spec.js.map +1 -0
  267. package/node_modules/sentence-case/package.json +89 -0
  268. package/node_modules/snake-case/LICENSE +21 -0
  269. package/node_modules/snake-case/README.md +37 -0
  270. package/node_modules/snake-case/dist/index.d.ts +3 -0
  271. package/node_modules/snake-case/dist/index.js +11 -0
  272. package/node_modules/snake-case/dist/index.js.map +1 -0
  273. package/node_modules/snake-case/dist/index.spec.d.ts +1 -0
  274. package/node_modules/snake-case/dist/index.spec.js +25 -0
  275. package/node_modules/snake-case/dist/index.spec.js.map +1 -0
  276. package/node_modules/snake-case/dist.es2015/index.d.ts +3 -0
  277. package/node_modules/snake-case/dist.es2015/index.js +7 -0
  278. package/node_modules/snake-case/dist.es2015/index.js.map +1 -0
  279. package/node_modules/snake-case/dist.es2015/index.spec.d.ts +1 -0
  280. package/node_modules/snake-case/dist.es2015/index.spec.js +23 -0
  281. package/node_modules/snake-case/dist.es2015/index.spec.js.map +1 -0
  282. package/node_modules/snake-case/package.json +90 -0
  283. package/node_modules/tslib/CopyrightNotice.txt +15 -0
  284. package/node_modules/tslib/LICENSE.txt +12 -0
  285. package/node_modules/tslib/README.md +164 -0
  286. package/node_modules/tslib/SECURITY.md +41 -0
  287. package/node_modules/tslib/modules/index.d.ts +38 -0
  288. package/node_modules/tslib/modules/index.js +70 -0
  289. package/node_modules/tslib/modules/package.json +3 -0
  290. package/node_modules/tslib/package.json +47 -0
  291. package/node_modules/tslib/tslib.d.ts +460 -0
  292. package/node_modules/tslib/tslib.es6.html +1 -0
  293. package/node_modules/tslib/tslib.es6.js +402 -0
  294. package/node_modules/tslib/tslib.es6.mjs +401 -0
  295. package/node_modules/tslib/tslib.html +1 -0
  296. package/node_modules/tslib/tslib.js +484 -0
  297. package/node_modules/universalify/LICENSE +20 -0
  298. package/node_modules/universalify/README.md +76 -0
  299. package/node_modules/universalify/index.js +24 -0
  300. package/node_modules/universalify/package.json +34 -0
  301. package/node_modules/upper-case/README.md +34 -0
  302. package/node_modules/upper-case/dist/index.d.ts +8 -0
  303. package/node_modules/upper-case/dist/index.js +49 -0
  304. package/node_modules/upper-case/dist/index.js.map +1 -0
  305. package/node_modules/upper-case/dist/index.spec.d.ts +1 -0
  306. package/node_modules/upper-case/dist/index.spec.js +34 -0
  307. package/node_modules/upper-case/dist/index.spec.js.map +1 -0
  308. package/node_modules/upper-case/dist.es2015/index.d.ts +8 -0
  309. package/node_modules/upper-case/dist.es2015/index.js +44 -0
  310. package/node_modules/upper-case/dist.es2015/index.js.map +1 -0
  311. package/node_modules/upper-case/dist.es2015/index.spec.d.ts +1 -0
  312. package/node_modules/upper-case/dist.es2015/index.spec.js +32 -0
  313. package/node_modules/upper-case/dist.es2015/index.spec.js.map +1 -0
  314. package/node_modules/upper-case/package.json +86 -0
  315. package/node_modules/upper-case-first/LICENSE +21 -0
  316. package/node_modules/upper-case-first/README.md +32 -0
  317. package/node_modules/upper-case-first/dist/index.d.ts +4 -0
  318. package/node_modules/upper-case-first/dist/index.js +11 -0
  319. package/node_modules/upper-case-first/dist/index.js.map +1 -0
  320. package/node_modules/upper-case-first/dist/index.spec.d.ts +1 -0
  321. package/node_modules/upper-case-first/dist/index.spec.js +20 -0
  322. package/node_modules/upper-case-first/dist/index.spec.js.map +1 -0
  323. package/node_modules/upper-case-first/dist.es2015/index.d.ts +4 -0
  324. package/node_modules/upper-case-first/dist.es2015/index.js +7 -0
  325. package/node_modules/upper-case-first/dist.es2015/index.js.map +1 -0
  326. package/node_modules/upper-case-first/dist.es2015/index.spec.d.ts +1 -0
  327. package/node_modules/upper-case-first/dist.es2015/index.spec.js +18 -0
  328. package/node_modules/upper-case-first/dist.es2015/index.spec.js.map +1 -0
  329. package/node_modules/upper-case-first/package.json +87 -0
  330. package/package.json +181 -0
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) HashiCorp, Inc.
4
+ * SPDX-License-Identifier: MPL-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BhY2thZ2UtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBjZGsgfSBmcm9tIFwicHJvamVuXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFja2FnZUluZm8ge1xuICBucG06IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG4gIHB5dGhvbjogTm9uTnVsbGFibGU8Y2RrLkpzaWlQcm9qZWN0T3B0aW9uc1tcInB5dGhvblwiXT47XG4gIHB1Ymxpc2hUb051Z2V0OiBOb25OdWxsYWJsZTxjZGsuSnNpaVByb2plY3RPcHRpb25zW1wicHVibGlzaFRvTnVnZXRcIl0+O1xuICBwdWJsaXNoVG9NYXZlbjogTm9uTnVsbGFibGU8Y2RrLkpzaWlQcm9qZWN0T3B0aW9uc1tcInB1Ymxpc2hUb01hdmVuXCJdPjtcbiAgcHVibGlzaFRvR286IGNkay5Kc2lpUHJvamVjdE9wdGlvbnNbXCJwdWJsaXNoVG9Hb1wiXTtcbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import { javascript } from "projen";
6
+ interface ProviderUpgradeOptions {
7
+ checkForUpgradesScriptPath: string;
8
+ workflowRunsOn: string[];
9
+ nodeHeapSize: string;
10
+ }
11
+ /**
12
+ * Checks for new versions of the given provider and creates a PR with an upgrade change if there are changes.
13
+ */
14
+ export declare class ProviderUpgrade {
15
+ constructor(project: javascript.NodeProject, options: ProviderUpgradeOptions);
16
+ }
17
+ export {};
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) HashiCorp, Inc.
4
+ * SPDX-License-Identifier: MPL-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ProviderUpgrade = void 0;
8
+ const workflows_model_1 = require("projen/lib/github/workflows-model");
9
+ const random_cron_1 = require("./util/random-cron");
10
+ /**
11
+ * Checks for new versions of the given provider and creates a PR with an upgrade change if there are changes.
12
+ */
13
+ class ProviderUpgrade {
14
+ constructor(project, options) {
15
+ project.addTask("check-if-new-provider-version", {
16
+ exec: `node ./${options.checkForUpgradesScriptPath}`,
17
+ });
18
+ const workflow = project.github?.addWorkflow("provider-upgrade");
19
+ if (!workflow)
20
+ throw new Error("no workflow defined");
21
+ workflow.on({
22
+ schedule: [
23
+ {
24
+ cron: (0, random_cron_1.generateRandomCron)({
25
+ project,
26
+ maxHour: 0,
27
+ hourOffset: 3,
28
+ }),
29
+ },
30
+ ], // Run every day sometime between 3 and 4am
31
+ workflowDispatch: {}, // allow manual triggering
32
+ });
33
+ const newerVersionAvailable = "${{ steps.check_version.outputs.new_version == 'available' }}";
34
+ const currentVersion = "${{ steps.current_version.outputs.value }}";
35
+ const newVersion = "${{ steps.new_version.outputs.value }}";
36
+ const semanticType = "${{ steps.release.outputs.type }}";
37
+ const steps = [
38
+ {
39
+ name: "Checkout",
40
+ uses: "actions/checkout",
41
+ },
42
+ {
43
+ name: "Setup Terraform",
44
+ uses: "hashicorp/setup-terraform",
45
+ with: {
46
+ terraform_wrapper: false,
47
+ },
48
+ },
49
+ {
50
+ name: "Setup Node.js",
51
+ uses: "actions/setup-node",
52
+ with: {
53
+ "node-version": project.minNodeVersion,
54
+ },
55
+ },
56
+ {
57
+ name: "Setup Copywrite tool",
58
+ uses: "hashicorp/setup-copywrite",
59
+ },
60
+ { run: "yarn install" },
61
+ {
62
+ id: "check_version",
63
+ run: "yarn check-if-new-provider-version",
64
+ },
65
+ {
66
+ name: "get provider current version",
67
+ if: newerVersionAvailable,
68
+ id: "current_version",
69
+ run: `echo "value=$(jq -r '.cdktf.provider.version' package.json)" >> $GITHUB_OUTPUT`,
70
+ },
71
+ {
72
+ run: "yarn fetch",
73
+ if: newerVersionAvailable,
74
+ env: {
75
+ CHECKPOINT_DISABLE: "1",
76
+ GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}",
77
+ },
78
+ },
79
+ {
80
+ // Because yarn fetch nukes the contents of /src, we've lost our auto-generated copyright headers
81
+ name: "Add headers using Copywrite tool",
82
+ if: newerVersionAvailable,
83
+ run: "copywrite headers",
84
+ },
85
+ {
86
+ name: "get provider updated version",
87
+ if: newerVersionAvailable,
88
+ id: "new_version",
89
+ run: `echo "value=$(jq -r '. | to_entries[] | .value' src/version.json)" >> $GITHUB_OUTPUT`,
90
+ },
91
+ {
92
+ name: "Determine if this is a minor or patch release",
93
+ if: newerVersionAvailable,
94
+ id: "release",
95
+ env: {
96
+ CURRENT_VERSION: currentVersion,
97
+ NEW_VERSION: newVersion,
98
+ },
99
+ run: [
100
+ `CURRENT_VERSION_MINOR=$(cut -d "." -f 2 <<< "$CURRENT_VERSION")`,
101
+ `NEW_VERSION_MINOR=$(cut -d "." -f 2 <<< "$NEW_VERSION")`,
102
+ `[[ "$CURRENT_VERSION_MINOR" != "$NEW_VERSION_MINOR" ]] && IS_MINOR_RELEASE=true || IS_MINOR_RELEASE=false`,
103
+ `[[ "$IS_MINOR_RELEASE" == "true" ]] && SEMANTIC_TYPE=feat || SEMANTIC_TYPE=fix`,
104
+ `echo "is_minor=$IS_MINOR_RELEASE" >> $GITHUB_OUTPUT`,
105
+ `echo "type=$SEMANTIC_TYPE" >> $GITHUB_OUTPUT`,
106
+ ].join("\n"),
107
+ },
108
+ // submit a PR
109
+ {
110
+ name: "Create Pull Request",
111
+ if: newerVersionAvailable,
112
+ uses: "peter-evans/create-pull-request",
113
+ with: {
114
+ branch: "auto/provider-upgrade",
115
+ "commit-message": `${semanticType}: upgrade provider from \`${currentVersion}\` to version \`${newVersion}\``,
116
+ title: `${semanticType}: upgrade provider from \`${currentVersion}\` to version \`${newVersion}\``,
117
+ body: `This PR upgrades the underlying Terraform provider to version ${newVersion}`,
118
+ labels: "automerge,auto-approve",
119
+ token: "${{ secrets.GH_TOKEN }}",
120
+ "delete-branch": true,
121
+ committer: "team-cdk-terrain <github-team-cdk-terrain@cdktn.io",
122
+ author: "Team CDK Terrain <github-team-cdk-terrain@cdktn.io",
123
+ signoff: true,
124
+ },
125
+ },
126
+ ];
127
+ workflow.addJobs({
128
+ upgrade: {
129
+ runsOn: options.workflowRunsOn,
130
+ env: {
131
+ NODE_OPTIONS: `--max-old-space-size=${options.nodeHeapSize}`,
132
+ },
133
+ steps,
134
+ permissions: {
135
+ pullRequests: workflows_model_1.JobPermission.WRITE,
136
+ issues: workflows_model_1.JobPermission.WRITE,
137
+ contents: workflows_model_1.JobPermission.WRITE,
138
+ statuses: workflows_model_1.JobPermission.WRITE,
139
+ },
140
+ },
141
+ });
142
+ }
143
+ }
144
+ exports.ProviderUpgrade = ProviderUpgrade;
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItdXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92aWRlci11cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUdILHVFQUEyRTtBQUMzRSxvREFBd0Q7QUFPeEQ7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDMUIsWUFDRSxPQUErQixFQUMvQixPQUErQjtRQUUvQixPQUFPLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFO1lBQy9DLElBQUksRUFBRSxVQUFVLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtTQUNyRCxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsSUFBSSxFQUFFLElBQUEsZ0NBQWtCLEVBQUM7d0JBQ3ZCLE9BQU87d0JBQ1AsT0FBTyxFQUFFLENBQUM7d0JBQ1YsVUFBVSxFQUFFLENBQUM7cUJBQ2QsQ0FBQztpQkFDSDthQUNGLEVBQUUsMkNBQTJDO1lBQzlDLGdCQUFnQixFQUFFLEVBQUUsRUFBRSwwQkFBMEI7U0FDakQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FDekIsK0RBQStELENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsNENBQTRDLENBQUM7UUFDcEUsTUFBTSxVQUFVLEdBQUcsd0NBQXdDLENBQUM7UUFDNUQsTUFBTSxZQUFZLEdBQUcsbUNBQW1DLENBQUM7UUFFekQsTUFBTSxLQUFLLEdBQWM7WUFDdkI7Z0JBQ0UsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixJQUFJLEVBQUUsMkJBQTJCO2dCQUNqQyxJQUFJLEVBQUU7b0JBQ0osaUJBQWlCLEVBQUUsS0FBSztpQkFDekI7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixJQUFJLEVBQUU7b0JBQ0osY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO2lCQUN2QzthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsSUFBSSxFQUFFLDJCQUEyQjthQUNsQztZQUNELEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRTtZQUN2QjtnQkFDRSxFQUFFLEVBQUUsZUFBZTtnQkFDbkIsR0FBRyxFQUFFLG9DQUFvQzthQUMxQztZQUNEO2dCQUNFLElBQUksRUFBRSw4QkFBOEI7Z0JBQ3BDLEVBQUUsRUFBRSxxQkFBcUI7Z0JBQ3pCLEVBQUUsRUFBRSxpQkFBaUI7Z0JBQ3JCLEdBQUcsRUFBRSxnRkFBZ0Y7YUFDdEY7WUFDRDtnQkFDRSxHQUFHLEVBQUUsWUFBWTtnQkFDakIsRUFBRSxFQUFFLHFCQUFxQjtnQkFDekIsR0FBRyxFQUFFO29CQUNILGtCQUFrQixFQUFFLEdBQUc7b0JBQ3ZCLFFBQVEsRUFBRSw2QkFBNkI7aUJBQ3hDO2FBQ0Y7WUFDRDtnQkFDRSxpR0FBaUc7Z0JBQ2pHLElBQUksRUFBRSxrQ0FBa0M7Z0JBQ3hDLEVBQUUsRUFBRSxxQkFBcUI7Z0JBQ3pCLEdBQUcsRUFBRSxtQkFBbUI7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsOEJBQThCO2dCQUNwQyxFQUFFLEVBQUUscUJBQXFCO2dCQUN6QixFQUFFLEVBQUUsYUFBYTtnQkFDakIsR0FBRyxFQUFFLHNGQUFzRjthQUM1RjtZQUNEO2dCQUNFLElBQUksRUFBRSwrQ0FBK0M7Z0JBQ3JELEVBQUUsRUFBRSxxQkFBcUI7Z0JBQ3pCLEVBQUUsRUFBRSxTQUFTO2dCQUNiLEdBQUcsRUFBRTtvQkFDSCxlQUFlLEVBQUUsY0FBYztvQkFDL0IsV0FBVyxFQUFFLFVBQVU7aUJBQ3hCO2dCQUNELEdBQUcsRUFBRTtvQkFDSCxpRUFBaUU7b0JBQ2pFLHlEQUF5RDtvQkFDekQsMkdBQTJHO29CQUMzRyxnRkFBZ0Y7b0JBQ2hGLHFEQUFxRDtvQkFDckQsOENBQThDO2lCQUMvQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDYjtZQUNELGNBQWM7WUFDZDtnQkFDRSxJQUFJLEVBQUUscUJBQXFCO2dCQUMzQixFQUFFLEVBQUUscUJBQXFCO2dCQUN6QixJQUFJLEVBQUUsaUNBQWlDO2dCQUN2QyxJQUFJLEVBQUU7b0JBQ0osTUFBTSxFQUFFLHVCQUF1QjtvQkFDL0IsZ0JBQWdCLEVBQUUsR0FBRyxZQUFZLDZCQUE2QixjQUFjLG1CQUFtQixVQUFVLElBQUk7b0JBQzdHLEtBQUssRUFBRSxHQUFHLFlBQVksNkJBQTZCLGNBQWMsbUJBQW1CLFVBQVUsSUFBSTtvQkFDbEcsSUFBSSxFQUFFLGlFQUFpRSxVQUFVLEVBQUU7b0JBQ25GLE1BQU0sRUFBRSx3QkFBd0I7b0JBQ2hDLEtBQUssRUFBRSx5QkFBeUI7b0JBQ2hDLGVBQWUsRUFBRSxJQUFJO29CQUNyQixTQUFTLEVBQUUsb0RBQW9EO29CQUMvRCxNQUFNLEVBQUUsb0RBQW9EO29CQUM1RCxPQUFPLEVBQUUsSUFBSTtpQkFDZDthQUNGO1NBQ0YsQ0FBQztRQUVGLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDZixPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLE9BQU8sQ0FBQyxjQUFjO2dCQUM5QixHQUFHLEVBQUU7b0JBQ0gsWUFBWSxFQUFFLHdCQUF3QixPQUFPLENBQUMsWUFBWSxFQUFFO2lCQUM3RDtnQkFDRCxLQUFLO2dCQUNMLFdBQVcsRUFBRTtvQkFDWCxZQUFZLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO29CQUNqQyxNQUFNLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO29CQUMzQixRQUFRLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO29CQUM3QixRQUFRLEVBQUUsK0JBQWEsQ0FBQyxLQUFLO2lCQUM5QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0lELDBDQTJJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgamF2YXNjcmlwdCB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24sIEpvYlN0ZXAgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZVJhbmRvbUNyb24gfSBmcm9tIFwiLi91dGlsL3JhbmRvbS1jcm9uXCI7XG5cbmludGVyZmFjZSBQcm92aWRlclVwZ3JhZGVPcHRpb25zIHtcbiAgY2hlY2tGb3JVcGdyYWRlc1NjcmlwdFBhdGg6IHN0cmluZztcbiAgd29ya2Zsb3dSdW5zT246IHN0cmluZ1tdO1xuICBub2RlSGVhcFNpemU6IHN0cmluZztcbn1cbi8qKlxuICogQ2hlY2tzIGZvciBuZXcgdmVyc2lvbnMgb2YgdGhlIGdpdmVuIHByb3ZpZGVyIGFuZCBjcmVhdGVzIGEgUFIgd2l0aCBhbiB1cGdyYWRlIGNoYW5nZSBpZiB0aGVyZSBhcmUgY2hhbmdlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyVXBncmFkZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb2plY3Q6IGphdmFzY3JpcHQuTm9kZVByb2plY3QsXG4gICAgb3B0aW9uczogUHJvdmlkZXJVcGdyYWRlT3B0aW9uc1xuICApIHtcbiAgICBwcm9qZWN0LmFkZFRhc2soXCJjaGVjay1pZi1uZXctcHJvdmlkZXItdmVyc2lvblwiLCB7XG4gICAgICBleGVjOiBgbm9kZSAuLyR7b3B0aW9ucy5jaGVja0ZvclVwZ3JhZGVzU2NyaXB0UGF0aH1gLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgd29ya2Zsb3cgPSBwcm9qZWN0LmdpdGh1Yj8uYWRkV29ya2Zsb3coXCJwcm92aWRlci11cGdyYWRlXCIpO1xuXG4gICAgaWYgKCF3b3JrZmxvdykgdGhyb3cgbmV3IEVycm9yKFwibm8gd29ya2Zsb3cgZGVmaW5lZFwiKTtcblxuICAgIHdvcmtmbG93Lm9uKHtcbiAgICAgIHNjaGVkdWxlOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjcm9uOiBnZW5lcmF0ZVJhbmRvbUNyb24oe1xuICAgICAgICAgICAgcHJvamVjdCxcbiAgICAgICAgICAgIG1heEhvdXI6IDAsXG4gICAgICAgICAgICBob3VyT2Zmc2V0OiAzLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgXSwgLy8gUnVuIGV2ZXJ5IGRheSBzb21ldGltZSBiZXR3ZWVuIDMgYW5kIDRhbVxuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge30sIC8vIGFsbG93IG1hbnVhbCB0cmlnZ2VyaW5nXG4gICAgfSk7XG5cbiAgICBjb25zdCBuZXdlclZlcnNpb25BdmFpbGFibGUgPVxuICAgICAgXCIke3sgc3RlcHMuY2hlY2tfdmVyc2lvbi5vdXRwdXRzLm5ld192ZXJzaW9uID09ICdhdmFpbGFibGUnIH19XCI7XG4gICAgY29uc3QgY3VycmVudFZlcnNpb24gPSBcIiR7eyBzdGVwcy5jdXJyZW50X3ZlcnNpb24ub3V0cHV0cy52YWx1ZSB9fVwiO1xuICAgIGNvbnN0IG5ld1ZlcnNpb24gPSBcIiR7eyBzdGVwcy5uZXdfdmVyc2lvbi5vdXRwdXRzLnZhbHVlIH19XCI7XG4gICAgY29uc3Qgc2VtYW50aWNUeXBlID0gXCIke3sgc3RlcHMucmVsZWFzZS5vdXRwdXRzLnR5cGUgfX1cIjtcblxuICAgIGNvbnN0IHN0ZXBzOiBKb2JTdGVwW10gPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgdXNlczogXCJhY3Rpb25zL2NoZWNrb3V0XCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlNldHVwIFRlcnJhZm9ybVwiLFxuICAgICAgICB1c2VzOiBcImhhc2hpY29ycC9zZXR1cC10ZXJyYWZvcm1cIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIHRlcnJhZm9ybV93cmFwcGVyOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgTm9kZS5qc1wiLFxuICAgICAgICB1c2VzOiBcImFjdGlvbnMvc2V0dXAtbm9kZVwiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgXCJub2RlLXZlcnNpb25cIjogcHJvamVjdC5taW5Ob2RlVmVyc2lvbixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiU2V0dXAgQ29weXdyaXRlIHRvb2xcIixcbiAgICAgICAgdXNlczogXCJoYXNoaWNvcnAvc2V0dXAtY29weXdyaXRlXCIsXG4gICAgICB9LFxuICAgICAgeyBydW46IFwieWFybiBpbnN0YWxsXCIgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6IFwiY2hlY2tfdmVyc2lvblwiLFxuICAgICAgICBydW46IFwieWFybiBjaGVjay1pZi1uZXctcHJvdmlkZXItdmVyc2lvblwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJnZXQgcHJvdmlkZXIgY3VycmVudCB2ZXJzaW9uXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIGlkOiBcImN1cnJlbnRfdmVyc2lvblwiLFxuICAgICAgICBydW46IGBlY2hvIFwidmFsdWU9JChqcSAtciAnLmNka3RmLnByb3ZpZGVyLnZlcnNpb24nIHBhY2thZ2UuanNvbilcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydW46IFwieWFybiBmZXRjaFwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBDSEVDS1BPSU5UX0RJU0FCTEU6IFwiMVwiLFxuICAgICAgICAgIEdIX1RPS0VOOiBcIiR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fVwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gQmVjYXVzZSB5YXJuIGZldGNoIG51a2VzIHRoZSBjb250ZW50cyBvZiAvc3JjLCB3ZSd2ZSBsb3N0IG91ciBhdXRvLWdlbmVyYXRlZCBjb3B5cmlnaHQgaGVhZGVyc1xuICAgICAgICBuYW1lOiBcIkFkZCBoZWFkZXJzIHVzaW5nIENvcHl3cml0ZSB0b29sXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIHJ1bjogXCJjb3B5d3JpdGUgaGVhZGVyc1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJnZXQgcHJvdmlkZXIgdXBkYXRlZCB2ZXJzaW9uXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIGlkOiBcIm5ld192ZXJzaW9uXCIsXG4gICAgICAgIHJ1bjogYGVjaG8gXCJ2YWx1ZT0kKGpxIC1yICcuIHwgdG9fZW50cmllc1tdIHwgLnZhbHVlJyBzcmMvdmVyc2lvbi5qc29uKVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBtaW5vciBvciBwYXRjaCByZWxlYXNlXCIsXG4gICAgICAgIGlmOiBuZXdlclZlcnNpb25BdmFpbGFibGUsXG4gICAgICAgIGlkOiBcInJlbGVhc2VcIixcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQ1VSUkVOVF9WRVJTSU9OOiBjdXJyZW50VmVyc2lvbixcbiAgICAgICAgICBORVdfVkVSU0lPTjogbmV3VmVyc2lvbixcbiAgICAgICAgfSxcbiAgICAgICAgcnVuOiBbXG4gICAgICAgICAgYENVUlJFTlRfVkVSU0lPTl9NSU5PUj0kKGN1dCAtZCBcIi5cIiAtZiAyIDw8PCBcIiRDVVJSRU5UX1ZFUlNJT05cIilgLFxuICAgICAgICAgIGBORVdfVkVSU0lPTl9NSU5PUj0kKGN1dCAtZCBcIi5cIiAtZiAyIDw8PCBcIiRORVdfVkVSU0lPTlwiKWAsXG4gICAgICAgICAgYFtbIFwiJENVUlJFTlRfVkVSU0lPTl9NSU5PUlwiICE9IFwiJE5FV19WRVJTSU9OX01JTk9SXCIgXV0gJiYgSVNfTUlOT1JfUkVMRUFTRT10cnVlIHx8IElTX01JTk9SX1JFTEVBU0U9ZmFsc2VgLFxuICAgICAgICAgIGBbWyBcIiRJU19NSU5PUl9SRUxFQVNFXCIgPT0gXCJ0cnVlXCIgXV0gJiYgU0VNQU5USUNfVFlQRT1mZWF0IHx8IFNFTUFOVElDX1RZUEU9Zml4YCxcbiAgICAgICAgICBgZWNobyBcImlzX21pbm9yPSRJU19NSU5PUl9SRUxFQVNFXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgICAgIGBlY2hvIFwidHlwZT0kU0VNQU5USUNfVFlQRVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICAgfSxcbiAgICAgIC8vIHN1Ym1pdCBhIFBSXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQ3JlYXRlIFB1bGwgUmVxdWVzdFwiLFxuICAgICAgICBpZjogbmV3ZXJWZXJzaW9uQXZhaWxhYmxlLFxuICAgICAgICB1c2VzOiBcInBldGVyLWV2YW5zL2NyZWF0ZS1wdWxsLXJlcXVlc3RcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIGJyYW5jaDogXCJhdXRvL3Byb3ZpZGVyLXVwZ3JhZGVcIixcbiAgICAgICAgICBcImNvbW1pdC1tZXNzYWdlXCI6IGAke3NlbWFudGljVHlwZX06IHVwZ3JhZGUgcHJvdmlkZXIgZnJvbSBcXGAke2N1cnJlbnRWZXJzaW9ufVxcYCB0byB2ZXJzaW9uIFxcYCR7bmV3VmVyc2lvbn1cXGBgLFxuICAgICAgICAgIHRpdGxlOiBgJHtzZW1hbnRpY1R5cGV9OiB1cGdyYWRlIHByb3ZpZGVyIGZyb20gXFxgJHtjdXJyZW50VmVyc2lvbn1cXGAgdG8gdmVyc2lvbiBcXGAke25ld1ZlcnNpb259XFxgYCxcbiAgICAgICAgICBib2R5OiBgVGhpcyBQUiB1cGdyYWRlcyB0aGUgdW5kZXJseWluZyBUZXJyYWZvcm0gcHJvdmlkZXIgdG8gdmVyc2lvbiAke25ld1ZlcnNpb259YCxcbiAgICAgICAgICBsYWJlbHM6IFwiYXV0b21lcmdlLGF1dG8tYXBwcm92ZVwiLFxuICAgICAgICAgIHRva2VuOiBcIiR7eyBzZWNyZXRzLkdIX1RPS0VOIH19XCIsXG4gICAgICAgICAgXCJkZWxldGUtYnJhbmNoXCI6IHRydWUsXG4gICAgICAgICAgY29tbWl0dGVyOiBcInRlYW0tY2RrLXRlcnJhaW4gPGdpdGh1Yi10ZWFtLWNkay10ZXJyYWluQGNka3RuLmlvXCIsXG4gICAgICAgICAgYXV0aG9yOiBcIlRlYW0gQ0RLIFRlcnJhaW4gPGdpdGh1Yi10ZWFtLWNkay10ZXJyYWluQGNka3RuLmlvXCIsXG4gICAgICAgICAgc2lnbm9mZjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHdvcmtmbG93LmFkZEpvYnMoe1xuICAgICAgdXBncmFkZToge1xuICAgICAgICBydW5zT246IG9wdGlvbnMud29ya2Zsb3dSdW5zT24sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIE5PREVfT1BUSU9OUzogYC0tbWF4LW9sZC1zcGFjZS1zaXplPSR7b3B0aW9ucy5ub2RlSGVhcFNpemV9YCxcbiAgICAgICAgfSxcbiAgICAgICAgc3RlcHMsXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgcHVsbFJlcXVlc3RzOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICAgIGlzc3VlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBzdGF0dXNlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import { FileBase, FileBaseOptions, IResolver, Project } from "projen";
6
+ import { PackageInfo } from "./package-info";
7
+ export interface ReadmeFileOptions extends FileBaseOptions {
8
+ providerName: string;
9
+ fqproviderName: string;
10
+ providerVersion: string;
11
+ packageInfo: PackageInfo;
12
+ underlyingTerraformVersion: string;
13
+ cdktfVersion: string;
14
+ isDeprecated: boolean;
15
+ deprecationDate?: string;
16
+ }
17
+ export declare class ReadmeFile extends FileBase {
18
+ protected readonly options: ReadmeFileOptions;
19
+ constructor(project: Project, filePath: string, options: ReadmeFileOptions);
20
+ protected synthesizeContent(resolver: IResolver): string;
21
+ }
package/lib/readme.js ADDED
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) HashiCorp, Inc.
4
+ * SPDX-License-Identifier: MPL-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ReadmeFile = void 0;
8
+ const projen_1 = require("projen");
9
+ class ReadmeFile extends projen_1.FileBase {
10
+ constructor(project, filePath, options) {
11
+ super(project, filePath, options);
12
+ this.options = options;
13
+ }
14
+ synthesizeContent(resolver) {
15
+ const { providerName, fqproviderName, providerVersion, packageInfo, underlyingTerraformVersion, isDeprecated, deprecationDate, } = resolver.resolve(this.options);
16
+ const fqpnURL = fqproviderName.includes("/")
17
+ ? fqproviderName
18
+ : `hashicorp/${fqproviderName}`;
19
+ const versionURL = providerVersion
20
+ ? providerVersion.replace(/~>\s*/, "").concat(".0")
21
+ : "";
22
+ const registryUrl = `https://registry.terraform.io/providers/${fqpnURL}/${underlyingTerraformVersion !== "<unknown>"
23
+ ? underlyingTerraformVersion
24
+ : versionURL}`;
25
+ const cdktfVersion = this.options.cdktfVersion.replace("^", "");
26
+ const date = deprecationDate ??
27
+ new Date().toLocaleDateString("en-US", {
28
+ year: "numeric",
29
+ month: "long",
30
+ day: "numeric",
31
+ });
32
+ const deprecationMessage = `
33
+ The CDK Terrain Team made the decision to stop publishing new versions of prebuilt [Terraform ${providerName} provider](${registryUrl}) bindings for [CDK for Terraform](https://cdk.tf) on ${date}. As such, this repository has been archived and is no longer supported in any way by HashiCorp. Previously-published versions of this prebuilt provider will still continue to be available on their respective package managers (e.g. npm, PyPi, Maven, NuGet), but these will not be compatible with new releases of \`cdktf\` past \`${cdktfVersion}\` and are no longer eligible for support.
34
+
35
+ As a reminder, you can continue to use the \`${fqpnURL}\` provider in your CDK for Terraform (CDKTF) projects, even with newer versions of CDKTF, but you will need to generate the bindings locally. The easiest way to do so is to use the [\`provider add\` command](https://developer.hashicorp.com/terraform/cdktf/cli-reference/commands#provider-add), optionally with the \`--force-local\` flag enabled:
36
+
37
+ \`cdktf provider add ${fqpnURL} --force-local\`
38
+
39
+ For more information and additional examples, check out our documentation on [generating provider bindings manually](https://cdk.tf/imports).
40
+ `.trim();
41
+ const readme = `
42
+ # CDKTF prebuilt bindings for ${fqpnURL} provider version ${underlyingTerraformVersion !== "<unknown>"
43
+ ? `${underlyingTerraformVersion}`
44
+ : `${providerVersion}`}
45
+
46
+ ${isDeprecated
47
+ ? deprecationMessage
48
+ : `This repo builds and publishes the [Terraform ${providerName} provider](${registryUrl}/docs) bindings for [CDK for Terraform](https://cdk.tf).`}
49
+
50
+ ## ${isDeprecated ? "Deprecated" : "Available"} Packages
51
+
52
+ ### NPM
53
+
54
+ The npm package is available at [https://www.npmjs.com/package/${packageInfo.npm.name}](https://www.npmjs.com/package/${packageInfo.npm.name}).
55
+
56
+ \`npm install ${packageInfo.npm.name}\`
57
+
58
+ ### PyPI
59
+
60
+ The PyPI package is available at [https://pypi.org/project/${packageInfo.python.distName}](https://pypi.org/project/${packageInfo.python.distName}).
61
+
62
+ \`pipenv install ${packageInfo.python.distName}\`
63
+
64
+ ### Nuget
65
+
66
+ The Nuget package is available at [https://www.nuget.org/packages/${packageInfo.publishToNuget.packageId}](https://www.nuget.org/packages/${packageInfo.publishToNuget.packageId}).
67
+
68
+ \`dotnet add package ${packageInfo.publishToNuget.packageId}\`
69
+
70
+ ### Maven
71
+
72
+ The Maven package is available at [https://mvnrepository.com/artifact/${packageInfo.publishToMaven.mavenGroupId}/${packageInfo.publishToMaven.mavenArtifactId}](https://mvnrepository.com/artifact/${packageInfo.publishToMaven.mavenGroupId}/${packageInfo.publishToMaven.mavenArtifactId}).
73
+
74
+ \`\`\`
75
+ <dependency>
76
+ <groupId>${packageInfo.publishToMaven.mavenGroupId}</groupId>
77
+ <artifactId>${packageInfo.publishToMaven.mavenArtifactId}</artifactId>
78
+ <version>[REPLACE WITH DESIRED VERSION]</version>
79
+ </dependency>
80
+ \`\`\`
81
+
82
+ ### Go
83
+
84
+ The go package is generated into the [\`${packageInfo.publishToGo?.moduleName}\`](https://${packageInfo.publishToGo?.moduleName}) package.
85
+
86
+ \`go get ${packageInfo.publishToGo?.moduleName}/${packageInfo.publishToGo?.packageName}/<version>\`
87
+
88
+ Where \`<version>\` is the version of the prebuilt provider you would like to use e.g. \`v11\`. The full module name can be found
89
+ within the [go.mod](https://${packageInfo.publishToGo?.moduleName}/blob/main/${packageInfo.publishToGo?.packageName}/go.mod#L1) file.
90
+
91
+ ## Docs
92
+
93
+ Find auto-generated docs for this provider here:
94
+
95
+ - [Typescript](./docs/API.typescript.md)
96
+ - [Python](./docs/API.python.md)
97
+ - [Java](./docs/API.java.md)
98
+ - [C#](./docs/API.csharp.md)
99
+ - [Go](./docs/API.go.md)
100
+
101
+ You can also visit a hosted version of the documentation on [constructs.dev](https://constructs.dev/packages/@cdktn/provider-${providerName}).
102
+ `;
103
+ return isDeprecated
104
+ ? readme
105
+ : readme +
106
+ `
107
+ ## Versioning
108
+
109
+ This project is explicitly not tracking the Terraform ${providerName} provider version 1:1. In fact, it always tracks \`latest\` of \`${providerVersion}\` with every release. If there are scenarios where you explicitly have to pin your provider version, you can do so by [generating the provider constructs manually](https://cdk.tf/imports).
110
+
111
+ These are the upstream dependencies:
112
+
113
+ - [CDK for Terraform](https://cdk.tf) - Last official release
114
+ - [Terraform ${providerName} provider](${registryUrl})
115
+ - [Terraform Engine](https://terraform.io)
116
+
117
+ If there are breaking changes (backward incompatible) in any of the above, the major version of this project will be bumped.
118
+
119
+ ## Features / Issues / Bugs
120
+
121
+ Please report bugs and issues to the [CDK for Terraform](https://cdk.tf) project:
122
+
123
+ - [Create bug report](https://cdk.tf/bug)
124
+ - [Create feature request](https://cdk.tf/feature)
125
+
126
+ ## Contributing
127
+
128
+ ### Projen
129
+
130
+ This is mostly based on [Projen](https://projen.io), which takes care of generating the entire repository.
131
+
132
+ ### cdktn-provider-project based on Projen
133
+
134
+ There's a custom [project builder](https://github.com/cdktn-io/cdktn-provider-project) which encapsulate the common settings for all \`cdktf\` prebuilt providers.
135
+
136
+ ### Provider Version
137
+
138
+ The provider version can be adjusted in [./.projenrc.js](./.projenrc.js).
139
+
140
+ ### Repository Management
141
+
142
+ The repository is managed by [CDKTN Repository Manager](https://github.com/cdktn-io/cdktn-repository-manager/).
143
+ `;
144
+ }
145
+ }
146
+ exports.ReadmeFile = ReadmeFile;
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlYWRtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFFSCxtQ0FBdUU7QUFjdkUsTUFBYSxVQUFXLFNBQVEsaUJBQVE7SUFHdEMsWUFBWSxPQUFnQixFQUFFLFFBQWdCLEVBQUUsT0FBMEI7UUFDeEUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVTLGlCQUFpQixDQUFDLFFBQW1CO1FBQzdDLE1BQU0sRUFDSixZQUFZLEVBQ1osY0FBYyxFQUNkLGVBQWUsRUFDZixXQUFXLEVBQ1gsMEJBQTBCLEVBQzFCLFlBQVksRUFDWixlQUFlLEdBQ2hCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFzQixDQUFDO1FBRXhELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxjQUFjO1lBQ2hCLENBQUMsQ0FBQyxhQUFhLGNBQWMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLGVBQWU7WUFDaEMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDbkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE1BQU0sV0FBVyxHQUFHLDJDQUEyQyxPQUFPLElBQ3BFLDBCQUEwQixLQUFLLFdBQVc7WUFDeEMsQ0FBQyxDQUFDLDBCQUEwQjtZQUM1QixDQUFDLENBQUMsVUFDTixFQUFFLENBQUM7UUFDSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sSUFBSSxHQUNSLGVBQWU7WUFDZixJQUFJLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtnQkFDckMsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsR0FBRyxFQUFFLFNBQVM7YUFDZixDQUFDLENBQUM7UUFDTCxNQUFNLGtCQUFrQixHQUFHO2dHQUNpRSxZQUFZLGNBQWMsV0FBVyx5REFBeUQsSUFBSSw0VUFBNFUsWUFBWTs7K0NBRTNlLE9BQU87O3VCQUUvQixPQUFPOzs7S0FHekIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVULE1BQU0sTUFBTSxHQUFHO2dDQUNhLE9BQU8scUJBQ2pDLDBCQUEwQixLQUFLLFdBQVc7WUFDeEMsQ0FBQyxDQUFDLEdBQUcsMEJBQTBCLEVBQUU7WUFDakMsQ0FBQyxDQUFDLEdBQUcsZUFBZSxFQUN4Qjs7RUFHRixZQUFZO1lBQ1YsQ0FBQyxDQUFDLGtCQUFrQjtZQUNwQixDQUFDLENBQUMsaURBQWlELFlBQVksY0FBYyxXQUFXLDBEQUM1Rjs7S0FFSyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVzs7OztpRUFLeEMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUNsQixtQ0FBbUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJOztnQkFFM0MsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJOzs7OzZEQUs5QixXQUFXLENBQUMsTUFBTSxDQUFDLFFBQ3JCLDhCQUE4QixXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVE7O21CQUUxQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVE7Ozs7b0VBS3hDLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FDN0Isb0NBQW9DLFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBUzs7dUJBRXJELFdBQVcsQ0FBQyxjQUFjLENBQUMsU0FBUzs7Ozt3RUFLckQsV0FBVyxDQUFDLGNBQWMsQ0FBQyxZQUM3QixJQUNFLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFDN0Isd0NBQ0UsV0FBVyxDQUFDLGNBQWMsQ0FBQyxZQUM3QixJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZTs7OztlQUluQyxXQUFXLENBQUMsY0FBYyxDQUFDLFlBQVk7a0JBQ3BDLFdBQVcsQ0FBQyxjQUFjLENBQUMsZUFBZTs7Ozs7OzswQ0FRdEQsV0FBVyxDQUFDLFdBQVcsRUFBRSxVQUMzQixlQUFlLFdBQVcsQ0FBQyxXQUFXLEVBQUUsVUFBVTs7V0FFM0MsV0FBVyxDQUFDLFdBQVcsRUFBRSxVQUFVLElBQ3hDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsV0FDM0I7Ozs4QkFHMEIsV0FBVyxDQUFDLFdBQVcsRUFBRSxVQUFVLGNBQzNELFdBQVcsQ0FBQyxXQUFXLEVBQUUsV0FDM0I7Ozs7Ozs7Ozs7OzsrSEFZMkgsWUFBWTtDQUMxSSxDQUFDO1FBRUUsT0FBTyxZQUFZO1lBQ2pCLENBQUMsQ0FBQyxNQUFNO1lBQ1IsQ0FBQyxDQUFDLE1BQU07Z0JBQ0o7Ozt3REFHOEMsWUFBWSxvRUFBb0UsZUFBZTs7Ozs7ZUFLeEksWUFBWSxjQUFjLFdBQVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNkJuRCxDQUFDO0lBQ0EsQ0FBQztDQUNGO0FBaExELGdDQWdMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgRmlsZUJhc2UsIEZpbGVCYXNlT3B0aW9ucywgSVJlc29sdmVyLCBQcm9qZWN0IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgUGFja2FnZUluZm8gfSBmcm9tIFwiLi9wYWNrYWdlLWluZm9cIjtcblxuZXhwb3J0IGludGVyZmFjZSBSZWFkbWVGaWxlT3B0aW9ucyBleHRlbmRzIEZpbGVCYXNlT3B0aW9ucyB7XG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICBmcXByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICBwcm92aWRlclZlcnNpb246IHN0cmluZztcbiAgcGFja2FnZUluZm86IFBhY2thZ2VJbmZvO1xuICB1bmRlcmx5aW5nVGVycmFmb3JtVmVyc2lvbjogc3RyaW5nO1xuICBjZGt0ZlZlcnNpb246IHN0cmluZztcbiAgaXNEZXByZWNhdGVkOiBib29sZWFuO1xuICBkZXByZWNhdGlvbkRhdGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWFkbWVGaWxlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9uczogUmVhZG1lRmlsZU9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgZmlsZVBhdGg6IHN0cmluZywgb3B0aW9uczogUmVhZG1lRmlsZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBmaWxlUGF0aCwgb3B0aW9ucyk7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChyZXNvbHZlcjogSVJlc29sdmVyKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvdmlkZXJOYW1lLFxuICAgICAgZnFwcm92aWRlck5hbWUsXG4gICAgICBwcm92aWRlclZlcnNpb24sXG4gICAgICBwYWNrYWdlSW5mbyxcbiAgICAgIHVuZGVybHlpbmdUZXJyYWZvcm1WZXJzaW9uLFxuICAgICAgaXNEZXByZWNhdGVkLFxuICAgICAgZGVwcmVjYXRpb25EYXRlLFxuICAgIH0gPSByZXNvbHZlci5yZXNvbHZlKHRoaXMub3B0aW9ucykgYXMgUmVhZG1lRmlsZU9wdGlvbnM7XG5cbiAgICBjb25zdCBmcXBuVVJMID0gZnFwcm92aWRlck5hbWUuaW5jbHVkZXMoXCIvXCIpXG4gICAgICA/IGZxcHJvdmlkZXJOYW1lXG4gICAgICA6IGBoYXNoaWNvcnAvJHtmcXByb3ZpZGVyTmFtZX1gO1xuICAgIGNvbnN0IHZlcnNpb25VUkwgPSBwcm92aWRlclZlcnNpb25cbiAgICAgID8gcHJvdmlkZXJWZXJzaW9uLnJlcGxhY2UoL34+XFxzKi8sIFwiXCIpLmNvbmNhdChcIi4wXCIpXG4gICAgICA6IFwiXCI7XG4gICAgY29uc3QgcmVnaXN0cnlVcmwgPSBgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzLyR7ZnFwblVSTH0vJHtcbiAgICAgIHVuZGVybHlpbmdUZXJyYWZvcm1WZXJzaW9uICE9PSBcIjx1bmtub3duPlwiXG4gICAgICAgID8gdW5kZXJseWluZ1RlcnJhZm9ybVZlcnNpb25cbiAgICAgICAgOiB2ZXJzaW9uVVJMXG4gICAgfWA7XG4gICAgY29uc3QgY2RrdGZWZXJzaW9uID0gdGhpcy5vcHRpb25zLmNka3RmVmVyc2lvbi5yZXBsYWNlKFwiXlwiLCBcIlwiKTtcblxuICAgIGNvbnN0IGRhdGUgPVxuICAgICAgZGVwcmVjYXRpb25EYXRlID8/XG4gICAgICBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZyhcImVuLVVTXCIsIHtcbiAgICAgICAgeWVhcjogXCJudW1lcmljXCIsXG4gICAgICAgIG1vbnRoOiBcImxvbmdcIixcbiAgICAgICAgZGF5OiBcIm51bWVyaWNcIixcbiAgICAgIH0pO1xuICAgIGNvbnN0IGRlcHJlY2F0aW9uTWVzc2FnZSA9IGBcblRoZSBDREsgVGVycmFpbiBUZWFtIG1hZGUgdGhlIGRlY2lzaW9uIHRvIHN0b3AgcHVibGlzaGluZyBuZXcgdmVyc2lvbnMgb2YgcHJlYnVpbHQgW1RlcnJhZm9ybSAke3Byb3ZpZGVyTmFtZX0gcHJvdmlkZXJdKCR7cmVnaXN0cnlVcmx9KSBiaW5kaW5ncyBmb3IgW0NESyBmb3IgVGVycmFmb3JtXShodHRwczovL2Nkay50Zikgb24gJHtkYXRlfS4gQXMgc3VjaCwgdGhpcyByZXBvc2l0b3J5IGhhcyBiZWVuIGFyY2hpdmVkIGFuZCBpcyBubyBsb25nZXIgc3VwcG9ydGVkIGluIGFueSB3YXkgYnkgSGFzaGlDb3JwLiBQcmV2aW91c2x5LXB1Ymxpc2hlZCB2ZXJzaW9ucyBvZiB0aGlzIHByZWJ1aWx0IHByb3ZpZGVyIHdpbGwgc3RpbGwgY29udGludWUgdG8gYmUgYXZhaWxhYmxlIG9uIHRoZWlyIHJlc3BlY3RpdmUgcGFja2FnZSBtYW5hZ2VycyAoZS5nLiBucG0sIFB5UGksIE1hdmVuLCBOdUdldCksIGJ1dCB0aGVzZSB3aWxsIG5vdCBiZSBjb21wYXRpYmxlIHdpdGggbmV3IHJlbGVhc2VzIG9mIFxcYGNka3RmXFxgIHBhc3QgXFxgJHtjZGt0ZlZlcnNpb259XFxgIGFuZCBhcmUgbm8gbG9uZ2VyIGVsaWdpYmxlIGZvciBzdXBwb3J0LlxuXG5BcyBhIHJlbWluZGVyLCB5b3UgY2FuIGNvbnRpbnVlIHRvIHVzZSB0aGUgXFxgJHtmcXBuVVJMfVxcYCBwcm92aWRlciBpbiB5b3VyIENESyBmb3IgVGVycmFmb3JtIChDREtURikgcHJvamVjdHMsIGV2ZW4gd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBDREtURiwgYnV0IHlvdSB3aWxsIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIGJpbmRpbmdzIGxvY2FsbHkuIFRoZSBlYXNpZXN0IHdheSB0byBkbyBzbyBpcyB0byB1c2UgdGhlIFtcXGBwcm92aWRlciBhZGRcXGAgY29tbWFuZF0oaHR0cHM6Ly9kZXZlbG9wZXIuaGFzaGljb3JwLmNvbS90ZXJyYWZvcm0vY2RrdGYvY2xpLXJlZmVyZW5jZS9jb21tYW5kcyNwcm92aWRlci1hZGQpLCBvcHRpb25hbGx5IHdpdGggdGhlIFxcYC0tZm9yY2UtbG9jYWxcXGAgZmxhZyBlbmFibGVkOlxuXG5cXGBjZGt0ZiBwcm92aWRlciBhZGQgJHtmcXBuVVJMfSAtLWZvcmNlLWxvY2FsXFxgXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBhZGRpdGlvbmFsIGV4YW1wbGVzLCBjaGVjayBvdXQgb3VyIGRvY3VtZW50YXRpb24gb24gW2dlbmVyYXRpbmcgcHJvdmlkZXIgYmluZGluZ3MgbWFudWFsbHldKGh0dHBzOi8vY2RrLnRmL2ltcG9ydHMpLlxuICAgIGAudHJpbSgpO1xuXG4gICAgY29uc3QgcmVhZG1lID0gYFxuIyBDREtURiBwcmVidWlsdCBiaW5kaW5ncyBmb3IgJHtmcXBuVVJMfSBwcm92aWRlciB2ZXJzaW9uICR7XG4gICAgICB1bmRlcmx5aW5nVGVycmFmb3JtVmVyc2lvbiAhPT0gXCI8dW5rbm93bj5cIlxuICAgICAgICA/IGAke3VuZGVybHlpbmdUZXJyYWZvcm1WZXJzaW9ufWBcbiAgICAgICAgOiBgJHtwcm92aWRlclZlcnNpb259YFxuICAgIH1cblxuJHtcbiAgaXNEZXByZWNhdGVkXG4gICAgPyBkZXByZWNhdGlvbk1lc3NhZ2VcbiAgICA6IGBUaGlzIHJlcG8gYnVpbGRzIGFuZCBwdWJsaXNoZXMgdGhlIFtUZXJyYWZvcm0gJHtwcm92aWRlck5hbWV9IHByb3ZpZGVyXSgke3JlZ2lzdHJ5VXJsfS9kb2NzKSBiaW5kaW5ncyBmb3IgW0NESyBmb3IgVGVycmFmb3JtXShodHRwczovL2Nkay50ZikuYFxufVxuXG4jIyAke2lzRGVwcmVjYXRlZCA/IFwiRGVwcmVjYXRlZFwiIDogXCJBdmFpbGFibGVcIn0gUGFja2FnZXNcblxuIyMjIE5QTVxuXG5UaGUgbnBtIHBhY2thZ2UgaXMgYXZhaWxhYmxlIGF0IFtodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS8ke1xuICAgICAgcGFja2FnZUluZm8ubnBtLm5hbWVcbiAgICB9XShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS8ke3BhY2thZ2VJbmZvLm5wbS5uYW1lfSkuXG5cblxcYG5wbSBpbnN0YWxsICR7cGFja2FnZUluZm8ubnBtLm5hbWV9XFxgXG5cbiMjIyBQeVBJXG5cblRoZSBQeVBJIHBhY2thZ2UgaXMgYXZhaWxhYmxlIGF0IFtodHRwczovL3B5cGkub3JnL3Byb2plY3QvJHtcbiAgICAgIHBhY2thZ2VJbmZvLnB5dGhvbi5kaXN0TmFtZVxuICAgIH1dKGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC8ke3BhY2thZ2VJbmZvLnB5dGhvbi5kaXN0TmFtZX0pLlxuXG5cXGBwaXBlbnYgaW5zdGFsbCAke3BhY2thZ2VJbmZvLnB5dGhvbi5kaXN0TmFtZX1cXGBcblxuIyMjIE51Z2V0XG5cblRoZSBOdWdldCBwYWNrYWdlIGlzIGF2YWlsYWJsZSBhdCBbaHR0cHM6Ly93d3cubnVnZXQub3JnL3BhY2thZ2VzLyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9OdWdldC5wYWNrYWdlSWRcbiAgICB9XShodHRwczovL3d3dy5udWdldC5vcmcvcGFja2FnZXMvJHtwYWNrYWdlSW5mby5wdWJsaXNoVG9OdWdldC5wYWNrYWdlSWR9KS5cblxuXFxgZG90bmV0IGFkZCBwYWNrYWdlICR7cGFja2FnZUluZm8ucHVibGlzaFRvTnVnZXQucGFja2FnZUlkfVxcYFxuXG4jIyMgTWF2ZW5cblxuVGhlIE1hdmVuIHBhY2thZ2UgaXMgYXZhaWxhYmxlIGF0IFtodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0LyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbi5tYXZlbkdyb3VwSWRcbiAgICB9LyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbi5tYXZlbkFydGlmYWN0SWRcbiAgICB9XShodHRwczovL212bnJlcG9zaXRvcnkuY29tL2FydGlmYWN0LyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbi5tYXZlbkdyb3VwSWRcbiAgICB9LyR7cGFja2FnZUluZm8ucHVibGlzaFRvTWF2ZW4ubWF2ZW5BcnRpZmFjdElkfSkuXG5cblxcYFxcYFxcYFxuPGRlcGVuZGVuY3k+XG4gICAgPGdyb3VwSWQ+JHtwYWNrYWdlSW5mby5wdWJsaXNoVG9NYXZlbi5tYXZlbkdyb3VwSWR9PC9ncm91cElkPlxuICAgIDxhcnRpZmFjdElkPiR7cGFja2FnZUluZm8ucHVibGlzaFRvTWF2ZW4ubWF2ZW5BcnRpZmFjdElkfTwvYXJ0aWZhY3RJZD5cbiAgICA8dmVyc2lvbj5bUkVQTEFDRSBXSVRIIERFU0lSRUQgVkVSU0lPTl08L3ZlcnNpb24+XG48L2RlcGVuZGVuY3k+XG5cXGBcXGBcXGBcblxuIyMjIEdvXG5cblRoZSBnbyBwYWNrYWdlIGlzIGdlbmVyYXRlZCBpbnRvIHRoZSBbXFxgJHtcbiAgICAgIHBhY2thZ2VJbmZvLnB1Ymxpc2hUb0dvPy5tb2R1bGVOYW1lXG4gICAgfVxcYF0oaHR0cHM6Ly8ke3BhY2thZ2VJbmZvLnB1Ymxpc2hUb0dvPy5tb2R1bGVOYW1lfSkgcGFja2FnZS5cblxuXFxgZ28gZ2V0ICR7cGFja2FnZUluZm8ucHVibGlzaFRvR28/Lm1vZHVsZU5hbWV9LyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9Hbz8ucGFja2FnZU5hbWVcbiAgICB9Lzx2ZXJzaW9uPlxcYFxuXG5XaGVyZSBcXGA8dmVyc2lvbj5cXGAgaXMgdGhlIHZlcnNpb24gb2YgdGhlIHByZWJ1aWx0IHByb3ZpZGVyIHlvdSB3b3VsZCBsaWtlIHRvIHVzZSBlLmcuIFxcYHYxMVxcYC4gVGhlIGZ1bGwgbW9kdWxlIG5hbWUgY2FuIGJlIGZvdW5kXG53aXRoaW4gdGhlIFtnby5tb2RdKGh0dHBzOi8vJHtwYWNrYWdlSW5mby5wdWJsaXNoVG9Hbz8ubW9kdWxlTmFtZX0vYmxvYi9tYWluLyR7XG4gICAgICBwYWNrYWdlSW5mby5wdWJsaXNoVG9Hbz8ucGFja2FnZU5hbWVcbiAgICB9L2dvLm1vZCNMMSkgZmlsZS5cblxuIyMgRG9jc1xuXG5GaW5kIGF1dG8tZ2VuZXJhdGVkIGRvY3MgZm9yIHRoaXMgcHJvdmlkZXIgaGVyZTogXG5cbi0gW1R5cGVzY3JpcHRdKC4vZG9jcy9BUEkudHlwZXNjcmlwdC5tZClcbi0gW1B5dGhvbl0oLi9kb2NzL0FQSS5weXRob24ubWQpXG4tIFtKYXZhXSguL2RvY3MvQVBJLmphdmEubWQpXG4tIFtDI10oLi9kb2NzL0FQSS5jc2hhcnAubWQpXG4tIFtHb10oLi9kb2NzL0FQSS5nby5tZClcblxuWW91IGNhbiBhbHNvIHZpc2l0IGEgaG9zdGVkIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50YXRpb24gb24gW2NvbnN0cnVjdHMuZGV2XShodHRwczovL2NvbnN0cnVjdHMuZGV2L3BhY2thZ2VzL0BjZGt0bi9wcm92aWRlci0ke3Byb3ZpZGVyTmFtZX0pLlxuYDtcblxuICAgIHJldHVybiBpc0RlcHJlY2F0ZWRcbiAgICAgID8gcmVhZG1lXG4gICAgICA6IHJlYWRtZSArXG4gICAgICAgICAgYFxuIyMgVmVyc2lvbmluZ1xuXG5UaGlzIHByb2plY3QgaXMgZXhwbGljaXRseSBub3QgdHJhY2tpbmcgdGhlIFRlcnJhZm9ybSAke3Byb3ZpZGVyTmFtZX0gcHJvdmlkZXIgdmVyc2lvbiAxOjEuIEluIGZhY3QsIGl0IGFsd2F5cyB0cmFja3MgXFxgbGF0ZXN0XFxgIG9mIFxcYCR7cHJvdmlkZXJWZXJzaW9ufVxcYCB3aXRoIGV2ZXJ5IHJlbGVhc2UuIElmIHRoZXJlIGFyZSBzY2VuYXJpb3Mgd2hlcmUgeW91IGV4cGxpY2l0bHkgaGF2ZSB0byBwaW4geW91ciBwcm92aWRlciB2ZXJzaW9uLCB5b3UgY2FuIGRvIHNvIGJ5IFtnZW5lcmF0aW5nIHRoZSBwcm92aWRlciBjb25zdHJ1Y3RzIG1hbnVhbGx5XShodHRwczovL2Nkay50Zi9pbXBvcnRzKS5cblxuVGhlc2UgYXJlIHRoZSB1cHN0cmVhbSBkZXBlbmRlbmNpZXM6XG5cbi0gW0NESyBmb3IgVGVycmFmb3JtXShodHRwczovL2Nkay50ZikgLSBMYXN0IG9mZmljaWFsIHJlbGVhc2Vcbi0gW1RlcnJhZm9ybSAke3Byb3ZpZGVyTmFtZX0gcHJvdmlkZXJdKCR7cmVnaXN0cnlVcmx9KVxuLSBbVGVycmFmb3JtIEVuZ2luZV0oaHR0cHM6Ly90ZXJyYWZvcm0uaW8pXG5cbklmIHRoZXJlIGFyZSBicmVha2luZyBjaGFuZ2VzIChiYWNrd2FyZCBpbmNvbXBhdGlibGUpIGluIGFueSBvZiB0aGUgYWJvdmUsIHRoZSBtYWpvciB2ZXJzaW9uIG9mIHRoaXMgcHJvamVjdCB3aWxsIGJlIGJ1bXBlZC5cblxuIyMgRmVhdHVyZXMgLyBJc3N1ZXMgLyBCdWdzXG5cblBsZWFzZSByZXBvcnQgYnVncyBhbmQgaXNzdWVzIHRvIHRoZSBbQ0RLIGZvciBUZXJyYWZvcm1dKGh0dHBzOi8vY2RrLnRmKSBwcm9qZWN0OlxuXG4tIFtDcmVhdGUgYnVnIHJlcG9ydF0oaHR0cHM6Ly9jZGsudGYvYnVnKVxuLSBbQ3JlYXRlIGZlYXR1cmUgcmVxdWVzdF0oaHR0cHM6Ly9jZGsudGYvZmVhdHVyZSlcblxuIyMgQ29udHJpYnV0aW5nXG5cbiMjIyBQcm9qZW5cblxuVGhpcyBpcyBtb3N0bHkgYmFzZWQgb24gW1Byb2plbl0oaHR0cHM6Ly9wcm9qZW4uaW8pLCB3aGljaCB0YWtlcyBjYXJlIG9mIGdlbmVyYXRpbmcgdGhlIGVudGlyZSByZXBvc2l0b3J5LlxuXG4jIyMgY2RrdG4tcHJvdmlkZXItcHJvamVjdCBiYXNlZCBvbiBQcm9qZW5cblxuVGhlcmUncyBhIGN1c3RvbSBbcHJvamVjdCBidWlsZGVyXShodHRwczovL2dpdGh1Yi5jb20vY2RrdG4taW8vY2RrdG4tcHJvdmlkZXItcHJvamVjdCkgd2hpY2ggZW5jYXBzdWxhdGUgdGhlIGNvbW1vbiBzZXR0aW5ncyBmb3IgYWxsIFxcYGNka3RmXFxgIHByZWJ1aWx0IHByb3ZpZGVycy5cblxuIyMjIFByb3ZpZGVyIFZlcnNpb25cblxuVGhlIHByb3ZpZGVyIHZlcnNpb24gY2FuIGJlIGFkanVzdGVkIGluIFsuLy5wcm9qZW5yYy5qc10oLi8ucHJvamVucmMuanMpLlxuXG4jIyMgUmVwb3NpdG9yeSBNYW5hZ2VtZW50XG5cblRoZSByZXBvc2l0b3J5IGlzIG1hbmFnZWQgYnkgW0NES1ROIFJlcG9zaXRvcnkgTWFuYWdlcl0oaHR0cHM6Ly9naXRodWIuY29tL2Nka3RuLWlvL2Nka3RuLXJlcG9zaXRvcnktbWFuYWdlci8pLlxuYDtcbiAgfVxufVxuIl19
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import { FileBase, FileBaseOptions, IResolver } from "projen";
6
+ import { NodeProject } from "projen/lib/javascript";
7
+ export interface CheckForUpgradesScriptFileOptions extends FileBaseOptions {
8
+ fqproviderName: string;
9
+ providerVersion: string;
10
+ }
11
+ export declare class CheckForUpgradesScriptFile extends FileBase {
12
+ protected readonly options: CheckForUpgradesScriptFileOptions;
13
+ constructor(project: NodeProject, options: CheckForUpgradesScriptFileOptions);
14
+ protected synthesizeContent(resolver: IResolver): string | undefined;
15
+ }
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) HashiCorp, Inc.
4
+ * SPDX-License-Identifier: MPL-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.CheckForUpgradesScriptFile = void 0;
8
+ const projen_1 = require("projen");
9
+ class CheckForUpgradesScriptFile extends projen_1.FileBase {
10
+ constructor(project, options) {
11
+ super(project, "scripts/check-for-upgrades.js", options);
12
+ this.options = options;
13
+ project.addDevDeps("semver@^7.5.3");
14
+ }
15
+ synthesizeContent(resolver) {
16
+ let { providerVersion, fqproviderName } = resolver.resolve(this.options);
17
+ // aws -> hashicorp/aws (else the registry API call fails)
18
+ if (!fqproviderName.includes("/")) {
19
+ fqproviderName = `hashicorp/${fqproviderName}`;
20
+ }
21
+ return `
22
+ /**
23
+ * Copyright (c) HashiCorp, Inc.
24
+ * SPDX-License-Identifier: MPL-2.0
25
+ */
26
+ const semver = require("semver");
27
+ const actions = require("@actions/core");
28
+
29
+ // Code is inlined below, as this import requires us to add all dev dependencies of cdktf-cli as we're not
30
+ // using the bundle. A better alternative would be to refactor this method to move to its own package, that
31
+ // the cdktf-cli and others can use (we have the same "problem" with some other code in cdktf, cdktf-cli and
32
+ // the @cdktn/provider-generator package, too)
33
+ // const { versionMatchesConstraint } = require('cdktf-cli/lib/dependencies/version-constraints');
34
+
35
+ // set by the projen file that generates this script
36
+ const CONSTRAINT = "${providerVersion}";
37
+ const FQ_PROVIDER_NAME = "${fqproviderName}";
38
+
39
+ (async function main() {
40
+ if (await newerMatchingProviderVersionExists()) {
41
+ console.log(
42
+ \`Found newer Terraform provider version matching the current constraint: \${CONSTRAINT}\`
43
+ );
44
+ setGithubStepOutput("new_version", "available");
45
+ } else {
46
+ console.log("No changes detected.");
47
+ setGithubStepOutput("new_version", "unavailable");
48
+ }
49
+ })();
50
+
51
+ function setGithubStepOutput(name, value) {
52
+ actions.setOutput(name, value);
53
+ }
54
+
55
+ async function newerMatchingProviderVersionExists() {
56
+ const res = await fetch(
57
+ \`https://registry.terraform.io/v2/providers/\${FQ_PROVIDER_NAME}/provider-versions\`
58
+ );
59
+ const body = await res.json();
60
+
61
+ const currentVersion = await getCurrentProviderVersion();
62
+
63
+ const availableVersions = body.data.map((it) => it.attributes.version);
64
+ const versionsMatching = availableVersions.filter((v) =>
65
+ versionMatchesConstraint(v, CONSTRAINT)
66
+ );
67
+ if (versionsMatching.length <= 0) {
68
+ throw new Error(
69
+ \`Unexpected Error: Found no matching versions for constraint \${CONSTRAINT} in [\${availableVersions.join(
70
+ ", "
71
+ )}]\`
72
+ );
73
+ }
74
+
75
+ const versionsGreaterThanCurrent = versionsMatching.filter((v) =>
76
+ semver.gt(v, currentVersion)
77
+ );
78
+ if (versionsGreaterThanCurrent.length > 0) {
79
+ console.log(
80
+ \`One or more matching versions (\${CONSTRAINT}) are greater than the current version (\${currentVersion}): [\${versionsGreaterThanCurrent.join(
81
+ ", "
82
+ )}]\`
83
+ );
84
+ return true;
85
+ } else {
86
+ console.log(
87
+ \`Found no matching versions (\${CONSTRAINT}) greater than the current version (\${currentVersion}). Matching versions: [\${versionsMatching.join(
88
+ ", "
89
+ )}]\`
90
+ );
91
+ }
92
+ return false;
93
+ }
94
+
95
+ // e.g. cdktf 0.12.x -> 0.13.x but not 0.12.y -> 0.12.z
96
+ async function cdktfVersionMajorChanged() {
97
+ throw new Error("todo implement");
98
+ }
99
+
100
+ async function getCurrentProviderVersion() {
101
+ const json = require("../src/version.json");
102
+ return json[\`registry.terraform.io/\${FQ_PROVIDER_NAME.toLowerCase()}\`];
103
+ }
104
+
105
+ // SEE NOTICE AT THE TOP WHY THIS IS INLINED CURRENTLY
106
+ // copied from https://github.com/open-constructs/cdk-terrain/blob/df858ccf4ac71a168e3636f053c6743324c98332/packages/%40cdktf/cli-core/src/lib/dependencies/version-constraints.ts
107
+ // and converted to JavaScript
108
+
109
+ // constraints can be prefixed with "~>", ">", "<", "=", ">=", "<=" or "!="
110
+ // no prefix means "="
111
+ function parseConstraint(constraint) {
112
+ const cleaned = constraint.trim();
113
+
114
+ const operator = cleaned.match(/(~>|>=|<=|>|<|=|!=)/)?.[0] || "=";
115
+ const version = cleaned.replace(operator, "").trim();
116
+
117
+ return {
118
+ operator,
119
+ version,
120
+ };
121
+ }
122
+
123
+ function versionMatchesConstraint(version, constraint) {
124
+ // https://www.terraform.io/language/expressions/version-constraints
125
+ // version can contain multiple constraints split by ","
126
+
127
+ const constraints = constraint.split(",");
128
+ version = semver.coerce(version)?.version ?? version;
129
+
130
+ // each constraint needs to be satisfied
131
+ return constraints.every((c) => {
132
+ const parsed = parseConstraint(c);
133
+
134
+ const cleanedParsedVersion =
135
+ semver.coerce(parsed.version)?.version ?? parsed.version;
136
+
137
+ switch (parsed.operator) {
138
+ case "=":
139
+ return version === cleanedParsedVersion;
140
+ case "!=":
141
+ return version !== cleanedParsedVersion;
142
+ case "~>": {
143
+ // allows rightmost version component to increment
144
+
145
+ const parts = parsed.version.split(".");
146
+ const minorSpecified = parts.length === 2;
147
+ const majorIsZero = parts[0] === "0";
148
+
149
+ // ~>2.0 which allows 2.1 and 2.1.1 needs special handling as
150
+ // npm semver handles "~" differently for ~2.0 than for ~2 or ~2.1.0
151
+ // So we need to use "^" (e.g. ^2.0) for this case
152
+ // see: https://github.com/npm/node-semver/issues/11
153
+ const allowMinorAndPatchOnly = minorSpecified;
154
+
155
+ let range = allowMinorAndPatchOnly
156
+ ? \`^\${parsed.version}\`
157
+ : \`~\${parsed.version}\`;
158
+
159
+ // versions below 1.0 are treated a bit differently in NPM than in Terraform
160
+ // meaning that NPMs ^0.4 doesn't allow 0.55 while TFs ~>0.4 allows 0.55
161
+ if (majorIsZero && minorSpecified) {
162
+ range = \`>=\${parsed.version} <1.0.0\`;
163
+ }
164
+
165
+ return semver.satisfies(version, range);
166
+ }
167
+ case ">=":
168
+ return semver.gte(version, cleanedParsedVersion);
169
+ case "<=":
170
+ return semver.lte(version, cleanedParsedVersion);
171
+ case ">":
172
+ return semver.gt(version, cleanedParsedVersion);
173
+ case "<":
174
+ return semver.lt(version, cleanedParsedVersion);
175
+ default:
176
+ throw Errors.External(
177
+ \`Unknown constraint operator: \${parsed.operator} in version constraint \${constraint}\`
178
+ );
179
+ }
180
+ });
181
+ }
182
+ `;
183
+ }
184
+ }
185
+ exports.CheckForUpgradesScriptFile = CheckForUpgradesScriptFile;
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stZm9yLXVwZ3JhZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvY2hlY2stZm9yLXVwZ3JhZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUVILG1DQUE4RDtBQVE5RCxNQUFhLDBCQUEyQixTQUFRLGlCQUFRO0lBR3RELFlBQ0UsT0FBb0IsRUFDcEIsT0FBMEM7UUFFMUMsS0FBSyxDQUFDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixPQUFPLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxRQUFtQjtRQUM3QyxJQUFJLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQ3hELElBQUksQ0FBQyxPQUFPLENBQ3dCLENBQUM7UUFFdkMsMERBQTBEO1FBQzFELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsY0FBYyxHQUFHLGFBQWEsY0FBYyxFQUFFLENBQUM7UUFDakQsQ0FBQztRQUVELE9BQU87Ozs7Ozs7Ozs7Ozs7OztzQkFlVyxlQUFlOzRCQUNULGNBQWM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpSnpDLENBQUM7SUFDQSxDQUFDO0NBQ0Y7QUExTEQsZ0VBMExDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBGaWxlQmFzZSwgRmlsZUJhc2VPcHRpb25zLCBJUmVzb2x2ZXIgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gXCJwcm9qZW4vbGliL2phdmFzY3JpcHRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDaGVja0ZvclVwZ3JhZGVzU2NyaXB0RmlsZU9wdGlvbnMgZXh0ZW5kcyBGaWxlQmFzZU9wdGlvbnMge1xuICBmcXByb3ZpZGVyTmFtZTogc3RyaW5nO1xuICBwcm92aWRlclZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3B0aW9uczogQ2hlY2tGb3JVcGdyYWRlc1NjcmlwdEZpbGVPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb2plY3Q6IE5vZGVQcm9qZWN0LFxuICAgIG9wdGlvbnM6IENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlT3B0aW9uc1xuICApIHtcbiAgICBzdXBlcihwcm9qZWN0LCBcInNjcmlwdHMvY2hlY2stZm9yLXVwZ3JhZGVzLmpzXCIsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBwcm9qZWN0LmFkZERldkRlcHMoXCJzZW12ZXJAXjcuNS4zXCIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVDb250ZW50KHJlc29sdmVyOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGxldCB7IHByb3ZpZGVyVmVyc2lvbiwgZnFwcm92aWRlck5hbWUgfSA9IHJlc29sdmVyLnJlc29sdmUoXG4gICAgICB0aGlzLm9wdGlvbnNcbiAgICApIGFzIENoZWNrRm9yVXBncmFkZXNTY3JpcHRGaWxlT3B0aW9ucztcblxuICAgIC8vIGF3cyAtPiBoYXNoaWNvcnAvYXdzIChlbHNlIHRoZSByZWdpc3RyeSBBUEkgY2FsbCBmYWlscylcbiAgICBpZiAoIWZxcHJvdmlkZXJOYW1lLmluY2x1ZGVzKFwiL1wiKSkge1xuICAgICAgZnFwcm92aWRlck5hbWUgPSBgaGFzaGljb3JwLyR7ZnFwcm92aWRlck5hbWV9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gYFxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuY29uc3Qgc2VtdmVyID0gcmVxdWlyZShcInNlbXZlclwiKTtcbmNvbnN0IGFjdGlvbnMgPSByZXF1aXJlKFwiQGFjdGlvbnMvY29yZVwiKTtcblxuLy8gQ29kZSBpcyBpbmxpbmVkIGJlbG93LCBhcyB0aGlzIGltcG9ydCByZXF1aXJlcyB1cyB0byBhZGQgYWxsIGRldiBkZXBlbmRlbmNpZXMgb2YgY2RrdGYtY2xpIGFzIHdlJ3JlIG5vdFxuLy8gdXNpbmcgdGhlIGJ1bmRsZS4gQSBiZXR0ZXIgYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gcmVmYWN0b3IgdGhpcyBtZXRob2QgdG8gbW92ZSB0byBpdHMgb3duIHBhY2thZ2UsIHRoYXRcbi8vIHRoZSBjZGt0Zi1jbGkgYW5kIG90aGVycyBjYW4gdXNlICh3ZSBoYXZlIHRoZSBzYW1lIFwicHJvYmxlbVwiIHdpdGggc29tZSBvdGhlciBjb2RlIGluIGNka3RmLCBjZGt0Zi1jbGkgYW5kXG4vLyB0aGUgQGNka3RuL3Byb3ZpZGVyLWdlbmVyYXRvciBwYWNrYWdlLCB0b28pXG4vLyBjb25zdCB7IHZlcnNpb25NYXRjaGVzQ29uc3RyYWludCB9ID0gcmVxdWlyZSgnY2RrdGYtY2xpL2xpYi9kZXBlbmRlbmNpZXMvdmVyc2lvbi1jb25zdHJhaW50cycpO1xuXG4vLyBzZXQgYnkgdGhlIHByb2plbiBmaWxlIHRoYXQgZ2VuZXJhdGVzIHRoaXMgc2NyaXB0XG5jb25zdCBDT05TVFJBSU5UID0gXCIke3Byb3ZpZGVyVmVyc2lvbn1cIjtcbmNvbnN0IEZRX1BST1ZJREVSX05BTUUgPSBcIiR7ZnFwcm92aWRlck5hbWV9XCI7XG5cbihhc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBpZiAoYXdhaXQgbmV3ZXJNYXRjaGluZ1Byb3ZpZGVyVmVyc2lvbkV4aXN0cygpKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBcXGBGb3VuZCBuZXdlciBUZXJyYWZvcm0gcHJvdmlkZXIgdmVyc2lvbiBtYXRjaGluZyB0aGUgY3VycmVudCBjb25zdHJhaW50OiBcXCR7Q09OU1RSQUlOVH1cXGBcbiAgICApO1xuICAgIHNldEdpdGh1YlN0ZXBPdXRwdXQoXCJuZXdfdmVyc2lvblwiLCBcImF2YWlsYWJsZVwiKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyhcIk5vIGNoYW5nZXMgZGV0ZWN0ZWQuXCIpO1xuICAgIHNldEdpdGh1YlN0ZXBPdXRwdXQoXCJuZXdfdmVyc2lvblwiLCBcInVuYXZhaWxhYmxlXCIpO1xuICB9XG59KSgpO1xuXG5mdW5jdGlvbiBzZXRHaXRodWJTdGVwT3V0cHV0KG5hbWUsIHZhbHVlKSB7XG4gIGFjdGlvbnMuc2V0T3V0cHV0KG5hbWUsIHZhbHVlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbmV3ZXJNYXRjaGluZ1Byb3ZpZGVyVmVyc2lvbkV4aXN0cygpIHtcbiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goXG4gICAgXFxgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vdjIvcHJvdmlkZXJzL1xcJHtGUV9QUk9WSURFUl9OQU1FfS9wcm92aWRlci12ZXJzaW9uc1xcYFxuICApO1xuICBjb25zdCBib2R5ID0gYXdhaXQgcmVzLmpzb24oKTtcblxuICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGF3YWl0IGdldEN1cnJlbnRQcm92aWRlclZlcnNpb24oKTtcblxuICBjb25zdCBhdmFpbGFibGVWZXJzaW9ucyA9IGJvZHkuZGF0YS5tYXAoKGl0KSA9PiBpdC5hdHRyaWJ1dGVzLnZlcnNpb24pO1xuICBjb25zdCB2ZXJzaW9uc01hdGNoaW5nID0gYXZhaWxhYmxlVmVyc2lvbnMuZmlsdGVyKCh2KSA9PlxuICAgIHZlcnNpb25NYXRjaGVzQ29uc3RyYWludCh2LCBDT05TVFJBSU5UKVxuICApO1xuICBpZiAodmVyc2lvbnNNYXRjaGluZy5sZW5ndGggPD0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFxcYFVuZXhwZWN0ZWQgRXJyb3I6IEZvdW5kIG5vIG1hdGNoaW5nIHZlcnNpb25zIGZvciBjb25zdHJhaW50IFxcJHtDT05TVFJBSU5UfSBpbiBbXFwke2F2YWlsYWJsZVZlcnNpb25zLmpvaW4oXG4gICAgICAgIFwiLCBcIlxuICAgICAgKX1dXFxgXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb25zR3JlYXRlclRoYW5DdXJyZW50ID0gdmVyc2lvbnNNYXRjaGluZy5maWx0ZXIoKHYpID0+XG4gICAgc2VtdmVyLmd0KHYsIGN1cnJlbnRWZXJzaW9uKVxuICApO1xuICBpZiAodmVyc2lvbnNHcmVhdGVyVGhhbkN1cnJlbnQubGVuZ3RoID4gMCkge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgXFxgT25lIG9yIG1vcmUgbWF0Y2hpbmcgdmVyc2lvbnMgKFxcJHtDT05TVFJBSU5UfSkgYXJlIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCB2ZXJzaW9uIChcXCR7Y3VycmVudFZlcnNpb259KTogW1xcJHt2ZXJzaW9uc0dyZWF0ZXJUaGFuQ3VycmVudC5qb2luKFxuICAgICAgICBcIiwgXCJcbiAgICAgICl9XVxcYFxuICAgICk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBcXGBGb3VuZCBubyBtYXRjaGluZyB2ZXJzaW9ucyAoXFwke0NPTlNUUkFJTlR9KSBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgdmVyc2lvbiAoXFwke2N1cnJlbnRWZXJzaW9ufSkuIE1hdGNoaW5nIHZlcnNpb25zOiBbXFwke3ZlcnNpb25zTWF0Y2hpbmcuam9pbihcbiAgICAgICAgXCIsIFwiXG4gICAgICApfV1cXGBcbiAgICApO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gZS5nLiBjZGt0ZiAwLjEyLnggLT4gMC4xMy54IGJ1dCBub3QgMC4xMi55IC0+IDAuMTIuelxuYXN5bmMgZnVuY3Rpb24gY2RrdGZWZXJzaW9uTWFqb3JDaGFuZ2VkKCkge1xuICB0aHJvdyBuZXcgRXJyb3IoXCJ0b2RvIGltcGxlbWVudFwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q3VycmVudFByb3ZpZGVyVmVyc2lvbigpIHtcbiAgY29uc3QganNvbiA9IHJlcXVpcmUoXCIuLi9zcmMvdmVyc2lvbi5qc29uXCIpO1xuICByZXR1cm4ganNvbltcXGByZWdpc3RyeS50ZXJyYWZvcm0uaW8vXFwke0ZRX1BST1ZJREVSX05BTUUudG9Mb3dlckNhc2UoKX1cXGBdO1xufVxuXG4vLyBTRUUgTk9USUNFIEFUIFRIRSBUT1AgV0hZIFRISVMgSVMgSU5MSU5FRCBDVVJSRU5UTFlcbi8vIGNvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLWNvbnN0cnVjdHMvY2RrLXRlcnJhaW4vYmxvYi9kZjg1OGNjZjRhYzcxYTE2OGUzNjM2ZjA1M2M2NzQzMzI0Yzk4MzMyL3BhY2thZ2VzLyU0MGNka3RmL2NsaS1jb3JlL3NyYy9saWIvZGVwZW5kZW5jaWVzL3ZlcnNpb24tY29uc3RyYWludHMudHNcbi8vIGFuZCBjb252ZXJ0ZWQgdG8gSmF2YVNjcmlwdFxuXG4vLyBjb25zdHJhaW50cyBjYW4gYmUgcHJlZml4ZWQgd2l0aCBcIn4+XCIsIFwiPlwiLCBcIjxcIiwgXCI9XCIsIFwiPj1cIiwgXCI8PVwiIG9yIFwiIT1cIlxuLy8gbm8gcHJlZml4IG1lYW5zIFwiPVwiXG5mdW5jdGlvbiBwYXJzZUNvbnN0cmFpbnQoY29uc3RyYWludCkge1xuICBjb25zdCBjbGVhbmVkID0gY29uc3RyYWludC50cmltKCk7XG5cbiAgY29uc3Qgb3BlcmF0b3IgPSBjbGVhbmVkLm1hdGNoKC8ofj58Pj18PD18Pnw8fD18IT0pLyk/LlswXSB8fCBcIj1cIjtcbiAgY29uc3QgdmVyc2lvbiA9IGNsZWFuZWQucmVwbGFjZShvcGVyYXRvciwgXCJcIikudHJpbSgpO1xuXG4gIHJldHVybiB7XG4gICAgb3BlcmF0b3IsXG4gICAgdmVyc2lvbixcbiAgfTtcbn1cblxuZnVuY3Rpb24gdmVyc2lvbk1hdGNoZXNDb25zdHJhaW50KHZlcnNpb24sIGNvbnN0cmFpbnQpIHtcbiAgLy8gaHR0cHM6Ly93d3cudGVycmFmb3JtLmlvL2xhbmd1YWdlL2V4cHJlc3Npb25zL3ZlcnNpb24tY29uc3RyYWludHNcbiAgLy8gdmVyc2lvbiBjYW4gY29udGFpbiBtdWx0aXBsZSBjb25zdHJhaW50cyBzcGxpdCBieSBcIixcIlxuXG4gIGNvbnN0IGNvbnN0cmFpbnRzID0gY29uc3RyYWludC5zcGxpdChcIixcIik7XG4gIHZlcnNpb24gPSBzZW12ZXIuY29lcmNlKHZlcnNpb24pPy52ZXJzaW9uID8/IHZlcnNpb247XG5cbiAgLy8gZWFjaCBjb25zdHJhaW50IG5lZWRzIHRvIGJlIHNhdGlzZmllZFxuICByZXR1cm4gY29uc3RyYWludHMuZXZlcnkoKGMpID0+IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUNvbnN0cmFpbnQoYyk7XG5cbiAgICBjb25zdCBjbGVhbmVkUGFyc2VkVmVyc2lvbiA9XG4gICAgICBzZW12ZXIuY29lcmNlKHBhcnNlZC52ZXJzaW9uKT8udmVyc2lvbiA/PyBwYXJzZWQudmVyc2lvbjtcblxuICAgIHN3aXRjaCAocGFyc2VkLm9wZXJhdG9yKSB7XG4gICAgICBjYXNlIFwiPVwiOlxuICAgICAgICByZXR1cm4gdmVyc2lvbiA9PT0gY2xlYW5lZFBhcnNlZFZlcnNpb247XG4gICAgICBjYXNlIFwiIT1cIjpcbiAgICAgICAgcmV0dXJuIHZlcnNpb24gIT09IGNsZWFuZWRQYXJzZWRWZXJzaW9uO1xuICAgICAgY2FzZSBcIn4+XCI6IHtcbiAgICAgICAgLy8gYWxsb3dzIHJpZ2h0bW9zdCB2ZXJzaW9uIGNvbXBvbmVudCB0byBpbmNyZW1lbnRcblxuICAgICAgICBjb25zdCBwYXJ0cyA9IHBhcnNlZC52ZXJzaW9uLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgY29uc3QgbWlub3JTcGVjaWZpZWQgPSBwYXJ0cy5sZW5ndGggPT09IDI7XG4gICAgICAgIGNvbnN0IG1ham9ySXNaZXJvID0gcGFydHNbMF0gPT09IFwiMFwiO1xuXG4gICAgICAgIC8vIH4+Mi4wIHdoaWNoIGFsbG93cyAyLjEgYW5kIDIuMS4xIG5lZWRzIHNwZWNpYWwgaGFuZGxpbmcgYXNcbiAgICAgICAgLy8gbnBtIHNlbXZlciBoYW5kbGVzIFwiflwiIGRpZmZlcmVudGx5IGZvciB+Mi4wIHRoYW4gZm9yIH4yIG9yIH4yLjEuMFxuICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIHVzZSBcIl5cIiAoZS5nLiBeMi4wKSBmb3IgdGhpcyBjYXNlXG4gICAgICAgIC8vIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL25wbS9ub2RlLXNlbXZlci9pc3N1ZXMvMTFcbiAgICAgICAgY29uc3QgYWxsb3dNaW5vckFuZFBhdGNoT25seSA9IG1pbm9yU3BlY2lmaWVkO1xuXG4gICAgICAgIGxldCByYW5nZSA9IGFsbG93TWlub3JBbmRQYXRjaE9ubHlcbiAgICAgICAgICA/IFxcYF5cXCR7cGFyc2VkLnZlcnNpb259XFxgXG4gICAgICAgICAgOiBcXGB+XFwke3BhcnNlZC52ZXJzaW9ufVxcYDtcblxuICAgICAgICAvLyB2ZXJzaW9ucyBiZWxvdyAxLjAgYXJlIHRyZWF0ZWQgYSBiaXQgZGlmZmVyZW50bHkgaW4gTlBNIHRoYW4gaW4gVGVycmFmb3JtXG4gICAgICAgIC8vIG1lYW5pbmcgdGhhdCBOUE1zIF4wLjQgZG9lc24ndCBhbGxvdyAwLjU1IHdoaWxlIFRGcyB+PjAuNCBhbGxvd3MgMC41NVxuICAgICAgICBpZiAobWFqb3JJc1plcm8gJiYgbWlub3JTcGVjaWZpZWQpIHtcbiAgICAgICAgICByYW5nZSA9IFxcYD49XFwke3BhcnNlZC52ZXJzaW9ufSA8MS4wLjBcXGA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc2VtdmVyLnNhdGlzZmllcyh2ZXJzaW9uLCByYW5nZSk7XG4gICAgICB9XG4gICAgICBjYXNlIFwiPj1cIjpcbiAgICAgICAgcmV0dXJuIHNlbXZlci5ndGUodmVyc2lvbiwgY2xlYW5lZFBhcnNlZFZlcnNpb24pO1xuICAgICAgY2FzZSBcIjw9XCI6XG4gICAgICAgIHJldHVybiBzZW12ZXIubHRlKHZlcnNpb24sIGNsZWFuZWRQYXJzZWRWZXJzaW9uKTtcbiAgICAgIGNhc2UgXCI+XCI6XG4gICAgICAgIHJldHVybiBzZW12ZXIuZ3QodmVyc2lvbiwgY2xlYW5lZFBhcnNlZFZlcnNpb24pO1xuICAgICAgY2FzZSBcIjxcIjpcbiAgICAgICAgcmV0dXJuIHNlbXZlci5sdCh2ZXJzaW9uLCBjbGVhbmVkUGFyc2VkVmVyc2lvbik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBFcnJvcnMuRXh0ZXJuYWwoXG4gICAgICAgICAgXFxgVW5rbm93biBjb25zdHJhaW50IG9wZXJhdG9yOiBcXCR7cGFyc2VkLm9wZXJhdG9yfSBpbiB2ZXJzaW9uIGNvbnN0cmFpbnQgXFwke2NvbnN0cmFpbnR9XFxgXG4gICAgICAgICk7XG4gICAgfVxuICB9KTtcbn1cbmA7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import { FileBase, FileBaseOptions } from "projen";
6
+ import { NodeProject } from "projen/lib/javascript";
7
+ export interface ShouldReleaseScriptFileOptions extends FileBaseOptions {
8
+ }
9
+ export declare class ShouldReleaseScriptFile extends FileBase {
10
+ protected readonly options: ShouldReleaseScriptFileOptions;
11
+ constructor(project: NodeProject, options: ShouldReleaseScriptFileOptions);
12
+ protected synthesizeContent(): string | undefined;
13
+ }