@aws-amplify/graphql-api-construct 1.18.8-gen2-migration-0205.0 → 1.19.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 (242) hide show
  1. package/.jsii +85 -44
  2. package/API.md +1 -1
  3. package/CHANGELOG.md +10 -2
  4. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  5. package/lib/amplify-graphql-api.js +4 -2
  6. package/lib/amplify-graphql-definition.js +1 -1
  7. package/lib/sql-model-datasource-strategy.js +1 -1
  8. package/lib/types.d.ts +1 -1
  9. package/lib/types.js +1 -1
  10. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/conversation_handler_construct.d.ts +13 -0
  11. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/conversation_handler_construct.js +17 -4
  12. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.js +89 -71
  13. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/types.d.ts +1 -0
  14. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/types.js +1 -1
  15. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/README.md +9 -0
  16. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/backend_entry_point_locator.d.ts +14 -0
  17. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/backend_entry_point_locator.js +37 -0
  18. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/backend_identifier_conversions.d.ts +22 -0
  19. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/backend_identifier_conversions.js +90 -0
  20. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/caller_directory_extractor.d.ts +14 -0
  21. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/caller_directory_extractor.js +70 -0
  22. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk/enum_converters.d.ts +18 -0
  23. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk/enum_converters.js +116 -0
  24. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk/index.d.ts +3 -0
  25. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk/index.js +7 -0
  26. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.d.ts +12 -0
  27. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.js +16 -0
  28. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/config/local_configuration_controller.d.ts +45 -0
  29. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/config/local_configuration_controller.js +125 -0
  30. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/config/local_configuration_controller_factory.d.ts +23 -0
  31. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/config/local_configuration_controller_factory.js +29 -0
  32. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_error.d.ts +64 -0
  33. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_error.js +267 -0
  34. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_library_fault.d.ts +21 -0
  35. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_library_fault.js +27 -0
  36. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_user_error.d.ts +21 -0
  37. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_user_error.js +27 -0
  38. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/index.d.ts +4 -0
  39. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/index.js +20 -0
  40. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/extract_file_path_from_stack_trace_line.d.ts +13 -0
  41. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/extract_file_path_from_stack_trace_line.js +61 -0
  42. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/index.d.ts +15 -0
  43. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/index.internal.d.ts +4 -0
  44. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/index.internal.js +35 -0
  45. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/index.js +35 -0
  46. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/naming_convention_conversions.d.ts +13 -0
  47. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/naming_convention_conversions.js +23 -0
  48. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/object_accumulator.d.ts +45 -0
  49. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/object_accumulator.js +99 -0
  50. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/package_json_reader.d.ts +33 -0
  51. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/package_json_reader.js +56 -0
  52. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/parameter_path_conversions.d.ts +19 -0
  53. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/parameter_path_conversions.js +79 -0
  54. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/tag_name.d.ts +4 -0
  55. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/tag_name.js +8 -0
  56. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/account_id_fetcher.d.ts +14 -0
  57. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/account_id_fetcher.js +38 -0
  58. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/constants.d.ts +13 -0
  59. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/constants.js +16 -0
  60. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/get_installation_id.d.ts +5 -0
  61. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/get_installation_id.js +15 -0
  62. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/get_usage_data_url.d.ts +6 -0
  63. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/get_usage_data_url.js +24 -0
  64. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/noop_usage_data_emitter.d.ts +15 -0
  65. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/noop_usage_data_emitter.js +24 -0
  66. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/serializable_error.d.ts +27 -0
  67. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/serializable_error.js +70 -0
  68. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data.d.ts +29 -0
  69. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data.js +3 -0
  70. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data_emitter.d.ts +27 -0
  71. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data_emitter.js +146 -0
  72. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data_emitter_factory.d.ts +16 -0
  73. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data_emitter_factory.js +27 -0
  74. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/package.json +45 -0
  75. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/README.md +9 -0
  76. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/amplify_function.d.ts +4 -0
  77. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/amplify_function.js +3 -0
  78. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/amplify_resource_group_name.d.ts +7 -0
  79. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/amplify_resource_group_name.js +3 -0
  80. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/auth_resources.d.ts +106 -0
  81. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/auth_resources.js +3 -0
  82. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/aws_client_provider.d.ts +5 -0
  83. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/aws_client_provider.js +3 -0
  84. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_identifier.d.ts +56 -0
  85. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_identifier.js +3 -0
  86. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_output.d.ts +6 -0
  87. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_output.js +3 -0
  88. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_secret_resolver.d.ts +22 -0
  89. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_secret_resolver.js +3 -0
  90. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_creator.d.ts +8 -0
  91. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_creator.js +3 -0
  92. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_resolver.d.ts +7 -0
  93. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_resolver.js +3 -0
  94. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_container.d.ts +35 -0
  95. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_container.js +3 -0
  96. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_factory.d.ts +24 -0
  97. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_factory.js +3 -0
  98. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deep_partial.d.ts +17 -0
  99. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deep_partial.js +3 -0
  100. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deployment_type.d.ts +8 -0
  101. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deployment_type.js +3 -0
  102. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/function_resources.d.ts +8 -0
  103. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/function_resources.js +3 -0
  104. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/import_path_verifier.d.ts +14 -0
  105. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/import_path_verifier.js +3 -0
  106. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/index.d.ts +27 -0
  107. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/index.js +43 -0
  108. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/log_level.d.ts +2 -0
  109. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/log_level.js +3 -0
  110. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/log_retention.d.ts +2 -0
  111. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/log_retention.js +3 -0
  112. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_retrieval_strategy.d.ts +11 -0
  113. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_retrieval_strategy.js +3 -0
  114. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_storage_strategy.d.ts +10 -0
  115. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_storage_strategy.js +3 -0
  116. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/package_manager_controller.d.ts +30 -0
  117. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/package_manager_controller.js +3 -0
  118. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_access_acceptor.d.ts +27 -0
  119. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_access_acceptor.js +3 -0
  120. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_name_validator.d.ts +10 -0
  121. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_name_validator.js +3 -0
  122. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_provider.d.ts +10 -0
  123. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_provider.js +3 -0
  124. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/ssm_environment_entries_generator.d.ts +5 -0
  125. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/ssm_environment_entries_generator.js +3 -0
  126. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/stable_backend_identifiers.d.ts +4 -0
  127. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/stable_backend_identifiers.js +3 -0
  128. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/stack_provider.d.ts +5 -0
  129. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/stack_provider.js +3 -0
  130. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/package.json +21 -0
  131. package/node_modules/@aws-amplify/ai-constructs/package.json +5 -5
  132. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +7 -1
  133. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js +2 -2
  134. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/graphql-auth-transformer.js.map +1 -1
  135. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/iam.js +2 -2
  136. package/node_modules/@aws-amplify/graphql-auth-transformer/lib/utils/iam.js.map +1 -1
  137. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +13 -13
  138. package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +7 -1
  139. package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +12 -12
  140. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +5 -1
  141. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +7 -7
  142. package/node_modules/@aws-amplify/graphql-directives/API.md +3 -0
  143. package/node_modules/@aws-amplify/graphql-directives/CHANGELOG.md +6 -0
  144. package/node_modules/@aws-amplify/graphql-directives/LICENSE +201 -0
  145. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.d.ts +1 -0
  146. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.d.ts.map +1 -1
  147. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.js +3 -1
  148. package/node_modules/@aws-amplify/graphql-directives/lib/directives/index.js.map +1 -1
  149. package/node_modules/@aws-amplify/graphql-directives/lib/directives/validate.d.ts +3 -0
  150. package/node_modules/@aws-amplify/graphql-directives/lib/directives/validate.d.ts.map +1 -0
  151. package/node_modules/@aws-amplify/graphql-directives/lib/directives/validate.js +30 -0
  152. package/node_modules/@aws-amplify/graphql-directives/lib/directives/validate.js.map +1 -0
  153. package/node_modules/@aws-amplify/graphql-directives/lib/index.d.ts.map +1 -1
  154. package/node_modules/@aws-amplify/graphql-directives/lib/index.js +1 -0
  155. package/node_modules/@aws-amplify/graphql-directives/lib/index.js.map +1 -1
  156. package/node_modules/@aws-amplify/graphql-directives/package.json +3 -2
  157. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +8 -0
  158. package/node_modules/@aws-amplify/graphql-function-transformer/LICENSE +201 -0
  159. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +8 -7
  160. package/node_modules/@aws-amplify/graphql-generation-transformer/CHANGELOG.md +10 -0
  161. package/node_modules/@aws-amplify/graphql-generation-transformer/LICENSE +201 -0
  162. package/node_modules/@aws-amplify/graphql-generation-transformer/lib/grapqhl-generation-transformer.js +2 -1
  163. package/node_modules/@aws-amplify/graphql-generation-transformer/lib/grapqhl-generation-transformer.js.map +1 -1
  164. package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +8 -7
  165. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +8 -0
  166. package/node_modules/@aws-amplify/graphql-http-transformer/LICENSE +201 -0
  167. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +8 -7
  168. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +5 -1
  169. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +8 -8
  170. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +5 -1
  171. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  172. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +11 -11
  173. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +8 -1
  174. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  175. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  176. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  177. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.d.ts.map +1 -1
  178. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js +4 -3
  179. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-dynamo-model-resource-generator.js.map +1 -1
  180. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.js +4 -4
  181. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/dynamo-model-resource-generator.js.map +1 -1
  182. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +7 -7
  183. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +8 -0
  184. package/node_modules/@aws-amplify/graphql-predictions-transformer/LICENSE +201 -0
  185. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  186. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +8 -7
  187. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +5 -1
  188. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +9 -9
  189. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +5 -1
  190. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  191. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +8 -8
  192. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +5 -1
  193. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +8 -8
  194. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +7 -1
  195. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.d.ts.map +1 -1
  196. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js +2 -0
  197. package/node_modules/@aws-amplify/graphql-transformer/lib/graphql-transformer.js.map +1 -1
  198. package/node_modules/@aws-amplify/graphql-transformer/package.json +20 -19
  199. package/node_modules/@aws-amplify/graphql-transformer/src/graphql-transformer.ts +3 -0
  200. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +11 -0
  201. package/node_modules/@aws-amplify/graphql-transformer-core/LICENSE +201 -0
  202. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/sync-utils.js +4 -4
  203. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformation/sync-utils.js.map +1 -1
  204. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.d.ts.map +1 -1
  205. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.js +4 -3
  206. package/node_modules/@aws-amplify/graphql-transformer-core/lib/transformer-context/resolver.js.map +1 -1
  207. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +6 -5
  208. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +4 -0
  209. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +2 -2
  210. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  211. package/node_modules/@aws-amplify/graphql-validate-transformer/API.md +27 -0
  212. package/node_modules/@aws-amplify/graphql-validate-transformer/CHANGELOG.md +10 -0
  213. package/node_modules/@aws-amplify/graphql-validate-transformer/LICENSE +201 -0
  214. package/node_modules/@aws-amplify/graphql-validate-transformer/jest.config.js +5 -0
  215. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/graphql-validate-transformer.d.ts +11 -0
  216. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/graphql-validate-transformer.d.ts.map +1 -0
  217. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/graphql-validate-transformer.js +96 -0
  218. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/graphql-validate-transformer.js.map +1 -0
  219. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/index.d.ts +2 -0
  220. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/index.d.ts.map +1 -0
  221. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/index.js +6 -0
  222. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/index.js.map +1 -0
  223. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/types.d.ts +25 -0
  224. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/types.d.ts.map +1 -0
  225. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/types.js +7 -0
  226. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/types.js.map +1 -0
  227. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/validators.d.ts +4 -0
  228. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/validators.d.ts.map +1 -0
  229. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/validators.js +83 -0
  230. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/validators.js.map +1 -0
  231. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/vtl-generator.d.ts +4 -0
  232. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/vtl-generator.d.ts.map +1 -0
  233. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/vtl-generator.js +57 -0
  234. package/node_modules/@aws-amplify/graphql-validate-transformer/lib/vtl-generator.js.map +1 -0
  235. package/node_modules/@aws-amplify/graphql-validate-transformer/package.json +46 -0
  236. package/node_modules/lodash.snakecase/LICENSE +47 -0
  237. package/node_modules/lodash.snakecase/README.md +18 -0
  238. package/node_modules/lodash.snakecase/index.js +435 -0
  239. package/node_modules/lodash.snakecase/package.json +17 -0
  240. package/package.json +27 -23
  241. package/src/amplify-graphql-api.ts +7 -1
  242. package/src/types.ts +1 -1
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AmplifyError = void 0;
4
+ const _1 = require(".");
5
+ /**
6
+ * Base class for all Amplify errors or faults
7
+ */
8
+ class AmplifyError extends Error {
9
+ name;
10
+ classification;
11
+ options;
12
+ cause;
13
+ serializedError;
14
+ message;
15
+ resolution;
16
+ details;
17
+ link;
18
+ code;
19
+ /**
20
+ * You should use AmplifyUserError or AmplifyLibraryFault to throw an error.
21
+ * @param name - a user friendly name for the exception
22
+ * @param classification - LibraryFault or UserError
23
+ * @param options - error stack, resolution steps, details, or help links
24
+ * @param cause If you are throwing this exception from within a catch block,
25
+ * you must provide the exception that was caught.
26
+ * @example
27
+ * try {
28
+ * ...
29
+ * } catch (error){
30
+ * throw new AmplifyError(...,...,error);
31
+ * }
32
+ */
33
+ constructor(name, classification, options, cause) {
34
+ // If an AmplifyError was already thrown, we must allow it to reach the user.
35
+ // This ensures that resolution steps, and the original error are bubbled up.
36
+ super(options.message, { cause });
37
+ this.name = name;
38
+ this.classification = classification;
39
+ this.options = options;
40
+ this.cause = cause;
41
+ // https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
42
+ Object.setPrototypeOf(this, AmplifyError.prototype);
43
+ this.message = options.message;
44
+ this.details = options.details;
45
+ this.resolution = options.resolution;
46
+ this.code = options.code;
47
+ this.link = options.link;
48
+ if (cause && AmplifyError.isAmplifyError(cause)) {
49
+ cause.serializedError = undefined;
50
+ }
51
+ this.serializedError = Buffer.from(JSON.stringify({
52
+ name,
53
+ classification,
54
+ options,
55
+ cause,
56
+ }, errorSerializer)).toString('base64');
57
+ }
58
+ static fromStderr = (_stderr) => {
59
+ try {
60
+ const serializedString = tryFindSerializedErrorJSONString(_stderr);
61
+ if (!serializedString) {
62
+ return undefined;
63
+ }
64
+ const { name, classification, options, cause } = JSON.parse(serializedString);
65
+ let serializedCause = cause;
66
+ if (cause && ErrorSerializerDeserializer.isSerializedErrorType(cause)) {
67
+ serializedCause = ErrorSerializerDeserializer.deserialize(cause);
68
+ }
69
+ return classification === 'ERROR'
70
+ ? new _1.AmplifyUserError(name, options, serializedCause)
71
+ : new _1.AmplifyFault(name, options, serializedCause);
72
+ }
73
+ catch (error) {
74
+ // cannot deserialize
75
+ return undefined;
76
+ }
77
+ };
78
+ /**
79
+ * This function is a type predicate for AmplifyError.
80
+ * See https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates.
81
+ *
82
+ * Checks if error is an AmplifyError by inspecting if required properties are set.
83
+ * This is recommended instead of instanceof operator.
84
+ * The instance of operator does not work as expected if AmplifyError class is loaded
85
+ * from multiple sources, for example when package manager decides to not de-duplicate dependencies.
86
+ * See https://github.com/nodejs/node/issues/17943.
87
+ */
88
+ static isAmplifyError = (error) => {
89
+ return (error instanceof Error &&
90
+ 'classification' in error &&
91
+ (error.classification === 'ERROR' || error.classification === 'FAULT') &&
92
+ typeof error.name === 'string' &&
93
+ typeof error.message === 'string');
94
+ };
95
+ static fromError = (error) => {
96
+ if (AmplifyError.isAmplifyError(error)) {
97
+ return error;
98
+ }
99
+ const errorMessage = error instanceof Error
100
+ ? `${error.name}: ${error.message}`
101
+ : 'An unknown error happened. Check downstream error';
102
+ if (error instanceof Error && isCredentialsError(error)) {
103
+ return new _1.AmplifyUserError('CredentialsError', {
104
+ message: errorMessage,
105
+ resolution: 'Ensure your AWS credentials are correctly set and refreshed.',
106
+ }, error);
107
+ }
108
+ if (error instanceof Error && isYargsValidationError(error)) {
109
+ return new _1.AmplifyUserError('InvalidCommandInputError', {
110
+ message: errorMessage,
111
+ resolution: 'Please see the underlying error message for resolution.',
112
+ }, error);
113
+ }
114
+ if (error instanceof Error && isENotFoundError(error)) {
115
+ return new _1.AmplifyUserError('DomainNotFoundError', {
116
+ message: 'Unable to establish a connection to a domain',
117
+ resolution: 'Ensure domain name is correct and network connection is stable.',
118
+ }, error);
119
+ }
120
+ /**
121
+ * catches SyntaxErrors that were somehow not instances of AmplifyError
122
+ * this can be removed once we can properly identify where AmplifyError is being stripped off
123
+ */
124
+ if (error instanceof Error && isSyntaxError(error)) {
125
+ return new _1.AmplifyUserError('SyntaxError', {
126
+ message: error.message,
127
+ resolution: 'Check your backend definition in the `amplify` folder for syntax and type errors.',
128
+ }, error);
129
+ }
130
+ if (error instanceof Error && isInsufficientDiskSpaceError(error)) {
131
+ return new _1.AmplifyUserError('InsufficientDiskSpaceError', {
132
+ message: error.message,
133
+ resolution: 'There appears to be insufficient space on your system to finish. Clear up some disk space and try again.',
134
+ }, error);
135
+ }
136
+ if (error instanceof Error && isOutOfMemoryError(error)) {
137
+ return new _1.AmplifyUserError('InsufficientMemorySpaceError', {
138
+ message: error.message,
139
+ resolution: 'There appears to be insufficient memory on your system to finish. Close other applications or restart your system and try again.',
140
+ }, error);
141
+ }
142
+ return new _1.AmplifyFault('UnknownFault', {
143
+ message: errorMessage,
144
+ }, error instanceof Error ? error : new Error(String(error)));
145
+ };
146
+ }
147
+ exports.AmplifyError = AmplifyError;
148
+ const tryFindSerializedErrorJSONString = (_stderr) => {
149
+ let errorJSONString = tryFindSerializedErrorJSONStringV2(_stderr);
150
+ if (!errorJSONString) {
151
+ errorJSONString = tryFindSerializedErrorJSONStringV1(_stderr);
152
+ }
153
+ return errorJSONString;
154
+ };
155
+ /**
156
+ * Tries to find serialized string assuming that it is in a form of serialized JSON encoded with base64.
157
+ */
158
+ const tryFindSerializedErrorJSONStringV2 = (_stderr) => {
159
+ /**
160
+ * `["']?serializedError["']?:[ ]?` captures the start of the serialized error. The quotes depend on which OS is being used
161
+ * `(?:`([a-zA-Z0-9+/=]+?)`|'([a-zA-Z0-9+/=]+?)'|"([a-zA-Z0-9+/=]+?)")` captures the rest of the serialized string enclosed in either single quote,
162
+ * double quotes or back-ticks.
163
+ */
164
+ const extractionRegex = /["']?serializedError["']?:[ ]?(?:`([a-zA-Z0-9+/=]+?)`|'([a-zA-Z0-9+/=]+?)'|"([a-zA-Z0-9+/=]+?)")/;
165
+ const serialized = _stderr.match(extractionRegex);
166
+ if (serialized && serialized.length === 4) {
167
+ // 4 because 1 match and 3 capturing groups
168
+ const base64SerializedString = serialized
169
+ .slice(1)
170
+ .find((item) => item && item.length > 0);
171
+ if (base64SerializedString) {
172
+ return Buffer.from(base64SerializedString, 'base64').toString('utf-8');
173
+ }
174
+ }
175
+ return undefined;
176
+ };
177
+ /**
178
+ * Tries to find serialized string assuming that it is in a form of serialized JSON.
179
+ * @deprecated This is old format left for backwards compatibility in case that synth-time components are using older version of platform-core.
180
+ */
181
+ const tryFindSerializedErrorJSONStringV1 = (_stderr) => {
182
+ /**
183
+ * `["']?serializedError["']?:[ ]?` captures the start of the serialized error. The quotes depend on which OS is being used
184
+ * `(?:`(.+?)`|'(.+?)'|"((?:\\"|[^"])*?)")` captures the rest of the serialized string enclosed in either single quote,
185
+ * double quotes or back-ticks.
186
+ */
187
+ const extractionRegex = /["']?serializedError["']?:[ ]?(?:`(.+?)`|'(.+?)'|"((?:\\"|[^"])*?)")/;
188
+ const serialized = _stderr.match(extractionRegex);
189
+ if (serialized && serialized.length === 4) {
190
+ // 4 because 1 match and 3 capturing groups
191
+ return serialized
192
+ .slice(1)
193
+ .find((item) => item && item.length > 0)
194
+ ?.replaceAll('\\"', '"')
195
+ .replaceAll("\\'", "'");
196
+ }
197
+ return undefined;
198
+ };
199
+ const isCredentialsError = (err) => {
200
+ return (!!err &&
201
+ [
202
+ 'ExpiredToken',
203
+ 'ExpiredTokenException',
204
+ 'CredentialsProviderError',
205
+ 'InvalidClientTokenId',
206
+ 'CredentialsError',
207
+ ].includes(err.name));
208
+ };
209
+ // These validation messages are taken from https://github.com/yargs/yargs/blob/0c95f9c79e1810cf9c8964fbf7d139009412f7e7/lib/validation.ts
210
+ const isYargsValidationError = (err) => {
211
+ return (!!err &&
212
+ ([
213
+ 'Unknown command',
214
+ 'Unknown argument',
215
+ 'Did you mean',
216
+ 'Not enough non-option arguments',
217
+ 'Too many non-option arguments',
218
+ 'Missing required argument',
219
+ 'Invalid values:',
220
+ 'Missing dependent arguments',
221
+ 'Implications failed',
222
+ ].some((message) => err.message.startsWith(message)) ||
223
+ err.message.endsWith('are mutually exclusive')));
224
+ };
225
+ const isENotFoundError = (err) => {
226
+ return !!err && err.message.includes('getaddrinfo ENOTFOUND');
227
+ };
228
+ const isSyntaxError = (err) => {
229
+ return !!err && err.name === 'SyntaxError';
230
+ };
231
+ const isInsufficientDiskSpaceError = (err) => {
232
+ return (!!err &&
233
+ ['ENOSPC: no space left on device', 'code ENOSPC'].some((message) => err.message.includes(message)));
234
+ };
235
+ const isOutOfMemoryError = (err) => {
236
+ return (!!err &&
237
+ (err.message.includes('process out of memory') ||
238
+ err.message.includes('connect ENOMEM')));
239
+ };
240
+ const errorSerializer = (_, value) => {
241
+ if (value instanceof Error) {
242
+ return ErrorSerializerDeserializer.serialize(value);
243
+ }
244
+ return value;
245
+ };
246
+ class ErrorSerializerDeserializer {
247
+ static serialize = (error) => {
248
+ const serializedError = {
249
+ name: error.name,
250
+ message: error.message,
251
+ };
252
+ return serializedError;
253
+ };
254
+ static deserialize = (deserialized) => {
255
+ const error = new Error(deserialized.message);
256
+ error.name = deserialized.name;
257
+ return error;
258
+ };
259
+ static isSerializedErrorType = (obj) => {
260
+ if (obj &&
261
+ obj.name &&
262
+ obj.message)
263
+ return true;
264
+ return false;
265
+ };
266
+ }
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeV9lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvYW1wbGlmeV9lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3QkFBbUQ7QUFFbkQ7O0dBRUc7QUFDSCxNQUFzQixZQUF3QyxTQUFRLEtBQUs7SUF1QnZEO0lBQ0E7SUFDQztJQUNEO0lBekJYLGVBQWUsQ0FBVTtJQUNoQixPQUFPLENBQVM7SUFDaEIsVUFBVSxDQUFVO0lBQ3BCLE9BQU8sQ0FBVTtJQUNqQixJQUFJLENBQVU7SUFDZCxJQUFJLENBQVU7SUFFOUI7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNILFlBQ2tCLElBQU8sRUFDUCxjQUEwQyxFQUN6QyxPQUE0QixFQUM3QixLQUFhO1FBRTdCLDZFQUE2RTtRQUM3RSw2RUFBNkU7UUFDN0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBUGxCLFNBQUksR0FBSixJQUFJLENBQUc7UUFDUCxtQkFBYyxHQUFkLGNBQWMsQ0FBNEI7UUFDekMsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDN0IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQU03Qiw2SUFBNkk7UUFDN0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFekIsSUFBSSxLQUFLLElBQUksWUFBWSxDQUFDLGNB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QUMzQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQ3ZCLENBQUM7UUFDRixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDLENBQUM7SUFFRixNQUFNLENBQUMsV0FBVyxHQUFHLENBQUMsWUFBaUMsRUFBRSxFQUFFO1FBQ3pELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLENBQUM7SUFFRixNQUFNLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxHQUFZLEVBQThCLEVBQUU7UUFDMUUsSUFDRSxHQUFHO1lBQ0YsR0FBMkIsQ0FBQyxJQUFJO1lBQ2hDLEdBQTJCLENBQUMsT0FBTztZQUVwQyxPQUFPLElBQUksQ0FBQztRQUNkLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW1wbGlmeUZhdWx0LCBBbXBsaWZ5VXNlckVycm9yIH0gZnJvbSAnLic7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYWxsIEFtcGxpZnkgZXJyb3JzIG9yIGZhdWx0c1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQW1wbGlmeUVycm9yPFQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IGV4dGVuZHMgRXJyb3Ige1xuICBwdWJsaWMgc2VyaWFsaXplZEVycm9yPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb2x1dGlvbj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGRldGFpbHM/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBsaW5rPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY29kZT86IHN0cmluZztcblxuICAvKipcbiAgICogWW91IHNob3VsZCB1c2UgQW1wbGlmeVVzZXJFcnJvciBvciBBbXBsaWZ5TGlicmFyeUZhdWx0IHRvIHRocm93IGFuIGVycm9yLlxuICAgKiBAcGFyYW0gbmFtZSAtIGEgdXNlciBmcmllbmRseSBuYW1lIGZvciB0aGUgZXhjZXB0aW9uXG4gICAqIEBwYXJhbSBjbGFzc2lmaWNhdGlvbiAtIExpYnJhcnlGYXVsdCBvciBVc2VyRXJyb3JcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBlcnJvciBzdGFjaywgcmVzb2x1dGlvbiBzdGVwcywgZGV0YWlscywgb3IgaGVscCBsaW5rc1xuICAgKiBAcGFyYW0gY2F1c2UgSWYgeW91IGFyZSB0aHJvd2luZyB0aGlzIGV4Y2VwdGlvbiBmcm9tIHdpdGhpbiBhIGNhdGNoIGJsb2NrLFxuICAgKiB5b3UgbXVzdCBwcm92aWRlIHRoZSBleGNlcHRpb24gdGhhdCB3YXMgY2F1Z2h0LlxuICAgKiBAZXhhbXBsZVxuICAgKiB0cnkge1xuICAgKiAgLi4uXG4gICAqIH0gY2F0Y2ggKGVycm9yKXtcbiAgICogICAgdGhyb3cgbmV3IEFtcGxpZnlFcnJvciguLi4sLi4uLGVycm9yKTtcbiAgICogfVxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IG5hbWU6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IGNsYXNzaWZpY2F0aW9uOiBBbXBsaWZ5RXJyb3JDbGFzc2lmaWNhdGlvbixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IEFtcGxpZnlFcnJvck9wdGlvbnMsXG4gICAgcHVibGljIHJlYWRvbmx5IGNhdXNlPzogRXJyb3JcbiAgKSB7XG4gICAgLy8gSWYgYW4gQW1wbGlmeUVycm9yIHdhcyBhbHJlYWR5IHRocm93biwgd2UgbXVzdCBhbGxvdyBpdCB0byByZWFjaCB0aGUgdXNlci5cbiAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCByZXNvbHV0aW9uIHN0ZXBzLCBhbmQgdGhlIG9yaWdpbmFsIGVycm9yIGFyZSBidWJibGVkIHVwLlxuICAgIHN1cGVyKG9wdGlvbnMubWVzc2FnZSwgeyBjYXVzZSB9KTtcblxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWNyb3NvZnQvVHlwZVNjcmlwdC13aWtpL2Jsb2IvbWFpbi9CcmVha2luZy1DaGFuZ2VzLm1kI2V4dGVuZGluZy1idWlsdC1pbnMtbGlrZS1lcnJvci1hcnJheS1hbmQtbWFwLW1heS1uby1sb25nZXItd29ya1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBBbXBsaWZ5RXJyb3IucHJvdG90eXBlKTtcblxuICAgIHRoaXMubWVzc2FnZSA9IG9wdGlvbnMubWVzc2FnZTtcbiAgICB0aGlzLmRldGFpbHMgPSBvcHRpb25zLmRldGFpbHM7XG4gICAgdGhpcy5yZXNvbHV0aW9uID0gb3B0aW9ucy5yZXNvbHV0aW9uO1xuICAgIHRoaXMuY29kZSA9IG9wdGlvbnMuY29kZTtcbiAgICB0aGlzLmxpbmsgPSBvcHRpb25zLmxpbms7XG5cbiAgICBpZiAoY2F1c2UgJiYgQW1wbGlmeUVycm9yLmlzQW1wbGlmeUVycm9yKGNhdXNlKSkge1xuICAgICAgY2F1c2Uuc2VyaWFsaXplZEVycm9yID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLnNlcmlhbGl6ZWRFcnJvciA9IEJ1ZmZlci5mcm9tKFxuICAgICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIGNsYXNzaWZpY2F0aW9uLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgY2F1c2UsXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yU2VyaWFsaXplclxuICAgICAgKVxuICAgICkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGRlcnIgPSAoX3N0ZGVycjogc3RyaW5nKTogQW1wbGlmeUVycm9yIHwgdW5kZWZpbmVkID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VyaWFsaXplZFN0cmluZyA9IHRyeUZpbmRTZXJpYWxpemVkRXJyb3JKU09OU3RyaW5nKF9zdGRlcnIpO1xuXG4gICAgICBpZiAoIXNlcmlhbGl6ZWRTdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBuYW1lLCBjbGFzc2lmaWNhdGlvbiwgb3B0aW9ucywgY2F1c2UgfSA9XG4gICAgICAgIEpTT04ucGFyc2Uoc2VyaWFsaXplZFN0cmluZyk7XG5cbiAgICAgIGxldCBzZXJpYWxpemVkQ2F1c2UgPSBjYXVzZTtcbiAgICAgIGlmIChjYXVzZSAmJiBFcnJvclNlcmlhbGl6ZXJEZXNlcmlhbGl6ZXIuaXNTZXJpYWxpemVkRXJyb3JUeXBlKGNhdXNlKSkge1xuICAgICAgICBzZXJpYWxpemVkQ2F1c2UgPSBFcnJvclNlcmlhbGl6ZXJEZXNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoY2F1c2UpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNsYXNzaWZpY2F0aW9uID09PSAnRVJST1InXG4gICAgICAgID8gbmV3IEFtcGxpZnlVc2VyRXJyb3IobmFtZSwgb3B0aW9ucywgc2VyaWFsaXplZENhdXNlKVxuICAgICAgICA6IG5ldyBBbXBsaWZ5RmF1bHQobmFtZSwgb3B0aW9ucywgc2VyaWFsaXplZENhdXNlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gY2Fubm90IGRlc2VyaWFsaXplXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBpcyBhIHR5cGUgcHJlZGljYXRlIGZvciBBbXBsaWZ5RXJyb3IuXG4gICAqIFNlZSBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL25hcnJvd2luZy5odG1sI3VzaW5nLXR5cGUtcHJlZGljYXRlcy5cbiAgICpcbiAgICogQ2hlY2tzIGlmIGVycm9yIGlzIGFuIEFtcGxpZnlFcnJvciBieSBpbnNwZWN0aW5nIGlmIHJlcXVpcmVkIHByb3BlcnRpZXMgYXJlIHNldC5cbiAgICogVGhpcyBpcyByZWNvbW1lbmRlZCBpbnN0ZWFkIG9mIGluc3RhbmNlb2Ygb3BlcmF0b3IuXG4gICAqIFRoZSBpbnN0YW5jZSBvZiBvcGVyYXRvciBkb2VzIG5vdCB3b3JrIGFzIGV4cGVjdGVkIGlmIEFtcGxpZnlFcnJvciBjbGFzcyBpcyBsb2FkZWRcbiAgICogZnJvbSBtdWx0aXBsZSBzb3VyY2VzLCBmb3IgZXhhbXBsZSB3aGVuIHBhY2thZ2UgbWFuYWdlciBkZWNpZGVzIHRvIG5vdCBkZS1kdXBsaWNhdGUgZGVwZW5kZW5jaWVzLlxuICAgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25vZGVqcy9ub2RlL2lzc3Vlcy8xNzk0My5cbiAgICovXG4gIHN0YXRpYyBpc0FtcGxpZnlFcnJvciA9IChlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIEFtcGxpZnlFcnJvciA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiZcbiAgICAgICdjbGFzc2lmaWNhdGlvbicgaW4gZXJyb3IgJiZcbiAgICAgIChlcnJvci5jbGFzc2lmaWNhdGlvbiA9PT0gJ0VSUk9SJyB8fCBlcnJvci5jbGFzc2lmaWNhdGlvbiA9PT0gJ0ZBVUxUJykgJiZcbiAgICAgIHR5cGVvZiBlcnJvci5uYW1lID09PSAnc3RyaW5nJyAmJlxuICAgICAgdHlwZW9mIGVycm9yLm1lc3NhZ2UgPT09ICdzdHJpbmcnXG4gICAgKTtcbiAgfTtcblxuICBzdGF0aWMgZnJvbUVycm9yID0gKGVycm9yOiB1bmtub3duKTogQW1wbGlmeUVycm9yID0+IHtcbiAgICBpZiAoQW1wbGlmeUVycm9yLmlzQW1wbGlmeUVycm9yKGVycm9yKSkge1xuICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yXG4gICAgICAgID8gYCR7ZXJyb3IubmFtZX06ICR7ZXJyb3IubWVzc2FnZX1gXG4gICAgICAgIDogJ0FuIHVua25vd24gZXJyb3IgaGFwcGVuZWQuIENoZWNrIGRvd25zdHJlYW0gZXJyb3InO1xuXG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgaXNDcmVkZW50aWFsc0Vycm9yKGVycm9yKSkge1xuICAgICAgcmV0dXJuIG5ldyBBbXBsaWZ5VXNlckVycm9yKFxuICAgICAgICAnQ3JlZGVudGlhbHNFcnJvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgcmVzb2x1dGlvbjpcbiAgICAgICAgICAgICdFbnN1cmUgeW91ciBBV1MgY3JlZGVudGlhbHMgYXJlIGNvcnJlY3RseSBzZXQgYW5kIHJlZnJlc2hlZC4nLFxuICAgICAgICB9LFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgaXNZYXJnc1ZhbGlkYXRpb25FcnJvcihlcnJvcikpIHtcbiAgICAgIHJldHVybiBuZXcgQW1wbGlmeVVzZXJFcnJvcihcbiAgICAgICAgJ0ludmFsaWRDb21tYW5kSW5wdXRFcnJvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgcmVzb2x1dGlvbjogJ1BsZWFzZSBzZWUgdGhlIHVuZGVybHlpbmcgZXJyb3IgbWVzc2FnZSBmb3IgcmVzb2x1dGlvbi4nLFxuICAgICAgICB9LFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgaXNFTm90Rm91bmRFcnJvcihlcnJvcikpIHtcbiAgICAgIHJldHVybiBuZXcgQW1wbGlmeVVzZXJFcnJvcihcbiAgICAgICAgJ0RvbWFpbk5vdEZvdW5kRXJyb3InLFxuICAgICAgICB7XG4gICAgICAgICAgbWVzc2FnZTogJ1VuYWJsZSB0byBlc3RhYmxpc2ggYSBjb25uZWN0aW9uIHRvIGEgZG9tYWluJyxcbiAgICAgICAgICByZXNvbHV0aW9uOlxuICAgICAgICAgICAgJ0Vuc3VyZSBkb21haW4gbmFtZSBpcyBjb3JyZWN0IGFuZCBuZXR3b3JrIGNvbm5lY3Rpb24gaXMgc3RhYmxlLicsXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yXG4gICAgICApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBjYXRjaGVzIFN5bnRheEVycm9ycyB0aGF0IHdlcmUgc29tZWhvdyBub3QgaW5zdGFuY2VzIG9mIEFtcGxpZnlFcnJvclxuICAgICAqIHRoaXMgY2FuIGJlIHJlbW92ZWQgb25jZSB3ZSBjYW4gcHJvcGVybHkgaWRlbnRpZnkgd2hlcmUgQW1wbGlmeUVycm9yIGlzIGJlaW5nIHN0cmlwcGVkIG9mZlxuICAgICAqL1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGlzU3ludGF4RXJyb3IoZXJyb3IpKSB7XG4gICAgICByZXR1cm4gbmV3IEFtcGxpZnlVc2VyRXJyb3IoXG4gICAgICAgICdTeW50YXhFcnJvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgIHJlc29sdXRpb246XG4gICAgICAgICAgICAnQ2hlY2sgeW91ciBiYWNrZW5kIGRlZmluaXRpb24gaW4gdGhlIGBhbXBsaWZ5YCBmb2xkZXIgZm9yIHN5bnRheCBhbmQgdHlwZSBlcnJvcnMuJyxcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3JcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGlzSW5zdWZmaWNpZW50RGlza1NwYWNlRXJyb3IoZXJyb3IpKSB7XG4gICAgICByZXR1cm4gbmV3IEFtcGxpZnlVc2VyRXJyb3IoXG4gICAgICAgICdJbnN1ZmZpY2llbnREaXNrU3BhY2VFcnJvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgIHJlc29sdXRpb246XG4gICAgICAgICAgICAnVGhlcmUgYXBwZWFycyB0byBiZSBpbnN1ZmZpY2llbnQgc3BhY2Ugb24geW91ciBzeXN0ZW0gdG8gZmluaXNoLiBDbGVhciB1cCBzb21lIGRpc2sgc3BhY2UgYW5kIHRyeSBhZ2Fpbi4nLFxuICAgICAgICB9LFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgaXNPdXRPZk1lbW9yeUVycm9yKGVycm9yKSkge1xuICAgICAgcmV0dXJuIG5ldyBBbXBsaWZ5VXNlckVycm9yKFxuICAgICAgICAnSW5zdWZmaWNpZW50TWVtb3J5U3BhY2VFcnJvcicsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICAgIHJlc29sdXRpb246XG4gICAgICAgICAgICAnVGhlcmUgYXBwZWFycyB0byBiZSBpbnN1ZmZpY2llbnQgbWVtb3J5IG9uIHlvdXIgc3lzdGVtIHRvIGZpbmlzaC4gQ2xvc2Ugb3RoZXIgYXBwbGljYXRpb25zIG9yIHJlc3RhcnQgeW91ciBzeXN0ZW0gYW5kIHRyeSBhZ2Fpbi4nLFxuICAgICAgICB9LFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBbXBsaWZ5RmF1bHQoXG4gICAgICAnVW5rbm93bkZhdWx0JyxcbiAgICAgIHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgICAgfSxcbiAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvciA6IG5ldyBFcnJvcihTdHJpbmcoZXJyb3IpKVxuICAgICk7XG4gIH07XG59XG5cbmNvbnN0IHRyeUZpbmRTZXJpYWxpemVkRXJyb3JKU09OU3RyaW5nID0gKFxuICBfc3RkZXJyOiBzdHJpbmdcbik6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGxldCBlcnJvckpTT05TdHJpbmcgPSB0cnlGaW5kU2VyaWFsaXplZEVycm9ySlNPTlN0cmluZ1YyKF9zdGRlcnIpO1xuICBpZiAoIWVycm9ySlNPTlN0cmluZykge1xuICAgIGVycm9ySlNPTlN0cmluZyA9IHRyeUZpbmRTZXJpYWxpemVkRXJyb3JKU09OU3RyaW5nVjEoX3N0ZGVycik7XG4gIH1cbiAgcmV0dXJuIGVycm9ySlNPTlN0cmluZztcbn07XG5cbi8qKlxuICogVHJpZXMgdG8gZmluZCBzZXJpYWxpemVkIHN0cmluZyBhc3N1bWluZyB0aGF0IGl0IGlzIGluIGEgZm9ybSBvZiBzZXJpYWxpemVkIEpTT04gZW5jb2RlZCB3aXRoIGJhc2U2NC5cbiAqL1xuY29uc3QgdHJ5RmluZFNlcmlhbGl6ZWRFcnJvckpTT05TdHJpbmdWMiA9IChcbiAgX3N0ZGVycjogc3RyaW5nXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICAvKipcbiAgICogYFtcIiddP3NlcmlhbGl6ZWRFcnJvcltcIiddPzpbIF0/YCBjYXB0dXJlcyB0aGUgc3RhcnQgb2YgdGhlIHNlcmlhbGl6ZWQgZXJyb3IuIFRoZSBxdW90ZXMgZGVwZW5kIG9uIHdoaWNoIE9TIGlzIGJlaW5nIHVzZWRcbiAgICogYCg/OmAoW2EtekEtWjAtOSsvPV0rPylgfCcoW2EtekEtWjAtOSsvPV0rPyknfFwiKFthLXpBLVowLTkrLz1dKz8pXCIpYCBjYXB0dXJlcyB0aGUgcmVzdCBvZiB0aGUgc2VyaWFsaXplZCBzdHJpbmcgZW5jbG9zZWQgaW4gZWl0aGVyIHNpbmdsZSBxdW90ZSxcbiAgICogZG91YmxlIHF1b3RlcyBvciBiYWNrLXRpY2tzLlxuICAgKi9cbiAgY29uc3QgZXh0cmFjdGlvblJlZ2V4ID1cbiAgICAvW1wiJ10/c2VyaWFsaXplZEVycm9yW1wiJ10/OlsgXT8oPzpgKFthLXpBLVowLTkrLz1dKz8pYHwnKFthLXpBLVowLTkrLz1dKz8pJ3xcIihbYS16QS1aMC05Ky89XSs/KVwiKS87XG4gIGNvbnN0IHNlcmlhbGl6ZWQgPSBfc3RkZXJyLm1hdGNoKGV4dHJhY3Rpb25SZWdleCk7XG4gIGlmIChzZXJpYWxpemVkICYmIHNlcmlhbGl6ZWQubGVuZ3RoID09PSA0KSB7XG4gICAgLy8gNCBiZWNhdXNlIDEgbWF0Y2ggYW5kIDMgY2FwdHVyaW5nIGdyb3Vwc1xuICAgIGNvbnN0IGJhc2U2NFNlcmlhbGl6ZWRTdHJpbmcgPSBzZXJpYWxpemVkXG4gICAgICAuc2xpY2UoMSlcbiAgICAgIC5maW5kKChpdGVtKSA9PiBpdGVtICYmIGl0ZW0ubGVuZ3RoID4gMCk7XG4gICAgaWYgKGJhc2U2NFNlcmlhbGl6ZWRTdHJpbmcpIHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShiYXNlNjRTZXJpYWxpemVkU3RyaW5nLCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIFRyaWVzIHRvIGZpbmQgc2VyaWFsaXplZCBzdHJpbmcgYXNzdW1pbmcgdGhhdCBpdCBpcyBpbiBhIGZvcm0gb2Ygc2VyaWFsaXplZCBKU09OLlxuICogQGRlcHJlY2F0ZWQgVGhpcyBpcyBvbGQgZm9ybWF0IGxlZnQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGluIGNhc2UgdGhhdCBzeW50aC10aW1lIGNvbXBvbmVudHMgYXJlIHVzaW5nIG9sZGVyIHZlcnNpb24gb2YgcGxhdGZvcm0tY29yZS5cbiAqL1xuY29uc3QgdHJ5RmluZFNlcmlhbGl6ZWRFcnJvckpTT05TdHJpbmdWMSA9IChcbiAgX3N0ZGVycjogc3RyaW5nXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICAvKipcbiAgICogYFtcIiddP3NlcmlhbGl6ZWRFcnJvcltcIiddPzpbIF0/YCBjYXB0dXJlcyB0aGUgc3RhcnQgb2YgdGhlIHNlcmlhbGl6ZWQgZXJyb3IuIFRoZSBxdW90ZXMgZGVwZW5kIG9uIHdoaWNoIE9TIGlzIGJlaW5nIHVzZWRcbiAgICogYCg/OmAoLis/KWB8JyguKz8pJ3xcIigoPzpcXFxcXCJ8W15cIl0pKj8pXCIpYCBjYXB0dXJlcyB0aGUgcmVzdCBvZiB0aGUgc2VyaWFsaXplZCBzdHJpbmcgZW5jbG9zZWQgaW4gZWl0aGVyIHNpbmdsZSBxdW90ZSxcbiAgICogZG91YmxlIHF1b3RlcyBvciBiYWNrLXRpY2tzLlxuICAgKi9cbiAgY29uc3QgZXh0cmFjdGlvblJlZ2V4ID1cbiAgICAvW1wiJ10/c2VyaWFsaXplZEVycm9yW1wiJ10/OlsgXT8oPzpgKC4rPylgfCcoLis/KSd8XCIoKD86XFxcXFwifFteXCJdKSo/KVwiKS87XG4gIGNvbnN0IHNlcmlhbGl6ZWQgPSBfc3RkZXJyLm1hdGNoKGV4dHJhY3Rpb25SZWdleCk7XG4gIGlmIChzZXJpYWxpemVkICYmIHNlcmlhbGl6ZWQubGVuZ3RoID09PSA0KSB7XG4gICAgLy8gNCBiZWNhdXNlIDEgbWF0Y2ggYW5kIDMgY2FwdHVyaW5nIGdyb3Vwc1xuICAgIHJldHVybiBzZXJpYWxpemVkXG4gICAgICAuc2xpY2UoMSlcbiAgICAgIC5maW5kKChpdGVtKSA9PiBpdGVtICYmIGl0ZW0ubGVuZ3RoID4gMClcbiAgICAgID8ucmVwbGFjZUFsbCgnXFxcXFwiJywgJ1wiJylcbiAgICAgIC5yZXBsYWNlQWxsKFwiXFxcXCdcIiwgXCInXCIpO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5jb25zdCBpc0NyZWRlbnRpYWxzRXJyb3IgPSAoZXJyPzogRXJyb3IpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIChcbiAgICAhIWVyciAmJlxuICAgIFtcbiAgICAgICdFeHBpcmVkVG9rZW4nLFxuICAgICAgJ0V4cGlyZWRUb2tlbkV4Y2VwdGlvbicsXG4gICAgICAnQ3JlZGVudGlhbHNQcm92aWRlckVycm9yJyxcbiAgICAgICdJbnZhbGlkQ2xpZW50VG9rZW5JZCcsXG4gICAgICAnQ3JlZGVudGlhbHNFcnJvcicsXG4gICAgXS5pbmNsdWRlcyhlcnIubmFtZSlcbiAgKTtcbn07XG5cbi8vIFRoZXNlIHZhbGlkYXRpb24gbWVzc2FnZXMgYXJlIHRha2VuIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3lhcmdzL3lhcmdzL2Jsb2IvMGM5NWY5Yzc5ZTE4MTBjZjljODk2NGZiZjdkMTM5MDA5NDEyZjdlNy9saWIvdmFsaWRhdGlvbi50c1xuY29uc3QgaXNZYXJnc1ZhbGlkYXRpb25FcnJvciA9IChlcnI/OiBFcnJvcik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gKFxuICAgICEhZXJyICYmXG4gICAgKFtcbiAgICAgICdVbmtub3duIGNvbW1hbmQnLFxuICAgICAgJ1Vua25vd24gYXJndW1lbnQnLFxuICAgICAgJ0RpZCB5b3UgbWVhbicsXG4gICAgICAnTm90IGVub3VnaCBub24tb3B0aW9uIGFyZ3VtZW50cycsXG4gICAgICAnVG9vIG1hbnkgbm9uLW9wdGlvbiBhcmd1bWVudHMnLFxuICAgICAgJ01pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQnLFxuICAgICAgJ0ludmFsaWQgdmFsdWVzOicsXG4gICAgICAnTWlzc2luZyBkZXBlbmRlbnQgYXJndW1lbnRzJyxcbiAgICAgICdJbXBsaWNhdGlvbnMgZmFpbGVkJyxcbiAgICBdLnNvbWUoKG1lc3NhZ2UpID0+IGVyci5tZXNzYWdlLnN0YXJ0c1dpdGgobWVzc2FnZSkpIHx8XG4gICAgICBlcnIubWVzc2FnZS5lbmRzV2l0aCgnYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZScpKVxuICApO1xufTtcblxuY29uc3QgaXNFTm90Rm91bmRFcnJvciA9IChlcnI/OiBFcnJvcik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gISFlcnIgJiYgZXJyLm1lc3NhZ2UuaW5jbHVkZXMoJ2dldGFkZHJpbmZvIEVOT1RGT1VORCcpO1xufTtcblxuY29uc3QgaXNTeW50YXhFcnJvciA9IChlcnI/OiBFcnJvcik6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gISFlcnIgJiYgZXJyLm5hbWUgPT09ICdTeW50YXhFcnJvcic7XG59O1xuXG5jb25zdCBpc0luc3VmZmljaWVudERpc2tTcGFjZUVycm9yID0gKGVycj86IEVycm9yKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiAoXG4gICAgISFlcnIgJiZcbiAgICBbJ0VOT1NQQzogbm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UnLCAnY29kZSBFTk9TUEMnXS5zb21lKChtZXNzYWdlKSA9PlxuICAgICAgZXJyLm1lc3NhZ2UuaW5jbHVkZXMobWVzc2FnZSlcbiAgICApXG4gICk7XG59O1xuXG5jb25zdCBpc091dE9mTWVtb3J5RXJyb3IgPSAoZXJyPzogRXJyb3IpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIChcbiAgICAhIWVyciAmJlxuICAgIChlcnIubWVzc2FnZS5pbmNsdWRlcygncHJvY2VzcyBvdXQgb2YgbWVtb3J5JykgfHxcbiAgICAgIGVyci5tZXNzYWdlLmluY2x1ZGVzKCdjb25uZWN0IEVOT01FTScpKVxuICApO1xufTtcblxuLyoqXG4gKiBBbXBsaWZ5IGV4Y2VwdGlvbiBjbGFzc2lmaWNhdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgQW1wbGlmeUVycm9yQ2xhc3NpZmljYXRpb24gPSAnRkFVTFQnIHwgJ0VSUk9SJztcblxuLyoqXG4gKiBBbXBsaWZ5IEVycm9yIG9wdGlvbnMgb2JqZWN0XG4gKi9cbmV4cG9ydCB0eXBlIEFtcGxpZnlFcnJvck9wdGlvbnMgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZGV0YWlscz86IHN0cmluZztcbiAgcmVzb2x1dGlvbj86IHN0cmluZztcbiAgbGluaz86IHN0cmluZztcblxuICAvLyBDbG91ZEZvcm1hdGlvbiBvciBOb2RlSlMgZXJyb3IgY29kZXNcbiAgY29kZT86IHN0cmluZztcbn07XG5cbi8qKlxuICogU2FtZSBhcyBBbXBsaWZ5RXJyb3JPcHRpb25zIGV4Y2VwdCByZXNvbHV0aW9uIGlzIHJlcXVpcmVkXG4gKi9cbmV4cG9ydCB0eXBlIEFtcGxpZnlVc2VyRXJyb3JPcHRpb25zID0gT21pdDxcbiAgQW1wbGlmeUVycm9yT3B0aW9ucyxcbiAgJ3Jlc29sdXRpb24nXG4+ICYgeyByZXNvbHV0aW9uOiBzdHJpbmcgfTtcblxuY29uc3QgZXJyb3JTZXJpYWxpemVyID0gKF86IHVua25vd24sIHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgcmV0dXJuIEVycm9yU2VyaWFsaXplckRlc2VyaWFsaXplci5zZXJpYWxpemUodmFsdWUpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn07XG5jbGFzcyBFcnJvclNlcmlhbGl6ZXJEZXNlcmlhbGl6ZXIge1xuICBzdGF0aWMgc2VyaWFsaXplID0gKGVycm9yOiBFcnJvcikgPT4ge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRFcnJvcjogU2VyaWFsaXplZEVycm9yVHlwZSA9IHtcbiAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgIH07XG4gICAgcmV0dXJuIHNlcmlhbGl6ZWRFcnJvcjtcbiAgfTtcblxuICBzdGF0aWMgZGVzZXJpYWxpemUgPSAoZGVzZXJpYWxpemVkOiBTZXJpYWxpemVkRXJyb3JUeXBlKSA9PiB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoZGVzZXJpYWxpemVkLm1lc3NhZ2UpO1xuICAgIGVycm9yLm5hbWUgPSBkZXNlcmlhbGl6ZWQubmFtZTtcbiAgICByZXR1cm4gZXJyb3I7XG4gIH07XG5cbiAgc3RhdGljIGlzU2VyaWFsaXplZEVycm9yVHlwZSA9IChvYmo6IHVua25vd24pOiBvYmogaXMgU2VyaWFsaXplZEVycm9yVHlwZSA9PiB7XG4gICAgaWYgKFxuICAgICAgb2JqICYmXG4gICAgICAob2JqIGFzIFNlcmlhbGl6ZWRFcnJvclR5cGUpLm5hbWUgJiZcbiAgICAgIChvYmogYXMgU2VyaWFsaXplZEVycm9yVHlwZSkubWVzc2FnZVxuICAgIClcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfTtcbn1cbnR5cGUgU2VyaWFsaXplZEVycm9yVHlwZSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59O1xuIl19
@@ -0,0 +1,21 @@
1
+ import { AmplifyError, AmplifyErrorOptions } from './amplify_error';
2
+ /**
3
+ * Base class for all Amplify library faults
4
+ */
5
+ export declare class AmplifyFault<T extends string = string> extends AmplifyError<T> {
6
+ /**
7
+ * Create a new Amplify Library Fault
8
+ * @param name - a user friendly name for the exception
9
+ * @param options - error stack, resolution steps, details, or help links
10
+ * @param cause If you are throwing this exception from within a catch block,
11
+ * you must provide the exception that was caught.
12
+ * @example
13
+ * try {
14
+ * ...
15
+ * } catch (error){
16
+ * throw new AmplifyLibraryFault(error,...,...);
17
+ * }
18
+ */
19
+ constructor(name: T, options: AmplifyErrorOptions, cause?: Error);
20
+ }
21
+ //# sourceMappingURL=amplify_library_fault.d.ts.map
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AmplifyFault = void 0;
4
+ const amplify_error_1 = require("./amplify_error");
5
+ /**
6
+ * Base class for all Amplify library faults
7
+ */
8
+ class AmplifyFault extends amplify_error_1.AmplifyError {
9
+ /**
10
+ * Create a new Amplify Library Fault
11
+ * @param name - a user friendly name for the exception
12
+ * @param options - error stack, resolution steps, details, or help links
13
+ * @param cause If you are throwing this exception from within a catch block,
14
+ * you must provide the exception that was caught.
15
+ * @example
16
+ * try {
17
+ * ...
18
+ * } catch (error){
19
+ * throw new AmplifyLibraryFault(error,...,...);
20
+ * }
21
+ */
22
+ constructor(name, options, cause) {
23
+ super(name, 'FAULT', options, cause);
24
+ }
25
+ }
26
+ exports.AmplifyFault = AmplifyFault;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeV9saWJyYXJ5X2ZhdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9hbXBsaWZ5X2xpYnJhcnlfZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQW9FO0FBRXBFOztHQUVHO0FBQ0gsTUFBYSxZQUF3QyxTQUFRLDRCQUFlO0lBQzFFOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILFlBQVksSUFBTyxFQUFFLE9BQTRCLEVBQUUsS0FBYTtRQUM5RCxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBakJELG9DQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFtcGxpZnlFcnJvciwgQW1wbGlmeUVycm9yT3B0aW9ucyB9IGZyb20gJy4vYW1wbGlmeV9lcnJvcic7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYWxsIEFtcGxpZnkgbGlicmFyeSBmYXVsdHNcbiAqL1xuZXhwb3J0IGNsYXNzIEFtcGxpZnlGYXVsdDxUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiBleHRlbmRzIEFtcGxpZnlFcnJvcjxUPiB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgQW1wbGlmeSBMaWJyYXJ5IEZhdWx0XG4gICAqIEBwYXJhbSBuYW1lIC0gYSB1c2VyIGZyaWVuZGx5IG5hbWUgZm9yIHRoZSBleGNlcHRpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBlcnJvciBzdGFjaywgcmVzb2x1dGlvbiBzdGVwcywgZGV0YWlscywgb3IgaGVscCBsaW5rc1xuICAgKiBAcGFyYW0gY2F1c2UgSWYgeW91IGFyZSB0aHJvd2luZyB0aGlzIGV4Y2VwdGlvbiBmcm9tIHdpdGhpbiBhIGNhdGNoIGJsb2NrLFxuICAgKiB5b3UgbXVzdCBwcm92aWRlIHRoZSBleGNlcHRpb24gdGhhdCB3YXMgY2F1Z2h0LlxuICAgKiBAZXhhbXBsZVxuICAgKiB0cnkge1xuICAgKiAgLi4uXG4gICAqIH0gY2F0Y2ggKGVycm9yKXtcbiAgICogICAgdGhyb3cgbmV3IEFtcGxpZnlMaWJyYXJ5RmF1bHQoZXJyb3IsLi4uLC4uLik7XG4gICAqIH1cbiAgICovXG4gIGNvbnN0cnVjdG9yKG5hbWU6IFQsIG9wdGlvbnM6IEFtcGxpZnlFcnJvck9wdGlvbnMsIGNhdXNlPzogRXJyb3IpIHtcbiAgICBzdXBlcihuYW1lLCAnRkFVTFQnLCBvcHRpb25zLCBjYXVzZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { AmplifyError, AmplifyUserErrorOptions } from './amplify_error';
2
+ /**
3
+ * Base class for all Amplify user errors
4
+ */
5
+ export declare class AmplifyUserError<T extends string = string> extends AmplifyError<T> {
6
+ /**
7
+ * Create a new Amplify Error.
8
+ * @param name - a user friendly name for the user error
9
+ * @param options - error stack, resolution steps, details, or help links
10
+ * @param cause If you are throwing this error from within a catch block,
11
+ * you must provide the error that was caught.
12
+ * @example
13
+ * try {
14
+ * ...
15
+ * } catch (error){
16
+ * throw new AmplifyError(...,...,error);
17
+ * }
18
+ */
19
+ constructor(name: T, options: AmplifyUserErrorOptions, cause?: Error);
20
+ }
21
+ //# sourceMappingURL=amplify_user_error.d.ts.map
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AmplifyUserError = void 0;
4
+ const amplify_error_1 = require("./amplify_error");
5
+ /**
6
+ * Base class for all Amplify user errors
7
+ */
8
+ class AmplifyUserError extends amplify_error_1.AmplifyError {
9
+ /**
10
+ * Create a new Amplify Error.
11
+ * @param name - a user friendly name for the user error
12
+ * @param options - error stack, resolution steps, details, or help links
13
+ * @param cause If you are throwing this error from within a catch block,
14
+ * you must provide the error that was caught.
15
+ * @example
16
+ * try {
17
+ * ...
18
+ * } catch (error){
19
+ * throw new AmplifyError(...,...,error);
20
+ * }
21
+ */
22
+ constructor(name, options, cause) {
23
+ super(name, 'ERROR', options, cause);
24
+ }
25
+ }
26
+ exports.AmplifyUserError = AmplifyUserError;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeV91c2VyX2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9hbXBsaWZ5X3VzZXJfZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXdFO0FBRXhFOztHQUVHO0FBQ0gsTUFBYSxnQkFFWCxTQUFRLDRCQUFlO0lBQ3ZCOzs7Ozs7Ozs7Ozs7T0FZRztJQUNILFlBQVksSUFBTyxFQUFFLE9BQWdDLEVBQUUsS0FBYTtRQUNsRSxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBbkJELDRDQW1CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFtcGxpZnlFcnJvciwgQW1wbGlmeVVzZXJFcnJvck9wdGlvbnMgfSBmcm9tICcuL2FtcGxpZnlfZXJyb3InO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGFsbCBBbXBsaWZ5IHVzZXIgZXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBBbXBsaWZ5VXNlckVycm9yPFxuICBUIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nXG4+IGV4dGVuZHMgQW1wbGlmeUVycm9yPFQ+IHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBBbXBsaWZ5IEVycm9yLlxuICAgKiBAcGFyYW0gbmFtZSAtIGEgdXNlciBmcmllbmRseSBuYW1lIGZvciB0aGUgdXNlciBlcnJvclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIGVycm9yIHN0YWNrLCByZXNvbHV0aW9uIHN0ZXBzLCBkZXRhaWxzLCBvciBoZWxwIGxpbmtzXG4gICAqIEBwYXJhbSBjYXVzZSBJZiB5b3UgYXJlIHRocm93aW5nIHRoaXMgZXJyb3IgZnJvbSB3aXRoaW4gYSBjYXRjaCBibG9jayxcbiAgICogeW91IG11c3QgcHJvdmlkZSB0aGUgZXJyb3IgdGhhdCB3YXMgY2F1Z2h0LlxuICAgKiBAZXhhbXBsZVxuICAgKiB0cnkge1xuICAgKiAgLi4uXG4gICAqIH0gY2F0Y2ggKGVycm9yKXtcbiAgICogICAgdGhyb3cgbmV3IEFtcGxpZnlFcnJvciguLi4sLi4uLGVycm9yKTtcbiAgICogfVxuICAgKi9cbiAgY29uc3RydWN0b3IobmFtZTogVCwgb3B0aW9uczogQW1wbGlmeVVzZXJFcnJvck9wdGlvbnMsIGNhdXNlPzogRXJyb3IpIHtcbiAgICBzdXBlcihuYW1lLCAnRVJST1InLCBvcHRpb25zLCBjYXVzZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './amplify_error';
2
+ export * from './amplify_user_error';
3
+ export * from './amplify_library_fault';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./amplify_error"), exports);
18
+ __exportStar(require("./amplify_user_error"), exports);
19
+ __exportStar(require("./amplify_library_fault"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0M7QUFDaEMsdURBQXFDO0FBQ3JDLDBEQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW1wbGlmeV9lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2FtcGxpZnlfdXNlcl9lcnJvcic7XG5leHBvcnQgKiBmcm9tICcuL2FtcGxpZnlfbGlicmFyeV9mYXVsdCc7XG4iXX0=
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Extracts a file path from a given stack trace line
3
+ */
4
+ export declare class FilePathExtractor {
5
+ private readonly stackTraceLine;
6
+ /**
7
+ * Constructor for FilePathExtractor
8
+ */
9
+ constructor(stackTraceLine: string);
10
+ extract: () => string | undefined;
11
+ private standardizePath;
12
+ }
13
+ //# sourceMappingURL=extract_file_path_from_stack_trace_line.d.ts.map
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FilePathExtractor = void 0;
4
+ const node_url_1 = require("node:url");
5
+ /**
6
+ * Regex that pulls out the path from a stack trace line. Works for both unix and windows paths and cjs and esm loaders
7
+ *
8
+ * For ESM loaders in TS files or CJS loaders
9
+ * The line is something like "at SymbolName (/some/path/to/project/root/backend/auth.ts:3:21)"
10
+ * or on Windows "at SymbolName (C:\some\path\to\project\root\backend\auth.ts:3:21)"
11
+ *
12
+ * For ESM loaders in JS files
13
+ * The line is something like "at file:///some/path/to/project/root/backend/auth.ts:14:28"
14
+ * or on Windows " at file:///C:\some\path\to\project\root\backend\auth.ts:3:21"
15
+ *
16
+ * This regex pulls out the file path into the "filepath" named matching group
17
+ * In the above examples that would be "/some/path/to/project/root/backend/auth.ts" or "C:\some\path\to\project\root\backend\auth.ts"
18
+ *
19
+ * Instead of combining both matches with single regex, we create two to keep it simple and manageable.
20
+ *
21
+ */
22
+ const extractFilePathFromStackTraceLineRegexes = [
23
+ /\((?<filepath>(\w:)?[^:]*)[:\d]*\)/,
24
+ /at (?<filepath>.*\.\w[^:\d]*)[:\d]*/,
25
+ ];
26
+ /**
27
+ * Extracts a file path from a given stack trace line
28
+ */
29
+ class FilePathExtractor {
30
+ stackTraceLine;
31
+ /**
32
+ * Constructor for FilePathExtractor
33
+ */
34
+ constructor(stackTraceLine) {
35
+ this.stackTraceLine = stackTraceLine;
36
+ }
37
+ extract = () => {
38
+ for (const regex of extractFilePathFromStackTraceLineRegexes) {
39
+ const match = this.stackTraceLine.match(regex);
40
+ if (match?.groups?.filepath) {
41
+ return this.standardizePath(match?.groups?.filepath);
42
+ }
43
+ }
44
+ return undefined;
45
+ };
46
+ // The input can be either a file path or a file URL. If it's a file URL, convert it to the path.
47
+ standardizePath = (maybeUrl) => {
48
+ try {
49
+ const url = new URL(maybeUrl);
50
+ if (url.protocol === 'file:') {
51
+ return (0, node_url_1.fileURLToPath)(url);
52
+ }
53
+ return maybeUrl;
54
+ }
55
+ catch {
56
+ return maybeUrl;
57
+ }
58
+ };
59
+ }
60
+ exports.FilePathExtractor = FilePathExtractor;
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdF9maWxlX3BhdGhfZnJvbV9zdGFja190cmFjZV9saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2V4dHJhY3RfZmlsZV9wYXRoX2Zyb21fc3RhY2tfdHJhY2VfbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FBeUM7QUFFekM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLHdDQUF3QyxHQUFHO0lBQy9DLG9DQUFvQztJQUNwQyxxQ0FBcUM7Q0FDdEMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFJQztJQUg3Qjs7T0FFRztJQUNILFlBQTZCLGNBQXNCO1FBQXRCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO0lBQUcsQ0FBQztJQUV2RCxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ2IsS0FBSyxNQUFNLEtBQUssSUFBSSx3Q0FBd0MsRUFBRTtZQUM1RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQyxJQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO2dCQUMzQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQzthQUN0RDtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0lBRUYsaUdBQWlHO0lBQ3pGLGVBQWUsR0FBRyxDQUFDLFFBQWdCLEVBQVUsRUFBRTtRQUNyRCxJQUFJO1lBQ0YsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUIsSUFBSSxHQUFHLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtnQkFDNUIsT0FBTyxJQUFBLHdCQUFhLEVBQUMsR0FBRyxDQUFDLENBQUM7YUFDM0I7WUFDRCxPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUFDLE1BQU07WUFDTixPQUFPLFFBQVEsQ0FBQztTQUNqQjtJQUNILENBQUMsQ0FBQztDQUNIO0FBNUJELDhDQTRCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICdub2RlOnVybCc7XG5cbi8qKlxuICogUmVnZXggdGhhdCBwdWxscyBvdXQgdGhlIHBhdGggZnJvbSBhIHN0YWNrIHRyYWNlIGxpbmUuIFdvcmtzIGZvciBib3RoIHVuaXggYW5kIHdpbmRvd3MgcGF0aHMgYW5kIGNqcyBhbmQgZXNtIGxvYWRlcnNcbiAqXG4gKiBGb3IgRVNNIGxvYWRlcnMgaW4gVFMgZmlsZXMgb3IgQ0pTIGxvYWRlcnNcbiAqIFRoZSBsaW5lIGlzIHNvbWV0aGluZyBsaWtlIFwiYXQgU3ltYm9sTmFtZSAoL3NvbWUvcGF0aC90by9wcm9qZWN0L3Jvb3QvYmFja2VuZC9hdXRoLnRzOjM6MjEpXCJcbiAqIG9yIG9uIFdpbmRvd3MgXCJhdCBTeW1ib2xOYW1lIChDOlxcc29tZVxccGF0aFxcdG9cXHByb2plY3RcXHJvb3RcXGJhY2tlbmRcXGF1dGgudHM6MzoyMSlcIlxuICpcbiAqIEZvciBFU00gbG9hZGVycyBpbiBKUyBmaWxlc1xuICogVGhlIGxpbmUgaXMgc29tZXRoaW5nIGxpa2UgXCJhdCBmaWxlOi8vL3NvbWUvcGF0aC90by9wcm9qZWN0L3Jvb3QvYmFja2VuZC9hdXRoLnRzOjE0OjI4XCJcbiAqIG9yIG9uIFdpbmRvd3MgXCIgYXQgZmlsZTovLy9DOlxcc29tZVxccGF0aFxcdG9cXHByb2plY3RcXHJvb3RcXGJhY2tlbmRcXGF1dGgudHM6MzoyMVwiXG4gKlxuICogVGhpcyByZWdleCBwdWxscyBvdXQgdGhlIGZpbGUgcGF0aCBpbnRvIHRoZSBcImZpbGVwYXRoXCIgbmFtZWQgbWF0Y2hpbmcgZ3JvdXBcbiAqIEluIHRoZSBhYm92ZSBleGFtcGxlcyB0aGF0IHdvdWxkIGJlIFwiL3NvbWUvcGF0aC90by9wcm9qZWN0L3Jvb3QvYmFja2VuZC9hdXRoLnRzXCIgb3IgXCJDOlxcc29tZVxccGF0aFxcdG9cXHByb2plY3RcXHJvb3RcXGJhY2tlbmRcXGF1dGgudHNcIlxuICpcbiAqIEluc3RlYWQgb2YgY29tYmluaW5nIGJvdGggbWF0Y2hlcyB3aXRoIHNpbmdsZSByZWdleCwgd2UgY3JlYXRlIHR3byB0byBrZWVwIGl0IHNpbXBsZSBhbmQgbWFuYWdlYWJsZS5cbiAqXG4gKi9cbmNvbnN0IGV4dHJhY3RGaWxlUGF0aEZyb21TdGFja1RyYWNlTGluZVJlZ2V4ZXMgPSBbXG4gIC9cXCgoPzxmaWxlcGF0aD4oXFx3Oik/W146XSopWzpcXGRdKlxcKS8sXG4gIC9hdCAoPzxmaWxlcGF0aD4uKlxcLlxcd1teOlxcZF0qKVs6XFxkXSovLFxuXTtcblxuLyoqXG4gKiBFeHRyYWN0cyBhIGZpbGUgcGF0aCBmcm9tIGEgZ2l2ZW4gc3RhY2sgdHJhY2UgbGluZVxuICovXG5leHBvcnQgY2xhc3MgRmlsZVBhdGhFeHRyYWN0b3Ige1xuICAvKipcbiAgICogQ29uc3RydWN0b3IgZm9yIEZpbGVQYXRoRXh0cmFjdG9yXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0YWNrVHJhY2VMaW5lOiBzdHJpbmcpIHt9XG5cbiAgZXh0cmFjdCA9ICgpID0+IHtcbiAgICBmb3IgKGNvbnN0IHJlZ2V4IG9mIGV4dHJhY3RGaWxlUGF0aEZyb21TdGFja1RyYWNlTGluZVJlZ2V4ZXMpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5zdGFja1RyYWNlTGluZS5tYXRjaChyZWdleCk7XG4gICAgICBpZiAobWF0Y2g/Lmdyb3Vwcz8uZmlsZXBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhbmRhcmRpemVQYXRoKG1hdGNoPy5ncm91cHM/LmZpbGVwYXRoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvLyBUaGUgaW5wdXQgY2FuIGJlIGVpdGhlciBhIGZpbGUgcGF0aCBvciBhIGZpbGUgVVJMLiBJZiBpdCdzIGEgZmlsZSBVUkwsIGNvbnZlcnQgaXQgdG8gdGhlIHBhdGguXG4gIHByaXZhdGUgc3RhbmRhcmRpemVQYXRoID0gKG1heWJlVXJsOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKG1heWJlVXJsKTtcbiAgICAgIGlmICh1cmwucHJvdG9jb2wgPT09ICdmaWxlOicpIHtcbiAgICAgICAgcmV0dXJuIGZpbGVVUkxUb1BhdGgodXJsKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtYXliZVVybDtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBtYXliZVVybDtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ export * from './backend_identifier_conversions.js';
2
+ export * from './backend_entry_point_locator.js';
3
+ export * from './caller_directory_extractor.js';
4
+ export * from './extract_file_path_from_stack_trace_line.js';
5
+ export * from './package_json_reader.js';
6
+ export * from './usage-data/usage_data_emitter_factory.js';
7
+ export * from './config/local_configuration_controller_factory.js';
8
+ export * from './errors';
9
+ export { USAGE_DATA_TRACKING_ENABLED } from './usage-data/constants.js';
10
+ export { CDKContextKey } from './cdk_context_key.js';
11
+ export * from './parameter_path_conversions.js';
12
+ export * from './object_accumulator.js';
13
+ export { TagName } from './tag_name.js';
14
+ export * from './naming_convention_conversions.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,4 @@
1
+ import * as __export__cdk from './cdk/index.js';
2
+ export * from './index.js';
3
+ export { __export__cdk };
4
+ //# sourceMappingURL=index.internal.d.ts.map
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.__export__cdk = void 0;
30
+ // Suppressing to allow special prefix __export__ that is recognized by API checks.
31
+ // eslint-disable-next-line @typescript-eslint/naming-convention
32
+ const __export__cdk = __importStar(require("./cdk/index.js"));
33
+ exports.__export__cdk = __export__cdk;
34
+ __exportStar(require("./index.js"), exports);
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguaW50ZXJuYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRkFBbUY7QUFDbkYsZ0VBQWdFO0FBQ2hFLDhEQUFnRDtBQVN2QyxzQ0FBYTtBQVB0Qiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTdXBwcmVzc2luZyB0byBhbGxvdyBzcGVjaWFsIHByZWZpeCBfX2V4cG9ydF9fIHRoYXQgaXMgcmVjb2duaXplZCBieSBBUEkgY2hlY2tzLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuaW1wb3J0ICogYXMgX19leHBvcnRfX2NkayBmcm9tICcuL2Nkay9pbmRleC5qcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXguanMnO1xuXG4vKlxuIEFwaS1leHRyYWN0b3IgZG9lcyBub3QgKFt5ZXRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvcnVzaHN0YWNrL2lzc3Vlcy8xNTk2KSkgc3VwcG9ydCBtdWx0aXBsZSBwYWNrYWdlIGVudHJ5IHBvaW50c1xuIEJlY2F1c2UgdGhpcyBwYWNrYWdlIGhhcyBhIHN1Ym1vZHVsZSBleHBvcnQsIHdlIGFyZSB3b3JraW5nIGFyb3VuZCB0aGlzIGlzc3VlIGJ5IGluY2x1ZGluZyB0aGF0IGV4cG9ydCBoZXJlIGFuZCBkaXJlY3RpbmcgYXBpLWV4dHJhY3QgdG8gdGhpcyBlbnRyeSBwb2ludCBpbnN0ZWFkXG4gVGhpcyBhbGxvd3MgYXBpLWV4dHJhY3RvciB0byBwaWNrIHVwIHRoZSBzdWJtb2R1bGUgZXhwb3J0cyBpbiBpdHMgYW5hbHlzaXNcbiAqL1xuZXhwb3J0IHsgX19leHBvcnRfX2NkayB9O1xuIl19
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.TagName = exports.CDKContextKey = exports.USAGE_DATA_TRACKING_ENABLED = void 0;
18
+ __exportStar(require("./backend_identifier_conversions.js"), exports);
19
+ __exportStar(require("./backend_entry_point_locator.js"), exports);
20
+ __exportStar(require("./caller_directory_extractor.js"), exports);
21
+ __exportStar(require("./extract_file_path_from_stack_trace_line.js"), exports);
22
+ __exportStar(require("./package_json_reader.js"), exports);
23
+ __exportStar(require("./usage-data/usage_data_emitter_factory.js"), exports);
24
+ __exportStar(require("./config/local_configuration_controller_factory.js"), exports);
25
+ __exportStar(require("./errors"), exports);
26
+ var constants_js_1 = require("./usage-data/constants.js");
27
+ Object.defineProperty(exports, "USAGE_DATA_TRACKING_ENABLED", { enumerable: true, get: function () { return constants_js_1.USAGE_DATA_TRACKING_ENABLED; } });
28
+ var cdk_context_key_js_1 = require("./cdk_context_key.js");
29
+ Object.defineProperty(exports, "CDKContextKey", { enumerable: true, get: function () { return cdk_context_key_js_1.CDKContextKey; } });
30
+ __exportStar(require("./parameter_path_conversions.js"), exports);
31
+ __exportStar(require("./object_accumulator.js"), exports);
32
+ var tag_name_js_1 = require("./tag_name.js");
33
+ Object.defineProperty(exports, "TagName", { enumerable: true, get: function () { return tag_name_js_1.TagName; } });
34
+ __exportStar(require("./naming_convention_conversions.js"), exports);
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzRUFBb0Q7QUFDcEQsbUVBQWlEO0FBQ2pELGtFQUFnRDtBQUNoRCwrRUFBNkQ7QUFDN0QsMkRBQXlDO0FBQ3pDLDZFQUEyRDtBQUMzRCxxRkFBbUU7QUFDbkUsMkNBQXlCO0FBQ3pCLDBEQUF3RTtBQUEvRCwySEFBQSwyQkFBMkIsT0FBQTtBQUNwQywyREFBcUQ7QUFBNUMsbUhBQUEsYUFBYSxPQUFBO0FBQ3RCLGtFQUFnRDtBQUNoRCwwREFBd0M7QUFDeEMsNkNBQXdDO0FBQS9CLHNHQUFBLE9BQU8sT0FBQTtBQUNoQixxRUFBbUQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2JhY2tlbmRfaWRlbnRpZmllcl9jb252ZXJzaW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2JhY2tlbmRfZW50cnlfcG9pbnRfbG9jYXRvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NhbGxlcl9kaXJlY3RvcnlfZXh0cmFjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZXh0cmFjdF9maWxlX3BhdGhfZnJvbV9zdGFja190cmFjZV9saW5lLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGFja2FnZV9qc29uX3JlYWRlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3VzYWdlLWRhdGEvdXNhZ2VfZGF0YV9lbWl0dGVyX2ZhY3RvcnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcvbG9jYWxfY29uZmlndXJhdGlvbl9jb250cm9sbGVyX2ZhY3RvcnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvcnMnO1xuZXhwb3J0IHsgVVNBR0VfREFUQV9UUkFDS0lOR19FTkFCTEVEIH0gZnJvbSAnLi91c2FnZS1kYXRhL2NvbnN0YW50cy5qcyc7XG5leHBvcnQgeyBDREtDb250ZXh0S2V5IH0gZnJvbSAnLi9jZGtfY29udGV4dF9rZXkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXJhbWV0ZXJfcGF0aF9jb252ZXJzaW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdF9hY2N1bXVsYXRvci5qcyc7XG5leHBvcnQgeyBUYWdOYW1lIH0gZnJvbSAnLi90YWdfbmFtZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL25hbWluZ19jb252ZW50aW9uX2NvbnZlcnNpb25zLmpzJztcbiJdfQ==