@aws-amplify/graphql-api-construct 1.18.7 → 1.18.8

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 (177) hide show
  1. package/.jsii +83 -43
  2. package/CHANGELOG.md +6 -0
  3. package/lib/amplify-dynamodb-table-wrapper.js +1 -1
  4. package/lib/amplify-graphql-api.js +4 -2
  5. package/lib/amplify-graphql-definition.js +1 -1
  6. package/lib/sql-model-datasource-strategy.js +1 -1
  7. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/conversation_handler_construct.d.ts +13 -0
  8. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/conversation_handler_construct.js +17 -4
  9. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/bedrock_converse_adapter.js +89 -71
  10. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/types.d.ts +1 -0
  11. package/node_modules/@aws-amplify/ai-constructs/lib/conversation/runtime/types.js +1 -1
  12. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/README.md +9 -0
  13. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/backend_entry_point_locator.d.ts +14 -0
  14. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/backend_entry_point_locator.js +37 -0
  15. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/backend_identifier_conversions.d.ts +22 -0
  16. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/backend_identifier_conversions.js +90 -0
  17. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/caller_directory_extractor.d.ts +14 -0
  18. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/caller_directory_extractor.js +70 -0
  19. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk/enum_converters.d.ts +18 -0
  20. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk/enum_converters.js +116 -0
  21. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk/index.d.ts +3 -0
  22. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk/index.js +7 -0
  23. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.d.ts +12 -0
  24. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/cdk_context_key.js +16 -0
  25. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/config/local_configuration_controller.d.ts +45 -0
  26. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/config/local_configuration_controller.js +125 -0
  27. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/config/local_configuration_controller_factory.d.ts +23 -0
  28. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/config/local_configuration_controller_factory.js +29 -0
  29. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_error.d.ts +64 -0
  30. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_error.js +267 -0
  31. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_library_fault.d.ts +21 -0
  32. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_library_fault.js +27 -0
  33. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_user_error.d.ts +21 -0
  34. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/amplify_user_error.js +27 -0
  35. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/index.d.ts +4 -0
  36. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/errors/index.js +20 -0
  37. 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
  38. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/extract_file_path_from_stack_trace_line.js +61 -0
  39. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/index.d.ts +15 -0
  40. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/index.internal.d.ts +4 -0
  41. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/index.internal.js +35 -0
  42. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/index.js +35 -0
  43. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/naming_convention_conversions.d.ts +13 -0
  44. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/naming_convention_conversions.js +23 -0
  45. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/object_accumulator.d.ts +45 -0
  46. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/object_accumulator.js +99 -0
  47. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/package_json_reader.d.ts +33 -0
  48. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/package_json_reader.js +56 -0
  49. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/parameter_path_conversions.d.ts +19 -0
  50. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/parameter_path_conversions.js +79 -0
  51. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/tag_name.d.ts +4 -0
  52. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/tag_name.js +8 -0
  53. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/account_id_fetcher.d.ts +14 -0
  54. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/account_id_fetcher.js +38 -0
  55. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/constants.d.ts +13 -0
  56. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/constants.js +16 -0
  57. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/get_installation_id.d.ts +5 -0
  58. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/get_installation_id.js +15 -0
  59. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/get_usage_data_url.d.ts +6 -0
  60. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/get_usage_data_url.js +24 -0
  61. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/noop_usage_data_emitter.d.ts +15 -0
  62. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/noop_usage_data_emitter.js +24 -0
  63. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/serializable_error.d.ts +27 -0
  64. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/serializable_error.js +70 -0
  65. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data.d.ts +29 -0
  66. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data.js +3 -0
  67. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data_emitter.d.ts +27 -0
  68. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data_emitter.js +146 -0
  69. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data_emitter_factory.d.ts +16 -0
  70. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/lib/usage-data/usage_data_emitter_factory.js +27 -0
  71. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/platform-core/package.json +45 -0
  72. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/README.md +9 -0
  73. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/amplify_function.d.ts +4 -0
  74. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/amplify_function.js +3 -0
  75. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/amplify_resource_group_name.d.ts +7 -0
  76. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/amplify_resource_group_name.js +3 -0
  77. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/auth_resources.d.ts +106 -0
  78. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/auth_resources.js +3 -0
  79. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/aws_client_provider.d.ts +5 -0
  80. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/aws_client_provider.js +3 -0
  81. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_identifier.d.ts +56 -0
  82. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_identifier.js +3 -0
  83. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_output.d.ts +6 -0
  84. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_output.js +3 -0
  85. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_secret_resolver.d.ts +22 -0
  86. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_secret_resolver.js +3 -0
  87. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_creator.d.ts +8 -0
  88. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_creator.js +3 -0
  89. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_resolver.d.ts +7 -0
  90. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/backend_stack_resolver.js +3 -0
  91. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_container.d.ts +35 -0
  92. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_container.js +3 -0
  93. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_factory.d.ts +24 -0
  94. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/construct_factory.js +3 -0
  95. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deep_partial.d.ts +17 -0
  96. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deep_partial.js +3 -0
  97. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deployment_type.d.ts +8 -0
  98. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/deployment_type.js +3 -0
  99. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/function_resources.d.ts +8 -0
  100. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/function_resources.js +3 -0
  101. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/import_path_verifier.d.ts +14 -0
  102. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/import_path_verifier.js +3 -0
  103. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/index.d.ts +27 -0
  104. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/index.js +43 -0
  105. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/log_level.d.ts +2 -0
  106. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/log_level.js +3 -0
  107. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/log_retention.d.ts +2 -0
  108. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/log_retention.js +3 -0
  109. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_retrieval_strategy.d.ts +11 -0
  110. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_retrieval_strategy.js +3 -0
  111. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_storage_strategy.d.ts +10 -0
  112. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/output_storage_strategy.js +3 -0
  113. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/package_manager_controller.d.ts +30 -0
  114. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/package_manager_controller.js +3 -0
  115. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_access_acceptor.d.ts +27 -0
  116. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_access_acceptor.js +3 -0
  117. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_name_validator.d.ts +10 -0
  118. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_name_validator.js +3 -0
  119. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_provider.d.ts +10 -0
  120. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/resource_provider.js +3 -0
  121. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/ssm_environment_entries_generator.d.ts +5 -0
  122. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/ssm_environment_entries_generator.js +3 -0
  123. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/stable_backend_identifiers.d.ts +4 -0
  124. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/stable_backend_identifiers.js +3 -0
  125. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/stack_provider.d.ts +5 -0
  126. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/lib/stack_provider.js +3 -0
  127. package/node_modules/@aws-amplify/ai-constructs/node_modules/@aws-amplify/plugin-types/package.json +21 -0
  128. package/node_modules/@aws-amplify/ai-constructs/package.json +5 -5
  129. package/node_modules/@aws-amplify/graphql-auth-transformer/CHANGELOG.md +4 -0
  130. package/node_modules/@aws-amplify/graphql-auth-transformer/package.json +12 -12
  131. package/node_modules/@aws-amplify/graphql-conversation-transformer/CHANGELOG.md +6 -0
  132. package/node_modules/@aws-amplify/graphql-conversation-transformer/package.json +10 -10
  133. package/node_modules/@aws-amplify/graphql-default-value-transformer/CHANGELOG.md +4 -0
  134. package/node_modules/@aws-amplify/graphql-default-value-transformer/package.json +6 -6
  135. package/node_modules/@aws-amplify/graphql-function-transformer/CHANGELOG.md +4 -0
  136. package/node_modules/@aws-amplify/graphql-function-transformer/package.json +6 -6
  137. package/node_modules/@aws-amplify/graphql-generation-transformer/CHANGELOG.md +4 -0
  138. package/node_modules/@aws-amplify/graphql-generation-transformer/package.json +6 -6
  139. package/node_modules/@aws-amplify/graphql-http-transformer/CHANGELOG.md +4 -0
  140. package/node_modules/@aws-amplify/graphql-http-transformer/package.json +6 -6
  141. package/node_modules/@aws-amplify/graphql-index-transformer/CHANGELOG.md +4 -0
  142. package/node_modules/@aws-amplify/graphql-index-transformer/package.json +7 -7
  143. package/node_modules/@aws-amplify/graphql-maps-to-transformer/CHANGELOG.md +4 -0
  144. package/node_modules/@aws-amplify/graphql-maps-to-transformer/lib/assets/mapping-lambda.zip +0 -0
  145. package/node_modules/@aws-amplify/graphql-maps-to-transformer/package.json +10 -10
  146. package/node_modules/@aws-amplify/graphql-model-transformer/CHANGELOG.md +7 -0
  147. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-lambda.zip +0 -0
  148. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-notification-lambda.zip +0 -0
  149. package/node_modules/@aws-amplify/graphql-model-transformer/lib/rds-patching-lambda.zip +0 -0
  150. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/import-table.d.ts +1 -0
  151. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/import-table.d.ts.map +1 -1
  152. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/import-table.js +24 -4
  153. package/node_modules/@aws-amplify/graphql-model-transformer/lib/resources/amplify-dynamodb-table/amplify-table-manager-lambda/import-table.js.map +1 -1
  154. package/node_modules/@aws-amplify/graphql-model-transformer/package.json +6 -6
  155. package/node_modules/@aws-amplify/graphql-predictions-transformer/CHANGELOG.md +4 -0
  156. package/node_modules/@aws-amplify/graphql-predictions-transformer/lib/predictionsLambdaFunction.zip +0 -0
  157. package/node_modules/@aws-amplify/graphql-predictions-transformer/package.json +6 -6
  158. package/node_modules/@aws-amplify/graphql-relational-transformer/CHANGELOG.md +4 -0
  159. package/node_modules/@aws-amplify/graphql-relational-transformer/package.json +8 -8
  160. package/node_modules/@aws-amplify/graphql-searchable-transformer/CHANGELOG.md +4 -0
  161. package/node_modules/@aws-amplify/graphql-searchable-transformer/lib/streaming-lambda.zip +0 -0
  162. package/node_modules/@aws-amplify/graphql-searchable-transformer/package.json +7 -7
  163. package/node_modules/@aws-amplify/graphql-sql-transformer/CHANGELOG.md +4 -0
  164. package/node_modules/@aws-amplify/graphql-sql-transformer/package.json +7 -7
  165. package/node_modules/@aws-amplify/graphql-transformer/CHANGELOG.md +4 -0
  166. package/node_modules/@aws-amplify/graphql-transformer/package.json +19 -19
  167. package/node_modules/@aws-amplify/graphql-transformer-core/CHANGELOG.md +4 -0
  168. package/node_modules/@aws-amplify/graphql-transformer-core/package.json +4 -4
  169. package/node_modules/@aws-amplify/graphql-transformer-interfaces/CHANGELOG.md +4 -0
  170. package/node_modules/@aws-amplify/graphql-transformer-interfaces/package.json +3 -3
  171. package/node_modules/@aws-amplify/graphql-transformer-interfaces/tsconfig.tsbuildinfo +1 -1
  172. package/node_modules/lodash.snakecase/LICENSE +47 -0
  173. package/node_modules/lodash.snakecase/README.md +18 -0
  174. package/node_modules/lodash.snakecase/index.js +435 -0
  175. package/node_modules/lodash.snakecase/package.json +17 -0
  176. package/package.json +24 -22
  177. package/src/amplify-graphql-api.ts +7 -1
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Base class for all Amplify errors or faults
3
+ */
4
+ export declare abstract class AmplifyError<T extends string = string> extends Error {
5
+ readonly name: T;
6
+ readonly classification: AmplifyErrorClassification;
7
+ private readonly options;
8
+ readonly cause?: Error | undefined;
9
+ serializedError?: string;
10
+ readonly message: string;
11
+ readonly resolution?: string;
12
+ readonly details?: string;
13
+ readonly link?: string;
14
+ readonly code?: string;
15
+ /**
16
+ * You should use AmplifyUserError or AmplifyLibraryFault to throw an error.
17
+ * @param name - a user friendly name for the exception
18
+ * @param classification - LibraryFault or UserError
19
+ * @param options - error stack, resolution steps, details, or help links
20
+ * @param cause If you are throwing this exception from within a catch block,
21
+ * you must provide the exception that was caught.
22
+ * @example
23
+ * try {
24
+ * ...
25
+ * } catch (error){
26
+ * throw new AmplifyError(...,...,error);
27
+ * }
28
+ */
29
+ constructor(name: T, classification: AmplifyErrorClassification, options: AmplifyErrorOptions, cause?: Error | undefined);
30
+ static fromStderr: (_stderr: string) => AmplifyError | undefined;
31
+ /**
32
+ * This function is a type predicate for AmplifyError.
33
+ * See https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates.
34
+ *
35
+ * Checks if error is an AmplifyError by inspecting if required properties are set.
36
+ * This is recommended instead of instanceof operator.
37
+ * The instance of operator does not work as expected if AmplifyError class is loaded
38
+ * from multiple sources, for example when package manager decides to not de-duplicate dependencies.
39
+ * See https://github.com/nodejs/node/issues/17943.
40
+ */
41
+ static isAmplifyError: (error: unknown) => error is AmplifyError<string>;
42
+ static fromError: (error: unknown) => AmplifyError;
43
+ }
44
+ /**
45
+ * Amplify exception classifications
46
+ */
47
+ export type AmplifyErrorClassification = 'FAULT' | 'ERROR';
48
+ /**
49
+ * Amplify Error options object
50
+ */
51
+ export type AmplifyErrorOptions = {
52
+ message: string;
53
+ details?: string;
54
+ resolution?: string;
55
+ link?: string;
56
+ code?: string;
57
+ };
58
+ /**
59
+ * Same as AmplifyErrorOptions except resolution is required
60
+ */
61
+ export type AmplifyUserErrorOptions = Omit<AmplifyErrorOptions, 'resolution'> & {
62
+ resolution: string;
63
+ };
64
+ //# sourceMappingURL=amplify_error.d.ts.map
@@ -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