projen-cdktf-hybrid-construct 0.1.52 → 0.1.55

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 (319) hide show
  1. package/.gitattributes +0 -1
  2. package/.jsii +574 -0
  3. package/.projenrc.ts +17 -5
  4. package/API.md +7347 -0
  5. package/CHANGELOG.md +1 -8
  6. package/README.md +30 -11
  7. package/lib/defaults.d.ts +0 -1
  8. package/lib/defaults.js +1 -1
  9. package/lib/hybrid-module.d.ts +48 -20
  10. package/lib/hybrid-module.js +28 -20
  11. package/lib/index.js +3 -7
  12. package/lib/publishing.d.ts +6 -4
  13. package/lib/publishing.js +22 -3
  14. package/lib/terraform-module.d.ts +35 -16
  15. package/lib/terraform-module.js +19 -10
  16. package/node_modules/camel-case/LICENSE +21 -0
  17. package/node_modules/camel-case/README.md +47 -0
  18. package/node_modules/camel-case/dist/index.d.ts +5 -0
  19. package/node_modules/camel-case/dist/index.js +23 -0
  20. package/node_modules/camel-case/dist/index.js.map +1 -0
  21. package/node_modules/camel-case/dist/index.spec.d.ts +1 -0
  22. package/node_modules/camel-case/dist/index.spec.js +26 -0
  23. package/node_modules/camel-case/dist/index.spec.js.map +1 -0
  24. package/node_modules/camel-case/dist.es2015/index.d.ts +5 -0
  25. package/node_modules/camel-case/dist.es2015/index.js +17 -0
  26. package/node_modules/camel-case/dist.es2015/index.js.map +1 -0
  27. package/node_modules/camel-case/dist.es2015/index.spec.d.ts +1 -0
  28. package/node_modules/camel-case/dist.es2015/index.spec.js +24 -0
  29. package/node_modules/camel-case/dist.es2015/index.spec.js.map +1 -0
  30. package/node_modules/camel-case/package.json +89 -0
  31. package/node_modules/capital-case/LICENSE +21 -0
  32. package/node_modules/capital-case/README.md +37 -0
  33. package/node_modules/capital-case/dist/index.d.ts +4 -0
  34. package/node_modules/capital-case/dist/index.js +16 -0
  35. package/node_modules/capital-case/dist/index.js.map +1 -0
  36. package/node_modules/capital-case/dist/index.spec.d.ts +1 -0
  37. package/node_modules/capital-case/dist/index.spec.js +24 -0
  38. package/node_modules/capital-case/dist/index.spec.js.map +1 -0
  39. package/node_modules/capital-case/dist.es2015/index.d.ts +4 -0
  40. package/node_modules/capital-case/dist.es2015/index.js +11 -0
  41. package/node_modules/capital-case/dist.es2015/index.js.map +1 -0
  42. package/node_modules/capital-case/dist.es2015/index.spec.d.ts +1 -0
  43. package/node_modules/capital-case/dist.es2015/index.spec.js +22 -0
  44. package/node_modules/capital-case/dist.es2015/index.spec.js.map +1 -0
  45. package/node_modules/capital-case/package.json +90 -0
  46. package/node_modules/change-case/LICENSE +21 -0
  47. package/node_modules/change-case/README.md +44 -0
  48. package/node_modules/change-case/dist/index.d.ts +11 -0
  49. package/node_modules/change-case/dist/index.js +15 -0
  50. package/node_modules/change-case/dist/index.js.map +1 -0
  51. package/node_modules/change-case/dist/index.spec.d.ts +1 -0
  52. package/node_modules/change-case/dist/index.spec.js +9 -0
  53. package/node_modules/change-case/dist/index.spec.js.map +1 -0
  54. package/node_modules/change-case/dist.es2015/index.d.ts +11 -0
  55. package/node_modules/change-case/dist.es2015/index.js +12 -0
  56. package/node_modules/change-case/dist.es2015/index.js.map +1 -0
  57. package/node_modules/change-case/dist.es2015/index.spec.d.ts +1 -0
  58. package/node_modules/change-case/dist.es2015/index.spec.js +7 -0
  59. package/node_modules/change-case/dist.es2015/index.spec.js.map +1 -0
  60. package/node_modules/change-case/package.json +101 -0
  61. package/node_modules/constant-case/LICENSE +21 -0
  62. package/node_modules/constant-case/README.md +37 -0
  63. package/node_modules/constant-case/dist/index.d.ts +3 -0
  64. package/node_modules/constant-case/dist/index.js +12 -0
  65. package/node_modules/constant-case/dist/index.js.map +1 -0
  66. package/node_modules/constant-case/dist/index.spec.d.ts +1 -0
  67. package/node_modules/constant-case/dist/index.spec.js +26 -0
  68. package/node_modules/constant-case/dist/index.spec.js.map +1 -0
  69. package/node_modules/constant-case/dist.es2015/index.d.ts +3 -0
  70. package/node_modules/constant-case/dist.es2015/index.js +8 -0
  71. package/node_modules/constant-case/dist.es2015/index.js.map +1 -0
  72. package/node_modules/constant-case/dist.es2015/index.spec.d.ts +1 -0
  73. package/node_modules/constant-case/dist.es2015/index.spec.js +24 -0
  74. package/node_modules/constant-case/dist.es2015/index.spec.js.map +1 -0
  75. package/node_modules/constant-case/package.json +90 -0
  76. package/node_modules/dot-case/LICENSE +21 -0
  77. package/node_modules/dot-case/README.md +37 -0
  78. package/node_modules/dot-case/dist/index.d.ts +3 -0
  79. package/node_modules/dot-case/dist/index.js +11 -0
  80. package/node_modules/dot-case/dist/index.js.map +1 -0
  81. package/node_modules/dot-case/dist/index.spec.d.ts +1 -0
  82. package/node_modules/dot-case/dist/index.spec.js +26 -0
  83. package/node_modules/dot-case/dist/index.spec.js.map +1 -0
  84. package/node_modules/dot-case/dist.es2015/index.d.ts +3 -0
  85. package/node_modules/dot-case/dist.es2015/index.js +7 -0
  86. package/node_modules/dot-case/dist.es2015/index.js.map +1 -0
  87. package/node_modules/dot-case/dist.es2015/index.spec.d.ts +1 -0
  88. package/node_modules/dot-case/dist.es2015/index.spec.js +24 -0
  89. package/node_modules/dot-case/dist.es2015/index.spec.js.map +1 -0
  90. package/node_modules/dot-case/package.json +89 -0
  91. package/node_modules/header-case/LICENSE +21 -0
  92. package/node_modules/header-case/README.md +37 -0
  93. package/node_modules/header-case/dist/index.d.ts +3 -0
  94. package/node_modules/header-case/dist/index.js +11 -0
  95. package/node_modules/header-case/dist/index.js.map +1 -0
  96. package/node_modules/header-case/dist/index.spec.d.ts +1 -0
  97. package/node_modules/header-case/dist/index.spec.js +24 -0
  98. package/node_modules/header-case/dist/index.spec.js.map +1 -0
  99. package/node_modules/header-case/dist.es2015/index.d.ts +3 -0
  100. package/node_modules/header-case/dist.es2015/index.js +7 -0
  101. package/node_modules/header-case/dist.es2015/index.js.map +1 -0
  102. package/node_modules/header-case/dist.es2015/index.spec.d.ts +1 -0
  103. package/node_modules/header-case/dist.es2015/index.spec.js +22 -0
  104. package/node_modules/header-case/dist.es2015/index.spec.js.map +1 -0
  105. package/node_modules/header-case/package.json +89 -0
  106. package/node_modules/lower-case/LICENSE +21 -0
  107. package/node_modules/lower-case/README.md +35 -0
  108. package/node_modules/lower-case/dist/index.d.ts +8 -0
  109. package/node_modules/lower-case/dist/index.js +53 -0
  110. package/node_modules/lower-case/dist/index.js.map +1 -0
  111. package/node_modules/lower-case/dist/index.spec.d.ts +1 -0
  112. package/node_modules/lower-case/dist/index.spec.js +36 -0
  113. package/node_modules/lower-case/dist/index.spec.js.map +1 -0
  114. package/node_modules/lower-case/dist.es2015/index.d.ts +8 -0
  115. package/node_modules/lower-case/dist.es2015/index.js +48 -0
  116. package/node_modules/lower-case/dist.es2015/index.js.map +1 -0
  117. package/node_modules/lower-case/dist.es2015/index.spec.d.ts +1 -0
  118. package/node_modules/lower-case/dist.es2015/index.spec.js +34 -0
  119. package/node_modules/lower-case/dist.es2015/index.spec.js.map +1 -0
  120. package/node_modules/lower-case/package.json +87 -0
  121. package/node_modules/no-case/LICENSE +21 -0
  122. package/node_modules/no-case/README.md +37 -0
  123. package/node_modules/no-case/dist/index.d.ts +10 -0
  124. package/node_modules/no-case/dist/index.js +35 -0
  125. package/node_modules/no-case/dist/index.js.map +1 -0
  126. package/node_modules/no-case/dist/index.spec.d.ts +1 -0
  127. package/node_modules/no-case/dist/index.spec.js +59 -0
  128. package/node_modules/no-case/dist/index.spec.js.map +1 -0
  129. package/node_modules/no-case/dist.es2015/index.d.ts +10 -0
  130. package/node_modules/no-case/dist.es2015/index.js +31 -0
  131. package/node_modules/no-case/dist.es2015/index.js.map +1 -0
  132. package/node_modules/no-case/dist.es2015/index.spec.d.ts +1 -0
  133. package/node_modules/no-case/dist.es2015/index.spec.js +57 -0
  134. package/node_modules/no-case/dist.es2015/index.spec.js.map +1 -0
  135. package/node_modules/no-case/package.json +85 -0
  136. package/node_modules/param-case/LICENSE +21 -0
  137. package/node_modules/param-case/README.md +37 -0
  138. package/node_modules/param-case/dist/index.d.ts +3 -0
  139. package/node_modules/param-case/dist/index.js +11 -0
  140. package/node_modules/param-case/dist/index.js.map +1 -0
  141. package/node_modules/param-case/dist/index.spec.d.ts +1 -0
  142. package/node_modules/param-case/dist/index.spec.js +24 -0
  143. package/node_modules/param-case/dist/index.spec.js.map +1 -0
  144. package/node_modules/param-case/dist.es2015/index.d.ts +3 -0
  145. package/node_modules/param-case/dist.es2015/index.js +7 -0
  146. package/node_modules/param-case/dist.es2015/index.js.map +1 -0
  147. package/node_modules/param-case/dist.es2015/index.spec.d.ts +1 -0
  148. package/node_modules/param-case/dist.es2015/index.spec.js +22 -0
  149. package/node_modules/param-case/dist.es2015/index.spec.js.map +1 -0
  150. package/node_modules/param-case/package.json +91 -0
  151. package/node_modules/pascal-case/LICENSE +21 -0
  152. package/node_modules/pascal-case/README.md +47 -0
  153. package/node_modules/pascal-case/dist/index.d.ts +5 -0
  154. package/node_modules/pascal-case/dist/index.js +24 -0
  155. package/node_modules/pascal-case/dist/index.js.map +1 -0
  156. package/node_modules/pascal-case/dist/index.spec.d.ts +1 -0
  157. package/node_modules/pascal-case/dist/index.spec.js +25 -0
  158. package/node_modules/pascal-case/dist/index.spec.js.map +1 -0
  159. package/node_modules/pascal-case/dist.es2015/index.d.ts +5 -0
  160. package/node_modules/pascal-case/dist.es2015/index.js +18 -0
  161. package/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
  162. package/node_modules/pascal-case/dist.es2015/index.spec.d.ts +1 -0
  163. package/node_modules/pascal-case/dist.es2015/index.spec.js +23 -0
  164. package/node_modules/pascal-case/dist.es2015/index.spec.js.map +1 -0
  165. package/node_modules/pascal-case/package.json +90 -0
  166. package/node_modules/path-case/LICENSE +21 -0
  167. package/node_modules/path-case/README.md +37 -0
  168. package/node_modules/path-case/dist/index.d.ts +3 -0
  169. package/node_modules/path-case/dist/index.js +11 -0
  170. package/node_modules/path-case/dist/index.js.map +1 -0
  171. package/node_modules/path-case/dist/index.spec.d.ts +1 -0
  172. package/node_modules/path-case/dist/index.spec.js +24 -0
  173. package/node_modules/path-case/dist/index.spec.js.map +1 -0
  174. package/node_modules/path-case/dist.es2015/index.d.ts +3 -0
  175. package/node_modules/path-case/dist.es2015/index.js +7 -0
  176. package/node_modules/path-case/dist.es2015/index.js.map +1 -0
  177. package/node_modules/path-case/dist.es2015/index.spec.d.ts +1 -0
  178. package/node_modules/path-case/dist.es2015/index.spec.js +22 -0
  179. package/node_modules/path-case/dist.es2015/index.spec.js.map +1 -0
  180. package/node_modules/path-case/package.json +88 -0
  181. package/node_modules/sentence-case/LICENSE +21 -0
  182. package/node_modules/sentence-case/README.md +37 -0
  183. package/node_modules/sentence-case/dist/index.d.ts +4 -0
  184. package/node_modules/sentence-case/dist/index.js +19 -0
  185. package/node_modules/sentence-case/dist/index.js.map +1 -0
  186. package/node_modules/sentence-case/dist/index.spec.d.ts +1 -0
  187. package/node_modules/sentence-case/dist/index.spec.js +24 -0
  188. package/node_modules/sentence-case/dist/index.spec.js.map +1 -0
  189. package/node_modules/sentence-case/dist.es2015/index.d.ts +4 -0
  190. package/node_modules/sentence-case/dist.es2015/index.js +14 -0
  191. package/node_modules/sentence-case/dist.es2015/index.js.map +1 -0
  192. package/node_modules/sentence-case/dist.es2015/index.spec.d.ts +1 -0
  193. package/node_modules/sentence-case/dist.es2015/index.spec.js +22 -0
  194. package/node_modules/sentence-case/dist.es2015/index.spec.js.map +1 -0
  195. package/node_modules/sentence-case/package.json +89 -0
  196. package/node_modules/snake-case/LICENSE +21 -0
  197. package/node_modules/snake-case/README.md +37 -0
  198. package/node_modules/snake-case/dist/index.d.ts +3 -0
  199. package/node_modules/snake-case/dist/index.js +11 -0
  200. package/node_modules/snake-case/dist/index.js.map +1 -0
  201. package/node_modules/snake-case/dist/index.spec.d.ts +1 -0
  202. package/node_modules/snake-case/dist/index.spec.js +25 -0
  203. package/node_modules/snake-case/dist/index.spec.js.map +1 -0
  204. package/node_modules/snake-case/dist.es2015/index.d.ts +3 -0
  205. package/node_modules/snake-case/dist.es2015/index.js +7 -0
  206. package/node_modules/snake-case/dist.es2015/index.js.map +1 -0
  207. package/node_modules/snake-case/dist.es2015/index.spec.d.ts +1 -0
  208. package/node_modules/snake-case/dist.es2015/index.spec.js +23 -0
  209. package/node_modules/snake-case/dist.es2015/index.spec.js.map +1 -0
  210. package/node_modules/snake-case/package.json +90 -0
  211. package/node_modules/tslib/CopyrightNotice.txt +15 -0
  212. package/node_modules/tslib/LICENSE.txt +12 -0
  213. package/node_modules/tslib/README.md +164 -0
  214. package/node_modules/tslib/modules/index.js +55 -0
  215. package/node_modules/tslib/modules/package.json +3 -0
  216. package/node_modules/tslib/package.json +38 -0
  217. package/node_modules/tslib/tslib.d.ts +398 -0
  218. package/node_modules/tslib/tslib.es6.html +1 -0
  219. package/node_modules/tslib/tslib.es6.js +248 -0
  220. package/node_modules/tslib/tslib.html +1 -0
  221. package/node_modules/tslib/tslib.js +317 -0
  222. package/node_modules/upper-case/README.md +34 -0
  223. package/node_modules/upper-case/dist/index.d.ts +8 -0
  224. package/node_modules/upper-case/dist/index.js +49 -0
  225. package/node_modules/upper-case/dist/index.js.map +1 -0
  226. package/node_modules/upper-case/dist/index.spec.d.ts +1 -0
  227. package/node_modules/upper-case/dist/index.spec.js +34 -0
  228. package/node_modules/upper-case/dist/index.spec.js.map +1 -0
  229. package/node_modules/upper-case/dist.es2015/index.d.ts +8 -0
  230. package/node_modules/upper-case/dist.es2015/index.js +44 -0
  231. package/node_modules/upper-case/dist.es2015/index.js.map +1 -0
  232. package/node_modules/upper-case/dist.es2015/index.spec.d.ts +1 -0
  233. package/node_modules/upper-case/dist.es2015/index.spec.js +32 -0
  234. package/node_modules/upper-case/dist.es2015/index.spec.js.map +1 -0
  235. package/node_modules/upper-case/package.json +86 -0
  236. package/node_modules/upper-case-first/LICENSE +21 -0
  237. package/node_modules/upper-case-first/README.md +32 -0
  238. package/node_modules/upper-case-first/dist/index.d.ts +4 -0
  239. package/node_modules/upper-case-first/dist/index.js +11 -0
  240. package/node_modules/upper-case-first/dist/index.js.map +1 -0
  241. package/node_modules/upper-case-first/dist/index.spec.d.ts +1 -0
  242. package/node_modules/upper-case-first/dist/index.spec.js +20 -0
  243. package/node_modules/upper-case-first/dist/index.spec.js.map +1 -0
  244. package/node_modules/upper-case-first/dist.es2015/index.d.ts +4 -0
  245. package/node_modules/upper-case-first/dist.es2015/index.js +7 -0
  246. package/node_modules/upper-case-first/dist.es2015/index.js.map +1 -0
  247. package/node_modules/upper-case-first/dist.es2015/index.spec.d.ts +1 -0
  248. package/node_modules/upper-case-first/dist.es2015/index.spec.js +18 -0
  249. package/node_modules/upper-case-first/dist.es2015/index.spec.js.map +1 -0
  250. package/node_modules/upper-case-first/package.json +87 -0
  251. package/node_modules/uuid/CHANGELOG.md +229 -0
  252. package/node_modules/uuid/CONTRIBUTING.md +18 -0
  253. package/node_modules/uuid/LICENSE.md +9 -0
  254. package/node_modules/uuid/README.md +505 -0
  255. package/node_modules/uuid/dist/bin/uuid +2 -0
  256. package/node_modules/uuid/dist/esm-browser/index.js +9 -0
  257. package/node_modules/uuid/dist/esm-browser/md5.js +215 -0
  258. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  259. package/node_modules/uuid/dist/esm-browser/parse.js +35 -0
  260. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  261. package/node_modules/uuid/dist/esm-browser/rng.js +19 -0
  262. package/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
  263. package/node_modules/uuid/dist/esm-browser/stringify.js +30 -0
  264. package/node_modules/uuid/dist/esm-browser/v1.js +95 -0
  265. package/node_modules/uuid/dist/esm-browser/v3.js +4 -0
  266. package/node_modules/uuid/dist/esm-browser/v35.js +64 -0
  267. package/node_modules/uuid/dist/esm-browser/v4.js +24 -0
  268. package/node_modules/uuid/dist/esm-browser/v5.js +4 -0
  269. package/node_modules/uuid/dist/esm-browser/validate.js +7 -0
  270. package/node_modules/uuid/dist/esm-browser/version.js +11 -0
  271. package/node_modules/uuid/dist/esm-node/index.js +9 -0
  272. package/node_modules/uuid/dist/esm-node/md5.js +13 -0
  273. package/node_modules/uuid/dist/esm-node/nil.js +1 -0
  274. package/node_modules/uuid/dist/esm-node/parse.js +35 -0
  275. package/node_modules/uuid/dist/esm-node/regex.js +1 -0
  276. package/node_modules/uuid/dist/esm-node/rng.js +12 -0
  277. package/node_modules/uuid/dist/esm-node/sha1.js +13 -0
  278. package/node_modules/uuid/dist/esm-node/stringify.js +29 -0
  279. package/node_modules/uuid/dist/esm-node/v1.js +95 -0
  280. package/node_modules/uuid/dist/esm-node/v3.js +4 -0
  281. package/node_modules/uuid/dist/esm-node/v35.js +64 -0
  282. package/node_modules/uuid/dist/esm-node/v4.js +24 -0
  283. package/node_modules/uuid/dist/esm-node/v5.js +4 -0
  284. package/node_modules/uuid/dist/esm-node/validate.js +7 -0
  285. package/node_modules/uuid/dist/esm-node/version.js +11 -0
  286. package/node_modules/uuid/dist/index.js +79 -0
  287. package/node_modules/uuid/dist/md5-browser.js +223 -0
  288. package/node_modules/uuid/dist/md5.js +23 -0
  289. package/node_modules/uuid/dist/nil.js +8 -0
  290. package/node_modules/uuid/dist/parse.js +45 -0
  291. package/node_modules/uuid/dist/regex.js +8 -0
  292. package/node_modules/uuid/dist/rng-browser.js +26 -0
  293. package/node_modules/uuid/dist/rng.js +24 -0
  294. package/node_modules/uuid/dist/sha1-browser.js +104 -0
  295. package/node_modules/uuid/dist/sha1.js +23 -0
  296. package/node_modules/uuid/dist/stringify.js +39 -0
  297. package/node_modules/uuid/dist/umd/uuid.min.js +1 -0
  298. package/node_modules/uuid/dist/umd/uuidNIL.min.js +1 -0
  299. package/node_modules/uuid/dist/umd/uuidParse.min.js +1 -0
  300. package/node_modules/uuid/dist/umd/uuidStringify.min.js +1 -0
  301. package/node_modules/uuid/dist/umd/uuidValidate.min.js +1 -0
  302. package/node_modules/uuid/dist/umd/uuidVersion.min.js +1 -0
  303. package/node_modules/uuid/dist/umd/uuidv1.min.js +1 -0
  304. package/node_modules/uuid/dist/umd/uuidv3.min.js +1 -0
  305. package/node_modules/uuid/dist/umd/uuidv4.min.js +1 -0
  306. package/node_modules/uuid/dist/umd/uuidv5.min.js +1 -0
  307. package/node_modules/uuid/dist/uuid-bin.js +85 -0
  308. package/node_modules/uuid/dist/v1.js +107 -0
  309. package/node_modules/uuid/dist/v3.js +16 -0
  310. package/node_modules/uuid/dist/v35.js +78 -0
  311. package/node_modules/uuid/dist/v4.js +37 -0
  312. package/node_modules/uuid/dist/v5.js +16 -0
  313. package/node_modules/uuid/dist/validate.js +17 -0
  314. package/node_modules/uuid/dist/version.js +21 -0
  315. package/node_modules/uuid/package.json +135 -0
  316. package/node_modules/uuid/wrapper.mjs +10 -0
  317. package/package.json +37 -6
  318. package/releasetag.txt +1 -0
  319. package/version.txt +1 -0
package/CHANGELOG.md CHANGED
@@ -1,9 +1,2 @@
1
- # Changelog
2
1
 
3
- ## 0.1.45
4
-
5
- - _Breaking Change_: `terraformExamplesFolder`, `terraformProvider`, `terraformProvider*Config` are now part of `terraformExamples` and differently structured.
6
- - Add documentation hook (using docker if `terraform-docs` is not enabled)
7
- - Add terraform and construct example folders
8
- - Add tests to the generated code
9
- - Remove `pre-commit` hooks
2
+ ### [0.1.55](https://github.com/DanielMSchmidt/projen-cdktf-hybrid-construct/compare/v0.1.54...v0.1.55) (2022-05-05)
package/README.md CHANGED
@@ -1,22 +1,17 @@
1
1
  # Projen-CDKTF-Hybrid-Construct
2
2
 
3
- Projen template for CDKTF Constructs that should also be used as Terraform Modules.
3
+ Projen template for CDKTF Constructs that should also be used as Terraform Modules and for republishing Terraform Modules as Constructs.
4
4
 
5
5
  ## Usage
6
6
 
7
- ```bash
8
- mkdir my-new-hybrid-construct
9
- cd my-new-hybrid-construct
10
- npx projen typescript
11
- npm install projen-cdktf-hybrid-construct
12
- ```
13
-
14
- Edit the `.projenrc.ts`:
15
-
16
7
  ### `HybridModule`
17
8
 
18
9
  If you want to write a CDKTF construct and also publish it as a Terraform Module you can use the `HybridModule` template.
19
10
 
11
+ You can initialize such a project using `npx projen new --from projen-cdktf-hybrid-construct hybrid-module`.
12
+
13
+ A configutation might look like this:
14
+
20
15
  ```js
21
16
  const { HybridModule } = require("projen-cdktf-hybrid-construct");
22
17
 
@@ -66,6 +61,10 @@ project.synth();
66
61
 
67
62
  If you want to republish an existing Terraform module as a CDKTF construct or if you want to repackage them with an easier to use API you can use the `TerraformModule` template.
68
63
 
64
+ You can initialize such a project using `npx projen new --from projen-cdktf-hybrid-construct terraform-module`.
65
+
66
+ A configutation might look like this:
67
+
69
68
  ```js
70
69
  const { TerraformModule } = require("projen-cdktf-hybrid-construct");
71
70
 
@@ -192,6 +191,26 @@ new HybridModule({
192
191
  });
193
192
  ```
194
193
 
194
+ ### Github Packages
195
+
196
+ We have a helper method for easy configuration, no extra steps needed:
197
+
198
+ ```js
199
+ const {
200
+ HybridModule,
201
+ publishToGithubPackages,
202
+ } = require("projen-cdktf-hybrid-construct");
203
+
204
+ const project = new HybridModule({
205
+ // ... all the other options
206
+ ...publishToGithubPackages({
207
+ name: "my-new-hybrid-construct",
208
+ namespace: "my-org",
209
+ registries: ["npm", "maven"], // pypi and nuget are not yet supported
210
+ }),
211
+ });
212
+ ```
213
+
195
214
  ### Roadmap
196
215
 
197
216
  - [x] Add dedicated file for HCL templates
@@ -201,5 +220,5 @@ new HybridModule({
201
220
  - [x] Add example folder to project using this
202
221
  - [x] Add testing strategy
203
222
  - [x] Add construct / option / docs to publish existing module as construct
223
+ - [x] Add deployment scripts to Github Packages
204
224
  - [ ] Add deployment scripts to Artifactory
205
- - [ ] Add deployment scripts to Github Packages
package/lib/defaults.d.ts CHANGED
@@ -6,5 +6,4 @@ declare const defaultOptions: {
6
6
  sampleCode: boolean;
7
7
  };
8
8
  export declare const defaults: Pick<ConstructLibraryOptions, keyof typeof defaultOptions>;
9
- export declare type Options = Omit<ConstructLibraryOptions, keyof typeof defaults>;
10
9
  export {};
package/lib/defaults.js CHANGED
@@ -9,4 +9,4 @@ const defaultOptions = {
9
9
  };
10
10
  // Ensure they match the parent option
11
11
  exports.defaults = defaultOptions;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBTSxjQUFjLEdBQUc7SUFDckIsUUFBUSxFQUFFLElBQUk7SUFDZCxVQUFVLEVBQUUsSUFBSTtJQUNoQixvQkFBb0IsRUFBRSxNQUFNO0lBQzVCLFVBQVUsRUFBRSxLQUFLO0NBQ2xCLENBQUM7QUFDRixzQ0FBc0M7QUFDekIsUUFBQSxRQUFRLEdBR2pCLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICBwcmV0dGllcjogdHJ1ZSxcbiAgcHJvamVucmNUczogdHJ1ZSxcbiAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IFwibWFpblwiLFxuICBzYW1wbGVDb2RlOiBmYWxzZSxcbn07XG4vLyBFbnN1cmUgdGhleSBtYXRjaCB0aGUgcGFyZW50IG9wdGlvblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRzOiBQaWNrPFxuICBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyxcbiAga2V5b2YgdHlwZW9mIGRlZmF1bHRPcHRpb25zXG4+ID0gZGVmYXVsdE9wdGlvbnM7XG5cbmV4cG9ydCB0eXBlIE9wdGlvbnMgPSBPbWl0PENvbnN0cnVjdExpYnJhcnlPcHRpb25zLCBrZXlvZiB0eXBlb2YgZGVmYXVsdHM+O1xuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBTSxjQUFjLEdBQUc7SUFDckIsUUFBUSxFQUFFLElBQUk7SUFDZCxVQUFVLEVBQUUsSUFBSTtJQUNoQixvQkFBb0IsRUFBRSxNQUFNO0lBQzVCLFVBQVUsRUFBRSxLQUFLO0NBQ2xCLENBQUM7QUFDRixzQ0FBc0M7QUFDekIsUUFBQSxRQUFRLEdBR2pCLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICBwcmV0dGllcjogdHJ1ZSxcbiAgcHJvamVucmNUczogdHJ1ZSxcbiAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IFwibWFpblwiLFxuICBzYW1wbGVDb2RlOiBmYWxzZSxcbn07XG4vLyBFbnN1cmUgdGhleSBtYXRjaCB0aGUgcGFyZW50IG9wdGlvblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRzOiBQaWNrPFxuICBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyxcbiAga2V5b2YgdHlwZW9mIGRlZmF1bHRPcHRpb25zXG4+ID0gZGVmYXVsdE9wdGlvbnM7XG4iXX0=
@@ -1,21 +1,49 @@
1
- import { ConstructLibrary } from "projen/lib/cdk";
2
- import { Options } from "./defaults";
3
- declare type HybridModuleOptions = Options & {
4
- cdktfVersion?: string;
5
- constructVersion?: string;
6
- author: string;
7
- terraformExamples?: {
8
- enabled: boolean;
9
- folder?: string;
10
- providerConfig?: string;
11
- };
12
- constructExamples?: {
13
- enabled: boolean;
14
- folder?: string;
15
- };
16
- projectId?: string;
17
- };
18
- export declare class HybridModule extends ConstructLibrary {
19
- constructor(config: HybridModuleOptions);
1
+ import { JsiiProject, ConstructLibraryOptions } from "projen/lib/cdk";
2
+ export interface ConstructExamplesOption {
3
+ readonly enabled: boolean;
4
+ readonly folder?: string;
5
+ }
6
+ export interface TerraformExamplesOption {
7
+ readonly enabled: boolean;
8
+ readonly folder?: string;
9
+ readonly providerConfig?: string;
10
+ }
11
+ export interface HybridModuleOptions extends ConstructLibraryOptions {
12
+ /**
13
+ * Minimum target version of this library.
14
+ * @default "^0.10.1"
15
+ * @featured
16
+ */
17
+ readonly cdktfVersion?: string;
18
+ /**
19
+ * Construct version to use
20
+ * @default "^10.0.12"
21
+ */
22
+ readonly constructVersion?: string;
23
+ /**
24
+ * If set a terraform examples folder will be created
25
+ * @default undefined
26
+ * @featured
27
+ */
28
+ readonly terraformExamples?: TerraformExamplesOption;
29
+ /**
30
+ * If set a construct examples folder will be created
31
+ * @default undefined
32
+ * @featured
33
+ */
34
+ readonly constructExamples?: ConstructExamplesOption;
35
+ /**
36
+ * If set a terraform examples folder will be created
37
+ *Defaults to a uuid string as cdktf would
38
+ * Mostly used for testing to have a predictable result
39
+ */
40
+ readonly projectId?: string;
41
+ }
42
+ /**
43
+ * Hybrid CDKTF Construct / Terraform Module
44
+ *
45
+ * @pjid hybrid-module
46
+ */
47
+ export declare class HybridModule extends JsiiProject {
48
+ constructor(options: HybridModuleOptions);
20
49
  }
21
- export {};
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.HybridModule = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
4
6
  const projen_1 = require("projen");
5
7
  const cdk_1 = require("projen/lib/cdk");
6
8
  const uuid_1 = require("uuid");
@@ -80,23 +82,27 @@ class ScriptFile extends projen_1.FileBase {
80
82
  return this.content;
81
83
  }
82
84
  }
83
- class HybridModule extends cdk_1.ConstructLibrary {
84
- constructor(config) {
85
- var _a, _b, _c;
85
+ /**
86
+ * Hybrid CDKTF Construct / Terraform Module
87
+ *
88
+ * @pjid hybrid-module
89
+ */
90
+ class HybridModule extends cdk_1.JsiiProject {
91
+ constructor(options) {
92
+ var _b, _c, _d;
86
93
  super({
87
94
  ...defaults_1.defaults,
88
- ...config,
89
- sampleCode: false,
90
- eslintOptions: Object.assign({}, config.eslintOptions, {
95
+ ...options,
96
+ eslintOptions: Object.assign({}, options.eslintOptions, {
91
97
  lintProjenRc: false,
92
98
  }),
93
99
  postBuildSteps: [],
94
100
  });
95
- const constructVersion = config.constructVersion || "^10.0.107";
96
- const cdktfVersion = config.cdktfVersion || "^0.10.1";
101
+ const constructVersion = options.constructVersion || "^10.0.107";
102
+ const cdktfVersion = options.cdktfVersion || "^0.10.1";
97
103
  this.addPeerDeps(`constructs@${constructVersion}`, `cdktf@${cdktfVersion}`);
98
104
  this.addDevDeps(`cdktf-cli@${cdktfVersion}`, "ts-node");
99
- this.addKeywords("cdktf", "cdktf-hybrid");
105
+ this.addKeywords("cdk", "cdktf", "cdktf-hybrid", "terraform");
100
106
  this.setScript("terraform:test", "./scripts/tf-module-test.sh");
101
107
  // Module Entrypoint
102
108
  this.addDeps("cdktf-tf-module-stack");
@@ -107,7 +113,7 @@ class HybridModule extends cdk_1.ConstructLibrary {
107
113
 
108
114
  \`\`\`hcl
109
115
  module "eks_managed_node_group" {
110
- source = "${((_a = config.repositoryUrl) === null || _a === void 0 ? void 0 : _a.replace("https://github.com/", "").replace("http://github.com/", "").replace("github.com/", "")) || "my-github-repo"}//modules/my-awesome-module"
116
+ source = "${((_b = options.repositoryUrl) === null || _b === void 0 ? void 0 : _b.replace("https://github.com/", "").replace("http://github.com/", "").replace("github.com/", "")) || "my-github-repo"}//modules/my-awesome-module"
111
117
 
112
118
  }
113
119
  \`\`\`
@@ -123,13 +129,13 @@ module "eks_managed_node_group" {
123
129
  terraformProviders: ["hashicorp/null@3.1.1"],
124
130
  terraformModules: [],
125
131
  output: "modules",
126
- projectId: config.projectId || (0, uuid_1.v4)(),
132
+ projectId: options.projectId || uuid_1.v4(),
127
133
  }, null, 2),
128
134
  "__tests__/index-test.ts": constructTestCode.trim(),
129
135
  },
130
136
  });
131
- if (config.terraformExamples && config.terraformExamples.enabled) {
132
- const providerConfig = config.terraformExamples.providerConfig ||
137
+ if (options.terraformExamples && options.terraformExamples.enabled) {
138
+ const providerConfig = options.terraformExamples.providerConfig ||
133
139
  `
134
140
  terraform {
135
141
  # Terraform binary version constraint
@@ -143,7 +149,7 @@ terraform {
143
149
  # Initialize your provider here
144
150
 
145
151
  `.trim();
146
- const examplesFolder = config.terraformExamples.folder || "terraform-examples";
152
+ const examplesFolder = options.terraformExamples.folder || "terraform-examples";
147
153
  new projen_1.SampleDir(this, examplesFolder, {
148
154
  files: {
149
155
  "main.tf": `
@@ -156,8 +162,8 @@ ${providerConfig}
156
162
  });
157
163
  this.gitignore.addPatterns(`${examplesFolder}/.terraform`, `${examplesFolder}/.terraform.lock.hcl`);
158
164
  }
159
- if (config.constructExamples && config.constructExamples.enabled) {
160
- const constructExampleFolder = config.constructExamples.folder || "construct-examples";
165
+ if (options.constructExamples && options.constructExamples.enabled) {
166
+ const constructExampleFolder = options.constructExamples.folder || "construct-examples";
161
167
  const levels = constructExampleFolder
162
168
  .split("/")
163
169
  .map(() => "..")
@@ -209,7 +215,7 @@ app.synth();
209
215
  "cdktf.json": JSON.stringify({
210
216
  language: "typescript",
211
217
  app: "npx ts-node --project ../tsconfig.dev.json index.ts",
212
- projectId: config.projectId || (0, uuid_1.v4)(),
218
+ projectId: options.projectId || uuid_1.v4(),
213
219
  }, null, 2),
214
220
  "README.md": constructReadmeDocs.trim(),
215
221
  },
@@ -281,7 +287,7 @@ done
281
287
  name: "Copy HCL Modules",
282
288
  });
283
289
  // ignore dist in tests
284
- (_b = this.jest) === null || _b === void 0 ? void 0 : _b.addIgnorePattern("dist");
290
+ (_c = this.jest) === null || _c === void 0 ? void 0 : _c.addIgnorePattern("dist");
285
291
  new ScriptFile(this, "./scripts/tf-module-test.sh", `
286
292
  #!/bin/bash
287
293
  # This script is created by projen, do not edit it directly.
@@ -293,8 +299,10 @@ terraform -chdir=terraform validate
293
299
  terraform -chdir=terraform plan
294
300
  `);
295
301
  this.testTask.exec("./scripts/tf-module-test.sh");
296
- (_c = this.jest) === null || _c === void 0 ? void 0 : _c.addIgnorePattern("terraform");
302
+ (_d = this.jest) === null || _d === void 0 ? void 0 : _d.addIgnorePattern("terraform");
297
303
  }
298
304
  }
299
305
  exports.HybridModule = HybridModule;
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oeWJyaWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFpRTtBQUNqRSx3Q0FBa0Q7QUFDbEQsK0JBQWtDO0FBQ2xDLHlDQUErQztBQTBCL0MsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Ozs7Ozs7O0NBWXhCLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCekIsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBc0JyQixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRzs7Ozs7Ozs7O0tBU3ZCLENBQUM7QUFFTixNQUFNLFVBQVcsU0FBUSxpQkFBUTtJQUMvQixZQUFZLE9BQWdCLEVBQUUsSUFBWSxFQUFVLE9BQWU7UUFDakUsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7WUFDbkIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBSCtDLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFJbkUsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVk7UUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQWEsWUFBYSxTQUFRLHNCQUFnQjtJQUNoRCxZQUFZLE1BQTJCOztRQUNyQyxLQUFLLENBQUM7WUFDSixHQUFHLG1CQUFRO1lBQ1gsR0FBRyxNQUFNO1lBQ1QsVUFBVSxFQUFFLEtBQUs7WUFDakIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUU7Z0JBQ3JELFlBQVksRUFBRSxLQUFLO2FBQ3BCLENBQUM7WUFDRixjQUFjLEVBQUUsRUFBRTtTQUNuQixDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxXQUFXLENB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QUM7UUFFSCxJQUFJLFVBQVUsQ0FDWixJQUFJLEVBQ0oseUJBQXlCLEVBQ3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaURMLENBQUMsSUFBSSxFQUFFLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQ2pELElBQUksRUFBRSxrQkFBa0I7U0FDekIsQ0FBQyxDQUFDO1FBRUgsdUJBQXVCO1FBQ3ZCLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEMsSUFBSSxVQUFVLENBQ1osSUFBSSxFQUNKLDZCQUE2QixFQUM3Qjs7Ozs7Ozs7O1NBU0csQ0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNsRCxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQW5RRCxvQ0FtUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlQmFzZSwgSVJlc29sdmVyLCBQcm9qZWN0LCBTYW1wbGVEaXIgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RMaWJyYXJ5IH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSBcInV1aWRcIjtcbmltcG9ydCB7IGRlZmF1bHRzLCBPcHRpb25zIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcblxudHlwZSBIeWJyaWRNb2R1bGVPcHRpb25zID0gT3B0aW9ucyAmIHtcbiAgY2RrdGZWZXJzaW9uPzogc3RyaW5nO1xuICBjb25zdHJ1Y3RWZXJzaW9uPzogc3RyaW5nO1xuICAvLyBOYW1lIG9mIHRoZSBhdXRob3JcbiAgYXV0aG9yOiBzdHJpbmc7XG4gIC8vIElmIHNldCBhIHRlcnJhZm9ybSBleGFtcGxlcyBmb2xkZXIgd2lsbCBiZSBjcmVhdGVkXG4gIHRlcnJhZm9ybUV4YW1wbGVzPzoge1xuICAgIC8vIElmIHNldCB0ZXJyYWZvcm0gZXhhbXBsZXMgd2lsbCBiZSByZW5kZXJlZFxuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgLy8gUGF0aCBmb3IgdGhlIHRlcnJhZm9ybSBleGFtcGxlc1xuICAgIGZvbGRlcj86IHN0cmluZztcbiAgICAvLyBUaGUgSENMIGNvbmZpZyBmaWxlIHRvIHVzZSBmb3IgdGhlIHRlcnJhZm9ybSBwcm92aWRlclxuICAgIHByb3ZpZGVyQ29uZmlnPzogc3RyaW5nO1xuICB9O1xuICBjb25zdHJ1Y3RFeGFtcGxlcz86IHtcbiAgICAvLyBJZiBzZXQgY29uc3RydWN0IGV4YW1wbGVzIHdpbGwgYmUgcmVuZGVyZWRcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIC8vIFBhdGggZm9yIHRoZSBjb25zdHJ1Y3QgZXhhbXBsZXNcbiAgICBmb2xkZXI/OiBzdHJpbmc7XG4gIH07XG4gIC8vIERlZmF1bHRlZCB0byBhIHV1aWQgc3RyaW5nIGFzIGNka3RmIHdvdWxkXG4gIHByb2plY3RJZD86IHN0cmluZztcbn07XG5cbmNvbnN0IGNvbnN0cnVjdFNyY0NvZGUgPSBgXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE15Q29uc3RydWN0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHByb3BlcnR5QTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTXlDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwdWJsaWMgY29uZmlnOiBNeUNvbnN0cnVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICB9XG59XG5gO1xuXG5jb25zdCBjb25zdHJ1Y3RUZXN0Q29kZSA9IGBcbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCBcImNka3RmL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIi4uL1wiO1xuXG4vLyBUbyBsZWFybiBtb3JlIGFib3V0IHRlc3Rpbmcgc2VlIGNkay50Zi90ZXN0aW5nXG5kZXNjcmliZShcIk15Q29uc3RydWN0XCIsICgpID0+IHtcbiAgaXQoXCJzaG91bGQgc3ludGhlc2l6ZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgVGVzdGluZy5zeW50aFNjb3BlKChzY29wZSkgPT4ge1xuICAgICAgICBuZXcgTXlDb25zdHJ1Y3Qoc2NvcGUsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn0pO1xuYDtcblxuY29uc3QgbW9kdWxlU3JjQ29kZSA9IGBcbmltcG9ydCB7IEFwcCB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRGTW9kdWxlU3RhY2sgfSBmcm9tIFwiY2RrdGYtdGYtbW9kdWxlLXN0YWNrXCI7XG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIuL2luZGV4XCI7XG5cbmNsYXNzIE15QXdlc29tZU1vZHVsZSBleHRlbmRzIFRGTW9kdWxlU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuLy8gVGhpcyBpcyB0aGUgbmFtZSB0aGUgbW9kdWxlIGNhbiBiZSBmb3VuZCB1bmRlci4gXG4vLyBXZSBleHBlY3QgYSBcIm15LWF3ZXNvbWUtbW9kdWxlLm1kXCIgZmlsZSBpbiB0aGlzIGRpcmVjdG9yeS5cbi8vIFRoZSBSRUFETUUubWQgZmlsZSB3aWxsIGJlIGdlbmVyYXRlZCBmcm9tIHRoaXMgZmlsZS5cbm5ldyBNeUF3ZXNvbWVNb2R1bGUoYXBwLCBcIm15LWF3ZXNvbWUtbW9kdWxlXCIpO1xuYXBwLnN5bnRoKCk7XG5gO1xuXG5jb25zdCB0ZXJyYWZvcm1SZWFkbWVEb2NzID0gYFxuIyBQbGVhc2UgYWRkIGhlcmUgc29tZSBwdXJlIEhDTCB0ZXN0cyBmb3IgeW91ciBtb2R1bGVzIGluIG9yZGVyIHRvIHRlc3QgSENMIEludGVyb3BlcmFiaWxpdHlcblxuRXhhbXBsZXM6XG5cbm1vZHVsZSBcIm15X2F3ZXNvbWVfdGVzdFwiIHtcbiAgc291cmNlID0gXCIuLi9tb2R1bGVzL215LWF3ZXNvbWUtbW9kdWxlc1wiXG4gIC4uLnZhcmlhYmxlcy4uLlxufVxuICAgIGA7XG5cbmNsYXNzIFNjcmlwdEZpbGUgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIHBhdGg6IHN0cmluZywgcHJpdmF0ZSBjb250ZW50OiBzdHJpbmcpIHtcbiAgICBzdXBlcihwcm9qZWN0LCBwYXRoLCB7XG4gICAgICBleGVjdXRhYmxlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVDb250ZW50KF86IElSZXNvbHZlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSHlicmlkTW9kdWxlIGV4dGVuZHMgQ29uc3RydWN0TGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogSHlicmlkTW9kdWxlT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgICBlc2xpbnRPcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBjb25maWcuZXNsaW50T3B0aW9ucywge1xuICAgICAgICBsaW50UHJvamVuUmM6IGZhbHNlLFxuICAgICAgfSksXG4gICAgICBwb3N0QnVpbGRTdGVwczogW10sXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IGNvbmZpZy5jb25zdHJ1Y3RWZXJzaW9uIHx8IFwiXjEwLjAuMTA3XCI7XG4gICAgY29uc3QgY2RrdGZWZXJzaW9uID0gY29uZmlnLmNka3RmVmVyc2lvbiB8fCBcIl4wLjEwLjFcIjtcblxuICAgIHRoaXMuYWRkUGVlckRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RWZXJzaW9ufWAsIGBjZGt0ZkAke2Nka3RmVmVyc2lvbn1gKTtcbiAgICB0aGlzLmFkZERldkRlcHMoYGNka3RmLWNsaUAke2Nka3RmVmVyc2lvbn1gLCBcInRzLW5vZGVcIik7XG4gICAgdGhpcy5hZGRLZXl3b3JkcyhcImNka3RmXCIsIFwiY2RrdGYtaHlicmlkXCIpO1xuICAgIHRoaXMuc2V0U2NyaXB0KFwidGVycmFmb3JtOnRlc3RcIiwgXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIik7XG5cbiAgICAvLyBNb2R1bGUgRW50cnlwb2ludFxuICAgIHRoaXMuYWRkRGVwcyhcImNka3RmLXRmLW1vZHVsZS1zdGFja1wiKTtcbiAgICBjb25zdCBtb2R1bGVEb2NzID0gYFxuIyBNeSBBd2Vzb21lIE1vZHVsZVxuXG4jIyBVc2FnZVxuXG5cXGBcXGBcXGBoY2xcbm1vZHVsZSBcImVrc19tYW5hZ2VkX25vZGVfZ3JvdXBcIiB7XG4gIHNvdXJjZSA9IFwiJHtcbiAgICBjb25maWcucmVwb3NpdG9yeVVybFxuICAgICAgPy5yZXBsYWNlKFwiaHR0cHM6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJodHRwOi8vZ2l0aHViLmNvbS9cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiZ2l0aHViLmNvbS9cIiwgXCJcIikgfHwgXCJteS1naXRodWItcmVwb1wiXG4gIH0vL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVcIlxuXG59XG5cXGBcXGBcXGBcbiAgICBgO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJpbmRleC50c1wiOiBjb25zdHJ1Y3RTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJ0Zk1vZHVsZXMudHNcIjogbW9kdWxlU3JjQ29kZS50cmltKCksXG4gICAgICAgIFwibXktYXdlc29tZS1tb2R1bGUubWRcIjogbW9kdWxlRG9jcy50cmltKCksXG4gICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgdGZNb2R1bGVzLnRzXCIsXG4gICAgICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IFtcImhhc2hpY29ycC9udWxsQDMuMS4xXCJdLCAvLyBXZSBuZWVkIGF0IGxlYXN0IGEgcHJvdmlkZXIgZm9yIGdldCB0byBzdWNjZWVkXG4gICAgICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXSxcbiAgICAgICAgICAgIG91dHB1dDogXCJtb2R1bGVzXCIsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6IGNvbmZpZy5wcm9qZWN0SWQgfHwgdXVpZCgpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICAyXG4gICAgICAgICksXG4gICAgICAgIFwiX190ZXN0c19fL2luZGV4LXRlc3QudHNcIjogY29uc3RydWN0VGVzdENvZGUudHJpbSgpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChjb25maWcudGVycmFmb3JtRXhhbXBsZXMgJiYgY29uZmlnLnRlcnJhZm9ybUV4YW1wbGVzLmVuYWJsZWQpIHtcbiAgICAgIGNvbnN0IHByb3ZpZGVyQ29uZmlnID1cbiAgICAgICAgY29uZmlnLnRlcnJhZm9ybUV4YW1wbGVzLnByb3ZpZGVyQ29uZmlnIHx8XG4gICAgICAgIGBcbnRlcnJhZm9ybSB7XG4gICMgVGVycmFmb3JtIGJpbmFyeSB2ZXJzaW9uIGNvbnN0cmFpbnRcbiAgcmVxdWlyZWRfdmVyc2lvbiA9IFwifj4gMS4xLjBcIlxuXG4gICMgRGVmaW5lIGFsbCBuZWVkZWQgcHJvdmlkZXJzIGhlcmUsIHlvdSBjYW4gZmluZCBhbGwgYXZhaWxhYmxlIHByb3ZpZGVycyBoZXJlOlxuICAjIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL1xuICByZXF1aXJlZF9wcm92aWRlcnMge31cbn1cblxuIyBJbml0aWFsaXplIHlvdXIgcHJvdmlkZXIgaGVyZVxuXG5gLnRyaW0oKTtcbiAgICAgIGNvbnN0IGV4YW1wbGVzRm9sZGVyID1cbiAgICAgICAgY29uZmlnLnRlcnJhZm9ybUV4YW1wbGVzLmZvbGRlciB8fCBcInRlcnJhZm9ybS1leGFtcGxlc1wiO1xuXG4gICAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIGV4YW1wbGVzRm9sZGVyLCB7XG4gICAgICAgIGZpbGVzOiB7XG4gICAgICAgICAgXCJtYWluLnRmXCI6IGBcbiMgQ29uZmlndXJlIFRlcnJhZm9ybVxuJHtwcm92aWRlckNvbmZpZ31cblxuICAgICAgICAgICAgYC50cmltU3RhcnQoKSxcbiAgICAgICAgICBcIlJFQURNRS5tZFwiOiB0ZXJyYWZvcm1SZWFkbWVEb2NzLnRyaW0oKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhcbiAgICAgICAgYCR7ZXhhbXBsZXNGb2xkZXJ9Ly50ZXJyYWZvcm1gLFxuICAgICAgICBgJHtleGFtcGxlc0ZvbGRlcn0vLnRlcnJhZm9ybS5sb2NrLmhjbGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5jb25zdHJ1Y3RFeGFtcGxlcyAmJiBjb25maWcuY29uc3RydWN0RXhhbXBsZXMuZW5hYmxlZCkge1xuICAgICAgY29uc3QgY29uc3RydWN0RXhhbXBsZUZvbGRlciA9XG4gICAgICAgIGNvbmZpZy5jb25zdHJ1Y3RFeGFtcGxlcy5mb2xkZXIgfHwgXCJjb25zdHJ1Y3QtZXhhbXBsZXNcIjtcblxuICAgICAgY29uc3QgbGV2ZWxzID0gY29uc3RydWN0RXhhbXBsZUZvbGRlclxuICAgICAgICAuc3BsaXQoXCIvXCIpXG4gICAgICAgIC5tYXAoKCkgPT4gXCIuLlwiKVxuICAgICAgICAuam9pbihcIi9cIik7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdFJlYWRtZURvY3MgPSBgXG4jIENvbnN0cnVjdCBFeGFtcGxlc1xuXG5FeGFtcGxlIHVzZS1jYXNlcyBmb3IgdGhlIENvbnN0cnVjdCBsaWJyYXJ5LlxuXG4tIFtCYXNpYyBVc2FnZV0oLi9iYXNpYy50cylcblxuVG8gZW5zdXJlIGFsbCBleGFtcGxlcyBhcmUgd29ya2luZywgcGxlYXNlIG1ha2Ugc3VyZSB0aGUgW2luZGV4LnRzXSguL2luZGV4LnRzKSBmaWxlIGlzIGltcG9ydGluZyBhbGwgb2YgdGhlbS5cbmA7XG5cbiAgICAgIGNvbnN0IGNvbnN0cnVjdEV4YW1wbGVDb2RlID0gYFxuaW1wb3J0IHsgVGVycmFmb3JtU3RhY2sgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIiR7bGV2ZWxzfS9zcmMvXCI7XG5cbmV4cG9ydCBjbGFzcyBCYXNpY0V4YW1wbGUgZXh0ZW5kcyBUZXJyYWZvcm1TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuXG5gO1xuXG4gICAgICBjb25zdCBleGFtcGxlQ29sbGVjdGlvbkNvZGUgPSBgXG4vLyBUaGlzIGZpbGUgd2lsbCBiZSBzeW50aGVzaXplZCB0byBjaGVjayBpZiBhbGwgZXhhbXBsZXMgYXJlIHdvcmtpbmdcblxuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG4vLyBBbGwgZXhhbXBsZXMgbmVlZCB0byBiZSBpbXBvcnRlZCBoZXJlXG5pbXBvcnQgeyBCYXNpY0V4YW1wbGUgfSBmcm9tIFwiLi9iYXNpY1wiO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbi8vIEFsbCBleGFtcGxlcyBuZWVkIHRvIGJlIGluaXRpYWxpemVkIGhlcmVcbm5ldyBCYXNpY0V4YW1wbGUoYXBwLCBcImJhc2ljLWV4YW1wbGVcIik7XG5hcHAuc3ludGgoKTtcbmA7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgY29uc3RydWN0RXhhbXBsZUZvbGRlciwge1xuICAgICAgICBmaWxlczoge1xuICAgICAgICAgIFwiaW5kZXgudHNcIjogZXhhbXBsZUNvbGxlY3Rpb25Db2RlLnRyaW0oKSxcbiAgICAgICAgICBcImJhc2ljLnRzXCI6IGNvbnN0cnVjdEV4YW1wbGVDb2RlLnRyaW0oKSxcbiAgICAgICAgICBcImNka3RmLmpzb25cIjogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBcInR5cGVzY3JpcHRcIixcbiAgICAgICAgICAgICAgYXBwOiBcIm5weCB0cy1ub2RlIC0tcHJvamVjdCAuLi90c2NvbmZpZy5kZXYuanNvbiBpbmRleC50c1wiLFxuICAgICAgICAgICAgICBwcm9qZWN0SWQ6IGNvbmZpZy5wcm9qZWN0SWQgfHwgdXVpZCgpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAyXG4gICAgICAgICAgKSxcbiAgICAgICAgICBcIlJFQURNRS5tZFwiOiBjb25zdHJ1Y3RSZWFkbWVEb2NzLnRyaW0oKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoYGNka3RmIHN5bnRoYCwge1xuICAgICAgICBjd2Q6IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXIsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKGAke2NvbnN0cnVjdEV4YW1wbGVGb2xkZXJ9L2Nka3RmLm91dGApO1xuICAgIH1cblxuICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKFwic3JjLy5nZW5cIiwgXCJzcmMvY2RrdGYub3V0XCIsIFwic3JjL21vZHVsZXNcIik7XG4gICAgdGhpcy5jb21waWxlVGFzay5wcmVwZW5kRXhlYyhcImNka3RmIGdldFwiLCB7XG4gICAgICBjd2Q6IHRoaXMuc3JjZGlyLFxuICAgIH0pO1xuICAgIHRoaXMuY29tcGlsZVRhc2suZXhlYyhcImNka3RmIHN5bnRoXCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgICBuYW1lOiBcIlN5bnRoZXNpemUgbW9kdWxlIEhDTFwiLFxuICAgIH0pO1xuXG4gICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCJzY3JpcHRzL2NvcHktbW9kdWxlcy5zaFwiLFxuICAgICAgYFxuIyEvYmluL2Jhc2hcbiMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5Llxuc2V0IC1lXG5cblNDUklQVFBBVEg9XCIkKCBjZCAtLSBcIiQoZGlybmFtZSBcIiQwXCIpXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcIlxuXG4jIGNoZWNrIGlmIHRoZSBtb2R1bGUgZm9sZGVyIGhhcyBiZWVuIGdlbmVyYXRlZCBhcyBleHBlY3RlZFxuTU9EVUxFU19GT0xERVI9JCggY2QgLS0gXCIkU0NSSVBUUEFUSC8uLi9zcmMvbW9kdWxlcy9zdGFja3NcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuU1JDX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9cIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuVEFSR0VUX0ZPTERFUj1cIiRTQ1JJUFRQQVRILy4uL21vZHVsZXNcIlxuXG5pZiBbICEgLWQgXCIkTU9EVUxFU19GT0xERVJcIiBdOyB0aGVuXG4gIGVjaG8gXCJFeHBlY3RlZCBtb2R1bGUgZm9sZGVyIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUlwiXG4gIGV4aXQgMVxuZmlcblxuY2QgXCIkTU9EVUxFU19GT0xERVJcIlxuZm9yIGQgaW4gKi8gOyBkb1xuICAgIFsgLUwgXCJcXCR7ZCUvfVwiIF0gJiYgY29udGludWVcblxuICAgIGRpcm5hbWU9XCJcXCR7ZCUvfVwiXG5cblxuICAgICMgQ2hlY2sgaWYgZXZlcnl0aGluZyBpcyBpbiBwbGFjZVxuICAgIGlmIFsgISAtZiBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIF07IHRoZW5cbiAgICAgIGVjaG8gXCJFeHBlY3RlZCBjb2RlIGZvciAkZGlybmFtZSBhdCBjZGsudGYuanNvbiB0byBleGlzdCBhdCAkTU9EVUxFU19GT0xERVIvJGRpcm5hbWVcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgIGlmIFsgISAtZiBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIERvY3VtZW50YXRpb24gZm9yICRkaXJuYW1lIGF0ICRkaXJuYW1lLm1kIHRvIGV4aXN0IGF0ICRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCJcbiAgICAgIGV4aXQgMVxuICAgIGZpXG5cbiAgICAjIENvcHkgbW9kdWxlIGFuZCByZWFkbWUgdG9nZXRoZXJcbiAgICBlY2hvIFwiQ29weWluZyBDb2RlIGFuZCBSRUFETUUgZm9yIG1vZHVsZSAkZGlybmFtZVwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUlwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgY3AgXCIkTU9EVUxFU19GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCJcbiAgICBjcCBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9SRUFETUUubWRcIlxuXG4gICAgIyBBZGQgUkVBRE1FIGhjbCBkb2NzXG4gICAgaWYgd2hpY2ggdGVycmFmb3JtLWRvY3MgPi9kZXYvbnVsbDsgdGhlblxuICAgICAgdGVycmFmb3JtLWRvY3MgbWFya2Rvd24gdGFibGUgLS1vdXRwdXQtZmlsZSBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL1JFQURNRS5tZFwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWVcIiBcbiAgICBlbHNlXG4gICAgICBkb2NrZXIgcnVuIC0tcm0gLS12b2x1bWUgXCIkU0NSSVBUUEFUSC8uLi9tb2R1bGVzOi90ZXJyYWZvcm0tZG9jc1wiIC11ICQoaWQgLXUpIHF1YXkuaW8vdGVycmFmb3JtLWRvY3MvdGVycmFmb3JtLWRvY3M6MC4xNi4wIG1hcmtkb3duIHRhYmxlIC0tb3V0cHV0LWZpbGUgXCIvdGVycmFmb3JtLWRvY3MvJGRpcm5hbWUvUkVBRE1FLm1kXCIgL3RlcnJhZm9ybS1kb2NzLyRkaXJuYW1lXG4gICAgZmlcbmRvbmVcbmAudHJpbSgpXG4gICAgKTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsIHtcbiAgICAgIG5hbWU6IFwiQ29weSBIQ0wgTW9kdWxlc1wiLFxuICAgIH0pO1xuXG4gICAgLy8gaWdub3JlIGRpc3QgaW4gdGVzdHNcbiAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oXCJkaXN0XCIpO1xuXG4gICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIixcbiAgICAgIGBcbiMhL2Jpbi9iYXNoXG4jIFRoaXMgc2NyaXB0IGlzIGNyZWF0ZWQgYnkgcHJvamVuLCBkbyBub3QgZWRpdCBpdCBkaXJlY3RseS5cbnNldCAtZVxuXG50ZXJyYWZvcm0gLWNoZGlyPXRlcnJhZm9ybSBpbml0IC0tdXBncmFkZVxudGVycmFmb3JtIC1jaGRpcj10ZXJyYWZvcm0gZm10XG50ZXJyYWZvcm0gLWNoZGlyPXRlcnJhZm9ybSB2YWxpZGF0ZVxudGVycmFmb3JtIC1jaGRpcj10ZXJyYWZvcm0gcGxhbiAgICAgXG4gICAgICAgIGBcbiAgICApO1xuXG4gICAgdGhpcy50ZXN0VGFzay5leGVjKFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIpO1xuICAgIHRoaXMuamVzdD8uYWRkSWdub3JlUGF0dGVybihcInRlcnJhZm9ybVwiKTtcbiAgfVxufVxuIl19
306
+ _a = JSII_RTTI_SYMBOL_1;
307
+ HybridModule[_a] = { fqn: "projen-cdktf-hybrid-construct.HybridModule", version: "0.1.55" };
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oeWJyaWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQWlFO0FBQ2pFLHdDQUFzRTtBQUN0RSwrQkFBa0M7QUFDbEMseUNBQXNDO0FBc0R0QyxNQUFNLGdCQUFnQixHQUFHOzs7Ozs7Ozs7Ozs7Q0FZeEIsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJ6QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnJCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHOzs7Ozs7Ozs7S0FTdkIsQ0FBQztBQUVOLE1BQU0sVUFBVyxTQUFRLGlCQUFRO0lBQy9CLFlBQVksT0FBZ0IsRUFBRSxJQUFZLEVBQVUsT0FBZTtRQUNqRSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtZQUNuQixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7UUFIK0MsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUluRSxDQUFDO0lBRVMsaUJBQWlCLENBQUMsQ0FBWTtRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsWUFBYSxTQUFRLGlCQUFXO0lBQzNDLFlBQVksT0FBNEI7O1FBQ3RDLEtBQUssQ0FBQztZQUNKLEdBQUcsbUJBQVE7WUFDWCxHQUFHLE9BQU87WUFDVixhQUFhLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRTtnQkFDdEQsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQztZQUNGLGNBQWMsRUFBRSxFQUFFO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQztRQUNq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LElBQUksVUFBVSxDQUNaLElBQUksRUFDSix5QkFBeUIsRUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpREwsQ0FBQyxJQUFJLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDakQsSUFBSSxFQUFFLGtCQUFrQjtTQUN6QixDQUFDLENBQUM7UUFFSCx1QkFBdUI7UUFDdkIsTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7UUFFcEMsSUFBSSxVQUFVLENBQ1osSUFBSSxFQUNKLDZCQUE2QixFQUM3Qjs7Ozs7Ozs7O1NBU0csQ0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNsRCxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtJQUMzQyxDQUFDOztBQWpRSCxvQ0FrUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWxlQmFzZSwgSVJlc29sdmVyLCBQcm9qZWN0LCBTYW1wbGVEaXIgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBKc2lpUHJvamVjdCwgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgfSBmcm9tIFwicHJvamVuL2xpYi9jZGtcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tIFwidXVpZFwiO1xuaW1wb3J0IHsgZGVmYXVsdHMgfSBmcm9tIFwiLi9kZWZhdWx0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdEV4YW1wbGVzT3B0aW9uIHtcbiAgLy8gSWYgc2V0IGNvbnN0cnVjdCBleGFtcGxlcyB3aWxsIGJlIHJlbmRlcmVkXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG4gIC8vIFBhdGggZm9yIHRoZSBjb25zdHJ1Y3QgZXhhbXBsZXNcbiAgcmVhZG9ubHkgZm9sZGVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUV4YW1wbGVzT3B0aW9uIHtcbiAgLy8gSWYgc2V0IHRlcnJhZm9ybSBleGFtcGxlcyB3aWxsIGJlIHJlbmRlcmVkXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG4gIC8vIFBhdGggZm9yIHRoZSB0ZXJyYWZvcm0gZXhhbXBsZXNcbiAgcmVhZG9ubHkgZm9sZGVyPzogc3RyaW5nO1xuICAvLyBUaGUgSENMIGNvbmZpZyBmaWxlIHRvIHVzZSBmb3IgdGhlIHRlcnJhZm9ybSBwcm92aWRlclxuICByZWFkb25seSBwcm92aWRlckNvbmZpZz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIeWJyaWRNb2R1bGVPcHRpb25zIGV4dGVuZHMgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMge1xuICAvKipcbiAgICogTWluaW11bSB0YXJnZXQgdmVyc2lvbiBvZiB0aGlzIGxpYnJhcnkuXG4gICAqIEBkZWZhdWx0IFwiXjAuMTAuMVwiXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrdGZWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgdmVyc2lvbiB0byB1c2VcbiAgICogQGRlZmF1bHQgXCJeMTAuMC4xMlwiXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSB0ZXJyYWZvcm0gZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSB0ZXJyYWZvcm1FeGFtcGxlcz86IFRlcnJhZm9ybUV4YW1wbGVzT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSBjb25zdHJ1Y3QgZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RFeGFtcGxlcz86IENvbnN0cnVjdEV4YW1wbGVzT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSB0ZXJyYWZvcm0gZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKkRlZmF1bHRzIHRvIGEgdXVpZCBzdHJpbmcgYXMgY2RrdGYgd291bGRcbiAgICogTW9zdGx5IHVzZWQgZm9yIHRlc3RpbmcgdG8gaGF2ZSBhIHByZWRpY3RhYmxlIHJlc3VsdFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdElkPzogc3RyaW5nO1xufVxuXG5jb25zdCBjb25zdHJ1Y3RTcmNDb2RlID0gYFxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNeUNvbnN0cnVjdE9wdGlvbnMge1xuICByZWFkb25seSBwcm9wZXJ0eUE6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE15Q29uc3RydWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHVibGljIGNvbmZpZzogTXlDb25zdHJ1Y3RPcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxufVxuYDtcblxuY29uc3QgY29uc3RydWN0VGVzdENvZGUgPSBgXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIuLi9cIjtcblxuLy8gVG8gbGVhcm4gbW9yZSBhYm91dCB0ZXN0aW5nIHNlZSBjZGsudGYvdGVzdGluZ1xuZGVzY3JpYmUoXCJNeUNvbnN0cnVjdFwiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIHN5bnRoZXNpemVcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIFRlc3Rpbmcuc3ludGhTY29wZSgoc2NvcGUpID0+IHtcbiAgICAgICAgbmV3IE15Q29uc3RydWN0KHNjb3BlLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICAgICAgcHJvcGVydHlBOiBcInZhbHVlQVwiLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG59KTtcbmA7XG5cbmNvbnN0IG1vZHVsZVNyY0NvZGUgPSBgXG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBURk1vZHVsZVN0YWNrIH0gZnJvbSBcImNka3RmLXRmLW1vZHVsZS1zdGFja1wiO1xuaW1wb3J0IHsgTXlDb25zdHJ1Y3QgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5jbGFzcyBNeUF3ZXNvbWVNb2R1bGUgZXh0ZW5kcyBURk1vZHVsZVN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgTXlDb25zdHJ1Y3QodGhpcywgXCJteS1jb25zdHJ1Y3RcIiwge1xuICAgICAgcHJvcGVydHlBOiBcInZhbHVlQVwiLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbi8vIFRoaXMgaXMgdGhlIG5hbWUgdGhlIG1vZHVsZSBjYW4gYmUgZm91bmQgdW5kZXIuIFxuLy8gV2UgZXhwZWN0IGEgXCJteS1hd2Vzb21lLW1vZHVsZS5tZFwiIGZpbGUgaW4gdGhpcyBkaXJlY3RvcnkuXG4vLyBUaGUgUkVBRE1FLm1kIGZpbGUgd2lsbCBiZSBnZW5lcmF0ZWQgZnJvbSB0aGlzIGZpbGUuXG5uZXcgTXlBd2Vzb21lTW9kdWxlKGFwcCwgXCJteS1hd2Vzb21lLW1vZHVsZVwiKTtcbmFwcC5zeW50aCgpO1xuYDtcblxuY29uc3QgdGVycmFmb3JtUmVhZG1lRG9jcyA9IGBcbiMgUGxlYXNlIGFkZCBoZXJlIHNvbWUgcHVyZSBIQ0wgdGVzdHMgZm9yIHlvdXIgbW9kdWxlcyBpbiBvcmRlciB0byB0ZXN0IEhDTCBJbnRlcm9wZXJhYmlsaXR5XG5cbkV4YW1wbGVzOlxuXG5tb2R1bGUgXCJteV9hd2Vzb21lX3Rlc3RcIiB7XG4gIHNvdXJjZSA9IFwiLi4vbW9kdWxlcy9teS1hd2Vzb21lLW1vZHVsZXNcIlxuICAuLi52YXJpYWJsZXMuLi5cbn1cbiAgICBgO1xuXG5jbGFzcyBTY3JpcHRGaWxlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBwYXRoOiBzdHJpbmcsIHByaXZhdGUgY29udGVudDogc3RyaW5nKSB7XG4gICAgc3VwZXIocHJvamVjdCwgcGF0aCwge1xuICAgICAgZXhlY3V0YWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzeW50aGVzaXplQ29udGVudChfOiBJUmVzb2x2ZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBIeWJyaWQgQ0RLVEYgQ29uc3RydWN0IC8gVGVycmFmb3JtIE1vZHVsZVxuICpcbiAqIEBwamlkIGh5YnJpZC1tb2R1bGVcbiAqL1xuZXhwb3J0IGNsYXNzIEh5YnJpZE1vZHVsZSBleHRlbmRzIEpzaWlQcm9qZWN0IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogSHlicmlkTW9kdWxlT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGVzbGludE9wdGlvbnM6IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuZXNsaW50T3B0aW9ucywge1xuICAgICAgICBsaW50UHJvamVuUmM6IGZhbHNlLFxuICAgICAgfSksXG4gICAgICBwb3N0QnVpbGRTdGVwczogW10sXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiB8fCBcIl4xMC4wLjEwN1wiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IG9wdGlvbnMuY2RrdGZWZXJzaW9uIHx8IFwiXjAuMTAuMVwiO1xuXG4gICAgdGhpcy5hZGRQZWVyRGVwcyhgY29uc3RydWN0c0Ake2NvbnN0cnVjdFZlcnNpb259YCwgYGNka3RmQCR7Y2RrdGZWZXJzaW9ufWApO1xuICAgIHRoaXMuYWRkRGV2RGVwcyhgY2RrdGYtY2xpQCR7Y2RrdGZWZXJzaW9ufWAsIFwidHMtbm9kZVwiKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrXCIsIFwiY2RrdGZcIiwgXCJjZGt0Zi1oeWJyaWRcIiwgXCJ0ZXJyYWZvcm1cIik7XG4gICAgdGhpcy5zZXRTY3JpcHQoXCJ0ZXJyYWZvcm06dGVzdFwiLCBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiKTtcblxuICAgIC8vIE1vZHVsZSBFbnRyeXBvaW50XG4gICAgdGhpcy5hZGREZXBzKFwiY2RrdGYtdGYtbW9kdWxlLXN0YWNrXCIpO1xuICAgIGNvbnN0IG1vZHVsZURvY3MgPSBgXG4jIE15IEF3ZXNvbWUgTW9kdWxlXG5cbiMjIFVzYWdlXG5cblxcYFxcYFxcYGhjbFxubW9kdWxlIFwiZWtzX21hbmFnZWRfbm9kZV9ncm91cFwiIHtcbiAgc291cmNlID0gXCIke1xuICAgIG9wdGlvbnMucmVwb3NpdG9yeVVybFxuICAgICAgPy5yZXBsYWNlKFwiaHR0cHM6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJodHRwOi8vZ2l0aHViLmNvbS9cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiZ2l0aHViLmNvbS9cIiwgXCJcIikgfHwgXCJteS1naXRodWItcmVwb1wiXG4gIH0vL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVcIlxuXG59XG5cXGBcXGBcXGBcbiAgICBgO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJpbmRleC50c1wiOiBjb25zdHJ1Y3RTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJ0Zk1vZHVsZXMudHNcIjogbW9kdWxlU3JjQ29kZS50cmltKCksXG4gICAgICAgIFwibXktYXdlc29tZS1tb2R1bGUubWRcIjogbW9kdWxlRG9jcy50cmltKCksXG4gICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgdGZNb2R1bGVzLnRzXCIsXG4gICAgICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IFtcImhhc2hpY29ycC9udWxsQDMuMS4xXCJdLCAvLyBXZSBuZWVkIGF0IGxlYXN0IGEgcHJvdmlkZXIgZm9yIGdldCB0byBzdWNjZWVkXG4gICAgICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXSxcbiAgICAgICAgICAgIG91dHB1dDogXCJtb2R1bGVzXCIsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6IG9wdGlvbnMucHJvamVjdElkIHx8IHV1aWQoKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgMlxuICAgICAgICApLFxuICAgICAgICBcIl9fdGVzdHNfXy9pbmRleC10ZXN0LnRzXCI6IGNvbnN0cnVjdFRlc3RDb2RlLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcyAmJiBvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzLmVuYWJsZWQpIHtcbiAgICAgIGNvbnN0IHByb3ZpZGVyQ29uZmlnID1cbiAgICAgICAgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5wcm92aWRlckNvbmZpZyB8fFxuICAgICAgICBgXG50ZXJyYWZvcm0ge1xuICAjIFRlcnJhZm9ybSBiaW5hcnkgdmVyc2lvbiBjb25zdHJhaW50XG4gIHJlcXVpcmVkX3ZlcnNpb24gPSBcIn4+IDEuMS4wXCJcblxuICAjIERlZmluZSBhbGwgbmVlZGVkIHByb3ZpZGVycyBoZXJlLCB5b3UgY2FuIGZpbmQgYWxsIGF2YWlsYWJsZSBwcm92aWRlcnMgaGVyZTpcbiAgIyBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9cbiAgcmVxdWlyZWRfcHJvdmlkZXJzIHt9XG59XG5cbiMgSW5pdGlhbGl6ZSB5b3VyIHByb3ZpZGVyIGhlcmVcblxuYC50cmltKCk7XG4gICAgICBjb25zdCBleGFtcGxlc0ZvbGRlciA9XG4gICAgICAgIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZm9sZGVyIHx8IFwidGVycmFmb3JtLWV4YW1wbGVzXCI7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgZXhhbXBsZXNGb2xkZXIsIHtcbiAgICAgICAgZmlsZXM6IHtcbiAgICAgICAgICBcIm1haW4udGZcIjogYFxuIyBDb25maWd1cmUgVGVycmFmb3JtXG4ke3Byb3ZpZGVyQ29uZmlnfVxuXG4gICAgICAgICAgICBgLnRyaW1TdGFydCgpLFxuICAgICAgICAgIFwiUkVBRE1FLm1kXCI6IHRlcnJhZm9ybVJlYWRtZURvY3MudHJpbSgpLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKFxuICAgICAgICBgJHtleGFtcGxlc0ZvbGRlcn0vLnRlcnJhZm9ybWAsXG4gICAgICAgIGAke2V4YW1wbGVzRm9sZGVyfS8udGVycmFmb3JtLmxvY2suaGNsYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5jb25zdHJ1Y3RFeGFtcGxlcyAmJiBvcHRpb25zLmNvbnN0cnVjdEV4YW1wbGVzLmVuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXIgPVxuICAgICAgICBvcHRpb25zLmNvbnN0cnVjdEV4YW1wbGVzLmZvbGRlciB8fCBcImNvbnN0cnVjdC1leGFtcGxlc1wiO1xuXG4gICAgICBjb25zdCBsZXZlbHMgPSBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyXG4gICAgICAgIC5zcGxpdChcIi9cIilcbiAgICAgICAgLm1hcCgoKSA9PiBcIi4uXCIpXG4gICAgICAgIC5qb2luKFwiL1wiKTtcblxuICAgICAgY29uc3QgY29uc3RydWN0UmVhZG1lRG9jcyA9IGBcbiMgQ29uc3RydWN0IEV4YW1wbGVzXG5cbkV4YW1wbGUgdXNlLWNhc2VzIGZvciB0aGUgQ29uc3RydWN0IGxpYnJhcnkuXG5cbi0gW0Jhc2ljIFVzYWdlXSguL2Jhc2ljLnRzKVxuXG5UbyBlbnN1cmUgYWxsIGV4YW1wbGVzIGFyZSB3b3JraW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRoZSBbaW5kZXgudHNdKC4vaW5kZXgudHMpIGZpbGUgaXMgaW1wb3J0aW5nIGFsbCBvZiB0aGVtLlxuYDtcblxuICAgICAgY29uc3QgY29uc3RydWN0RXhhbXBsZUNvZGUgPSBgXG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgTXlDb25zdHJ1Y3QgfSBmcm9tIFwiJHtsZXZlbHN9L3NyYy9cIjtcblxuZXhwb3J0IGNsYXNzIEJhc2ljRXhhbXBsZSBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIG5hbWUpO1xuXG4gICAgbmV3IE15Q29uc3RydWN0KHRoaXMsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICB9KTtcbiAgfVxufVxuXG5cbmA7XG5cbiAgICAgIGNvbnN0IGV4YW1wbGVDb2xsZWN0aW9uQ29kZSA9IGBcbi8vIFRoaXMgZmlsZSB3aWxsIGJlIHN5bnRoZXNpemVkIHRvIGNoZWNrIGlmIGFsbCBleGFtcGxlcyBhcmUgd29ya2luZ1xuXG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbi8vIEFsbCBleGFtcGxlcyBuZWVkIHRvIGJlIGltcG9ydGVkIGhlcmVcbmltcG9ydCB7IEJhc2ljRXhhbXBsZSB9IGZyb20gXCIuL2Jhc2ljXCI7XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcblxuLy8gQWxsIGV4YW1wbGVzIG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQgaGVyZVxubmV3IEJhc2ljRXhhbXBsZShhcHAsIFwiYmFzaWMtZXhhbXBsZVwiKTtcbmFwcC5zeW50aCgpO1xuYDtcblxuICAgICAgbmV3IFNhbXBsZURpcih0aGlzLCBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyLCB7XG4gICAgICAgIGZpbGVzOiB7XG4gICAgICAgICAgXCJpbmRleC50c1wiOiBleGFtcGxlQ29sbGVjdGlvbkNvZGUudHJpbSgpLFxuICAgICAgICAgIFwiYmFzaWMudHNcIjogY29uc3RydWN0RXhhbXBsZUNvZGUudHJpbSgpLFxuICAgICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgLS1wcm9qZWN0IC4uL3RzY29uZmlnLmRldi5qc29uIGluZGV4LnRzXCIsXG4gICAgICAgICAgICAgIHByb2plY3RJZDogb3B0aW9ucy5wcm9qZWN0SWQgfHwgdXVpZCgpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAyXG4gICAgICAgICAgKSxcbiAgICAgICAgICBcIlJFQURNRS5tZFwiOiBjb25zdHJ1Y3RSZWFkbWVEb2NzLnRyaW0oKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoYGNka3RmIHN5bnRoYCwge1xuICAgICAgICBjd2Q6IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXIsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKGAke2NvbnN0cnVjdEV4YW1wbGVGb2xkZXJ9L2Nka3RmLm91dGApO1xuICAgIH1cblxuICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKFwic3JjLy5nZW5cIiwgXCJzcmMvY2RrdGYub3V0XCIsIFwic3JjL21vZHVsZXNcIik7XG4gICAgdGhpcy5jb21waWxlVGFzay5wcmVwZW5kRXhlYyhcImNka3RmIGdldFwiLCB7XG4gICAgICBjd2Q6IHRoaXMuc3JjZGlyLFxuICAgIH0pO1xuICAgIHRoaXMuY29tcGlsZVRhc2suZXhlYyhcImNka3RmIHN5bnRoXCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgICBuYW1lOiBcIlN5bnRoZXNpemUgbW9kdWxlIEhDTFwiLFxuICAgIH0pO1xuXG4gICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCJzY3JpcHRzL2NvcHktbW9kdWxlcy5zaFwiLFxuICAgICAgYFxuIyEvYmluL2Jhc2hcbiMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5Llxuc2V0IC1lXG5cblNDUklQVFBBVEg9XCIkKCBjZCAtLSBcIiQoZGlybmFtZSBcIiQwXCIpXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcIlxuXG4jIGNoZWNrIGlmIHRoZSBtb2R1bGUgZm9sZGVyIGhhcyBiZWVuIGdlbmVyYXRlZCBhcyBleHBlY3RlZFxuTU9EVUxFU19GT0xERVI9JCggY2QgLS0gXCIkU0NSSVBUUEFUSC8uLi9zcmMvbW9kdWxlcy9zdGFja3NcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuU1JDX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9cIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuVEFSR0VUX0ZPTERFUj1cIiRTQ1JJUFRQQVRILy4uL21vZHVsZXNcIlxuXG5pZiBbICEgLWQgXCIkTU9EVUxFU19GT0xERVJcIiBdOyB0aGVuXG4gIGVjaG8gXCJFeHBlY3RlZCBtb2R1bGUgZm9sZGVyIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUlwiXG4gIGV4aXQgMVxuZmlcblxuY2QgXCIkTU9EVUxFU19GT0xERVJcIlxuZm9yIGQgaW4gKi8gOyBkb1xuICAgIFsgLUwgXCJcXCR7ZCUvfVwiIF0gJiYgY29udGludWVcblxuICAgIGRpcm5hbWU9XCJcXCR7ZCUvfVwiXG5cblxuICAgICMgQ2hlY2sgaWYgZXZlcnl0aGluZyBpcyBpbiBwbGFjZVxuICAgIGlmIFsgISAtZiBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIF07IHRoZW5cbiAgICAgIGVjaG8gXCJFeHBlY3RlZCBjb2RlIGZvciAkZGlybmFtZSBhdCBjZGsudGYuanNvbiB0byBleGlzdCBhdCAkTU9EVUxFU19GT0xERVIvJGRpcm5hbWVcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgIGlmIFsgISAtZiBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIERvY3VtZW50YXRpb24gZm9yICRkaXJuYW1lIGF0ICRkaXJuYW1lLm1kIHRvIGV4aXN0IGF0ICRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCJcbiAgICAgIGV4aXQgMVxuICAgIGZpXG5cbiAgICAjIENvcHkgbW9kdWxlIGFuZCByZWFkbWUgdG9nZXRoZXJcbiAgICBlY2hvIFwiQ29weWluZyBDb2RlIGFuZCBSRUFETUUgZm9yIG1vZHVsZSAkZGlybmFtZVwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUlwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgY3AgXCIkTU9EVUxFU19GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCJcbiAgICBjcCBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9SRUFETUUubWRcIlxuXG4gICAgIyBBZGQgUkVBRE1FIGhjbCBkb2NzXG4gICAgaWYgd2hpY2ggdGVycmFmb3JtLWRvY3MgPi9kZXYvbnVsbDsgdGhlblxuICAgICAgdGVycmFmb3JtLWRvY3MgbWFya2Rvd24gdGFibGUgLS1vdXRwdXQtZmlsZSBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL1JFQURNRS5tZFwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWVcIiBcbiAgICBlbHNlXG4gICAgICBkb2NrZXIgcnVuIC0tcm0gLS12b2x1bWUgXCIkU0NSSVBUUEFUSC8uLi9tb2R1bGVzOi90ZXJyYWZvcm0tZG9jc1wiIC11ICQoaWQgLXUpIHF1YXkuaW8vdGVycmFmb3JtLWRvY3MvdGVycmFmb3JtLWRvY3M6MC4xNi4wIG1hcmtkb3duIHRhYmxlIC0tb3V0cHV0LWZpbGUgXCIvdGVycmFmb3JtLWRvY3MvJGRpcm5hbWUvUkVBRE1FLm1kXCIgL3RlcnJhZm9ybS1kb2NzLyRkaXJuYW1lXG4gICAgZmlcbmRvbmVcbmAudHJpbSgpXG4gICAgKTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsIHtcbiAgICAgIG5hbWU6IFwiQ29weSBIQ0wgTW9kdWxlc1wiLFxuICAgIH0pO1xuXG4gICAgLy8gaWdub3JlIGRpc3QgaW4gdGVzdHNcbiAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oXCJkaXN0XCIpO1xuXG4gICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCIuL3NjcmlwdHMvdGYtbW9kdWxlLXRlc3Quc2hcIixcbiAgICAgIGBcbiMhL2Jpbi9iYXNoXG4jIFRoaXMgc2NyaXB0IGlzIGNyZWF0ZWQgYnkgcHJvamVuLCBkbyBub3QgZWRpdCBpdCBkaXJlY3RseS5cbnNldCAtZVxuXG50ZXJyYWZvcm0gLWNoZGlyPXRlcnJhZm9ybSBpbml0IC0tdXBncmFkZVxudGVycmFmb3JtIC1jaGRpcj10ZXJyYWZvcm0gZm10XG50ZXJyYWZvcm0gLWNoZGlyPXRlcnJhZm9ybSB2YWxpZGF0ZVxudGVycmFmb3JtIC1jaGRpcj10ZXJyYWZvcm0gcGxhbiAgICAgXG4gICAgICAgIGBcbiAgICApO1xuXG4gICAgdGhpcy50ZXN0VGFzay5leGVjKFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIpO1xuICAgIHRoaXMuamVzdD8uYWRkSWdub3JlUGF0dGVybihcInRlcnJhZm9ybVwiKTtcbiAgfVxufVxuIl19
package/lib/index.js CHANGED
@@ -1,20 +1,16 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9
5
  }) : (function(o, m, k, k2) {
10
6
  if (k2 === undefined) k2 = k;
11
7
  o[k2] = m[k];
12
8
  }));
13
9
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
10
+ for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
15
11
  };
16
12
  Object.defineProperty(exports, "__esModule", { value: true });
17
13
  __exportStar(require("./hybrid-module"), exports);
18
14
  __exportStar(require("./terraform-module"), exports);
19
15
  __exportStar(require("./publishing"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUFnQztBQUNoQyxxREFBbUM7QUFDbkMsK0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vaHlicmlkLW1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGVycmFmb3JtLW1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHVibGlzaGluZ1wiO1xuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdDO0FBQ2hDLHFEQUFtQztBQUNuQywrQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9oeWJyaWQtbW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZXJyYWZvcm0tbW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wdWJsaXNoaW5nXCI7XG4iXX0=
@@ -5,9 +5,11 @@ export declare type PublishOptions = {
5
5
  namespace: string;
6
6
  registries: Registry[];
7
7
  };
8
- declare type Mutable<T> = {
9
- -readonly [k in keyof T]: T[k];
10
- };
11
- declare type Config = Mutable<Pick<ConstructLibraryOptions, "publishToPypi" | "publishToMaven" | "publishToNuget" | "releaseToNpm">>;
8
+ declare type AtomicObject = Function | Promise<any> | Date | RegExp | Boolean | Number | String;
9
+ declare type Mutable<T> = T extends AtomicObject ? T : T extends ReadonlyMap<infer K, infer V> ? Map<Mutable<K>, Mutable<V>> : T extends ReadonlySet<infer V> ? Set<Mutable<V>> : T extends object ? {
10
+ -readonly [K in keyof T]: Mutable<T[K]>;
11
+ } : T;
12
+ declare type Config = Mutable<Pick<ConstructLibraryOptions, "publishToPypi" | "publishToMaven" | "publishToNuget" | "releaseToNpm" | "npmRegistryUrl">>;
12
13
  export declare function publishToRegistries(options: PublishOptions): Config;
14
+ export declare function publishToGithubPackages(options: PublishOptions): Config;
13
15
  export {};
package/lib/publishing.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.publishToRegistries = void 0;
3
+ exports.publishToGithubPackages = exports.publishToRegistries = void 0;
4
4
  const change_case_1 = require("change-case");
5
5
  function publishToRegistries(options) {
6
6
  const { name, namespace, registries } = options;
@@ -23,7 +23,7 @@ function publishToRegistries(options) {
23
23
  };
24
24
  }
25
25
  if (registries.includes("nuget")) {
26
- const nugetName = `${(0, change_case_1.pascalCase)(namespace)}.${(0, change_case_1.pascalCase)(name)}`;
26
+ const nugetName = `${change_case_1.pascalCase(namespace)}.${change_case_1.pascalCase(name)}`;
27
27
  config.publishToNuget = {
28
28
  dotNetNamespace: nugetName,
29
29
  packageId: nugetName,
@@ -32,4 +32,23 @@ function publishToRegistries(options) {
32
32
  return config;
33
33
  }
34
34
  exports.publishToRegistries = publishToRegistries;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWJsaXNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF5QztBQXFCekMsU0FBZ0IsbUJBQW1CLENBQUMsT0FBdUI7SUFDekQsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ2hELE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsTUFBTSxNQUFNLEdBQVc7UUFDckIsWUFBWSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0tBQ3pDLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxDQUFDLGFBQWEsR0FBRztZQUNyQixRQUFRLEVBQUUsR0FBRyxrQkFBa0IsSUFBSSxhQUFhLEVBQUU7WUFDbEQsTUFBTSxFQUFFLEdBQUcsa0JBQWtCLElBQUksYUFBYSxFQUFFO1NBQ2pELENBQUM7S0FDSDtJQUNELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNoQyxNQUFNLENBQUMsY0FBYyxHQUFHO1lBQ3RCLFdBQVcsRUFBRSxPQUFPLGtCQUFrQixJQUFJLGFBQWEsRUFBRTtZQUN6RCxZQUFZLEVBQUUsT0FBTyxrQkFBa0IsRUFBRTtZQUN6QyxlQUFlLEVBQUUsYUFBYTtTQUMvQixDQUFDO0tBQ0g7SUFDRCxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxTQUFTLEdBQUcsR0FBRyxJQUFBLHdCQUFVLEVBQUMsU0FBUyxDQUFDLElBQUksSUFBQSx3QkFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakUsTUFBTSxDQUFDLGNBQWMsR0FBRztZQUN0QixlQUFlLEVBQUUsU0FBUztZQUMxQixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO0tBQ0g7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBN0JELGtEQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhc2NhbENhc2UgfSBmcm9tIFwiY2hhbmdlLWNhc2VcIjtcbmltcG9ydCB7IENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5cbmV4cG9ydCB0eXBlIFJlZ2lzdHJ5ID0gXCJucG1cIiB8IFwibWF2ZW5cIiB8IFwibnVnZXRcIiB8IFwicHlwaVwiO1xuXG5leHBvcnQgdHlwZSBQdWJsaXNoT3B0aW9ucyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgcmVnaXN0cmllczogUmVnaXN0cnlbXTtcbn07XG50eXBlIE11dGFibGU8VD4gPSB7XG4gIC1yZWFkb25seSBbayBpbiBrZXlvZiBUXTogVFtrXTtcbn07XG5cbnR5cGUgQ29uZmlnID0gTXV0YWJsZTxcbiAgUGljazxcbiAgICBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyxcbiAgICBcInB1Ymxpc2hUb1B5cGlcIiB8IFwicHVibGlzaFRvTWF2ZW5cIiB8IFwicHVibGlzaFRvTnVnZXRcIiB8IFwicmVsZWFzZVRvTnBtXCJcbiAgPlxuPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHB1Ymxpc2hUb1JlZ2lzdHJpZXMob3B0aW9uczogUHVibGlzaE9wdGlvbnMpOiBDb25maWcge1xuICBjb25zdCB7IG5hbWUsIG5hbWVzcGFjZSwgcmVnaXN0cmllcyB9ID0gb3B0aW9ucztcbiAgY29uc3Qgc2FuaXRpemVkTmFtZXNwYWNlID0gbmFtZXNwYWNlLnJlcGxhY2UoLy0vZ2ksIFwiX1wiKTtcbiAgY29uc3Qgc2FuaXRpemVkTmFtZSA9IG5hbWUucmVwbGFjZSgvLS9naSwgXCJfXCIpO1xuICBjb25zdCBjb25maWc6IENvbmZpZyA9IHtcbiAgICByZWxlYXNlVG9OcG06IHJlZ2lzdHJpZXMuaW5jbHVkZXMoXCJucG1cIiksXG4gIH07XG5cbiAgaWYgKHJlZ2lzdHJpZXMuaW5jbHVkZXMoXCJweXBpXCIpKSB7XG4gICAgY29uZmlnLnB1Ymxpc2hUb1B5cGkgPSB7XG4gICAgICBkaXN0TmFtZTogYCR7c2FuaXRpemVkTmFtZXNwYWNlfS0ke3Nhbml0aXplZE5hbWV9YCxcbiAgICAgIG1vZHVsZTogYCR7c2FuaXRpemVkTmFtZXNwYWNlfV8ke3Nhbml0aXplZE5hbWV9YCxcbiAgICB9O1xuICB9XG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwibWF2ZW5cIikpIHtcbiAgICBjb25maWcucHVibGlzaFRvTWF2ZW4gPSB7XG4gICAgICBqYXZhUGFja2FnZTogYGNvbS4ke3Nhbml0aXplZE5hbWVzcGFjZX0uJHtzYW5pdGl6ZWROYW1lfWAsXG4gICAgICBtYXZlbkdyb3VwSWQ6IGBjb20uJHtzYW5pdGl6ZWROYW1lc3BhY2V9YCxcbiAgICAgIG1hdmVuQXJ0aWZhY3RJZDogc2FuaXRpemVkTmFtZSxcbiAgICB9O1xuICB9XG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwibnVnZXRcIikpIHtcbiAgICBjb25zdCBudWdldE5hbWUgPSBgJHtwYXNjYWxDYXNlKG5hbWVzcGFjZSl9LiR7cGFzY2FsQ2FzZShuYW1lKX1gO1xuICAgIGNvbmZpZy5wdWJsaXNoVG9OdWdldCA9IHtcbiAgICAgIGRvdE5ldE5hbWVzcGFjZTogbnVnZXROYW1lLFxuICAgICAgcGFja2FnZUlkOiBudWdldE5hbWUsXG4gICAgfTtcbiAgfVxuICByZXR1cm4gY29uZmlnO1xufVxuIl19
35
+ function publishToGithubPackages(options) {
36
+ const { registries } = options;
37
+ const config = publishToRegistries(options);
38
+ if (registries.includes("pypi")) {
39
+ throw new Error("Github Packages does not support python packages");
40
+ }
41
+ if (registries.includes("nuget")) {
42
+ // Seems like projen does not support github packages on nuget yet: https://github.dev/projen/projen/blob/14f37ec704afdc5143e6a2954c1250b1f0ccaddf/src/release/publisher.ts#L343
43
+ throw new Error("Github Packages does support nuget packages, but this library does not yet support it");
44
+ }
45
+ if (registries.includes("npm")) {
46
+ config.npmRegistryUrl = "https://npm.pkg.github.com";
47
+ }
48
+ if (registries.includes("maven")) {
49
+ config.publishToMaven.mavenRepositoryUrl = "https://maven.pkg.github.com";
50
+ }
51
+ return config;
52
+ }
53
+ exports.publishToGithubPackages = publishToGithubPackages;
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWJsaXNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF5QztBQXlDekMsU0FBZ0IsbUJBQW1CLENBQUMsT0FBdUI7SUFDekQsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ2hELE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsTUFBTSxNQUFNLEdBQVc7UUFDckIsWUFBWSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0tBQ3pDLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxDQUFDLGFBQWEsR0FBRztZQUNyQixRQUFRLEVBQUUsR0FBRyxrQkFBa0IsSUFBSSxhQUFhLEVBQUU7WUFDbEQsTUFBTSxFQUFFLEdBQUcsa0JBQWtCLElBQUksYUFBYSxFQUFFO1NBQ2pELENBQUM7S0FDSDtJQUVELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNoQyxNQUFNLENBQUMsY0FBYyxHQUFHO1lBQ3RCLFdBQVcsRUFBRSxPQUFPLGtCQUFrQixJQUFJLGFBQWEsRUFBRTtZQUN6RCxZQUFZLEVBQUUsT0FBTyxrQkFBa0IsRUFBRTtZQUN6QyxlQUFlLEVBQUUsYUFBYTtTQUMvQixDQUFDO0tBQ0g7SUFFRCxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxTQUFTLEdBQUcsR0FBRyx3QkFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLHdCQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNqRSxNQUFNLENBQUMsY0FBYyxHQUFHO1lBQ3RCLGVBQWUsRUFBRSxTQUFTO1lBQzFCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7S0FDSDtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUEvQkQsa0RBK0JDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsT0FBdUI7SUFDN0QsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUMvQixNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0tBQ3JFO0lBQ0QsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2hDLGdMQUFnTDtRQUNoTCxNQUFNLElBQUksS0FBSyxDQUNiLHVGQUF1RixDQUN4RixDQUFDO0tBQ0g7SUFFRCxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDOUIsTUFBTSxDQUFDLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQztLQUN0RDtJQUVELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNoQyxNQUFNLENBQUMsY0FBZSxDQUFDLGtCQUFrQixHQUFHLDhCQUE4QixDQUFDO0tBQzVFO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQXRCRCwwREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSBcImNoYW5nZS1jYXNlXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuXG5leHBvcnQgdHlwZSBSZWdpc3RyeSA9IFwibnBtXCIgfCBcIm1hdmVuXCIgfCBcIm51Z2V0XCIgfCBcInB5cGlcIjtcblxuZXhwb3J0IHR5cGUgUHVibGlzaE9wdGlvbnMgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIHJlZ2lzdHJpZXM6IFJlZ2lzdHJ5W107XG59O1xuXG50eXBlIEF0b21pY09iamVjdCA9XG4gIHwgRnVuY3Rpb25cbiAgfCBQcm9taXNlPGFueT5cbiAgfCBEYXRlXG4gIHwgUmVnRXhwXG4gIHwgQm9vbGVhblxuICB8IE51bWJlclxuICB8IFN0cmluZztcblxudHlwZSBNdXRhYmxlPFQ+ID0gVCBleHRlbmRzIEF0b21pY09iamVjdFxuICA/IFRcbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgSywgaW5mZXIgVj4gLy8gTWFwIGV4dGVuZHMgUmVhZG9ubHlNYXBcbiAgPyBNYXA8TXV0YWJsZTxLPiwgTXV0YWJsZTxWPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVj4gLy8gU2V0IGV4dGVuZHMgUmVhZG9ubHlTZXRcbiAgPyBTZXQ8TXV0YWJsZTxWPj5cbiAgOiBUIGV4dGVuZHMgb2JqZWN0XG4gID8geyAtcmVhZG9ubHkgW0sgaW4ga2V5b2YgVF06IE11dGFibGU8VFtLXT4gfVxuICA6IFQ7XG5cbnR5cGUgQ29uZmlnID0gTXV0YWJsZTxcbiAgUGljazxcbiAgICBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyxcbiAgICB8IFwicHVibGlzaFRvUHlwaVwiXG4gICAgfCBcInB1Ymxpc2hUb01hdmVuXCJcbiAgICB8IFwicHVibGlzaFRvTnVnZXRcIlxuICAgIHwgXCJyZWxlYXNlVG9OcG1cIlxuICAgIHwgXCJucG1SZWdpc3RyeVVybFwiXG4gID5cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBwdWJsaXNoVG9SZWdpc3RyaWVzKG9wdGlvbnM6IFB1Ymxpc2hPcHRpb25zKTogQ29uZmlnIHtcbiAgY29uc3QgeyBuYW1lLCBuYW1lc3BhY2UsIHJlZ2lzdHJpZXMgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHNhbml0aXplZE5hbWVzcGFjZSA9IG5hbWVzcGFjZS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG4gIGNvbnN0IHNhbml0aXplZE5hbWUgPSBuYW1lLnJlcGxhY2UoLy0vZ2ksIFwiX1wiKTtcbiAgY29uc3QgY29uZmlnOiBDb25maWcgPSB7XG4gICAgcmVsZWFzZVRvTnBtOiByZWdpc3RyaWVzLmluY2x1ZGVzKFwibnBtXCIpLFxuICB9O1xuXG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwicHlwaVwiKSkge1xuICAgIGNvbmZpZy5wdWJsaXNoVG9QeXBpID0ge1xuICAgICAgZGlzdE5hbWU6IGAke3Nhbml0aXplZE5hbWVzcGFjZX0tJHtzYW5pdGl6ZWROYW1lfWAsXG4gICAgICBtb2R1bGU6IGAke3Nhbml0aXplZE5hbWVzcGFjZX1fJHtzYW5pdGl6ZWROYW1lfWAsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwibWF2ZW5cIikpIHtcbiAgICBjb25maWcucHVibGlzaFRvTWF2ZW4gPSB7XG4gICAgICBqYXZhUGFja2FnZTogYGNvbS4ke3Nhbml0aXplZE5hbWVzcGFjZX0uJHtzYW5pdGl6ZWROYW1lfWAsXG4gICAgICBtYXZlbkdyb3VwSWQ6IGBjb20uJHtzYW5pdGl6ZWROYW1lc3BhY2V9YCxcbiAgICAgIG1hdmVuQXJ0aWZhY3RJZDogc2FuaXRpemVkTmFtZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKHJlZ2lzdHJpZXMuaW5jbHVkZXMoXCJudWdldFwiKSkge1xuICAgIGNvbnN0IG51Z2V0TmFtZSA9IGAke3Bhc2NhbENhc2UobmFtZXNwYWNlKX0uJHtwYXNjYWxDYXNlKG5hbWUpfWA7XG4gICAgY29uZmlnLnB1Ymxpc2hUb051Z2V0ID0ge1xuICAgICAgZG90TmV0TmFtZXNwYWNlOiBudWdldE5hbWUsXG4gICAgICBwYWNrYWdlSWQ6IG51Z2V0TmFtZSxcbiAgICB9O1xuICB9XG4gIHJldHVybiBjb25maWc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwdWJsaXNoVG9HaXRodWJQYWNrYWdlcyhvcHRpb25zOiBQdWJsaXNoT3B0aW9ucyk6IENvbmZpZyB7XG4gIGNvbnN0IHsgcmVnaXN0cmllcyB9ID0gb3B0aW9ucztcbiAgY29uc3QgY29uZmlnID0gcHVibGlzaFRvUmVnaXN0cmllcyhvcHRpb25zKTtcbiAgaWYgKHJlZ2lzdHJpZXMuaW5jbHVkZXMoXCJweXBpXCIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiR2l0aHViIFBhY2thZ2VzIGRvZXMgbm90IHN1cHBvcnQgcHl0aG9uIHBhY2thZ2VzXCIpO1xuICB9XG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwibnVnZXRcIikpIHtcbiAgICAvLyBTZWVtcyBsaWtlIHByb2plbiBkb2VzIG5vdCBzdXBwb3J0IGdpdGh1YiBwYWNrYWdlcyBvbiBudWdldCB5ZXQ6IGh0dHBzOi8vZ2l0aHViLmRldi9wcm9qZW4vcHJvamVuL2Jsb2IvMTRmMzdlYzcwNGFmZGM1MTQzZTZhMjk1NGMxMjUwYjFmMGNjYWRkZi9zcmMvcmVsZWFzZS9wdWJsaXNoZXIudHMjTDM0M1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiR2l0aHViIFBhY2thZ2VzIGRvZXMgc3VwcG9ydCBudWdldCBwYWNrYWdlcywgYnV0IHRoaXMgbGlicmFyeSBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBpdFwiXG4gICAgKTtcbiAgfVxuXG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwibnBtXCIpKSB7XG4gICAgY29uZmlnLm5wbVJlZ2lzdHJ5VXJsID0gXCJodHRwczovL25wbS5wa2cuZ2l0aHViLmNvbVwiO1xuICB9XG5cbiAgaWYgKHJlZ2lzdHJpZXMuaW5jbHVkZXMoXCJtYXZlblwiKSkge1xuICAgIGNvbmZpZy5wdWJsaXNoVG9NYXZlbiEubWF2ZW5SZXBvc2l0b3J5VXJsID0gXCJodHRwczovL21hdmVuLnBrZy5naXRodWIuY29tXCI7XG4gIH1cblxuICByZXR1cm4gY29uZmlnO1xufVxuIl19
@@ -1,18 +1,37 @@
1
- import { ConstructLibrary } from "projen/lib/cdk";
2
- import { Options } from "./defaults";
3
- export declare type TerraformVersionConstraint = {
4
- name: string;
5
- source: string;
6
- version: string;
7
- };
8
- declare type TerraformModuleOptions = Options & {
9
- cdktfVersion?: string;
10
- constructVersion?: string;
11
- terraformProviders?: TerraformVersionConstraint[];
12
- terraformModules: TerraformVersionConstraint[];
13
- projectId?: string;
14
- };
1
+ import { ConstructLibrary, ConstructLibraryOptions } from "projen/lib/cdk";
2
+ export interface TerraformVersionConstraint {
3
+ readonly name: string;
4
+ readonly source: string;
5
+ readonly version: string;
6
+ }
7
+ export interface TerraformModuleOptions extends ConstructLibraryOptions {
8
+ /**
9
+ * Minimum target version of this library.
10
+ * @default "^0.10.1"
11
+ * @featured
12
+ */
13
+ readonly cdktfVersion?: string;
14
+ /**
15
+ * Construct version to use
16
+ * @default "^10.0.12"
17
+ */
18
+ readonly constructVersion?: string;
19
+ /**
20
+ * List of provider bindings to generate in addition to the modules.
21
+ */
22
+ readonly terraformProviders?: TerraformVersionConstraint[];
23
+ /**
24
+ * List of modules to generate bindings for.
25
+ * @featured
26
+ */
27
+ readonly terraformModules: TerraformVersionConstraint[];
28
+ readonly projectId?: string;
29
+ }
30
+ /**
31
+ * Terraform Modules republished as CDKTF Constructs
32
+ *
33
+ * @pjid terraform-module
34
+ */
15
35
  export declare class TerraformModule extends ConstructLibrary {
16
- constructor(config: TerraformModuleOptions);
36
+ constructor(options: TerraformModuleOptions);
17
37
  }
18
- export {};
@@ -1,22 +1,29 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.TerraformModule = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
4
6
  const projen_1 = require("projen");
5
7
  const cdk_1 = require("projen/lib/cdk");
6
8
  const uuid_1 = require("uuid");
7
9
  const defaults_1 = require("./defaults");
10
+ /**
11
+ * Terraform Modules republished as CDKTF Constructs
12
+ *
13
+ * @pjid terraform-module
14
+ */
8
15
  class TerraformModule extends cdk_1.ConstructLibrary {
9
- constructor(config) {
16
+ constructor(options) {
10
17
  super({
11
18
  ...defaults_1.defaults,
12
- ...config,
13
- eslintOptions: Object.assign({}, config.eslintOptions, {
19
+ ...options,
20
+ eslintOptions: Object.assign({}, options.eslintOptions, {
14
21
  lintProjenRc: false,
15
22
  }),
16
23
  postBuildSteps: [],
17
24
  });
18
- const constructVersion = config.constructVersion || "^10.0.107";
19
- const cdktfVersion = config.cdktfVersion || "^0.10.1";
25
+ const constructVersion = options.constructVersion || "^10.0.107";
26
+ const cdktfVersion = options.cdktfVersion || "^0.10.1";
20
27
  const constructSrcCode = `
21
28
  // Re-Export module bindings
22
29
  export * from "./terraformModules";
@@ -45,7 +52,7 @@ describe("MyModule", () => {
45
52
  committed: true,
46
53
  marker: true,
47
54
  lines: [
48
- ...config.terraformModules.map((tfModule) => `export * from "./.gen/modules/${tfModule.name}";`),
55
+ ...(options.terraformModules || []).map((tfModule) => `export * from "./.gen/modules/${tfModule.name}";`),
49
56
  "",
50
57
  ],
51
58
  });
@@ -54,13 +61,15 @@ describe("MyModule", () => {
54
61
  obj: {
55
62
  language: "typescript",
56
63
  app: "npx ts-node index.ts",
57
- terraformProviders: config.terraformProviders || [],
58
- terraformModules: config.terraformModules,
59
- projectId: config.projectId || (0, uuid_1.v4)(),
64
+ terraformProviders: options.terraformProviders || [],
65
+ terraformModules: options.terraformModules,
66
+ projectId: options.projectId || uuid_1.v4(),
60
67
  },
61
68
  });
62
69
  this.preCompileTask.exec(`cdktf get`, { cwd: this.srcdir });
63
70
  }
64
71
  }
65
72
  exports.TerraformModule = TerraformModule;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUF1RDtBQUN2RCx3Q0FBa0Q7QUFDbEQsK0JBQWtDO0FBRWxDLHlDQUErQztBQXNCL0MsTUFBYSxlQUFnQixTQUFRLHNCQUFnQjtJQUNuRCxZQUFZLE1BQThCO1FBQ3hDLEtBQUssQ0FBQztZQUNKLEdBQUcsbUJBQVE7WUFDWCxHQUFHLE1BQU07WUFDVCxhQUFhLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDckQsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQztZQUNGLGNBQWMsRUFBRSxFQUFFO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQztRQUNoRSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQztRQUV0RCxNQUFNLGdCQUFnQixHQUFHOzs7OztDQUs1QixDQUFDO1FBRUUsTUFBTSxpQkFBaUIsR0FBRzs7Ozs7Ozs7Q0FRN0IsQ0FBQztRQUVFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsWUFBWSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFMUMsSUFBSSxrQkFBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQy9CLEtBQUssRUFBRTtnQkFDTCxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO2dCQUNuQyx5QkFBeUIsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7YUFDcEQ7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLGlCQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sc0JBQXNCLEVBQUU7WUFDdkQsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRTtnQkFDTCxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQzVCLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxpQ0FBaUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUNqRTtnQkFDRCxFQUFFO2FBQ0g7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGlCQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sYUFBYSxFQUFFO1lBQzlDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsR0FBRyxFQUFFO2dCQUNILFFBQVEsRUFBRSxZQUFZO2dCQUN0QixHQUFHLEVBQUUsc0JBQXNCO2dCQUMzQixrQkFBa0IsRUFBRSxNQUFNLENBQUMsa0JBQWtCLElBQUksRUFBRTtnQkFDbkQsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtnQkFDekMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBQSxTQUFJLEdBQUU7YUFDdEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNGO0FBaEVELDBDQWdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpzb25GaWxlLCBTYW1wbGVEaXIsIFRleHRGaWxlIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0TGlicmFyeSB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gXCJ1dWlkXCI7XG5cbmltcG9ydCB7IGRlZmF1bHRzLCBPcHRpb25zIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcblxuZXhwb3J0IHR5cGUgVGVycmFmb3JtVmVyc2lvbkNvbnN0cmFpbnQgPSB7XG4gIC8vIG5hbWUgb2YgdGhlIG1vZHVsZVxuICBuYW1lOiBzdHJpbmc7XG4gIC8vIHBhdGggLyB1cmwgLyByZWdpc3RyeSBpZGVudGlmaWVyIGZvciB0aGUgbW9kdWxlXG4gIHNvdXJjZTogc3RyaW5nO1xuICAvLyB2ZXJzaW9uIGNvbnN0cmFpbnQgKGh0dHBzOi8vd3d3LnRlcnJhZm9ybS5pby9kb2NzL2xhbmd1YWdlL3Byb3ZpZGVycy9yZXF1aXJlbWVudHMuaHRtbCN2ZXJzaW9uLWNvbnN0cmFpbnRzKVxuICB2ZXJzaW9uOiBzdHJpbmc7XG59O1xuXG50eXBlIFRlcnJhZm9ybU1vZHVsZU9wdGlvbnMgPSBPcHRpb25zICYge1xuICBjZGt0ZlZlcnNpb24/OiBzdHJpbmc7XG4gIGNvbnN0cnVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgdGVycmFmb3JtUHJvdmlkZXJzPzogVGVycmFmb3JtVmVyc2lvbkNvbnN0cmFpbnRbXTtcbiAgdGVycmFmb3JtTW9kdWxlczogVGVycmFmb3JtVmVyc2lvbkNvbnN0cmFpbnRbXTtcblxuICAvLyBEZWZhdWx0ZWQgdG8gYSB1dWlkIHN0cmluZyBhcyBjZGt0ZiB3b3VsZFxuICBwcm9qZWN0SWQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtTW9kdWxlIGV4dGVuZHMgQ29uc3RydWN0TGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogVGVycmFmb3JtTW9kdWxlT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgZXNsaW50T3B0aW9uczogT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnLmVzbGludE9wdGlvbnMsIHtcbiAgICAgICAgbGludFByb2plblJjOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgICAgcG9zdEJ1aWxkU3RlcHM6IFtdLFxuICAgIH0pO1xuICAgIGNvbnN0IGNvbnN0cnVjdFZlcnNpb24gPSBjb25maWcuY29uc3RydWN0VmVyc2lvbiB8fCBcIl4xMC4wLjEwN1wiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IGNvbmZpZy5jZGt0ZlZlcnNpb24gfHwgXCJeMC4xMC4xXCI7XG5cbiAgICBjb25zdCBjb25zdHJ1Y3RTcmNDb2RlID0gYFxuLy8gUmUtRXhwb3J0IG1vZHVsZSBiaW5kaW5nc1xuZXhwb3J0ICogZnJvbSBcIi4vdGVycmFmb3JtTW9kdWxlc1wiO1xuXG4vLyBBZGQgeW91ciBjdXN0b20gY29uc3RydWN0cyBoZXJlXG5gO1xuXG4gICAgY29uc3QgY29uc3RydWN0VGVzdENvZGUgPSBgXG4vLyBpbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG4vLyBpbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5cbi8vIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGVzdGluZyBzZWUgY2RrLnRmL3Rlc3RpbmdcbmRlc2NyaWJlKFwiTXlNb2R1bGVcIiwgKCkgPT4ge1xuICBpdC50b2RvKFwic2hvdWxkIGJlIHRlc3RlZFwiKVxufSk7XG5gO1xuXG4gICAgdGhpcy5hZGRQZWVyRGVwcyhgY29uc3RydWN0c0Ake2NvbnN0cnVjdFZlcnNpb259YCwgYGNka3RmQCR7Y2RrdGZWZXJzaW9ufWApO1xuICAgIHRoaXMuYWRkRGV2RGVwcyhgY2RrdGYtY2xpQCR7Y2RrdGZWZXJzaW9ufWAsIFwidHMtbm9kZVwiKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrdGZcIiwgXCJjZGt0Zi1oeWJyaWRcIik7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIHRoaXMuc3JjZGlyLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICBcImluZGV4LnRzXCI6IGNvbnN0cnVjdFNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcIl9fdGVzdHNfXy9pbmRleC10ZXN0LnRzXCI6IGNvbnN0cnVjdFRlc3RDb2RlLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgbmV3IFRleHRGaWxlKHRoaXMsIGAke3RoaXMuc3JjZGlyfS90ZXJyYWZvcm1Nb2R1bGVzLnRzYCwge1xuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgbGluZXM6IFtcbiAgICAgICAgLi4uY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMubWFwKFxuICAgICAgICAgICh0Zk1vZHVsZSkgPT4gYGV4cG9ydCAqIGZyb20gXCIuLy5nZW4vbW9kdWxlcy8ke3RmTW9kdWxlLm5hbWV9XCI7YFxuICAgICAgICApLFxuICAgICAgICBcIlwiLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyBKc29uRmlsZSh0aGlzLCBgJHt0aGlzLnNyY2Rpcn0vY2RrdGYuanNvbmAsIHtcbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIG9iajoge1xuICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgIGFwcDogXCJucHggdHMtbm9kZSBpbmRleC50c1wiLFxuICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcnMgfHwgW10sXG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzLFxuICAgICAgICBwcm9qZWN0SWQ6IGNvbmZpZy5wcm9qZWN0SWQgfHwgdXVpZCgpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMucHJlQ29tcGlsZVRhc2suZXhlYyhgY2RrdGYgZ2V0YCwgeyBjd2Q6IHRoaXMuc3JjZGlyIH0pO1xuICB9XG59XG4iXX0=
73
+ _a = JSII_RTTI_SYMBOL_1;
74
+ TerraformModule[_a] = { fqn: "projen-cdktf-hybrid-construct.TerraformModule", version: "0.1.55" };
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQXVEO0FBQ3ZELHdDQUEyRTtBQUMzRSwrQkFBa0M7QUFFbEMseUNBQXNDO0FBd0N0Qzs7OztHQUlHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLHNCQUFnQjtJQUNuRCxZQUFZLE9BQStCO1FBQ3pDLEtBQUssQ0FBQztZQUNKLEdBQUcsbUJBQVE7WUFDWCxHQUFHLE9BQU87WUFDVixhQUFhLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRTtnQkFDdEQsWUFBWSxFQUFFLEtBQUs7YUFDcEIsQ0FBQztZQUNGLGNBQWMsRUFBRSxFQUFFO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQztRQUNqRSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQztRQUV2RCxNQUFNLGdCQUFnQixHQUFHOzs7OztDQUs1QixDQUFDO1FBRUUsTUFBTSxpQkFBaUIsR0FBRzs7Ozs7Ozs7Q0FRN0IsQ0FBQztRQUVFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsWUFBWSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFMUMsSUFBSSxrQkFBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQy9CLEtBQUssRUFBRTtnQkFDTCxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO2dCQUNuQyx5QkFBeUIsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7YUFDcEQ7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLGlCQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sc0JBQXNCLEVBQUU7WUFDdkQsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRTtnQkFDTCxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDckMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLGlDQUFpQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQ2pFO2dCQUNELEVBQUU7YUFDSDtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksaUJBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxhQUFhLEVBQUU7WUFDOUMsU0FBUyxFQUFFLElBQUk7WUFDZixHQUFHLEVBQUU7Z0JBQ0gsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLEdBQUcsRUFBRSxzQkFBc0I7Z0JBQzNCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO2dCQUNwRCxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO2dCQUMxQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFJLEVBQUU7YUFDdkM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7QUEvREgsMENBZ0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvbkZpbGUsIFNhbXBsZURpciwgVGV4dEZpbGUgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RMaWJyYXJ5LCBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gXCJ1dWlkXCI7XG5cbmltcG9ydCB7IGRlZmF1bHRzIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1WZXJzaW9uQ29uc3RyYWludCB7XG4gIC8vIG5hbWUgb2YgdGhlIG1vZHVsZVxuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8vIHBhdGggLyB1cmwgLyByZWdpc3RyeSBpZGVudGlmaWVyIGZvciB0aGUgbW9kdWxlXG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICAvLyB2ZXJzaW9uIGNvbnN0cmFpbnQgKGh0dHBzOi8vd3d3LnRlcnJhZm9ybS5pby9kb2NzL2xhbmd1YWdlL3Byb3ZpZGVycy9yZXF1aXJlbWVudHMuaHRtbCN2ZXJzaW9uLWNvbnN0cmFpbnRzKVxuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtTW9kdWxlT3B0aW9ucyBleHRlbmRzIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gdGFyZ2V0IHZlcnNpb24gb2YgdGhpcyBsaWJyYXJ5LlxuICAgKiBAZGVmYXVsdCBcIl4wLjEwLjFcIlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGNka3RmVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29uc3RydWN0IHZlcnNpb24gdG8gdXNlXG4gICAqIEBkZWZhdWx0IFwiXjEwLjAuMTJcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogIExpc3Qgb2YgcHJvdmlkZXIgYmluZGluZ3MgdG8gZ2VuZXJhdGUgaW4gYWRkaXRpb24gdG8gdGhlIG1vZHVsZXMuXG4gICAqL1xuICByZWFkb25seSB0ZXJyYWZvcm1Qcm92aWRlcnM/OiBUZXJyYWZvcm1WZXJzaW9uQ29uc3RyYWludFtdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIG1vZHVsZXMgdG8gZ2VuZXJhdGUgYmluZGluZ3MgZm9yLlxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IHRlcnJhZm9ybU1vZHVsZXM6IFRlcnJhZm9ybVZlcnNpb25Db25zdHJhaW50W107XG5cbiAgLy8gRGVmYXVsdGVkIHRvIGEgdXVpZCBzdHJpbmcgYXMgY2RrdGYgd291bGRcbiAgcmVhZG9ubHkgcHJvamVjdElkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRlcnJhZm9ybSBNb2R1bGVzIHJlcHVibGlzaGVkIGFzIENES1RGIENvbnN0cnVjdHNcbiAqXG4gKiBAcGppZCB0ZXJyYWZvcm0tbW9kdWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Nb2R1bGUgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogVGVycmFmb3JtTW9kdWxlT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGVzbGludE9wdGlvbnM6IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuZXNsaW50T3B0aW9ucywge1xuICAgICAgICBsaW50UHJvamVuUmM6IGZhbHNlLFxuICAgICAgfSksXG4gICAgICBwb3N0QnVpbGRTdGVwczogW10sXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiB8fCBcIl4xMC4wLjEwN1wiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IG9wdGlvbnMuY2RrdGZWZXJzaW9uIHx8IFwiXjAuMTAuMVwiO1xuXG4gICAgY29uc3QgY29uc3RydWN0U3JjQ29kZSA9IGBcbi8vIFJlLUV4cG9ydCBtb2R1bGUgYmluZGluZ3NcbmV4cG9ydCAqIGZyb20gXCIuL3RlcnJhZm9ybU1vZHVsZXNcIjtcblxuLy8gQWRkIHlvdXIgY3VzdG9tIGNvbnN0cnVjdHMgaGVyZVxuYDtcblxuICAgIGNvbnN0IGNvbnN0cnVjdFRlc3RDb2RlID0gYFxuLy8gaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0ZlwiO1xuLy8gaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuXG4vLyBUbyBsZWFybiBtb3JlIGFib3V0IHRlc3Rpbmcgc2VlIGNkay50Zi90ZXN0aW5nXG5kZXNjcmliZShcIk15TW9kdWxlXCIsICgpID0+IHtcbiAgaXQudG9kbyhcInNob3VsZCBiZSB0ZXN0ZWRcIilcbn0pO1xuYDtcblxuICAgIHRoaXMuYWRkUGVlckRlcHMoYGNvbnN0cnVjdHNAJHtjb25zdHJ1Y3RWZXJzaW9ufWAsIGBjZGt0ZkAke2Nka3RmVmVyc2lvbn1gKTtcbiAgICB0aGlzLmFkZERldkRlcHMoYGNka3RmLWNsaUAke2Nka3RmVmVyc2lvbn1gLCBcInRzLW5vZGVcIik7XG4gICAgdGhpcy5hZGRLZXl3b3JkcyhcImNka3RmXCIsIFwiY2RrdGYtaHlicmlkXCIpO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJpbmRleC50c1wiOiBjb25zdHJ1Y3RTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJfX3Rlc3RzX18vaW5kZXgtdGVzdC50c1wiOiBjb25zdHJ1Y3RUZXN0Q29kZS50cmltKCksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIG5ldyBUZXh0RmlsZSh0aGlzLCBgJHt0aGlzLnNyY2Rpcn0vdGVycmFmb3JtTW9kdWxlcy50c2AsIHtcbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgIC4uLihvcHRpb25zLnRlcnJhZm9ybU1vZHVsZXMgfHwgW10pLm1hcChcbiAgICAgICAgICAodGZNb2R1bGUpID0+IGBleHBvcnQgKiBmcm9tIFwiLi8uZ2VuL21vZHVsZXMvJHt0Zk1vZHVsZS5uYW1lfVwiO2BcbiAgICAgICAgKSxcbiAgICAgICAgXCJcIixcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcywgYCR7dGhpcy5zcmNkaXJ9L2Nka3RmLmpzb25gLCB7XG4gICAgICBjb21taXR0ZWQ6IHRydWUsXG4gICAgICBvYmo6IHtcbiAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgaW5kZXgudHNcIixcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBvcHRpb25zLnRlcnJhZm9ybVByb3ZpZGVycyB8fCBbXSxcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogb3B0aW9ucy50ZXJyYWZvcm1Nb2R1bGVzLFxuICAgICAgICBwcm9qZWN0SWQ6IG9wdGlvbnMucHJvamVjdElkIHx8IHV1aWQoKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnByZUNvbXBpbGVUYXNrLmV4ZWMoYGNka3RmIGdldGAsIHsgY3dkOiB0aGlzLnNyY2RpciB9KTtcbiAgfVxufVxuIl19