jsii-rosetta 1.76.0 → 4.9.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +1 -0
  3. package/README.md +287 -388
  4. package/bin/jsii-rosetta +1 -1
  5. package/lib/ambient/semver-intersect.d.ts +13 -0
  6. package/lib/ambient/semver-intersect.js +2 -0
  7. package/lib/ambient/semver-intersect.js.map +1 -0
  8. package/lib/commands/convert.js.map +1 -0
  9. package/lib/commands/coverage.js.map +1 -0
  10. package/lib/commands/extract.js +2 -2
  11. package/lib/commands/extract.js.map +1 -0
  12. package/lib/commands/infuse.js +2 -2
  13. package/lib/commands/infuse.js.map +1 -0
  14. package/lib/commands/read.js +6 -6
  15. package/lib/commands/read.js.map +1 -0
  16. package/lib/commands/transliterate.js +4 -4
  17. package/lib/commands/transliterate.js.map +1 -0
  18. package/lib/commands/trim-cache.js.map +1 -0
  19. package/lib/find-utils.js +4 -4
  20. package/lib/find-utils.js.map +1 -0
  21. package/lib/fixtures.js +2 -2
  22. package/lib/fixtures.js.map +1 -0
  23. package/lib/index.js.map +1 -0
  24. package/lib/jsii/assemblies.d.ts +1 -1
  25. package/lib/jsii/assemblies.js +14 -11
  26. package/lib/jsii/assemblies.js.map +1 -0
  27. package/lib/jsii/fingerprinting.js +9 -9
  28. package/lib/jsii/fingerprinting.js.map +1 -0
  29. package/lib/jsii/jsii-types.d.ts +4 -4
  30. package/lib/jsii/jsii-types.js +9 -4
  31. package/lib/jsii/jsii-types.js.map +1 -0
  32. package/lib/jsii/jsii-utils.d.ts +1 -1
  33. package/lib/jsii/jsii-utils.js +2 -2
  34. package/lib/jsii/jsii-utils.js.map +1 -0
  35. package/lib/jsii/packages.js.map +1 -0
  36. package/lib/languages/csharp.d.ts +3 -3
  37. package/lib/languages/csharp.js +2 -2
  38. package/lib/languages/csharp.js.map +1 -0
  39. package/lib/languages/default.d.ts +2 -2
  40. package/lib/languages/default.js.map +1 -0
  41. package/lib/languages/go.d.ts +3 -3
  42. package/lib/languages/go.js +20 -16
  43. package/lib/languages/go.js.map +1 -0
  44. package/lib/languages/index.d.ts +1 -1
  45. package/lib/languages/index.js +4 -4
  46. package/lib/languages/index.js.map +1 -0
  47. package/lib/languages/java.d.ts +2 -2
  48. package/lib/languages/java.js +2 -2
  49. package/lib/languages/java.js.map +1 -0
  50. package/lib/languages/python.d.ts +3 -3
  51. package/lib/languages/python.js +1 -1
  52. package/lib/languages/python.js.map +1 -0
  53. package/lib/languages/record-references-version.d.ts +2 -0
  54. package/lib/languages/record-references-version.js +6 -0
  55. package/lib/languages/record-references-version.js.map +1 -0
  56. package/lib/languages/record-references.d.ts +2 -2
  57. package/lib/languages/record-references.js +3 -2
  58. package/lib/languages/record-references.js.map +1 -0
  59. package/lib/languages/target-language.d.ts +0 -2
  60. package/lib/languages/target-language.js +2 -1
  61. package/lib/languages/target-language.js.map +1 -0
  62. package/lib/languages/visualize.d.ts +1 -1
  63. package/lib/languages/visualize.js +1 -1
  64. package/lib/languages/visualize.js.map +1 -0
  65. package/lib/logging.js +1 -1
  66. package/lib/logging.js.map +1 -0
  67. package/lib/main.d.ts +2 -0
  68. package/{bin/jsii-rosetta.js → lib/main.js} +21 -21
  69. package/lib/main.js.map +1 -0
  70. package/lib/markdown/escapes.js.map +1 -0
  71. package/lib/markdown/extract-snippets.d.ts +2 -2
  72. package/lib/markdown/extract-snippets.js +1 -1
  73. package/lib/markdown/extract-snippets.js.map +1 -0
  74. package/lib/markdown/index.js.map +1 -0
  75. package/lib/markdown/javadoc-renderer.js.map +1 -0
  76. package/lib/markdown/markdown-renderer.js.map +1 -0
  77. package/lib/markdown/markdown.js.map +1 -0
  78. package/lib/markdown/replace-code-renderer.d.ts +1 -1
  79. package/lib/markdown/replace-code-renderer.js.map +1 -0
  80. package/lib/markdown/replace-typescript-transform.d.ts +2 -2
  81. package/lib/markdown/replace-typescript-transform.js +1 -1
  82. package/lib/markdown/replace-typescript-transform.js.map +1 -0
  83. package/lib/markdown/structure-renderer.js.map +1 -0
  84. package/lib/markdown/types.js.map +1 -0
  85. package/lib/markdown/xml-comment-renderer.js.map +1 -0
  86. package/lib/o-tree.js +3 -3
  87. package/lib/o-tree.js.map +1 -0
  88. package/lib/renderer.js.map +1 -0
  89. package/lib/rosetta-reader.js.map +1 -0
  90. package/lib/rosetta-translator.d.ts +1 -1
  91. package/lib/rosetta-translator.js +2 -2
  92. package/lib/rosetta-translator.js.map +1 -0
  93. package/lib/snippet-dependencies.js +12 -12
  94. package/lib/snippet-dependencies.js.map +1 -0
  95. package/lib/snippet-selectors.d.ts +1 -1
  96. package/lib/snippet-selectors.js +2 -2
  97. package/lib/snippet-selectors.js.map +1 -0
  98. package/lib/snippet.d.ts +3 -3
  99. package/lib/snippet.js +5 -5
  100. package/lib/snippet.js.map +1 -0
  101. package/lib/strict.js.map +1 -0
  102. package/lib/submodule-reference.d.ts +1 -1
  103. package/lib/submodule-reference.js +11 -11
  104. package/lib/submodule-reference.js.map +1 -0
  105. package/lib/tablets/key.js +3 -3
  106. package/lib/tablets/key.js.map +1 -0
  107. package/lib/tablets/schema.js.map +1 -0
  108. package/lib/tablets/tablets.d.ts +1 -1
  109. package/lib/tablets/tablets.js +13 -13
  110. package/lib/tablets/tablets.js.map +1 -0
  111. package/lib/translate.d.ts +1 -1
  112. package/lib/translate.js +9 -7
  113. package/lib/translate.js.map +1 -0
  114. package/lib/translate_all.js +2 -2
  115. package/lib/translate_all.js.map +1 -0
  116. package/lib/translate_all_worker.js.map +1 -0
  117. package/lib/typescript/ast-utils.d.ts +2 -2
  118. package/lib/typescript/ast-utils.js +2 -4
  119. package/lib/typescript/ast-utils.js.map +1 -0
  120. package/lib/typescript/imports.d.ts +2 -2
  121. package/lib/typescript/imports.js +3 -3
  122. package/lib/typescript/imports.js.map +1 -0
  123. package/lib/typescript/syntax-kind-counter.d.ts +1 -1
  124. package/lib/typescript/syntax-kind-counter.js +1 -2
  125. package/lib/typescript/syntax-kind-counter.js.map +1 -0
  126. package/lib/typescript/ts-compiler.js.map +1 -0
  127. package/lib/typescript/types.d.ts +2 -2
  128. package/lib/typescript/types.js +1 -1
  129. package/lib/typescript/types.js.map +1 -0
  130. package/lib/typescript/visible-spans.js +6 -6
  131. package/lib/typescript/visible-spans.js.map +1 -0
  132. package/lib/util.d.ts +1 -1
  133. package/lib/util.js +2 -2
  134. package/lib/util.js.map +1 -0
  135. package/package.json +68 -37
  136. package/temp.tabl.json +48 -0
  137. package/bin/jsii-rosetta.d.ts +0 -2
  138. package/jest.config.mjs +0 -8
  139. package/jestsetup.js +0 -4
  140. package/test/commands/extract.test.d.ts +0 -2
  141. package/test/commands/extract.test.js +0 -698
  142. package/test/commands/infuse.test.d.ts +0 -2
  143. package/test/commands/infuse.test.js +0 -165
  144. package/test/commands/transliterate.test.d.ts +0 -2
  145. package/test/commands/transliterate.test.js +0 -1636
  146. package/test/commands/trim-cache.test.d.ts +0 -2
  147. package/test/commands/trim-cache.test.js +0 -85
  148. package/test/fixtures.test.d.ts +0 -2
  149. package/test/fixtures.test.js +0 -49
  150. package/test/jsii/assemblies.test.d.ts +0 -2
  151. package/test/jsii/assemblies.test.js +0 -230
  152. package/test/jsii/fake-assembly.d.ts +0 -3
  153. package/test/jsii/fake-assembly.js +0 -21
  154. package/test/jsii/fixtures/rosetta/explicit.ts-fixture +0 -7
  155. package/test/jsii/visible-spans.test.d.ts +0 -2
  156. package/test/jsii/visible-spans.test.js +0 -40
  157. package/test/jsii-imports.test.d.ts +0 -2
  158. package/test/jsii-imports.test.js +0 -438
  159. package/test/markdown/javadoc.test.d.ts +0 -2
  160. package/test/markdown/javadoc.test.js +0 -110
  161. package/test/markdown/roundtrip.test.d.ts +0 -2
  162. package/test/markdown/roundtrip.test.js +0 -126
  163. package/test/markdown/xmldoccomments.test.d.ts +0 -2
  164. package/test/markdown/xmldoccomments.test.js +0 -89
  165. package/test/otree.test.d.ts +0 -2
  166. package/test/otree.test.js +0 -36
  167. package/test/record-references.test.d.ts +0 -2
  168. package/test/record-references.test.js +0 -88
  169. package/test/rosetta/default.ts-fixture +0 -1
  170. package/test/rosetta-translator.test.d.ts +0 -2
  171. package/test/rosetta-translator.test.js +0 -33
  172. package/test/rosetta.test.d.ts +0 -2
  173. package/test/rosetta.test.js +0 -221
  174. package/test/snippet-selectors.test.d.ts +0 -2
  175. package/test/snippet-selectors.test.js +0 -57
  176. package/test/snippet.test.d.ts +0 -2
  177. package/test/snippet.test.js +0 -18
  178. package/test/syntax-counter.test.d.ts +0 -2
  179. package/test/syntax-counter.test.js +0 -60
  180. package/test/testutil.d.ts +0 -64
  181. package/test/testutil.js +0 -104
  182. package/test/translate.test.d.ts +0 -2
  183. package/test/translate.test.js +0 -175
  184. package/test/translations/calls/declaring_default_arguments.cs +0 -4
  185. package/test/translations/calls/declaring_default_arguments.go +0 -6
  186. package/test/translations/calls/declaring_default_arguments.java +0 -11
  187. package/test/translations/calls/declaring_default_arguments.py +0 -2
  188. package/test/translations/calls/default_struct_fields.cs +0 -9
  189. package/test/translations/calls/default_struct_fields.go +0 -7
  190. package/test/translations/calls/default_struct_fields.java +0 -21
  191. package/test/translations/calls/default_struct_fields.py +0 -2
  192. package/test/translations/calls/function_call.cs +0 -1
  193. package/test/translations/calls/function_call.go +0 -1
  194. package/test/translations/calls/function_call.java +0 -1
  195. package/test/translations/calls/function_call.py +0 -1
  196. package/test/translations/calls/list_of_anonymous_structs.cs +0 -9
  197. package/test/translations/calls/list_of_anonymous_structs.go +0 -12
  198. package/test/translations/calls/list_of_anonymous_structs.java +0 -6
  199. package/test/translations/calls/list_of_anonymous_structs.py +0 -9
  200. package/test/translations/calls/literal_map_argument.cs +0 -5
  201. package/test/translations/calls/literal_map_argument.go +0 -7
  202. package/test/translations/calls/literal_map_argument.java +0 -4
  203. package/test/translations/calls/literal_map_argument.py +0 -4
  204. package/test/translations/calls/method_call.cs +0 -1
  205. package/test/translations/calls/method_call.go +0 -1
  206. package/test/translations/calls/method_call.java +0 -1
  207. package/test/translations/calls/method_call.py +0 -1
  208. package/test/translations/calls/self_method_call.cs +0 -1
  209. package/test/translations/calls/self_method_call.go +0 -1
  210. package/test/translations/calls/self_method_call.java +0 -1
  211. package/test/translations/calls/self_method_call.py +0 -1
  212. package/test/translations/calls/shorthand_property.cs +0 -2
  213. package/test/translations/calls/shorthand_property.go +0 -4
  214. package/test/translations/calls/shorthand_property.java +0 -2
  215. package/test/translations/calls/shorthand_property.py +0 -2
  216. package/test/translations/calls/static_function_call.cs +0 -1
  217. package/test/translations/calls/static_function_call.go +0 -1
  218. package/test/translations/calls/static_function_call.java +0 -1
  219. package/test/translations/calls/static_function_call.py +0 -1
  220. package/test/translations/calls/this_argument.cs +0 -1
  221. package/test/translations/calls/this_argument.go +0 -1
  222. package/test/translations/calls/this_argument.java +0 -1
  223. package/test/translations/calls/this_argument.py +0 -1
  224. package/test/translations/calls/translate_object_literals_in_function_call.cs +0 -1
  225. package/test/translations/calls/translate_object_literals_in_function_call.go +0 -4
  226. package/test/translations/calls/translate_object_literals_in_function_call.java +0 -1
  227. package/test/translations/calls/translate_object_literals_in_function_call.py +0 -1
  228. package/test/translations/calls/translate_object_literals_only_one_level_deep.cs +0 -1
  229. package/test/translations/calls/translate_object_literals_only_one_level_deep.go +0 -7
  230. package/test/translations/calls/translate_object_literals_only_one_level_deep.java +0 -1
  231. package/test/translations/calls/translate_object_literals_only_one_level_deep.py +0 -1
  232. package/test/translations/calls/translate_object_literals_second_level_with_newlines.cs +0 -4
  233. package/test/translations/calls/translate_object_literals_second_level_with_newlines.go +0 -7
  234. package/test/translations/calls/translate_object_literals_second_level_with_newlines.java +0 -3
  235. package/test/translations/calls/translate_object_literals_second_level_with_newlines.py +0 -4
  236. package/test/translations/calls/translate_object_literals_with_multiple_newlines.cs +0 -5
  237. package/test/translations/calls/translate_object_literals_with_multiple_newlines.go +0 -5
  238. package/test/translations/calls/translate_object_literals_with_multiple_newlines.java +0 -4
  239. package/test/translations/calls/translate_object_literals_with_multiple_newlines.py +0 -5
  240. package/test/translations/calls/translate_object_literals_with_newlines.cs +0 -4
  241. package/test/translations/calls/translate_object_literals_with_newlines.go +0 -4
  242. package/test/translations/calls/translate_object_literals_with_newlines.java +0 -3
  243. package/test/translations/calls/translate_object_literals_with_newlines.py +0 -4
  244. package/test/translations/calls/will_type_deep_structs_directly_if_type_info_is_available.cs +0 -24
  245. package/test/translations/calls/will_type_deep_structs_directly_if_type_info_is_available.go +0 -24
  246. package/test/translations/calls/will_type_deep_structs_directly_if_type_info_is_available.java +0 -48
  247. package/test/translations/calls/will_type_deep_structs_directly_if_type_info_is_available.py +0 -7
  248. package/test/translations/classes/class_declaration_with_private_fields_and_constructor.cs +0 -9
  249. package/test/translations/classes/class_declaration_with_private_fields_and_constructor.go +0 -9
  250. package/test/translations/classes/class_declaration_with_private_fields_and_constructor.java +0 -7
  251. package/test/translations/classes/class_declaration_with_private_fields_and_constructor.py +0 -4
  252. package/test/translations/classes/class_declaration_with_public_fields_and_constructor.cs +0 -9
  253. package/test/translations/classes/class_declaration_with_public_fields_and_constructor.go +0 -9
  254. package/test/translations/classes/class_declaration_with_public_fields_and_constructor.java +0 -7
  255. package/test/translations/classes/class_declaration_with_public_fields_and_constructor.py +0 -4
  256. package/test/translations/classes/class_implementing_jsii_interface.cs +0 -7
  257. package/test/translations/classes/class_implementing_jsii_interface.go +0 -6
  258. package/test/translations/classes/class_implementing_jsii_interface.java +0 -5
  259. package/test/translations/classes/class_implementing_jsii_interface.py +0 -4
  260. package/test/translations/classes/class_with_different_name.cs +0 -6
  261. package/test/translations/classes/class_with_different_name.go +0 -7
  262. package/test/translations/classes/class_with_different_name.java +0 -4
  263. package/test/translations/classes/class_with_different_name.py +0 -3
  264. package/test/translations/classes/class_with_extends_and_implements.cs +0 -3
  265. package/test/translations/classes/class_with_extends_and_implements.go +0 -3
  266. package/test/translations/classes/class_with_extends_and_implements.java +0 -2
  267. package/test/translations/classes/class_with_inheritance.cs +0 -3
  268. package/test/translations/classes/class_with_inheritance.go +0 -3
  269. package/test/translations/classes/class_with_inheritance.java +0 -2
  270. package/test/translations/classes/class_with_inheritance.py +0 -2
  271. package/test/translations/classes/class_with_inheritance_and_super_class.cs +0 -6
  272. package/test/translations/classes/class_with_inheritance_and_super_class.go +0 -9
  273. package/test/translations/classes/class_with_inheritance_and_super_class.java +0 -5
  274. package/test/translations/classes/class_with_inheritance_and_super_class.py +0 -3
  275. package/test/translations/classes/class_with_method.cs +0 -7
  276. package/test/translations/classes/class_with_method.go +0 -7
  277. package/test/translations/classes/class_with_method.java +0 -5
  278. package/test/translations/classes/class_with_method.py +0 -3
  279. package/test/translations/classes/class_with_props_argument.cs +0 -14
  280. package/test/translations/classes/class_with_props_argument.go +0 -16
  281. package/test/translations/classes/class_with_props_argument.java +0 -26
  282. package/test/translations/classes/class_with_props_argument.py +0 -5
  283. package/test/translations/classes/constructor_with_optional_params.go +0 -10
  284. package/test/translations/classes/constructor_with_optional_params.java +0 -12
  285. package/test/translations/classes/empty_class.cs +0 -3
  286. package/test/translations/classes/empty_class.go +0 -2
  287. package/test/translations/classes/empty_class.java +0 -2
  288. package/test/translations/classes/empty_class.py +0 -2
  289. package/test/translations/classes/invisible_interfaces_do_not_affect_whitespace.cs +0 -11
  290. package/test/translations/classes/invisible_interfaces_do_not_affect_whitespace.go +0 -8
  291. package/test/translations/classes/invisible_interfaces_do_not_affect_whitespace.java +0 -8
  292. package/test/translations/classes/invisible_interfaces_do_not_affect_whitespace.py +0 -5
  293. package/test/translations/classes/whitespace_between_multiple_empty_members.cs +0 -15
  294. package/test/translations/classes/whitespace_between_multiple_empty_members.go +0 -12
  295. package/test/translations/classes/whitespace_between_multiple_empty_members.java +0 -11
  296. package/test/translations/classes/whitespace_between_multiple_empty_members.py +0 -9
  297. package/test/translations/classes/whitespace_between_multiple_members.cs +0 -17
  298. package/test/translations/classes/whitespace_between_multiple_members.go +0 -16
  299. package/test/translations/classes/whitespace_between_multiple_members.java +0 -13
  300. package/test/translations/classes/whitespace_between_multiple_members.py +0 -9
  301. package/test/translations/comments/empty_lines_in_comments.cs +0 -4
  302. package/test/translations/comments/empty_lines_in_comments.go +0 -4
  303. package/test/translations/comments/empty_lines_in_comments.java +0 -4
  304. package/test/translations/comments/empty_lines_in_comments.py +0 -4
  305. package/test/translations/comments/interleave_multiline_comments_with_function_call.cs +0 -7
  306. package/test/translations/comments/interleave_multiline_comments_with_function_call.go +0 -7
  307. package/test/translations/comments/interleave_multiline_comments_with_function_call.java +0 -6
  308. package/test/translations/comments/interleave_multiline_comments_with_function_call.py +0 -7
  309. package/test/translations/comments/interleave_single_line_comments_with_function_call.cs +0 -7
  310. package/test/translations/comments/interleave_single_line_comments_with_function_call.go +0 -7
  311. package/test/translations/comments/interleave_single_line_comments_with_function_call.java +0 -6
  312. package/test/translations/comments/interleave_single_line_comments_with_function_call.py +0 -7
  313. package/test/translations/comments/no_duplication_of_comments.cs +0 -2
  314. package/test/translations/comments/no_duplication_of_comments.go +0 -2
  315. package/test/translations/comments/no_duplication_of_comments.java +0 -2
  316. package/test/translations/comments/no_duplication_of_comments.py +0 -2
  317. package/test/translations/expressions/array_index.cs +0 -3
  318. package/test/translations/expressions/array_index.go +0 -3
  319. package/test/translations/expressions/array_index.java +0 -3
  320. package/test/translations/expressions/array_index.py +0 -3
  321. package/test/translations/expressions/as_expression.cs +0 -1
  322. package/test/translations/expressions/as_expression.go +0 -1
  323. package/test/translations/expressions/as_expression.java +0 -1
  324. package/test/translations/expressions/as_expression.py +0 -1
  325. package/test/translations/expressions/await.cs +0 -1
  326. package/test/translations/expressions/await.go +0 -1
  327. package/test/translations/expressions/await.java +0 -1
  328. package/test/translations/expressions/await.py +0 -1
  329. package/test/translations/expressions/backtick_string_w_o_substitutions.cs +0 -1
  330. package/test/translations/expressions/backtick_string_w_o_substitutions.go +0 -1
  331. package/test/translations/expressions/backtick_string_w_o_substitutions.java +0 -1
  332. package/test/translations/expressions/backtick_string_w_o_substitutions.py +0 -1
  333. package/test/translations/expressions/computed_key.cs +0 -4
  334. package/test/translations/expressions/computed_key.go +0 -8
  335. package/test/translations/expressions/computed_key.java +0 -4
  336. package/test/translations/expressions/computed_key.py +0 -4
  337. package/test/translations/expressions/double_quoted_dict_keys.cs +0 -1
  338. package/test/translations/expressions/double_quoted_dict_keys.go +0 -3
  339. package/test/translations/expressions/double_quoted_dict_keys.java +0 -1
  340. package/test/translations/expressions/double_quoted_dict_keys.py +0 -1
  341. package/test/translations/expressions/ellipsis_at_a_random_place.cs +0 -1
  342. package/test/translations/expressions/ellipsis_at_a_random_place.go +0 -1
  343. package/test/translations/expressions/ellipsis_at_a_random_place.java +0 -1
  344. package/test/translations/expressions/ellipsis_at_a_random_place.py +0 -1
  345. package/test/translations/expressions/enum_access.cs +0 -1
  346. package/test/translations/expressions/enum_access.go +0 -1
  347. package/test/translations/expressions/enum_access.java +0 -1
  348. package/test/translations/expressions/enum_access.py +0 -1
  349. package/test/translations/expressions/enum_like_access.cs +0 -1
  350. package/test/translations/expressions/enum_like_access.go +0 -1
  351. package/test/translations/expressions/enum_like_access.java +0 -1
  352. package/test/translations/expressions/enum_like_access.py +0 -1
  353. package/test/translations/expressions/map-literal.cs +0 -3
  354. package/test/translations/expressions/map-literal.go +0 -3
  355. package/test/translations/expressions/map-literal.java +0 -2
  356. package/test/translations/expressions/map-literal.py +0 -3
  357. package/test/translations/expressions/non_null_expression.cs +0 -1
  358. package/test/translations/expressions/non_null_expression.go +0 -1
  359. package/test/translations/expressions/non_null_expression.java +0 -1
  360. package/test/translations/expressions/non_null_expression.py +0 -1
  361. package/test/translations/expressions/string_interpolation.cs +0 -10
  362. package/test/translations/expressions/string_interpolation.go +0 -6
  363. package/test/translations/expressions/string_interpolation.java +0 -6
  364. package/test/translations/expressions/string_interpolation.py +0 -10
  365. package/test/translations/expressions/string_literal.cs +0 -9
  366. package/test/translations/expressions/string_literal.go +0 -9
  367. package/test/translations/expressions/string_literal.java +0 -1
  368. package/test/translations/expressions/string_literal.py +0 -9
  369. package/test/translations/expressions/struct_assignment.cs +0 -6
  370. package/test/translations/expressions/struct_assignment.go +0 -7
  371. package/test/translations/expressions/struct_assignment.java +0 -12
  372. package/test/translations/expressions/struct_assignment.py +0 -1
  373. package/test/translations/expressions/unary_and_binary_operators.cs +0 -3
  374. package/test/translations/expressions/unary_and_binary_operators.go +0 -3
  375. package/test/translations/expressions/unary_and_binary_operators.java +0 -3
  376. package/test/translations/expressions/unary_and_binary_operators.py +0 -3
  377. package/test/translations/hiding/hide_block_level_statements_using_void_directive.cs +0 -6
  378. package/test/translations/hiding/hide_block_level_statements_using_void_directive.go +0 -5
  379. package/test/translations/hiding/hide_block_level_statements_using_void_directive.java +0 -5
  380. package/test/translations/hiding/hide_block_level_statements_using_void_directive.py +0 -4
  381. package/test/translations/hiding/hide_expression_with_explicit_ellipsis.cs +0 -1
  382. package/test/translations/hiding/hide_expression_with_explicit_ellipsis.go +0 -1
  383. package/test/translations/hiding/hide_expression_with_explicit_ellipsis.java +0 -1
  384. package/test/translations/hiding/hide_expression_with_explicit_ellipsis.py +0 -1
  385. package/test/translations/hiding/hide_halfway_into_class_using_comments.cs +0 -3
  386. package/test/translations/hiding/hide_halfway_into_class_using_comments.go +0 -3
  387. package/test/translations/hiding/hide_halfway_into_class_using_comments.java +0 -3
  388. package/test/translations/hiding/hide_halfway_into_class_using_comments.py +0 -3
  389. package/test/translations/hiding/hide_parameter_sequence.cs +0 -1
  390. package/test/translations/hiding/hide_parameter_sequence.go +0 -1
  391. package/test/translations/hiding/hide_parameter_sequence.java +0 -1
  392. package/test/translations/hiding/hide_parameter_sequence.py +0 -1
  393. package/test/translations/hiding/hide_statements_with_explicit_ellipsis.cs +0 -3
  394. package/test/translations/hiding/hide_statements_with_explicit_ellipsis.go +0 -3
  395. package/test/translations/hiding/hide_statements_with_explicit_ellipsis.java +0 -3
  396. package/test/translations/hiding/hide_statements_with_explicit_ellipsis.py +0 -3
  397. package/test/translations/hiding/hide_top_level_statements_using_void_directive.cs +0 -1
  398. package/test/translations/hiding/hide_top_level_statements_using_void_directive.go +0 -1
  399. package/test/translations/hiding/hide_top_level_statements_using_void_directive.java +0 -1
  400. package/test/translations/hiding/hide_top_level_statements_using_void_directive.py +0 -1
  401. package/test/translations/identifiers/keyword.cs +0 -4
  402. package/test/translations/identifiers/keyword.go +0 -4
  403. package/test/translations/identifiers/keyword.java +0 -4
  404. package/test/translations/identifiers/keyword.py +0 -4
  405. package/test/translations/imports/import_require.cs +0 -2
  406. package/test/translations/imports/import_require.go +0 -2
  407. package/test/translations/imports/import_require.java +0 -2
  408. package/test/translations/imports/import_require.py +0 -2
  409. package/test/translations/imports/import_star_as.cs +0 -2
  410. package/test/translations/imports/import_star_as.go +0 -2
  411. package/test/translations/imports/import_star_as.java +0 -2
  412. package/test/translations/imports/import_star_as.py +0 -2
  413. package/test/translations/imports/multiple-imports.cs +0 -2
  414. package/test/translations/imports/multiple-imports.go +0 -2
  415. package/test/translations/imports/multiple-imports.java +0 -3
  416. package/test/translations/imports/multiple-imports.py +0 -2
  417. package/test/translations/imports/selective_import.cs +0 -4
  418. package/test/translations/imports/selective_import.go +0 -3
  419. package/test/translations/imports/selective_import.java +0 -6
  420. package/test/translations/imports/selective_import.py +0 -3
  421. package/test/translations/imports/submodule-import.cs +0 -15
  422. package/test/translations/imports/submodule-import.go +0 -23
  423. package/test/translations/imports/submodule-import.java +0 -17
  424. package/test/translations/imports/submodule-import.py +0 -15
  425. package/test/translations/interfaces/interface_with_method.cs +0 -4
  426. package/test/translations/interfaces/interface_with_method.go +0 -3
  427. package/test/translations/interfaces/interface_with_method.java +0 -3
  428. package/test/translations/interfaces/interface_with_props.cs +0 -4
  429. package/test/translations/interfaces/interface_with_props.go +0 -3
  430. package/test/translations/interfaces/interface_with_props.java +0 -3
  431. package/test/translations/misc/booleans_render_to_right_primitives.cs +0 -1
  432. package/test/translations/misc/booleans_render_to_right_primitives.go +0 -1
  433. package/test/translations/misc/booleans_render_to_right_primitives.java +0 -1
  434. package/test/translations/misc/booleans_render_to_right_primitives.py +0 -1
  435. package/test/translations/statements/block_without_braces.cs +0 -1
  436. package/test/translations/statements/block_without_braces.go +0 -3
  437. package/test/translations/statements/block_without_braces.java +0 -1
  438. package/test/translations/statements/block_without_braces.py +0 -1
  439. package/test/translations/statements/declare_var.cs +0 -1
  440. package/test/translations/statements/declare_var.go +0 -1
  441. package/test/translations/statements/declare_var.java +0 -1
  442. package/test/translations/statements/declare_var.py +0 -1
  443. package/test/translations/statements/empty_control_block.cs +0 -3
  444. package/test/translations/statements/empty_control_block.go +0 -1
  445. package/test/translations/statements/empty_control_block.java +0 -2
  446. package/test/translations/statements/empty_control_block.py +0 -2
  447. package/test/translations/statements/for_of_loop.cs +0 -4
  448. package/test/translations/statements/for_of_loop.go +0 -3
  449. package/test/translations/statements/for_of_loop.java +0 -3
  450. package/test/translations/statements/for_of_loop.py +0 -2
  451. package/test/translations/statements/if.cs +0 -4
  452. package/test/translations/statements/if.go +0 -3
  453. package/test/translations/statements/if.java +0 -3
  454. package/test/translations/statements/if.py +0 -2
  455. package/test/translations/statements/if_then_else.cs +0 -8
  456. package/test/translations/statements/if_then_else.go +0 -5
  457. package/test/translations/statements/if_then_else.java +0 -5
  458. package/test/translations/statements/if_then_else.py +0 -4
  459. package/test/translations/statements/initialize_object_literal.cs +0 -5
  460. package/test/translations/statements/initialize_object_literal.go +0 -8
  461. package/test/translations/statements/initialize_object_literal.java +0 -4
  462. package/test/translations/statements/initialize_object_literal.py +0 -5
  463. package/test/translations/statements/multiline_if_then_else.cs +0 -9
  464. package/test/translations/statements/multiline_if_then_else.go +0 -6
  465. package/test/translations/statements/multiline_if_then_else.java +0 -6
  466. package/test/translations/statements/multiline_if_then_else.py +0 -5
  467. package/test/translations/statements/statements_and_newlines.cs +0 -26
  468. package/test/translations/statements/statements_and_newlines.go +0 -21
  469. package/test/translations/statements/statements_and_newlines.java +0 -21
  470. package/test/translations/statements/statements_and_newlines.py +0 -16
  471. package/test/translations/statements/vararg_any_call.cs +0 -7
  472. package/test/translations/statements/vararg_any_call.go +0 -13
  473. package/test/translations/statements/vararg_any_call.java +0 -6
  474. package/test/translations/statements/vararg_any_call.py +0 -6
  475. package/test/translations/statements/whitespace_between_statements.cs +0 -3
  476. package/test/translations/statements/whitespace_between_statements.go +0 -3
  477. package/test/translations/statements/whitespace_between_statements.java +0 -3
  478. package/test/translations/statements/whitespace_between_statements.py +0 -3
  479. package/test/translations/statements/whitespace_between_statements_in_a_block.cs +0 -6
  480. package/test/translations/statements/whitespace_between_statements_in_a_block.go +0 -5
  481. package/test/translations/statements/whitespace_between_statements_in_a_block.java +0 -5
  482. package/test/translations/statements/whitespace_between_statements_in_a_block.py +0 -4
  483. package/test/translations/structs/any_type_never_a_struct.cs +0 -3
  484. package/test/translations/structs/any_type_never_a_struct.go +0 -3
  485. package/test/translations/structs/any_type_never_a_struct.java +0 -2
  486. package/test/translations/structs/any_type_never_a_struct.py +0 -3
  487. package/test/translations/structs/infer_struct_from_union.cs +0 -6
  488. package/test/translations/structs/infer_struct_from_union.go +0 -8
  489. package/test/translations/structs/infer_struct_from_union.java +0 -6
  490. package/test/translations/structs/infer_struct_from_union.py +0 -6
  491. package/test/translations/structs/optional_known_struct.cs +0 -3
  492. package/test/translations/structs/optional_known_struct.go +0 -3
  493. package/test/translations/structs/optional_known_struct.java +0 -3
  494. package/test/translations/structs/optional_known_struct.py +0 -3
  495. package/test/translations/structs/struct_starting_with_i.cs +0 -3
  496. package/test/translations/structs/struct_starting_with_i.go +0 -3
  497. package/test/translations/structs/struct_starting_with_i.java +0 -3
  498. package/test/translations/structs/struct_starting_with_i.py +0 -3
  499. package/test/translations/structs/var_new_class_known_struct.cs +0 -3
  500. package/test/translations/structs/var_new_class_known_struct.go +0 -3
  501. package/test/translations/structs/var_new_class_known_struct.java +0 -3
  502. package/test/translations/structs/var_new_class_known_struct.py +0 -3
  503. package/test/translations/structs/var_new_class_unknown_struct.cs +0 -3
  504. package/test/translations/structs/var_new_class_unknown_struct.go +0 -3
  505. package/test/translations/structs/var_new_class_unknown_struct.java +0 -3
  506. package/test/translations/structs/var_new_class_unknown_struct.py +0 -3
  507. package/test/translations.test.d.ts +0 -9
  508. package/test/translations.test.js +0 -112
  509. package/test/util.test.d.ts +0 -2
  510. package/test/util.test.js +0 -25
  511. package/vendor/semver-intersect.d.ts +0 -13
package/README.md CHANGED
@@ -1,388 +1,287 @@
1
- # jsii-rosetta: a transpiler for code samples
2
-
3
- Utility to transcribe example code snippets from TypeScript to other jsii languages.
4
-
5
- Has knowledge about jsii language translation conventions to do the translations. Only supports a limited set of
6
- TypeScript language features.
7
-
8
- ## Rosetta for example authors
9
-
10
- This section describes what to pay attention to when writing examples that will be converted
11
- by Rosetta.
12
-
13
- ### Making examples compile
14
-
15
- The translator can translate both code that completely compiles and typechecks, as well as code that doesn't.
16
-
17
- In case of non-compiling samples the translations will be based off of grammatical parsing only. This has the downside
18
- that we do not have the type information available to the exact thing in all instances. Specifically
19
- struct types will not be able to be inferred from object literals. Have a look at the following piece of code:
20
-
21
- ```ts
22
- someObject.someMethod('foo', {
23
- bar: 3,
24
- });
25
- ```
26
-
27
- In non-TypeScript languages, it is important to know the type of the second
28
- argument to the method here. However, without access to the definition of
29
- `someMethod()`, it's impossible for Rosetta to know the type, and hence
30
- it cannot translate the example. It is therefore important to include necessary
31
- imports, variable declarations, etc, to give Rosetta enough information to figure
32
- out what's going on in this code, and the example should read like this:
33
-
34
- ```ts
35
- import * as myLib from 'some-library';
36
-
37
- declare const someObject: myLib.SomeClass;
38
-
39
- someObject.someMethod('foo', {
40
- bar: 3,
41
- });
42
- ```
43
-
44
- ### Enforcing correct examples
45
-
46
- By default, Rosetta will accept non-compiling examples. If you set
47
- `jsiiRosetta.strict` to `true` in your `package.json`,
48
- the Rosetta command will fail if any example contains an error:
49
-
50
- ```js
51
- /// package.json
52
- {
53
- "jsiiRosetta": {
54
- "strict": true
55
- }
56
- }
57
- ```
58
-
59
- ### Fixtures
60
-
61
- To avoid having to repeat common setup every time, code samples can use
62
- "fixtures": a source template where the example is inserted. A fixture must
63
- contain the text `/// here` and typically looks like this:
64
-
65
- ```ts
66
- const * as module from '@some/dependency';
67
-
68
- class MyClass {
69
- constructor() {
70
- const obj = new MyObject();
71
-
72
- /// here
73
- }
74
- }
75
- ```
76
-
77
- The example will be inserted at the location marked as `/// here` and will have
78
- access to `module`, `obj` and `this`. Any `import` statements found in the
79
- example will automatically be hoisted at the top of the fixture, where they are
80
- guaranteed to be syntactically valid.
81
-
82
- The default file loaded as a fixture is called `rosetta/default.ts-fixture` in
83
- the package directory (if it exists).
84
-
85
- Examples can request an alternative fixture by specifying a `fixture` parameter
86
- as part of the code block fence:
87
-
88
- ````text
89
- ```ts fixture=some-fixture
90
- ````
91
-
92
- Or opt out of using the default fixture by specifying `nofixture`:
93
-
94
- ````text
95
- ```ts nofixture
96
- ````
97
-
98
- To specify fixtures in an `@example` block, use an accompanying `@exampleMetadata` tag:
99
-
100
- ````text
101
- /**
102
- * My cool class
103
- *
104
- * @exampleMetadata fixture=with-setup
105
- * @example
106
- *
107
- * new MyCoolClass();
108
- */
109
- ````
110
-
111
- ### Dependencies
112
-
113
- When compiling examples, Rosetta will make sure your package itself and all of
114
- its `dependencies` and `peerDependencies` are available in the dependency
115
- closure that your examples will be compiled in.
116
-
117
- If there are packages you want to use in an example that should *not* be part
118
- of your package's dependencies, declare them in `jsiiRosetta.exampleDependencies`
119
- in your `package.json`:
120
-
121
- ```js
122
- /// package.json
123
- {
124
- "jsiiRosetta": {
125
- "exampleDependencies": {
126
- "@some-other/package": "^1.2.3",
127
- "@yet-another/package": "*",
128
- }
129
- }
130
- }
131
- ```
132
-
133
- You can also set up a directory with correct dependencies yourself, and pass
134
- `--directory` when running `jsii-rosetta extract`. We recommend using the
135
- automatic closure building mechanism and specifying `exampleDependencies` though.
136
-
137
- ## Rosetta for package publishers
138
-
139
- This section describes how Rosetta integrates into your build process.
140
-
141
- ### Extract
142
-
143
- Rosetta has a number of subcommands. The most important one is `jsii-rosetta extract`.
144
-
145
- The `jsii-rosetta extract` command will take one or more jsii assemblies,
146
- extract the snippets from them, will try to compile them with respect to a given
147
- home directory, and finally store all translations in something called a
148
- "tablet".
149
-
150
- A couple of things to note here:
151
-
152
- * Snippets are always read from the jsii assembly. That means if you make
153
- changes to examples in source files, you must first re-run `jsii` to
154
- regenerate the assembly, before re-running `jsii-rosetta extract`.
155
- * The compilation directory will be used to resolve `import`s. Currently, you
156
- are responsible for building a directory with the correct `node_modules`
157
- directories in there so that a TypeScript compilation step will find all
158
- libraries referenced in the examples. This is especially revelant if your
159
- examples include libraries that depend on the *current* library: it is not
160
- uncommon to write examples in library `A` showing how to use it in combination
161
- with library `B`, where `B` depends on `A`. However, since by definition `B`
162
- *cannot* be in the set of dependencies of `A`, you must build a directory with
163
- both `B` and `A` in it somewhere in your filesystem and run Rosetta in that
164
- directory.
165
- * "Extract" will compile samples in parallel. The more assemblies you give it
166
- at the same time, the more efficient of a job it will be able to do.
167
-
168
- The extract command will write a file named `.jsii.tabl.json` next to every
169
- assembly, containing translations for all samples found in the assembly. You
170
- should include this file in your NPM package when you publish, so that
171
- downstream consumers of the package have access to the translations.
172
-
173
- An example invocation of `jsii-rosetta extract` looks like this:
174
-
175
- ```sh
176
- jsii-rosetta extract --directory some/dir $(find . -name .jsii)
177
- ```
178
-
179
- #### Running in parallel
180
-
181
- Since TypeScript compilation takes a lot of time, much time can be gained by
182
- using the CPUs in your system effectively. `jsii-rosetta extract` will run the
183
- compilations in parallel.
184
-
185
- `jsii-rosetta` will use a number of workers equal to half the number of CPU
186
- cores, up to a maximum of 16 workers. This default maximum can be overridden by
187
- setting the `JSII_ROSETTA_MAX_WORKER_COUNT` environment variable.
188
-
189
- If you get out of memory errors running too many workers, run a command like
190
- this to raise the memory allowed for your workers:
191
-
192
- ```sh
193
- /sbin/sysctl -w vm.max_map_count=2251954
194
- ```
195
-
196
- #### Caching
197
-
198
- Rosetta extract will translate all examples found in `.jsii` and write the
199
- translations to `.jsii.tabl.json`. From compilation to compilation, many of these
200
- examples won't have changed. Since TypeScript compilation is a fairly expensive
201
- process, we would like to avoid doing unnecessary work as much as possible.
202
-
203
- To that end, rosetta can reuse translations from a cache, and write
204
- new translations into the same cache:
205
-
206
- ```sh
207
- jsii-rosetta extract \
208
- --directory some/dir \
209
- --cache cache.json \
210
- [--trim-cache] \
211
- $(find . -name .jsii)
212
- ```
213
-
214
- The `--trim-cache` flag will remove any old translations from the cache that
215
- don't exist anymore in any of the given assemblies. This prevents the cache from
216
- growing endlessly over time (an equivalent `jsii-rosetta trim-cache` command is
217
- available if your workflow involves running `extract` in multiple distinct
218
- invocations and want to retain the cache between them).
219
-
220
- ### Infuse
221
-
222
- The `jsii-rosetta infuse` command increases the coverage of examples for classes
223
- in the assembly.
224
-
225
- It finds classes in the assembly that don't have an example associated with them
226
- yet (as specified via the `@example` tag in the doc comments), but that are used
227
- in another example found elsewhere—in either a `README` or an example of another
228
- class—it will copy the example to all classes involved. This will make sure
229
- your handwritten examples go as far as possible.
230
-
231
- Note that in order to do this, `infuse` will *modify* the assemblies it is
232
- given.
233
-
234
- `rosetta infuse` depends on the analysis perfomed by `rosetta extract`, and must
235
- therefore be run after `extract`. It can also be run as part of `extract`, by
236
- passing the `--infuse` flag:
237
-
238
- ```sh
239
- jsii-rosetta extract \
240
- --directory some/dir \
241
- --infuse \
242
- $(find . -name .jsii)
243
- ```
244
-
245
- ### Translations and pacmak
246
-
247
- `jsii-pacmak` will read translation from tablets to substitute translated examples
248
- into the generated source bindings. `pacmak` will automatically read individual
249
- `.jsii.tabl.json` files if present, and can additionally also read from a global
250
- tablet file.
251
-
252
- When a translation for a code sample cannot be found, `pacmak` can be configured
253
- to do one of the following:
254
-
255
- * Leave the sample untranslated (default)
256
- * Translate the sample in-place (this will slow down generation a lot, and you
257
- will not have the fine control over the compilation environment that you would
258
- have if you were to use the `extract` command)
259
- * Fail
260
-
261
- Example:
262
-
263
- ```sh
264
- jsii-pacmak \
265
- [--rosetta-tablet=global.json] \
266
- [--rosetta-unknown-snippets=verbatim|translate|fail]
267
- ```
268
-
269
- ### Data flow
270
-
271
- The diagram below shows how data flows through the jsii tools when used together:
272
-
273
- ```text
274
- ┌───────────┐
275
- │ │
276
- │ Source ├───┐
277
- │ │ │ ╔══════════╗ ┌────────────┐ ╔═══════════════╗ ┌──────────┐
278
- └───────────┘ │ ║ ║ │ │ ║ rosetta ║ │ │
279
- ├───▶║ jsii ║───▶│ assembly │────▶║ extract ║───▶│ tablet │
280
- ┌───────────┐ │ ║ ║ │ │ ║ ║ │ │
281
- │ │ │ ╚══════════╝ └────────────┘ ╚═══════════════╝ └──────────┘
282
- │ README │───┘ │ │
283
- │ │ │ │
284
- └───────────┘ │ ╔═══════════════╗ │
285
- │ ║ rosetta ║ │
286
- └──────────▶║ infuse ║◀─────────┘
287
- ║ ║
288
- ╚═══════════════╝
289
-
290
- ┌───────────────────┴───────────────────┐
291
- │ │
292
- ▼ ▼
293
- ┌────────────┐ ┌──────────┐
294
- │ │ │ │
295
- │ assembly' │ │ tablet' │
296
- │ │ │ │
297
- └────────────┘ └──────────┘
298
- │ │
299
- │ │
300
- │ ▼ ┌─────────────┐
301
- │ ╔═══════════════╗ ┌┴────────────┐│
302
- │ ║ ║ │ ││
303
- └──────────────────────────────▶║ pacmak ║────▶│ packages ││
304
- ║ ║ │ ├┘
305
- ╚═══════════════╝ └─────────────┘
306
- (potentially
307
- live-translates)
308
- ```
309
-
310
- ## Advanced topics
311
-
312
- ### Hiding code from samples
313
-
314
- In order to make examples compile, boilerplate code may need to be added that detracts from the example at hand (such as
315
- variable declarations and imports).
316
-
317
- This package supports hiding parts of the original source after translation.
318
-
319
- To mark special locations in the source tree, we can use one of three mechanisms:
320
-
321
- * Use a `void` expression statement to mark statement locations in the AST.
322
- * Use the `comma` operator combined with a `void` expression to mark expression locations in the AST.
323
- * Use special directive comments (`/// !hide`, `/// !show`) to mark locations that span AST nodes. This is less reliable
324
- (because the source location of translated syntax sometimes will have to be estimated) but the only option if you want
325
- to mark non-contiguous nodes (such as hide part of a class declaration but show statements inside the constructor).
326
-
327
- The `void` expression keyword and or the `comma` operator feature are little-used JavaScript features that are reliably
328
- parsed by TypeScript and do not affect the semantics of the application in which they appear (so the program executes
329
- the same with or without them).
330
-
331
- A handy mnemonic for this feature is that you can use it to "send your code into the void".
332
-
333
- #### Hiding statements
334
-
335
- Statement hiding looks like this:
336
-
337
- ```ts
338
- before(); // will be shown
339
-
340
- void 0; // start hiding (the argument to 'void' doesn't matter)
341
- middle(); // will not be shown
342
- void 'show'; // stop hiding
343
-
344
- after(); // will be shown again
345
- ```
346
-
347
- #### Hiding expressions
348
-
349
- For hiding expressions, we use `comma` expressions to attach a `void` statement to an expression value without changing
350
- the meaning of the code.
351
-
352
- Example:
353
-
354
- ```ts
355
- foo(1, 2, (void 1, 3));
356
- ```
357
-
358
- Will render as
359
-
360
- ```ts
361
- foo(1, 2)
362
- ```
363
-
364
- Also supports a visible ellipsis:
365
-
366
- ```ts
367
- const x = (void '...', 3);
368
- ```
369
-
370
- Renders to:
371
-
372
- ```ts
373
- x = ...
374
- ```
375
-
376
- #### Hiding across AST nodes
377
-
378
- Use special comment directives:
379
-
380
- ```ts
381
- before();
382
- /// !hide
383
- notShown();
384
- /// !show
385
- after();
386
- ```
387
-
388
- (May also start with `/// !show` and `/// !hide`).
1
+ # ![jsii](https://raw.githubusercontent.com/aws/jsii/main/logo/png/128.png)
2
+
3
+ [![Join the chat at https://cdk.Dev](https://img.shields.io/static/v1?label=Slack&message=cdk.dev&color=brightgreen&logo=slack)](https://cdk.dev)
4
+ [![All Contributors](https://img.shields.io/github/all-contributors/aws/jsii/main?label=%E2%9C%A8%20All%20Contributors)](#contributors-)
5
+ [![Build Status](https://github.com/aws/jsii-compiler/workflows/build/badge.svg)](https://github.com/aws/jsii-compiler/actions?query=workflow%3Abuild+branch%3Amain)
6
+ [![npm](https://img.shields.io/npm/v/jsii?logo=npm)](https://www.npmjs.com/package/jsii)
7
+ [![docker](https://img.shields.io/badge/docker-jsii%2Fsuperchain-brightgreen?logo=docker)](https://hub.docker.com/r/jsii/superchain)
8
+
9
+ ## Overview
10
+
11
+ `jsii-rosetta` translates code samples contained in jsii libraries from TypeScript to supported *jsii* target languages.
12
+ This is what enables the [AWS Cloud Development Kit][cdk] to deliver polyglot documentation from a single codebase!
13
+
14
+ [cdk]: https://github.com/aws/aws-cdk
15
+
16
+ ## :question: Documentation
17
+
18
+ Head over to our [documentation website](https://aws.github.io/jsii)!
19
+
20
+ The jsii toolchain is spread out on multiple repositories:
21
+ - [aws/jsii-compiler](https://github.com/aws/jsii-compiler) is where the `jsii` compiler is maintained (except releases
22
+ in the `1.x` line)
23
+ - [aws/jsii-rosetta](https://github.com/aws/jsii-rosetta) is where the `jsii-rosetta` sample code transliteration tool
24
+ is maintained (except releases in the `1.x` line)
25
+ - [aws/jsii](https://github.com/aws/jsii) is where the rest of the toolchain is maintained, including:
26
+ - `@jsii/spec`, the package that defines the *`.jsii` assembly* specification
27
+ - `jsii-config`, an interactive tool to help configure your jsii package
28
+ - `jsii-pacmak`, the bindings generator for jsii packages
29
+ - `jsii-reflect`, a higher-level way to process *`.jsii` assemblies*
30
+ - The jsii runtime libraries for the supported jsii target languages
31
+ - `1.x` release lines of `jsii` and `jsii-rosetta`
32
+
33
+ # :book: Blog Posts
34
+
35
+ Here's a collection of blog posts (in chronological order) related to `jsii`:
36
+
37
+ - **2020-01-11:** <a id="blog-mbonig" /> [How to Create CDK Constructs][mbonig-2020-01-11], by [Matthew Bonig][@mbonig]
38
+ - **2020-05-27:** <a id="blog-floydpink" /> [Generate Python, Java, and .NET software libraries from a TypeScript
39
+ source][floydpink-2020-05-27], by [Hari Pachuveetil][@floydpink]
40
+ - **2020-12-23:** <a id="blog-romainmuller" /> [How the jsii open source framework meets developers where they are
41
+ ][romain-2020-12-23], by [Romain Marcadier][@RomainMuller]
42
+
43
+ [mbonig-2020-01-11]: https://www.matthewbonig.com/2020/01/11/creating-constructs/
44
+ [floydpink-2020-05-27]:
45
+ https://aws.amazon.com/fr/blogs/opensource/generate-python-java-dotnet-software-libraries-from-typescript-source/
46
+ [romain-2020-12-23]:
47
+ https://aws.amazon.com/blogs/opensource/how-the-jsii-open-source-framework-meets-developers-where-they-are/
48
+ [@mbonig]: http://www.matthewbonig.com/
49
+ [@floydpink]: https://harimenon.com/
50
+ [@romainmuller]: https://github.com/RomainMuller
51
+
52
+ > :information_source: If you wrote blog posts about `jsii` and would like to have them referenced here, do not hesitate
53
+ > to file a pull request to add the links here!
54
+
55
+ # :gear: Contributing
56
+
57
+ See [CONTRIBUTING](./CONTRIBUTING.md).
58
+
59
+ ## Contributors ✨
60
+
61
+ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
62
+
63
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
64
+ <!-- prettier-ignore-start -->
65
+ <!-- markdownlint-disable -->
66
+ <table>
67
+ <tbody>
68
+ <tr>
69
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/aws/aws-cdk"><img src="https://avatars0.githubusercontent.com/u/43080478?v=4?s=100" width="100px;" alt="AWS CDK Automation"/><br /><sub><b>AWS CDK Automation</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Aaws-cdk-automation" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Aaws-cdk-automation" title="Reviewed Pull Requests">👀</a></td>
70
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/costleya"><img src="https://avatars2.githubusercontent.com/u/1572163?v=4?s=100" width="100px;" alt="Aaron Costley"/><br /><sub><b>Aaron Costley</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Acostleya+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=costleya" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Acostleya+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Acostleya" title="Reviewed Pull Requests">👀</a></td>
71
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ahodieb"><img src="https://avatars1.githubusercontent.com/u/835502?v=4?s=100" width="100px;" alt="Abdallah Hodieb"/><br /><sub><b>Abdallah Hodieb</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aahodieb+label%3Abug" title="Bug reports">🐛</a></td>
72
+ <td align="center" valign="top" width="14.28%"><a href="http://endoflineblog.com/"><img src="https://avatars2.githubusercontent.com/u/460937?v=4?s=100" width="100px;" alt="Adam Ruka"/><br /><sub><b>Adam Ruka</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Askinny85+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=skinny85" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Askinny85" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Askinny85" title="Reviewed Pull Requests">👀</a></td>
73
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/agdimech"><img src="https://avatars.githubusercontent.com/u/51220968?v=4?s=100" width="100px;" alt="Adrian Dimech"/><br /><sub><b>Adrian Dimech</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=agdimech" title="Code">💻</a></td>
74
+ <td align="center" valign="top" width="14.28%"><a href="https://softwhat.com/"><img src="https://avatars0.githubusercontent.com/u/4362270?v=4?s=100" width="100px;" alt="Alex Pulver"/><br /><sub><b>Alex Pulver</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aalexpulver+label%3Abug" title="Bug reports">🐛</a></td>
75
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/andipabst"><img src="https://avatars.githubusercontent.com/u/9639382?v=4?s=100" width="100px;" alt="Andi Pabst"/><br /><sub><b>Andi Pabst</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aandipabst+label%3Abug" title="Bug reports">🐛</a></td>
76
+ </tr>
77
+ <tr>
78
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/rectalogic"><img src="https://avatars.githubusercontent.com/u/11581?v=4?s=100" width="100px;" alt="Andrew Wason"/><br /><sub><b>Andrew Wason</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Arectalogic+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=rectalogic" title="Code">💻</a></td>
79
+ <td align="center" valign="top" width="14.28%"><a href="https://www.aslezak.com/"><img src="https://avatars2.githubusercontent.com/u/6944605?v=4?s=100" width="100px;" alt="Andy Slezak"/><br /><sub><b>Andy Slezak</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=amslezak" title="Code">💻</a></td>
80
+ <td align="center" valign="top" width="14.28%"><a href="https://ansgar.dev"><img src="https://avatars.githubusercontent.com/u/1112056?v=4?s=100" width="100px;" alt="Ansgar Mertens"/><br /><sub><b>Ansgar Mertens</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Aansgarm" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/commits?author=ansgarm" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Aansgarm+label%3Abug" title="Bug reports">🐛</a></td>
81
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/anshulguleria"><img src="https://avatars3.githubusercontent.com/u/993508?v=4?s=100" width="100px;" alt="Anshul Guleria"/><br /><sub><b>Anshul Guleria</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aanshulguleria+label%3Afeature-request" title="Feature requests">🤔</a></td>
82
+ <td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/aripalo/"><img src="https://avatars0.githubusercontent.com/u/679146?v=4?s=100" width="100px;" alt="Ari Palo"/><br /><sub><b>Ari Palo</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aaripalo+label%3Afeature-request" title="Feature requests">🤔</a></td>
83
+ <td align="center" valign="top" width="14.28%"><a href="https://armaan.tobaccowalla.com"><img src="https://avatars.githubusercontent.com/u/13340433?v=4?s=100" width="100px;" alt="Armaan Tobaccowalla"/><br /><sub><b>Armaan Tobaccowalla</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AArmaanT+label%3Abug" title="Bug reports">🐛</a></td>
84
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/BiDzej"><img src="https://avatars1.githubusercontent.com/u/26255490?v=4?s=100" width="100px;" alt="Bartłomiej Jurek"/><br /><sub><b>Bartłomiej Jurek</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3ABiDzej+label%3Abug" title="Bug reports">🐛</a></td>
85
+ </tr>
86
+ <tr>
87
+ <td align="center" valign="top" width="14.28%"><a href="http://twiiter.com/benbridts"><img src="https://avatars0.githubusercontent.com/u/1301221?v=4?s=100" width="100px;" alt="Ben Bridts"/><br /><sub><b>Ben Bridts</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=benbridts" title="Documentation">📖</a></td>
88
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/BenChaimberg"><img src="https://avatars.githubusercontent.com/u/3698184?v=4?s=100" width="100px;" alt="Ben Chaimberg"/><br /><sub><b>Ben Chaimberg</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=BenChaimberg" title="Documentation">📖</a></td>
89
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/benfarr"><img src="https://avatars0.githubusercontent.com/u/10361379?v=4?s=100" width="100px;" alt="Ben Farr"/><br /><sub><b>Ben Farr</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=benfarr" title="Documentation">📖</a></td>
90
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/BenWal"><img src="https://avatars0.githubusercontent.com/u/2656067?v=4?s=100" width="100px;" alt="Ben Walters"/><br /><sub><b>Ben Walters</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3ABenWal+label%3Afeature-request" title="Feature requests">🤔</a></td>
91
+ <td align="center" valign="top" width="14.28%"><a href="http://macher.dev"><img src="https://avatars0.githubusercontent.com/u/32685580?v=4?s=100" width="100px;" alt="Benjamin Macher"/><br /><sub><b>Benjamin Macher</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=bmacher" title="Documentation">📖</a></td>
92
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bmaizels"><img src="https://avatars1.githubusercontent.com/u/36682168?v=4?s=100" width="100px;" alt="Benjamin Maizels"/><br /><sub><b>Benjamin Maizels</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=bmaizels" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Abmaizels" title="Reviewed Pull Requests">👀</a></td>
93
+ <td align="center" valign="top" width="14.28%"><a href="http://wcauchois.github.io/"><img src="https://avatars1.githubusercontent.com/u/300544?v=4?s=100" width="100px;" alt="Bill Cauchois"/><br /><sub><b>Bill Cauchois</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Awcauchois+label%3Afeature-request" title="Feature requests">🤔</a></td>
94
+ </tr>
95
+ <tr>
96
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/bverhoeve"><img src="https://avatars1.githubusercontent.com/u/46007524?v=4?s=100" width="100px;" alt="Brecht Verhoeve"/><br /><sub><b>Brecht Verhoeve</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Abverhoeve+label%3Afeature-request" title="Feature requests">🤔</a></td>
97
+ <td align="center" valign="top" width="14.28%"><a href="http://bdawg.org/"><img src="https://avatars1.githubusercontent.com/u/92937?v=4?s=100" width="100px;" alt="Breland Miley"/><br /><sub><b>Breland Miley</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=mindstorms6" title="Code">💻</a></td>
98
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/CaerusKaru"><img src="https://avatars3.githubusercontent.com/u/416563?v=4?s=100" width="100px;" alt="CaerusKaru"/><br /><sub><b>CaerusKaru</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=CaerusKaru" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3ACaerusKaru" title="Maintenance">🚧</a></td>
99
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/comcalvi"><img src="https://avatars.githubusercontent.com/u/66279577?v=4?s=100" width="100px;" alt="Calvin Combs"/><br /><sub><b>Calvin Combs</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=comcalvi" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Acomcalvi" title="Reviewed Pull Requests">👀</a></td>
100
+ <td align="center" valign="top" width="14.28%"><a href="https://camilobermudez85.github.io/"><img src="https://avatars0.githubusercontent.com/u/7834055?v=4?s=100" width="100px;" alt="Camilo Bermúdez"/><br /><sub><b>Camilo Bermúdez</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Acamilobermudez85+label%3Abug" title="Bug reports">🐛</a></td>
101
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/campionfellin"><img src="https://avatars3.githubusercontent.com/u/11984923?v=4?s=100" width="100px;" alt="Campion Fellin"/><br /><sub><b>Campion Fellin</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=campionfellin" title="Code">💻</a></td>
102
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/carterv"><img src="https://avatars2.githubusercontent.com/u/1551538?v=4?s=100" width="100px;" alt="Carter Van Deuren"/><br /><sub><b>Carter Van Deuren</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Acarterv+label%3Abug" title="Bug reports">🐛</a></td>
103
+ </tr>
104
+ <tr>
105
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/cgarvis"><img src="https://avatars.githubusercontent.com/u/213125?v=4?s=100" width="100px;" alt="Chris Garvis"/><br /><sub><b>Chris Garvis</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=cgarvis" title="Documentation">📖</a></td>
106
+ <td align="center" valign="top" width="14.28%"><a href="https://christianmoore.me/"><img src="https://avatars.githubusercontent.com/u/36210509?v=4?s=100" width="100px;" alt="Christian Moore"/><br /><sub><b>Christian Moore</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Ashamelesscookie+label%3Abug" title="Bug reports">🐛</a></td>
107
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ChristopheVico"><img src="https://avatars.githubusercontent.com/u/56592817?v=4?s=100" width="100px;" alt="Christophe Vico"/><br /><sub><b>Christophe Vico</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AChristopheVico+label%3Abug" title="Bug reports">🐛</a></td>
108
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/christophercurrie"><img src="https://avatars0.githubusercontent.com/u/19510?v=4?s=100" width="100px;" alt="Christopher Currie"/><br /><sub><b>Christopher Currie</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=christophercurrie" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Achristophercurrie+label%3Afeature-request" title="Feature requests">🤔</a></td>
109
+ <td align="center" valign="top" width="14.28%"><a href="https://rybicki.io/"><img src="https://avatars2.githubusercontent.com/u/5008987?v=4?s=100" width="100px;" alt="Christopher Rybicki"/><br /><sub><b>Christopher Rybicki</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=Chriscbr" title="Documentation">📖</a> <a href="https://github.com/aws/jsii/issues?q=author%3AChriscbr+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=Chriscbr" title="Code">💻</a></td>
110
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/CommanderRoot"><img src="https://avatars.githubusercontent.com/u/4395417?v=4?s=100" width="100px;" alt="CommanderRoot"/><br /><sub><b>CommanderRoot</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=CommanderRoot" title="Code">💻</a></td>
111
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/corymhall"><img src="https://avatars.githubusercontent.com/u/43035978?v=4?s=100" width="100px;" alt="Cory Hall"/><br /><sub><b>Cory Hall</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Acorymhall+label%3Abug" title="Bug reports">🐛</a></td>
112
+ </tr>
113
+ <tr>
114
+ <td align="center" valign="top" width="14.28%"><a href="http://mcristi.wordpress.com"><img src="https://avatars.githubusercontent.com/u/95209?v=4?s=100" width="100px;" alt="Cristian Măgherușan-Stanciu"/><br /><sub><b>Cristian Măgherușan-Stanciu</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3ACristim+label%3Abug" title="Bug reports">🐛</a></td>
115
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/CyrusNajmabadi"><img src="https://avatars3.githubusercontent.com/u/4564579?v=4?s=100" width="100px;" alt="CyrusNajmabadi"/><br /><sub><b>CyrusNajmabadi</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3ACyrusNajmabadi+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/issues?q=author%3ACyrusNajmabadi+label%3Afeature-request" title="Feature requests">🤔</a></td>
116
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/dsilbergleithcu-godaddy"><img src="https://avatars.githubusercontent.com/u/78872820?v=4?s=100" width="100px;" alt="Damian Silbergleith"/><br /><sub><b>Damian Silbergleith</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=dsilbergleithcu-godaddy" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Adsilbergleithcu-godaddy+label%3Abug" title="Bug reports">🐛</a></td>
117
+ <td align="center" valign="top" width="14.28%"><a href="https://danieldinu.com/"><img src="https://avatars1.githubusercontent.com/u/236187?v=4?s=100" width="100px;" alt="Daniel Dinu"/><br /><sub><b>Daniel Dinu</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Addinu+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=ddinu" title="Code">💻</a></td>
118
+ <td align="center" valign="top" width="14.28%"><a href="http://danielmschmidt.de/"><img src="https://avatars.githubusercontent.com/u/1337046?v=4?s=100" width="100px;" alt="Daniel Schmidt"/><br /><sub><b>Daniel Schmidt</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3ADanielMSchmidt+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=DanielMSchmidt" title="Code">💻</a></td>
119
+ <td align="center" valign="top" width="14.28%"><a href="https://www.udondan.com/"><img src="https://avatars3.githubusercontent.com/u/6443408?v=4?s=100" width="100px;" alt="Daniel Schroeder"/><br /><sub><b>Daniel Schroeder</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Audondan+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=udondan" title="Code">💻</a> <a href="https://github.com/aws/jsii/commits?author=udondan" title="Documentation">📖</a> <a href="https://github.com/aws/jsii/issues?q=author%3Audondan+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Audondan" title="Maintenance">🚧</a></td>
120
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/slotnick"><img src="https://avatars3.githubusercontent.com/u/918175?v=4?s=100" width="100px;" alt="Dave Slotnick"/><br /><sub><b>Dave Slotnick</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aslotnick+label%3Abug" title="Bug reports">🐛</a></td>
121
+ </tr>
122
+ <tr>
123
+ <td align="center" valign="top" width="14.28%"><a href="https://caremad.io/"><img src="https://avatars3.githubusercontent.com/u/145979?v=4?s=100" width="100px;" alt="Donald Stufft"/><br /><sub><b>Donald Stufft</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Adstufft+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=dstufft" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Adstufft+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Adstufft" title="Reviewed Pull Requests">👀</a></td>
124
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/dagnir"><img src="https://avatars2.githubusercontent.com/u/261310?v=4?s=100" width="100px;" alt="Dongie Agnir"/><br /><sub><b>Dongie Agnir</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=dagnir" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Adagnir" title="Reviewed Pull Requests">👀</a></td>
125
+ <td align="center" valign="top" width="14.28%"><a href="https://eduardorabelo.me/"><img src="https://avatars.githubusercontent.com/u/829902?v=4?s=100" width="100px;" alt="Eduardo Rabelo"/><br /><sub><b>Eduardo Rabelo</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=oieduardorabelo" title="Documentation">📖</a></td>
126
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/edsenabr"><img src="https://avatars3.githubusercontent.com/u/15689137?v=4?s=100" width="100px;" alt="Eduardo Sena S. Rosa"/><br /><sub><b>Eduardo Sena S. Rosa</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aedsenabr+label%3Abug" title="Bug reports">🐛</a></td>
127
+ <td align="center" valign="top" width="14.28%"><a href="http://eladb.github.com/"><img src="https://avatars3.githubusercontent.com/u/598796?v=4?s=100" width="100px;" alt="Elad Ben-Israel"/><br /><sub><b>Elad Ben-Israel</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aeladb+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=eladb" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Aeladb+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Aeladb" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Aeladb" title="Reviewed Pull Requests">👀</a> <a href="#talk-eladb" title="Talks">📢</a></td>
128
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/iliapolo"><img src="https://avatars0.githubusercontent.com/u/1428812?v=4?s=100" width="100px;" alt="Eli Polonsky"/><br /><sub><b>Eli Polonsky</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Ailiapolo+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=iliapolo" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Ailiapolo+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Ailiapolo" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Ailiapolo" title="Reviewed Pull Requests">👀</a></td>
129
+ <td align="center" valign="top" width="14.28%"><a href="http://ericzbeard.com/"><img src="https://avatars0.githubusercontent.com/u/663183?v=4?s=100" width="100px;" alt="Eric Z. Beard"/><br /><sub><b>Eric Z. Beard</b></sub></a><br /><a href="#projectManagement-ericzbeard" title="Project Management">📆</a></td>
130
+ </tr>
131
+ <tr>
132
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/McDoit"><img src="https://avatars3.githubusercontent.com/u/16723686?v=4?s=100" width="100px;" alt="Erik Karlsson"/><br /><sub><b>Erik Karlsson</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AMcDoit+label%3Abug" title="Bug reports">🐛</a></td>
133
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/kozlove-aws"><img src="https://avatars1.githubusercontent.com/u/68875428?v=4?s=100" width="100px;" alt="Eugene Kozlov"/><br /><sub><b>Eugene Kozlov</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=kozlove-aws" title="Code">💻</a></td>
134
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/FabioGentile"><img src="https://avatars2.githubusercontent.com/u/7030345?v=4?s=100" width="100px;" alt="Fabio Gentile"/><br /><sub><b>Fabio Gentile</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AFabioGentile+label%3Abug" title="Bug reports">🐛</a></td>
135
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/workeitel"><img src="https://avatars1.githubusercontent.com/u/7794947?v=4?s=100" width="100px;" alt="Florian Eitel"/><br /><sub><b>Florian Eitel</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aworkeitel+label%3Afeature-request" title="Feature requests">🤔</a></td>
136
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/gshpychka"><img src="https://avatars.githubusercontent.com/u/23005347?v=4?s=100" width="100px;" alt="Glib Shpychka"/><br /><sub><b>Glib Shpychka</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Agshpychka+label%3Abug" title="Bug reports">🐛</a></td>
137
+ <td align="center" valign="top" width="14.28%"><a href="http://www.grahamlea.com/"><img src="https://avatars0.githubusercontent.com/u/754403?v=4?s=100" width="100px;" alt="Graham Lea"/><br /><sub><b>Graham Lea</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AGrahamLea+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3AGrahamLea" title="Reviewed Pull Requests">👀</a></td>
138
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/assyadh"><img src="https://avatars0.githubusercontent.com/u/4091730?v=4?s=100" width="100px;" alt="Hamza Assyad"/><br /><sub><b>Hamza Assyad</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aassyadh+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=assyadh" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Aassyadh+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Aassyadh" title="Reviewed Pull Requests">👀</a></td>
139
+ </tr>
140
+ <tr>
141
+ <td align="center" valign="top" width="14.28%"><a href="https://harimenon.com/"><img src="https://avatars2.githubusercontent.com/u/171072?v=4?s=100" width="100px;" alt="Hari Pachuveetil"/><br /><sub><b>Hari Pachuveetil</b></sub></a><br /><a href="#blog-floydpink" title="Blogposts">📝</a> <a href="https://github.com/aws/jsii/commits?author=floydpink" title="Documentation">📖</a></td>
142
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/HBobertz"><img src="https://avatars.githubusercontent.com/u/18233297?v=4?s=100" width="100px;" alt="Hogan Bobertz"/><br /><sub><b>Hogan Bobertz</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=HBobertz" title="Code">💻</a></td>
143
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/SoManyHs"><img src="https://avatars0.githubusercontent.com/u/29964746?v=4?s=100" width="100px;" alt="Hsing-Hui Hsu"/><br /><sub><b>Hsing-Hui Hsu</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=SoManyHs" title="Code">💻</a> <a href="https://github.com/aws/jsii/commits?author=SoManyHs" title="Documentation">📖</a> <a href="https://github.com/aws/jsii/issues?q=author%3ASoManyHs+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3ASoManyHs" title="Reviewed Pull Requests">👀</a></td>
144
+ <td align="center" valign="top" width="14.28%"><a href="https://bandism.net/"><img src="https://avatars.githubusercontent.com/u/22633385?v=4?s=100" width="100px;" alt="Ikko Ashimine"/><br /><sub><b>Ikko Ashimine</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=eltociear" title="Documentation">📖</a></td>
145
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Nycto"><img src="https://avatars.githubusercontent.com/u/30517?v=4?s=100" width="100px;" alt="James"/><br /><sub><b>James</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3ANycto+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=Nycto" title="Code">💻</a></td>
146
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/JKCT"><img src="https://avatars.githubusercontent.com/u/24870481?v=4?s=100" width="100px;" alt="James Kelley"/><br /><sub><b>James Kelley</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AJKCT+label%3Abug" title="Bug reports">🐛</a></td>
147
+ <td align="center" valign="top" width="14.28%"><a href="https://jamesmead.org/"><img src="https://avatars2.githubusercontent.com/u/3169?v=4?s=100" width="100px;" alt="James Mead"/><br /><sub><b>James Mead</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=floehopper" title="Code">💻</a></td>
148
+ </tr>
149
+ <tr>
150
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jamesiri"><img src="https://avatars1.githubusercontent.com/u/22601145?v=4?s=100" width="100px;" alt="James Siri"/><br /><sub><b>James Siri</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=jamesiri" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Ajamesiri" title="Maintenance">🚧</a></td>
151
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jasdel"><img src="https://avatars3.githubusercontent.com/u/961963?v=4?s=100" width="100px;" alt="Jason Del Ponte"/><br /><sub><b>Jason Del Ponte</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Ajasdel+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Ajasdel" title="Reviewed Pull Requests">👀</a></td>
152
+ <td align="center" valign="top" width="14.28%"><a href="http://aws.amazon.com/"><img src="https://avatars1.githubusercontent.com/u/193449?v=4?s=100" width="100px;" alt="Jason Fulghum"/><br /><sub><b>Jason Fulghum</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Afulghum+label%3Afeature-request" title="Feature requests">🤔</a> <a href="#projectManagement-fulghum" title="Project Management">📆</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Afulghum" title="Reviewed Pull Requests">👀</a></td>
153
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jmalins"><img src="https://avatars.githubusercontent.com/u/2001356?v=4?s=100" width="100px;" alt="Jeff Malins"/><br /><sub><b>Jeff Malins</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=jmalins" title="Code">💻</a></td>
154
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Jerry-AWS"><img src="https://avatars3.githubusercontent.com/u/52084730?v=4?s=100" width="100px;" alt="Jerry Kindall"/><br /><sub><b>Jerry Kindall</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=Jerry-AWS" title="Documentation">📖</a> <a href="https://github.com/aws/jsii/issues?q=author%3AJerry-AWS+label%3Afeature-request" title="Feature requests">🤔</a></td>
155
+ <td align="center" valign="top" width="14.28%"><a href="http://nmussy.github.io/"><img src="https://avatars0.githubusercontent.com/u/2505696?v=4?s=100" width="100px;" alt="Jimmy Gaussen"/><br /><sub><b>Jimmy Gaussen</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Anmussy+label%3Afeature-request" title="Feature requests">🤔</a></td>
156
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/jowe"><img src="https://avatars.githubusercontent.com/u/569011?v=4?s=100" width="100px;" alt="Johannes Weber"/><br /><sub><b>Johannes Weber</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=johannes-weber" title="Documentation">📖</a></td>
157
+ </tr>
158
+ <tr>
159
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jpantzlaff"><img src="https://avatars.githubusercontent.com/u/33850400?v=4?s=100" width="100px;" alt="John Pantzlaff"/><br /><sub><b>John Pantzlaff</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=jpantzlaff" title="Code">💻</a></td>
160
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jsteinich"><img src="https://avatars0.githubusercontent.com/u/3868754?v=4?s=100" width="100px;" alt="Jon Steinich"/><br /><sub><b>Jon Steinich</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Ajsteinich+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/issues?q=author%3Ajsteinich+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/commits?author=jsteinich" title="Code">💻</a></td>
161
+ <td align="center" valign="top" width="14.28%"><a href="https://joekiller.com/"><img src="https://avatars3.githubusercontent.com/u/1022919?v=4?s=100" width="100px;" alt="Joseph Lawson"/><br /><sub><b>Joseph Lawson</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Ajoekiller" title="Reviewed Pull Requests">👀</a></td>
162
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jpmartin2"><img src="https://avatars2.githubusercontent.com/u/2464249?v=4?s=100" width="100px;" alt="Joseph Martin"/><br /><sub><b>Joseph Martin</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Ajpmartin2+label%3Abug" title="Bug reports">🐛</a></td>
163
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/dxunix"><img src="https://avatars3.githubusercontent.com/u/11489831?v=4?s=100" width="100px;" alt="Junix"/><br /><sub><b>Junix</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Adxunix+label%3Abug" title="Bug reports">🐛</a></td>
164
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jusdino"><img src="https://avatars.githubusercontent.com/u/11840575?v=4?s=100" width="100px;" alt="Justin Frahm"/><br /><sub><b>Justin Frahm</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Ajusdino+label%3Abug" title="Bug reports">🐛</a></td>
165
+ <td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/jsdtaylor"><img src="https://avatars0.githubusercontent.com/u/15832750?v=4?s=100" width="100px;" alt="Justin Taylor"/><br /><sub><b>Justin Taylor</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Ajsdtaylor+label%3Abug" title="Bug reports">🐛</a></td>
166
+ </tr>
167
+ <tr>
168
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/kaizen3031593"><img src="https://avatars.githubusercontent.com/u/36202692?v=4?s=100" width="100px;" alt="Kaizen Conroy"/><br /><sub><b>Kaizen Conroy</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=kaizen3031593" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Akaizen3031593+label%3Abug" title="Bug reports">🐛</a></td>
169
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/kaizencc"><img src="https://avatars.githubusercontent.com/u/36202692?v=4?s=100" width="100px;" alt="Kaizen Conroy"/><br /><sub><b>Kaizen Conroy</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=kaizencc" title="Code">💻</a></td>
170
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/z3r0w0n"><img src="https://avatars.githubusercontent.com/u/6740347?v=4?s=100" width="100px;" alt="Kaushik Borra"/><br /><sub><b>Kaushik Borra</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Az3r0w0n+label%3Abug" title="Bug reports">🐛</a></td>
171
+ <td align="center" valign="top" width="14.28%"><a href="http://findable.no/"><img src="https://avatars.githubusercontent.com/u/51441?v=4?s=100" width="100px;" alt="Knut O. Hellan"/><br /><sub><b>Knut O. Hellan</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Akhellan+label%3Abug" title="Bug reports">🐛</a></td>
172
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/kiiadi"><img src="https://avatars3.githubusercontent.com/u/4661536?v=4?s=100" width="100px;" alt="Kyle Thomson"/><br /><sub><b>Kyle Thomson</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=kiiadi" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Akiiadi" title="Reviewed Pull Requests">👀</a></td>
173
+ <td align="center" valign="top" width="14.28%"><a href="https://stackoverflow.com/users/2116873/pedreiro"><img src="https://avatars3.githubusercontent.com/u/10764017?v=4?s=100" width="100px;" alt="Leandro Padua"/><br /><sub><b>Leandro Padua</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aleandropadua+label%3Abug" title="Bug reports">🐛</a></td>
174
+ <td align="center" valign="top" width="14.28%"><a href="https://liangzhou.dev"><img src="https://avatars.githubusercontent.com/u/1444104?v=4?s=100" width="100px;" alt="Liang Zhou"/><br /><sub><b>Liang Zhou</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Alzhoucs+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=lzhoucs" title="Code">💻</a></td>
175
+ </tr>
176
+ <tr>
177
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/madeline-k"><img src="https://avatars.githubusercontent.com/u/80541297?v=4?s=100" width="100px;" alt="Madeline Kusters"/><br /><sub><b>Madeline Kusters</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=madeline-k" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Amadeline-k+label%3Abug" title="Bug reports">🐛</a></td>
178
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/majasb"><img src="https://avatars2.githubusercontent.com/u/142510?v=4?s=100" width="100px;" alt="Maja S Bratseth"/><br /><sub><b>Maja S Bratseth</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Amajasb+label%3Abug" title="Bug reports">🐛</a></td>
179
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/marcosdiez"><img src="https://avatars2.githubusercontent.com/u/297498?v=4?s=100" width="100px;" alt="Marcos Diez"/><br /><sub><b>Marcos Diez</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Amarcosdiez+label%3Abug" title="Bug reports">🐛</a></td>
180
+ <td align="center" valign="top" width="14.28%"><a href="https://polothy.github.io"><img src="https://avatars.githubusercontent.com/u/634657?v=4?s=100" width="100px;" alt="Mark Nielsen"/><br /><sub><b>Mark Nielsen</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=polothy" title="Code">💻</a></td>
181
+ <td align="center" valign="top" width="14.28%"><a href="http://www.matthewbonig.com/"><img src="https://avatars2.githubusercontent.com/u/1559437?v=4?s=100" width="100px;" alt="Matthew Bonig"/><br /><sub><b>Matthew Bonig</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Ambonig+label%3Abug" title="Bug reports">🐛</a> <a href="#blog-mbonig" title="Blogposts">📝</a></td>
182
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mpiroc"><img src="https://avatars2.githubusercontent.com/u/1623344?v=4?s=100" width="100px;" alt="Matthew Pirocchi"/><br /><sub><b>Matthew Pirocchi</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=mpiroc" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Ampiroc+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Ampiroc" title="Reviewed Pull Requests">👀</a></td>
183
+ <td align="center" valign="top" width="14.28%"><a href="https://kane.mx"><img src="https://avatars.githubusercontent.com/u/843303?v=4?s=100" width="100px;" alt="Meng Xin Zhu"/><br /><sub><b>Meng Xin Zhu</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Azxkane+label%3Abug" title="Bug reports">🐛</a></td>
184
+ </tr>
185
+ <tr>
186
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mneil"><img src="https://avatars.githubusercontent.com/u/1605808?v=4?s=100" width="100px;" alt="Michael Neil"/><br /><sub><b>Michael Neil</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Amneil" title="Maintenance">🚧</a></td>
187
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mikelane"><img src="https://avatars0.githubusercontent.com/u/6543713?v=4?s=100" width="100px;" alt="Mike Lane"/><br /><sub><b>Mike Lane</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Amikelane+label%3Abug" title="Bug reports">🐛</a></td>
188
+ <td align="center" valign="top" width="14.28%"><a href="http://elastician.com/"><img src="https://avatars3.githubusercontent.com/u/2056?v=4?s=100" width="100px;" alt="Mitch Garnaat"/><br /><sub><b>Mitch Garnaat</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Agarnaat+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=garnaat" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Agarnaat+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Agarnaat" title="Reviewed Pull Requests">👀</a></td>
189
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/MrArnoldPalmer"><img src="https://avatars0.githubusercontent.com/u/7221111?v=4?s=100" width="100px;" alt="Mitchell Valine"/><br /><sub><b>Mitchell Valine</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AMrArnoldPalmer+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=MrArnoldPalmer" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3AMrArnoldPalmer+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3AMrArnoldPalmer" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3AMrArnoldPalmer" title="Reviewed Pull Requests">👀</a></td>
190
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/MohamadSoufan"><img src="https://avatars3.githubusercontent.com/u/28849417?v=4?s=100" width="100px;" alt="Mohamad Soufan"/><br /><sub><b>Mohamad Soufan</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=MohamadSoufan" title="Documentation">📖</a></td>
191
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mmogylenko"><img src="https://avatars.githubusercontent.com/u/7536624?v=4?s=100" width="100px;" alt="Mykola Mogylenko"/><br /><sub><b>Mykola Mogylenko</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Ammogylenko+label%3Abug" title="Bug reports">🐛</a></td>
192
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Naumel"><img src="https://avatars.githubusercontent.com/u/104374999?v=4?s=100" width="100px;" alt="Naumel"/><br /><sub><b>Naumel</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3ANaumel" title="Reviewed Pull Requests">👀</a></td>
193
+ </tr>
194
+ <tr>
195
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/NetaNir"><img src="https://avatars0.githubusercontent.com/u/8578043?v=4?s=100" width="100px;" alt="Neta Nir"/><br /><sub><b>Neta Nir</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=NetaNir" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3ANetaNir+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3ANetaNir" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3ANetaNir" title="Reviewed Pull Requests">👀</a></td>
196
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/njlynch"><img src="https://avatars3.githubusercontent.com/u/1376292?v=4?s=100" width="100px;" alt="Nick Lynch"/><br /><sub><b>Nick Lynch</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Anjlynch+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=njlynch" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Anjlynch" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Anjlynch" title="Reviewed Pull Requests">👀</a></td>
197
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/nija-at"><img src="https://avatars2.githubusercontent.com/u/16217941?v=4?s=100" width="100px;" alt="Niranjan Jayakar"/><br /><sub><b>Niranjan Jayakar</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Anija-at+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=nija-at" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Anija-at+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Anija-at" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Anija-at" title="Reviewed Pull Requests">👀</a></td>
198
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/NGL321"><img src="https://avatars0.githubusercontent.com/u/4944099?v=4?s=100" width="100px;" alt="Noah Litov"/><br /><sub><b>Noah Litov</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=NGL321" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3ANGL321" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3ANGL321" title="Reviewed Pull Requests">👀</a></td>
199
+ <td align="center" valign="top" width="14.28%"><a href="https://otaviomacedo.github.io/"><img src="https://avatars.githubusercontent.com/u/288203?v=4?s=100" width="100px;" alt="Otavio Macedo"/><br /><sub><b>Otavio Macedo</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=otaviomacedo" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Aotaviomacedo+label%3Abug" title="Bug reports">🐛</a></td>
200
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Pidz-b"><img src="https://avatars3.githubusercontent.com/u/47750432?v=4?s=100" width="100px;" alt="PIDZ - Bart "/><br /><sub><b>PIDZ - Bart </b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3APidz-b+label%3Afeature-request" title="Feature requests">🤔</a></td>
201
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/peterwoodworth"><img src="https://avatars.githubusercontent.com/u/44349620?v=4?s=100" width="100px;" alt="Peter Woodworth"/><br /><sub><b>Peter Woodworth</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Apeterwoodworth" title="Maintenance">🚧</a></td>
202
+ </tr>
203
+ <tr>
204
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/donicek"><img src="https://avatars.githubusercontent.com/u/8548012?v=4?s=100" width="100px;" alt="Petr Kacer"/><br /><sub><b>Petr Kacer</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Adonicek+label%3Abug" title="Bug reports">🐛</a></td>
205
+ <td align="center" valign="top" width="14.28%"><a href="http://petrabarus.net/"><img src="https://avatars3.githubusercontent.com/u/523289?v=4?s=100" width="100px;" alt="Petra Barus"/><br /><sub><b>Petra Barus</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=petrabarus" title="Code">💻</a></td>
206
+ <td align="center" valign="top" width="14.28%"><a href="http://philcali.me/"><img src="https://avatars1.githubusercontent.com/u/105208?v=4?s=100" width="100px;" alt="Philip Cali"/><br /><sub><b>Philip Cali</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aphilcali+label%3Afeature-request" title="Feature requests">🤔</a></td>
207
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Kent1"><img src="https://avatars1.githubusercontent.com/u/83018?v=4?s=100" width="100px;" alt="Quentin Loos"/><br /><sub><b>Quentin Loos</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AKent1+label%3Afeature-request" title="Feature requests">🤔</a></td>
208
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Console32"><img src="https://avatars1.githubusercontent.com/u/4870099?v=4?s=100" width="100px;" alt="Raphael"/><br /><sub><b>Raphael</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AConsole32+label%3Abug" title="Bug reports">🐛</a></td>
209
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/richardhboyd"><img src="https://avatars0.githubusercontent.com/u/58230111?v=4?s=100" width="100px;" alt="Richard H Boyd"/><br /><sub><b>Richard H Boyd</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Arichardhboyd+label%3Abug" title="Bug reports">🐛</a></td>
210
+ <td align="center" valign="top" width="14.28%"><a href="http://rix0r.nl/"><img src="https://avatars2.githubusercontent.com/u/524162?v=4?s=100" width="100px;" alt="Rico Huijbers"/><br /><sub><b>Rico Huijbers</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Arix0rrr+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=rix0rrr" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Arix0rrr+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Arix0rrr" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Arix0rrr" title="Reviewed Pull Requests">👀</a></td>
211
+ </tr>
212
+ <tr>
213
+ <td align="center" valign="top" width="14.28%"><a href="https://keybase.io/romainmuller"><img src="https://avatars2.githubusercontent.com/u/411689?v=4?s=100" width="100px;" alt="Romain Marcadier"/><br /><sub><b>Romain Marcadier</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3ARomainMuller+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=RomainMuller" title="Code">💻</a> <a href="#design-RomainMuller" title="Design">🎨</a> <a href="https://github.com/aws/jsii/issues?q=author%3ARomainMuller+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3ARomainMuller" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3ARomainMuller" title="Reviewed Pull Requests">👀</a> <a href="#blog-RomainMuller" title="Blogposts">📝</a></td>
214
+ <td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/sadikkuzu/"><img src="https://avatars2.githubusercontent.com/u/23168063?v=4?s=100" width="100px;" alt="SADIK KUZU"/><br /><sub><b>SADIK KUZU</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Asadikkuzu" title="Reviewed Pull Requests">👀</a></td>
215
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/skarode96"><img src="https://avatars2.githubusercontent.com/u/24491216?v=4?s=100" width="100px;" alt="SK"/><br /><sub><b>SK</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Askarode96+label%3Afeature-request" title="Feature requests">🤔</a></td>
216
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/spfink"><img src="https://avatars1.githubusercontent.com/u/20525381?v=4?s=100" width="100px;" alt="Sam Fink"/><br /><sub><b>Sam Fink</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=spfink" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Aspfink" title="Reviewed Pull Requests">👀</a></td>
217
+ <td align="center" valign="top" width="14.28%"><a href="https://punch.dev/"><img src="https://avatars1.githubusercontent.com/u/38672686?v=4?s=100" width="100px;" alt="Sam Goodwin"/><br /><sub><b>Sam Goodwin</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Asam-goodwin" title="Reviewed Pull Requests">👀</a></td>
218
+ <td align="center" valign="top" width="14.28%"><a href="https://skorfmann.com/"><img src="https://avatars1.githubusercontent.com/u/136789?v=4?s=100" width="100px;" alt="Sebastian Korfmann"/><br /><sub><b>Sebastian Korfmann</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Askorfmann+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=skorfmann" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3Askorfmann+label%3Afeature-request" title="Feature requests">🤔</a></td>
219
+ <td align="center" valign="top" width="14.28%"><a href="https://sepehrlaal.com/"><img src="https://avatars.githubusercontent.com/u/5657848?v=4?s=100" width="100px;" alt="Sepehr Laal"/><br /><sub><b>Sepehr Laal</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3A3p3r+label%3Abug" title="Bug reports">🐛</a></td>
220
+ </tr>
221
+ <tr>
222
+ <td align="center" valign="top" width="14.28%"><a href="https://digitalsanctum.com/"><img src="https://avatars3.githubusercontent.com/u/30923?v=4?s=100" width="100px;" alt="Shane Witbeck"/><br /><sub><b>Shane Witbeck</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Adigitalsanctum+label%3Afeature-request" title="Feature requests">🤔</a></td>
223
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/shivlaks"><img src="https://avatars0.githubusercontent.com/u/32604953?v=4?s=100" width="100px;" alt="Shiv Lakshminarayan"/><br /><sub><b>Shiv Lakshminarayan</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=shivlaks" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Ashivlaks" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3Ashivlaks" title="Reviewed Pull Requests">👀</a></td>
224
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/SomayaB"><img src="https://avatars3.githubusercontent.com/u/23043132?v=4?s=100" width="100px;" alt="Somaya"/><br /><sub><b>Somaya</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=SomayaB" title="Code">💻</a> <a href="https://github.com/aws/jsii/issues?q=author%3ASomayaB+label%3Afeature-request" title="Feature requests">🤔</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3ASomayaB" title="Maintenance">🚧</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+reviewed-by%3ASomayaB" title="Reviewed Pull Requests">👀</a></td>
225
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/skuenzli"><img src="https://avatars.githubusercontent.com/u/869201?v=4?s=100" width="100px;" alt="Stephen Kuenzli"/><br /><sub><b>Stephen Kuenzli</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=skuenzli" title="Documentation">📖</a></td>
226
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/touchez-du-bois"><img src="https://avatars.githubusercontent.com/u/434017?v=4?s=100" width="100px;" alt="Takahiro Sugiura"/><br /><sub><b>Takahiro Sugiura</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=touchez-du-bois" title="Documentation">📖</a></td>
227
+ <td align="center" valign="top" width="14.28%"><a href="https://gitter.im/"><img src="https://avatars2.githubusercontent.com/u/8518239?v=4?s=100" width="100px;" alt="The Gitter Badger"/><br /><sub><b>The Gitter Badger</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=gitter-badger" title="Code">💻</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Agitter-badger" title="Maintenance">🚧</a></td>
228
+ <td align="center" valign="top" width="14.28%"><a href="https://medium.com/@thomaspoignant"><img src="https://avatars2.githubusercontent.com/u/17908063?v=4?s=100" width="100px;" alt="Thomas Poignant"/><br /><sub><b>Thomas Poignant</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Athomaspoignant+label%3Abug" title="Bug reports">🐛</a></td>
229
+ </tr>
230
+ <tr>
231
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ThomasSteinbach"><img src="https://avatars0.githubusercontent.com/u/1683246?v=4?s=100" width="100px;" alt="Thomas Steinbach"/><br /><sub><b>Thomas Steinbach</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AThomasSteinbach+label%3Abug" title="Bug reports">🐛</a></td>
232
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/hoegertn"><img src="https://avatars2.githubusercontent.com/u/1287829?v=4?s=100" width="100px;" alt="Thorsten Hoeger"/><br /><sub><b>Thorsten Hoeger</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=hoegertn" title="Code">💻</a></td>
233
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/serverlessunicorn"><img src="https://avatars1.githubusercontent.com/u/54867311?v=4?s=100" width="100px;" alt="Tim Wagner"/><br /><sub><b>Tim Wagner</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aserverlessunicorn+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/issues?q=author%3Aserverlessunicorn+label%3Afeature-request" title="Feature requests">🤔</a></td>
234
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tobli"><img src="https://avatars3.githubusercontent.com/u/540266?v=4?s=100" width="100px;" alt="Tobias Lidskog"/><br /><sub><b>Tobias Lidskog</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=tobli" title="Code">💻</a></td>
235
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/TomBonnerAtDerivitec"><img src="https://avatars.githubusercontent.com/u/83637254?v=4?s=100" width="100px;" alt="Tom Bonner"/><br /><sub><b>Tom Bonner</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3ATomBonnerAtDerivitec+label%3Abug" title="Bug reports">🐛</a></td>
236
+ <td align="center" valign="top" width="14.28%"><a href="https://ty.coghlan.dev/"><img src="https://avatars2.githubusercontent.com/u/15920577?v=4?s=100" width="100px;" alt="Ty Coghlan"/><br /><sub><b>Ty Coghlan</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AOphirr33+label%3Abug" title="Bug reports">🐛</a></td>
237
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tvanhens"><img src="https://avatars1.githubusercontent.com/u/5342795?v=4?s=100" width="100px;" alt="Tyler van Hensbergen"/><br /><sub><b>Tyler van Hensbergen</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Atvanhens+label%3Afeature-request" title="Feature requests">🤔</a></td>
238
+ </tr>
239
+ <tr>
240
+ <td align="center" valign="top" width="14.28%"><a href="http://ultidev.com/Products/"><img src="https://avatars1.githubusercontent.com/u/757185?v=4?s=100" width="100px;" alt="Vlad Hrybok"/><br /><sub><b>Vlad Hrybok</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Avgribok+label%3Abug" title="Bug reports">🐛</a></td>
241
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Lanayx"><img src="https://avatars2.githubusercontent.com/u/3329606?v=4?s=100" width="100px;" alt="Vladimir Shchur"/><br /><sub><b>Vladimir Shchur</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3ALanayx+label%3Abug" title="Bug reports">🐛</a></td>
242
+ <td align="center" valign="top" width="14.28%"><a href="http://yanex.org/"><img src="https://avatars2.githubusercontent.com/u/95996?v=4?s=100" width="100px;" alt="Yan Zhulanow"/><br /><sub><b>Yan Zhulanow</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=yanex" title="Code">💻</a></td>
243
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/yglcode"><img src="https://avatars.githubusercontent.com/u/11893614?v=4?s=100" width="100px;" alt="Yigong Liu"/><br /><sub><b>Yigong Liu</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Ayglcode+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/issues?q=author%3Ayglcode+label%3Afeature-request" title="Feature requests">🤔</a></td>
244
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ZachBien"><img src="https://avatars.githubusercontent.com/u/1245628?v=4?s=100" width="100px;" alt="Zach Bienenfeld"/><br /><sub><b>Zach Bienenfeld</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3AZachBien+label%3Abug" title="Bug reports">🐛</a></td>
245
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ajnarang"><img src="https://avatars3.githubusercontent.com/u/52025281?v=4?s=100" width="100px;" alt="ajnarang"/><br /><sub><b>ajnarang</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aajnarang+label%3Afeature-request" title="Feature requests">🤔</a></td>
246
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/aniljava"><img src="https://avatars.githubusercontent.com/u/412569?v=4?s=100" width="100px;" alt="aniljava"/><br /><sub><b>aniljava</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=aniljava" title="Code">💻</a></td>
247
+ </tr>
248
+ <tr>
249
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/arnogeurts-sqills"><img src="https://avatars.githubusercontent.com/u/79304871?v=4?s=100" width="100px;" alt="arnogeurts-sqills"/><br /><sub><b>arnogeurts-sqills</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aarnogeurts-sqills+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=arnogeurts-sqills" title="Code">💻</a></td>
250
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/cn-cit"><img src="https://avatars.githubusercontent.com/u/27255477?v=4?s=100" width="100px;" alt="cn-cit"/><br /><sub><b>cn-cit</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Acn-cit+label%3Abug" title="Bug reports">🐛</a></td>
251
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/deccy-mcc"><img src="https://avatars0.githubusercontent.com/u/45844893?v=4?s=100" width="100px;" alt="deccy-mcc"/><br /><sub><b>deccy-mcc</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Adeccy-mcc+label%3Abug" title="Bug reports">🐛</a></td>
252
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/apps/dependabot-preview"><img src="https://avatars3.githubusercontent.com/in/2141?v=4?s=100" width="100px;" alt="dependabot-preview[bot]"/><br /><sub><b>dependabot-preview[bot]</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Adependabot-preview[bot]+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Adependabot-preview[bot]" title="Maintenance">🚧</a></td>
253
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/apps/dependabot"><img src="https://avatars0.githubusercontent.com/in/29110?v=4?s=100" width="100px;" alt="dependabot[bot]"/><br /><sub><b>dependabot[bot]</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Adependabot[bot]" title="Maintenance">🚧</a></td>
254
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/dheffx"><img src="https://avatars0.githubusercontent.com/u/22029918?v=4?s=100" width="100px;" alt="dheffx"/><br /><sub><b>dheffx</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Adheffx+label%3Abug" title="Bug reports">🐛</a></td>
255
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/gregswdl"><img src="https://avatars0.githubusercontent.com/u/47365273?v=4?s=100" width="100px;" alt="gregswdl"/><br /><sub><b>gregswdl</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Agregswdl+label%3Abug" title="Bug reports">🐛</a></td>
256
+ </tr>
257
+ <tr>
258
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/guyroberts21"><img src="https://avatars.githubusercontent.com/u/47118902?v=4?s=100" width="100px;" alt="guyroberts21"/><br /><sub><b>guyroberts21</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=guyroberts21" title="Documentation">📖</a></td>
259
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mattBrzezinski"><img src="https://avatars.githubusercontent.com/u/4356074?v=4?s=100" width="100px;" alt="mattBrzezinski"/><br /><sub><b>mattBrzezinski</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=mattBrzezinski" title="Documentation">📖</a></td>
260
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mergify"><img src="https://avatars.githubusercontent.com/u/18240476?v=4?s=100" width="100px;" alt="mergify"/><br /><sub><b>mergify</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Amergify" title="Maintenance">🚧</a></td>
261
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/apps/mergify"><img src="https://avatars1.githubusercontent.com/in/10562?v=4?s=100" width="100px;" alt="mergify[bot]"/><br /><sub><b>mergify[bot]</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Amergify[bot]" title="Maintenance">🚧</a></td>
262
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/nathannaveen"><img src="https://avatars.githubusercontent.com/u/42319948?v=4?s=100" width="100px;" alt="nathannaveen"/><br /><sub><b>nathannaveen</b></sub></a><br /><a href="https://github.com/aws/jsii/pulls?q=is%3Apr+author%3Anathannaveen" title="Maintenance">🚧</a></td>
263
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/seiyashima"><img src="https://avatars2.githubusercontent.com/u/4947101?v=4?s=100" width="100px;" alt="seiyashima42"/><br /><sub><b>seiyashima42</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Aseiyashima+label%3Abug" title="Bug reports">🐛</a> <a href="https://github.com/aws/jsii/commits?author=seiyashima" title="Code">💻</a> <a href="https://github.com/aws/jsii/commits?author=seiyashima" title="Documentation">📖</a></td>
264
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/sullis"><img src="https://avatars3.githubusercontent.com/u/30938?v=4?s=100" width="100px;" alt="sullis"/><br /><sub><b>sullis</b></sub></a><br /><a href="https://github.com/aws/jsii/commits?author=sullis" title="Code">💻</a></td>
265
+ </tr>
266
+ <tr>
267
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/vaneek"><img src="https://avatars1.githubusercontent.com/u/8113305?v=4?s=100" width="100px;" alt="vaneek"/><br /><sub><b>vaneek</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Avaneek+label%3Abug" title="Bug reports">🐛</a></td>
268
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/wendysophie"><img src="https://avatars.githubusercontent.com/u/54415551?v=4?s=100" width="100px;" alt="wendysophie"/><br /><sub><b>wendysophie</b></sub></a><br /><a href="https://github.com/aws/jsii/issues?q=author%3Awendysophie+label%3Abug" title="Bug reports">🐛</a></td>
269
+ </tr>
270
+ </tbody>
271
+ </table>
272
+
273
+ <!-- markdownlint-restore -->
274
+ <!-- prettier-ignore-end -->
275
+
276
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
277
+
278
+ This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification.
279
+ Contributions of any kind welcome!
280
+
281
+ ## :balance_scale: License
282
+
283
+ **jsii** is distributed under the [Apache License, Version 2.0][apache-2.0].
284
+
285
+ See [LICENSE](./LICENSE) and [NOTICE](./NOTICE) for more information.
286
+
287
+ [apache-2.0]: https://www.apache.org/licenses/LICENSE-2.0