cdk-serverless 3.3.3 → 3.5.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 (46) hide show
  1. package/docs/constructs/assets/hierarchy.js +1 -1
  2. package/docs/constructs/assets/navigation.js +1 -1
  3. package/docs/constructs/assets/search.js +1 -1
  4. package/docs/constructs/classes/GraphQlApi.html +4 -3
  5. package/docs/constructs/classes/McpAuth.html +1 -1
  6. package/docs/constructs/classes/McpCognitoAuth.html +1 -1
  7. package/docs/constructs/classes/RestApi.html +1 -1
  8. package/docs/constructs/classes/SingleTableDatastore.html +1 -1
  9. package/docs/constructs/classes/Workflow.html +1 -1
  10. package/docs/constructs/hierarchy.html +5 -5
  11. package/docs/constructs/interfaces/GraphQlApiProps.html +24 -3
  12. package/docs/constructs/interfaces/LambdaResolverOptions.html +72 -0
  13. package/docs/constructs/interfaces/RestApiProps.html +1 -1
  14. package/docs/constructs/modules.html +2 -2
  15. package/docs/experiments/appsync-unit-resolver-error-probe.md +201 -0
  16. package/docs/lambda/assets/hierarchy.js +1 -1
  17. package/docs/lambda/assets/navigation.js +1 -1
  18. package/docs/lambda/assets/search.js +1 -1
  19. package/docs/lambda/classes/errors.BadRequestError.html +1 -1
  20. package/docs/lambda/classes/errors.ForbiddenError.html +3 -3
  21. package/docs/lambda/classes/errors.HttpError.html +3 -3
  22. package/docs/lambda/classes/errors.NotFoundError.html +3 -3
  23. package/docs/lambda/classes/errors.UnauthenticatedError.html +1 -1
  24. package/docs/lambda/classes/errors.appsync.AppSyncError.html +193 -0
  25. package/docs/lambda/classes/errors.appsync.ConflictError.html +184 -0
  26. package/docs/lambda/classes/errors.appsync.ForbiddenError.html +184 -0
  27. package/docs/lambda/classes/errors.appsync.NotFoundError.html +184 -0
  28. package/docs/lambda/classes/errors.appsync.ValidationError.html +184 -0
  29. package/docs/lambda/functions/api.createAppSyncBatchHandler.html +57 -0
  30. package/docs/lambda/hierarchy.html +16 -5
  31. package/docs/lambda/interfaces/api.AppSyncBatchHandlerContext.html +89 -0
  32. package/docs/lambda/interfaces/api.AppSyncHandlerContext.html +6 -0
  33. package/docs/lambda/modules/api.html +6 -6
  34. package/docs/lambda/modules/errors.appsync.html +38 -0
  35. package/docs/lambda/modules/errors.html +4 -0
  36. package/docs/lambda/types/api.AppSyncBatchHandler.html +53 -0
  37. package/lib/constructs/graphql.d.ts +40 -1
  38. package/lib/constructs/graphql.js +103 -3
  39. package/lib/lambda/appsync-errors.d.ts +67 -0
  40. package/lib/lambda/appsync-errors.js +91 -0
  41. package/lib/lambda/errors.d.ts +1 -0
  42. package/lib/lambda/errors.js +36 -2
  43. package/lib/lambda/handler.d.ts +28 -0
  44. package/lib/lambda/handler.js +142 -2
  45. package/llm.md +43 -0
  46. package/package.json +1 -1
@@ -12,7 +12,7 @@
12
12
  <details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>
13
13
  <h2 class="tsd-anchor-link" id="classes">Classes<a href="#classes" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="assetcdn"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><a href="classes/AssetCdn.html">AssetCdn</a><a href="#assetcdn" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="baseapi"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><a href="classes/BaseApi.html">BaseApi</a><a href="#baseapi" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="cognitoauthentication"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><a href="classes/CognitoAuthentication.html">CognitoAuthentication</a><a href="#cognitoauthentication" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="graphqlapi"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><a href="classes/GraphQlApi.html">GraphQlApi</a><a href="#graphqlapi" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="lambdafunction"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><a href="classes/LambdaFunction.html">LambdaFunction</a><a href="#lambdafunction" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauth"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><a href="classes/McpAuth.html">McpAuth</a><a href="#mcpauth" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpcognitoauth"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><a href="classes/McpCognitoAuth.html">McpCognitoAuth</a><a href="#mcpcognitoauth" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="restapi"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><a href="classes/RestApi.html">RestApi</a><a href="#restapi" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="singletabledatastore"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><a href="classes/SingleTableDatastore.html">SingleTableDatastore</a><a href="#singletabledatastore" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="workflow"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><a href="classes/Workflow.html">Workflow</a><a href="#workflow" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
14
14
  <details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Interfaces"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>
15
- <h2 class="tsd-anchor-link" id="interfaces">Interfaces<a href="#interfaces" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="assetcdnprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/AssetCdnProps.html">AssetCdnProps</a><a href="#assetcdnprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="baseapiprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/BaseApiProps.html">BaseApiProps</a><a href="#baseapiprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="cognitoauthenticationprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/CognitoAuthenticationProps.html">CognitoAuthenticationProps</a><a href="#cognitoauthenticationprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="graphqlapiprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/GraphQlApiProps.html">GraphQlApiProps</a><a href="#graphqlapiprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="icognitoauthentication"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/ICognitoAuthentication.html">ICognitoAuthentication</a><a href="#icognitoauthentication" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="ijwtauthentication"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/IJwtAuthentication.html">IJwtAuthentication</a><a href="#ijwtauthentication" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="isingletabledatastore"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/ISingleTableDatastore.html">ISingleTableDatastore</a><a href="#isingletabledatastore" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="jsresolveroptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/JsResolverOptions.html">JsResolverOptions</a><a href="#jsresolveroptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="lambdafunctionprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/LambdaFunctionProps.html">LambdaFunctionProps</a><a href="#lambdafunctionprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="lambdatracingoptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/LambdaTracingOptions.html">LambdaTracingOptions</a><a href="#lambdatracingoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauthcognitooptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpAuthCognitoOptions.html">McpAuthCognitoOptions</a><a href="#mcpauthcognitooptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauthfunctions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpAuthFunctions.html">McpAuthFunctions</a><a href="#mcpauthfunctions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauthgenericoptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpAuthGenericOptions.html">McpAuthGenericOptions</a><a href="#mcpauthgenericoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauthoptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpAuthOptions.html">McpAuthOptions</a><a href="#mcpauthoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauthprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpAuthProps.html">McpAuthProps</a><a href="#mcpauthprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpcognitoauthprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpCognitoAuthProps.html">McpCognitoAuthProps</a><a href="#mcpcognitoauthprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="restapiprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/RestApiProps.html">RestApiProps</a><a href="#restapiprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="singletabledatastoreprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/SingleTableDatastoreProps.html">SingleTableDatastoreProps</a><a href="#singletabledatastoreprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="singletabledesign"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/SingleTableDesign.html">SingleTableDesign</a><a href="#singletabledesign" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="vtlresolveroptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/VtlResolverOptions.html">VtlResolverOptions</a><a href="#vtlresolveroptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="workflowprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/WorkflowProps.html">WorkflowProps</a><a href="#workflowprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
15
+ <h2 class="tsd-anchor-link" id="interfaces">Interfaces<a href="#interfaces" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="assetcdnprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/AssetCdnProps.html">AssetCdnProps</a><a href="#assetcdnprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="baseapiprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/BaseApiProps.html">BaseApiProps</a><a href="#baseapiprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="cognitoauthenticationprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/CognitoAuthenticationProps.html">CognitoAuthenticationProps</a><a href="#cognitoauthenticationprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="graphqlapiprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/GraphQlApiProps.html">GraphQlApiProps</a><a href="#graphqlapiprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="icognitoauthentication"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/ICognitoAuthentication.html">ICognitoAuthentication</a><a href="#icognitoauthentication" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="ijwtauthentication"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/IJwtAuthentication.html">IJwtAuthentication</a><a href="#ijwtauthentication" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="isingletabledatastore"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/ISingleTableDatastore.html">ISingleTableDatastore</a><a href="#isingletabledatastore" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="jsresolveroptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/JsResolverOptions.html">JsResolverOptions</a><a href="#jsresolveroptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="lambdafunctionprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/LambdaFunctionProps.html">LambdaFunctionProps</a><a href="#lambdafunctionprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="lambdaresolveroptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/LambdaResolverOptions.html">LambdaResolverOptions</a><a href="#lambdaresolveroptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="lambdatracingoptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/LambdaTracingOptions.html">LambdaTracingOptions</a><a href="#lambdatracingoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauthcognitooptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpAuthCognitoOptions.html">McpAuthCognitoOptions</a><a href="#mcpauthcognitooptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauthfunctions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpAuthFunctions.html">McpAuthFunctions</a><a href="#mcpauthfunctions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauthgenericoptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpAuthGenericOptions.html">McpAuthGenericOptions</a><a href="#mcpauthgenericoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauthoptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpAuthOptions.html">McpAuthOptions</a><a href="#mcpauthoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpauthprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpAuthProps.html">McpAuthProps</a><a href="#mcpauthprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="mcpcognitoauthprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/McpCognitoAuthProps.html">McpCognitoAuthProps</a><a href="#mcpcognitoauthprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="restapiprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/RestApiProps.html">RestApiProps</a><a href="#restapiprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="singletabledatastoreprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/SingleTableDatastoreProps.html">SingleTableDatastoreProps</a><a href="#singletabledatastoreprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="singletabledesign"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/SingleTableDesign.html">SingleTableDesign</a><a href="#singletabledesign" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="vtlresolveroptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/VtlResolverOptions.html">VtlResolverOptions</a><a href="#vtlresolveroptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="workflowprops"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><a href="interfaces/WorkflowProps.html">WorkflowProps</a><a href="#workflowprops" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details>
16
16
  <details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>
17
17
  <h2 class="tsd-anchor-link" id="type-aliases">Type Aliases<a href="#type-aliases" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="lambdaoptions"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="assets/icons.svg#icon-2097152"></use></svg><a href="types/LambdaOptions.html">LambdaOptions</a><a href="#lambdaoptions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div>
18
18
  <div class="col-sidebar">
@@ -33,7 +33,7 @@
33
33
  <details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Classes</summary>
34
34
  <div><a href="#assetcdn"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><span>Asset<wbr/>Cdn</span></a><a href="#baseapi"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><span>Base<wbr/>Api</span></a><a href="#cognitoauthentication"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><span>Cognito<wbr/>Authentication</span></a><a href="#graphqlapi"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><span>Graph<wbr/>Ql<wbr/>Api</span></a><a href="#lambdafunction"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><span>Lambda<wbr/>Function</span></a><a href="#mcpauth"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><span>Mcp<wbr/>Auth</span></a><a href="#mcpcognitoauth"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><span>Mcp<wbr/>Cognito<wbr/>Auth</span></a><a href="#restapi"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><span>Rest<wbr/>Api</span></a><a href="#singletabledatastore"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><span>Single<wbr/>Table<wbr/>Datastore</span></a><a href="#workflow"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg><span>Workflow</span></a></div></details>
35
35
  <details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Interfaces"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Interfaces</summary>
36
- <div><a href="#assetcdnprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Asset<wbr/>Cdn<wbr/>Props</span></a><a href="#baseapiprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Base<wbr/>Api<wbr/>Props</span></a><a href="#cognitoauthenticationprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Cognito<wbr/>Authentication<wbr/>Props</span></a><a href="#graphqlapiprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Graph<wbr/>Ql<wbr/>Api<wbr/>Props</span></a><a href="#icognitoauthentication"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>I<wbr/>Cognito<wbr/>Authentication</span></a><a href="#ijwtauthentication"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>I<wbr/>Jwt<wbr/>Authentication</span></a><a href="#isingletabledatastore"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>I<wbr/>Single<wbr/>Table<wbr/>Datastore</span></a><a href="#jsresolveroptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Js<wbr/>Resolver<wbr/>Options</span></a><a href="#lambdafunctionprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Lambda<wbr/>Function<wbr/>Props</span></a><a href="#lambdatracingoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Lambda<wbr/>Tracing<wbr/>Options</span></a><a href="#mcpauthcognitooptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Auth<wbr/>Cognito<wbr/>Options</span></a><a href="#mcpauthfunctions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Auth<wbr/>Functions</span></a><a href="#mcpauthgenericoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Auth<wbr/>Generic<wbr/>Options</span></a><a href="#mcpauthoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Auth<wbr/>Options</span></a><a href="#mcpauthprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Auth<wbr/>Props</span></a><a href="#mcpcognitoauthprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Cognito<wbr/>Auth<wbr/>Props</span></a><a href="#restapiprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Rest<wbr/>Api<wbr/>Props</span></a><a href="#singletabledatastoreprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Single<wbr/>Table<wbr/>Datastore<wbr/>Props</span></a><a href="#singletabledesign"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Single<wbr/>Table<wbr/>Design</span></a><a href="#vtlresolveroptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Vtl<wbr/>Resolver<wbr/>Options</span></a><a href="#workflowprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Workflow<wbr/>Props</span></a></div></details>
36
+ <div><a href="#assetcdnprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Asset<wbr/>Cdn<wbr/>Props</span></a><a href="#baseapiprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Base<wbr/>Api<wbr/>Props</span></a><a href="#cognitoauthenticationprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Cognito<wbr/>Authentication<wbr/>Props</span></a><a href="#graphqlapiprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Graph<wbr/>Ql<wbr/>Api<wbr/>Props</span></a><a href="#icognitoauthentication"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>I<wbr/>Cognito<wbr/>Authentication</span></a><a href="#ijwtauthentication"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>I<wbr/>Jwt<wbr/>Authentication</span></a><a href="#isingletabledatastore"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>I<wbr/>Single<wbr/>Table<wbr/>Datastore</span></a><a href="#jsresolveroptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Js<wbr/>Resolver<wbr/>Options</span></a><a href="#lambdafunctionprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Lambda<wbr/>Function<wbr/>Props</span></a><a href="#lambdaresolveroptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Lambda<wbr/>Resolver<wbr/>Options</span></a><a href="#lambdatracingoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Lambda<wbr/>Tracing<wbr/>Options</span></a><a href="#mcpauthcognitooptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Auth<wbr/>Cognito<wbr/>Options</span></a><a href="#mcpauthfunctions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Auth<wbr/>Functions</span></a><a href="#mcpauthgenericoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Auth<wbr/>Generic<wbr/>Options</span></a><a href="#mcpauthoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Auth<wbr/>Options</span></a><a href="#mcpauthprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Auth<wbr/>Props</span></a><a href="#mcpcognitoauthprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Mcp<wbr/>Cognito<wbr/>Auth<wbr/>Props</span></a><a href="#restapiprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Rest<wbr/>Api<wbr/>Props</span></a><a href="#singletabledatastoreprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Single<wbr/>Table<wbr/>Datastore<wbr/>Props</span></a><a href="#singletabledesign"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Single<wbr/>Table<wbr/>Design</span></a><a href="#vtlresolveroptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Vtl<wbr/>Resolver<wbr/>Options</span></a><a href="#workflowprops"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg><span>Workflow<wbr/>Props</span></a></div></details>
37
37
  <details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Type Aliases</summary>
38
38
  <div><a href="#lambdaoptions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Lambda<wbr/>Options</span></a></div></details></div></details></div>
39
39
  <div class="site-menu">
@@ -0,0 +1,201 @@
1
+ # Experiment: does a UNIT direct-Lambda resolver surface typed errors on a single Invoke?
2
+
3
+ ## Hand this to an agent that has a real AWS account
4
+
5
+ This is a self-contained experiment spec. Run it in a session with AWS credentials
6
+ and permission to deploy and delete a small CloudFormation stack. It does not depend on
7
+ the `cdk-serverless` library, on this repo, or on any prior session. Everything needed is
8
+ below.
9
+
10
+ ## Why this experiment exists
11
+
12
+ `cdk-serverless` issue #385 adds typed AppSync errors to `createAppSyncHandler`. An
13
+ *expected* resolver failure (forbidden, not-found, validation, conflict) should come back to
14
+ the client as a GraphQL error while the Lambda invocation itself **succeeds**, so the failure
15
+ stays off the Lambda `Errors` metric and out of error-level logs.
16
+
17
+ The implementation on branch `feat/appsync-typed-errors` (PR #386) does this with an
18
+ **APPSYNC_JS pipeline resolver** whose `response` handler calls
19
+ `util.error(message, errorType, null, errorInfo)`. That works, but it changes every Lambda
20
+ resolver from a UNIT direct-Lambda resolver to a PIPELINE resolver, which is a topology change
21
+ consumers must `cdk diff` before deploying.
22
+
23
+ AWS documents a simpler path for the **batched** Lambda invoke: the function returns
24
+ `{ data, errorMessage, errorType }` and AppSync maps a non-null `errorType` to a GraphQL error
25
+ with no resolver code. The open question is whether the **same envelope works for a single
26
+ (non-batch) `Invoke` through a plain UNIT direct-Lambda resolver**. If it does, the library
27
+ can drop the pipeline resolver and keep resolvers as UNIT, removing the topology change.
28
+
29
+ The docs are ambiguous on the single-invoke case. This experiment settles it empirically.
30
+
31
+ ## The exact question to answer
32
+
33
+ > With a **UNIT** AppSync resolver bound directly to a Lambda data source (no VTL, no
34
+ > APPSYNC_JS code, no pipeline), if the Lambda returns `{ errorType, errorMessage }` on a
35
+ > single `Invoke`, does AppSync:
36
+ > 1. return a GraphQL `errors[]` entry carrying that `errorType` and `errorMessage`, AND
37
+ > 2. leave the Lambda invocation counted as a success (no increment on the Lambda `Errors`
38
+ > CloudWatch metric)?
39
+
40
+ A clean **YES** to both means the library can switch to option 3 (UNIT resolver, no pipeline).
41
+ A **NO** to either means the current pipeline approach stays.
42
+
43
+ ## Constraints and conventions
44
+
45
+ - Region: `eu-central-1` unless you are told otherwise.
46
+ - Deploy into a throwaway/test account. Use an admin-capable role.
47
+ - Name the stack `appsync-unit-error-probe` so cleanup is unambiguous.
48
+ - Tear the stack down at the end. Report the stack name and region so a human can verify
49
+ deletion.
50
+ - Do not reuse any existing API or Lambda. This must be an isolated probe.
51
+
52
+ ## Step 1 — the Lambda handler
53
+
54
+ A Node.js 20 Lambda. On input `{ arguments: { mode } }` (AppSync passes the whole context as
55
+ the payload for a direct-Lambda resolver), it returns:
56
+
57
+ - `mode === "ok"` -> a normal object: `{ id: "1", title: "hello" }`
58
+ - `mode === "fail"` -> the native error envelope: `{ errorType: "Forbidden", errorMessage: "not allowed" }`
59
+ - anything else -> throws a plain `Error` (control case: this SHOULD fail the invocation)
60
+
61
+ ```js
62
+ // index.mjs
63
+ export const handler = async (event) => {
64
+ const mode = event?.arguments?.mode ?? event?.payload?.arguments?.mode;
65
+ if (mode === 'ok') {
66
+ return { id: '1', title: 'hello' };
67
+ }
68
+ if (mode === 'fail') {
69
+ // Native direct-Lambda error envelope. The probe measures whether AppSync
70
+ // turns this into a GraphQL error on a SINGLE invoke without any resolver code.
71
+ return { errorType: 'Forbidden', errorMessage: 'not allowed' };
72
+ }
73
+ // Control: an uncaught throw must fail the invocation and hit the Errors metric.
74
+ throw new Error('unexpected');
75
+ };
76
+ ```
77
+
78
+ ## Step 2 — the CDK stack
79
+
80
+ TypeScript CDK (`aws-cdk-lib` v2). The resolver MUST be a UNIT direct-Lambda resolver with no
81
+ request/response mapping templates and no code. In L2 terms, use a `LambdaDataSource` and call
82
+ `createResolver` with only `typeName` and `fieldName` set, no `requestMappingTemplate`,
83
+ no `responseMappingTemplate`, no `runtime`, no `code`, no `pipelineConfig`. That produces
84
+ `Kind: UNIT` with the templates disabled, which is the direct-Lambda path.
85
+
86
+ Schema (two queries so you can hit success and expected-failure paths):
87
+
88
+ ```graphql
89
+ type Item { id: ID!, title: String! }
90
+ type Query {
91
+ getItem(mode: String!): Item
92
+ }
93
+ ```
94
+
95
+ Stack requirements:
96
+ - An `appsync.GraphqlApi` named `appsync-unit-error-probe` with `API_KEY` auth (simplest for
97
+ the probe; the auth mode is irrelevant to the question).
98
+ - The Lambda from Step 1 as a `LambdaDataSource`.
99
+ - A **UNIT** resolver on `Query.getItem` bound to that data source, templates disabled.
100
+ - Stack outputs: the GraphQL URL, the API key, and the Lambda function name.
101
+
102
+ After deploy, confirm in the synthesized template or via `aws appsync get-resolver` that the
103
+ resolver is `kind=UNIT` and has no `pipelineConfig`. If CDK synthesized anything other than a
104
+ plain UNIT direct-Lambda resolver, the probe is invalid — fix the stack before measuring.
105
+
106
+ ## Step 3 — baseline the metric
107
+
108
+ Record the Lambda `Errors` metric before the test so you can detect any increment caused by
109
+ the expected-failure call. Note the function name from the stack output.
110
+
111
+ ```bash
112
+ # Sum of Errors over a wide window, before firing any queries.
113
+ aws cloudwatch get-metric-statistics \
114
+ --namespace AWS/Lambda \
115
+ --metric-name Errors \
116
+ --dimensions Name=FunctionName,Value=<FUNCTION_NAME> \
117
+ --start-time "$(date -u -d '15 minutes ago' +%Y-%m-%dT%H:%M:%SZ)" \
118
+ --end-time "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
119
+ --period 900 --statistics Sum --region eu-central-1
120
+ ```
121
+
122
+ ## Step 4 — fire the three queries
123
+
124
+ Use the API URL and key from the outputs. `curl` is fine.
125
+
126
+ **A. Success path** — expect `data.getItem` populated, no `errors`.
127
+
128
+ ```bash
129
+ curl -s "$URL" -H "x-api-key: $KEY" -H 'Content-Type: application/json' \
130
+ -d '{"query":"query{ getItem(mode:\"ok\"){ id title } }"}'
131
+ ```
132
+
133
+ **B. Expected-failure path (the actual probe)** — the Lambda returns the error envelope.
134
+
135
+ ```bash
136
+ curl -s "$URL" -H "x-api-key: $KEY" -H 'Content-Type: application/json' \
137
+ -d '{"query":"query{ getItem(mode:\"fail\"){ id title } }"}'
138
+ ```
139
+
140
+ **C. Control — uncaught throw** — expect a GraphQL error AND a Lambda `Errors` increment.
141
+
142
+ ```bash
143
+ curl -s "$URL" -H "x-api-key: $KEY" -H 'Content-Type: application/json' \
144
+ -d '{"query":"query{ getItem(mode:\"boom\"){ id title } }"}'
145
+ ```
146
+
147
+ Fire query B at least 3 times so any metric increment is unambiguous.
148
+
149
+ ## Step 5 — re-read the metric
150
+
151
+ Wait about 2 minutes for CloudWatch to populate, then run the same
152
+ `get-metric-statistics` call from Step 3 again. Compare the `Sum` before and after.
153
+
154
+ Attribution: query C (the control) is expected to increment `Errors`. To isolate query B's
155
+ effect, either run B and C in separate time windows and read the metric between them, or run
156
+ only B several times first, read the metric, then run C. The question is specifically whether
157
+ **B** moves the metric.
158
+
159
+ ## Step 6 — record the result
160
+
161
+ Fill in this table and return it verbatim:
162
+
163
+ | Query | GraphQL `data.getItem` | GraphQL `errors[].errorType` | GraphQL `errors[].message` | Lambda `Errors` incremented by this call |
164
+ | --- | --- | --- | --- | --- |
165
+ | A (`ok`) | | | | |
166
+ | B (`fail`) | | | | |
167
+ | C (`boom`) | | | | |
168
+
169
+ Also capture the raw JSON body of query B's response, and the before/after `Sum` values of
170
+ the `Errors` metric.
171
+
172
+ ## Decision rule
173
+
174
+ - **YES to both** (B returns `errors[].errorType == "Forbidden"` with the message, and B does
175
+ NOT increment `Errors`, while C DOES increment it): a UNIT direct-Lambda resolver is
176
+ sufficient. Recommend switching `cdk-serverless` `addLambdaResolver` to a UNIT resolver and
177
+ dropping the APPSYNC_JS pipeline, which removes the deploy topology change.
178
+ - **NO to either** (B returns the envelope as field `data` instead of a GraphQL error, OR B
179
+ increments `Errors`): the single-invoke UNIT path does not do the translation. Keep the
180
+ current APPSYNC_JS pipeline response-handler approach on branch `feat/appsync-typed-errors`.
181
+
182
+ Report which branch of the rule fired and why, quoting query B's JSON as evidence.
183
+
184
+ ## Cleanup
185
+
186
+ ```bash
187
+ # via the CDK app used to deploy
188
+ cdk destroy appsync-unit-error-probe --force
189
+ # or
190
+ aws cloudformation delete-stack --stack-name appsync-unit-error-probe --region eu-central-1
191
+ ```
192
+
193
+ Confirm the stack is `DELETE_COMPLETE` (or gone) and report the stack name and region.
194
+
195
+ ## What to hand back
196
+
197
+ 1. The filled-in result table from Step 6.
198
+ 2. Query B's raw JSON response body.
199
+ 3. Before/after `Errors` metric `Sum`.
200
+ 4. Which decision-rule branch fired, and the one-line recommendation (UNIT vs keep pipeline).
201
+ 5. Confirmation the probe stack was deleted (name + region).
@@ -1 +1 @@
1
- window.hierarchyData = "eJylk11PgzAUhv/Lue4mbQGBu834ES800RgvFi8qVGnEFstBM83+u+mmC8xtwLzhgrxvnqenp19gjcEKkhkPKGGExdEDASufCpmiMrqC5AuY+2jxKiGByw+c1Jgbqz6lBQIvSmeQUBYRqG0BCaSFqCpZHYka83ErPc7xtQCySkACWGUjVx+tfhBIc1VkVmpIZj4jxxGhNH5YEPCbAifmWSs0AyT+NIaIML5UOI4aCpNSnQuUH2L+TofNY2dziBINlkqUxtud2MFO7HCneOUU7HCiw69tb7vDzanEu8bzL5W/7W4Vxtsq5e1cp4dYbC/2EIib63tdSivc414TWRD+EpVGaZ9E6qClGq+zOyHrQnshuOe7heCev418rzC/kW+1rHBqsvkQkY1qDy+nEdCGxgVieWqt2Tty6QLVeJ0d8hp4GBMehcT3OPGZtxxE2NyBqch+ztDXY6PRfec8ChvAO+1WSGpUqUCZ9aVuq3WjfY830GfGPqosk7ovtF3ogWNeA3dl8MzUuvcRW/ku2GLxDenJbas="
1
+ window.hierarchyData = "eJytls1ymzAUhd9Fa8VBfwZ5F2eaZrpIO+20XXSyUEEummKJCNHUzfjdO2DDgI2DsLPxAt+j8+lyrtALsMa4Aix+UMYhIQSSEEMMMY8eIbBylcnYKaMLsHgBuPrRYi3BAnx4djelS41V/6QFEPxWOgELhCMISpuBBYgzURSyuBalS2e96lnq1hmAuwqwAK5Irir51e4BBHGqssRKXVFhGEYQIf64hYB2AW7NL62cmQBxpJgCgkmNEEYdhJtcvRdOPovNHzStHyeVU5AQq5EQ4sNM+GwmfD4T3zGxE0xo+mt7VT3CVqHwU+25COVYPY6CSR8l/7LR8TkUw0IPAN6N78dcWlENd+uI2bxxVNpJuxJxZZqrWVt70qQV9ANBAloFggR0yPm7culn+VTKwi1NspkCciD14KowCDl+A/dCJ5m0t0Y7+dd5MAzqJjeGBXVjWHBMtBQuTs/FGhB7NidEHRRprbFFa0sb07VJykwW17v/T65crVLk7crdk/veufxdpX4t6fvl29ophxDhAaRBCCmmkFJUt5l327wUyT46vhwHivFRo0HYMfyqq8mV2qlYOJn4ug7JPKxxd9bujP2pkkRqX9O+YLTvpVZPpXwQa/lJWKnruwQJ66ZT2g3Ug3F3ptTem+/VX4TBuqeeyPNio+PRYO/r/AJO2cDJ7rvRxqkrm3RHCjmkPIIMhZCReb3lkF8SgYbobaIAKYtqqN7XZ2ocGqY3iUWDxFB3Sr+JTCX1x2Uq1IFyfEYZmffusnqVqdj7NGpse7ox0+32P99OBF0="
@@ -1 +1 @@
1
- window.navigationData = "eJyllMtSwjAUht8la0alA6jsCiOiC3BwHBcMi9gcbMaSxPRURMd3d7iVhoY01W37n+8/10y/CcInki6hipMGURRj0iULybIE0nOq+FmMi4Q0yBsXjHRbDRLFPGEaBOlO8+BQqceViIZUsAR0X4rN9xzHBYKe02hHtKpNn6Dd+Wnk+CGi8mSXpVXgCaRKihR8yEdaF3qsQFPkUpwE5govzDPHeALvGaTYk2xVTT0KcJmED3e3FGFJVx/NXfMOfFyp/dzKsiPqxfVlsx0UycaorVBDUcUrjNcGK/yuIkUaKMKp/OaZiNZN3GJtWpPfaZXQ1lRt3JNJW6BjBSJU3ItramuiT65btZNz8eoaj+T+5v6RwgFSSmZWSIdmGFvewAxjz0eQ5+fRl6+CowwzjKXmX8VRRQlN0z3XGWO6NoMr47AOgfdLrGVk6D1Ngj9UVI7xNatZUVCjos0N+xdjl7ssfNm1oD4NqWhCcdNBa6nT8q5vv3tte4+y3YXdrIPKOe1YRzpXkQOpXzhjINxEU+YCrl9WNytXuDAjiQOZCeZGGSoX7kmsxwUCeUQRKqg2sW22s18AdXFg"
1
+ window.navigationData = "eJytlk1T2zAQhv+LzpnSeIBCbglTSnuADp3CgeEgpA3W1EhCXhfcDv+dSUgcy5blVenVevd5vV+Wb/4yhGdkM8atYhNmOeZsxh6MrAoo97hVH3J8KNiE/VJastn+hIlcFdKBZrObJnhu7Y9aiwVHkZ9xLQtwJ0avDxum0ghuycUGOxziO2YHhy+TrlGaBx1/hmiJ7L50DHwJpTW6BAq5o42hLyw4jsroQWCjIGGuFeaX8FhBiQsj63FqJyDavu9fv3CEJ17/nm6Kt+Njbbd968s61I/Hn6YHWX8w2uMUJPdlRPI4lMhrDU4I1joeIwkHHCGa+bLSYtWjN/ZggO90uD9kksKnooP1CHEHKxOAXljQc6tIXF+biB7clnGn6N6kGp+b7SfjHa+wg/Re5rb1OrzCPHBXVJgTLwvVbPeJudcKzbzC3Dj1p90qUfCy3HKjMb7rNDvytncX+O0Jk4w8PdEk+4eM+jFUs8SMsoSM1jtMTyYsj1lQ2UlQSkFGitCedHDOuLI/62/PSdPOrS1rLQYZm/OU36zPq8h+ch1gWxzvg14WSiCN6qlj2FPj7pSUoGlcXx4Dnxs8NZWWNK6njmGveKHk+n+GBu7o43O04HLzmY3DO7r/UF96XVfXa5zVKN7fHnJbfurVzoJGJTjCCDUkDjXm9hXbo47Z"
@@ -1 +1 @@
1
- window.searchData = "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";
1
+ window.searchData = "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";
@@ -14,7 +14,7 @@
14
14
  <section class="tsd-panel tsd-comment">
15
15
  <div class="tsd-comment tsd-typography"><p>Represents a 400 Bad Request error.</p>
16
16
  </div></section>
17
- <section class="tsd-panel tsd-hierarchy" data-refl="369">
17
+ <section class="tsd-panel tsd-hierarchy" data-refl="390">
18
18
  <h4>Hierarchy (<a href="../hierarchy.html#errors.BadRequestError">View Summary</a>)</h4>
19
19
  <ul class="tsd-hierarchy">
20
20
  <li class="tsd-hierarchy-item"><a href="errors.HttpError.html" class="tsd-signature-type tsd-kind-class">HttpError</a>
@@ -14,7 +14,7 @@
14
14
  <section class="tsd-panel tsd-comment">
15
15
  <div class="tsd-comment tsd-typography"><p>Represents a 403 Forbidden error.</p>
16
16
  </div></section>
17
- <section class="tsd-panel tsd-hierarchy" data-refl="403">
17
+ <section class="tsd-panel tsd-hierarchy" data-refl="424">
18
18
  <h4>Hierarchy (<a href="../hierarchy.html#errors.ForbiddenError">View Summary</a>)</h4>
19
19
  <ul class="tsd-hierarchy">
20
20
  <li class="tsd-hierarchy-item"><a href="errors.HttpError.html" class="tsd-signature-type tsd-kind-class">HttpError</a>
@@ -49,7 +49,7 @@
49
49
  <h3 class="tsd-anchor-link" id="constructor"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
50
50
  <ul class="tsd-signatures">
51
51
  <li class="">
52
- <div class="tsd-signature tsd-anchor-link" id="constructorforbiddenerror"><span class="tsd-signature-keyword">new</span> <span class="tsd-kind-constructor-signature">ForbiddenError</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">ForbiddenError</a><a href="#constructorforbiddenerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div>
52
+ <div class="tsd-signature tsd-anchor-link" id="constructorforbiddenerror"><span class="tsd-signature-keyword">new</span> <span class="tsd-kind-constructor-signature">ForbiddenError</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="../modules/errors.html" class="tsd-signature-type tsd-kind-namespace">errors</a><span class="tsd-signature-symbol">.</span><a href="" class="tsd-signature-type tsd-kind-class">ForbiddenError</a><a href="#constructorforbiddenerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div>
53
53
  <div class="tsd-description">
54
54
  <div class="tsd-comment tsd-typography"><p>Creates an instance of ForbiddenError.</p>
55
55
  </div>
@@ -59,7 +59,7 @@
59
59
  <li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span>
60
60
  <div class="tsd-comment tsd-typography"><p>The error message.</p>
61
61
  </div></li></ul></div>
62
- <h4 class="tsd-returns-title">Returns <a href="" class="tsd-signature-type tsd-kind-class">ForbiddenError</a></h4><aside class="tsd-sources">
62
+ <h4 class="tsd-returns-title">Returns <a href="../modules/errors.html" class="tsd-signature-type tsd-kind-namespace">errors</a><span class="tsd-signature-symbol">.</span><a href="" class="tsd-signature-type tsd-kind-class">ForbiddenError</a></h4><aside class="tsd-sources">
63
63
  <p>Overrides <a href="errors.HttpError.html">HttpError</a>.<a href="errors.HttpError.html#constructor">constructor</a></p></aside></div></li></ul></section></section></details>
64
64
  <details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
65
65
  <h2 class="tsd-anchor-link" id="properties-1">Properties<a href="#properties-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary>
@@ -14,7 +14,7 @@
14
14
  <section class="tsd-panel tsd-comment">
15
15
  <div class="tsd-comment tsd-typography"><p>A base class for HTTP errors.</p>
16
16
  </div></section>
17
- <section class="tsd-panel tsd-hierarchy" data-refl="351">
17
+ <section class="tsd-panel tsd-hierarchy" data-refl="372">
18
18
  <h4>Hierarchy (<a href="../hierarchy.html#errors.HttpError">View Summary</a>)</h4>
19
19
  <ul class="tsd-hierarchy">
20
20
  <li class="tsd-hierarchy-item"><span class="tsd-signature-type">Error</span>
@@ -23,8 +23,8 @@
23
23
  <ul class="tsd-hierarchy">
24
24
  <li class="tsd-hierarchy-item"><a href="errors.BadRequestError.html" class="tsd-signature-type tsd-kind-class">BadRequestError</a></li>
25
25
  <li class="tsd-hierarchy-item"><a href="errors.UnauthenticatedError.html" class="tsd-signature-type tsd-kind-class">UnauthenticatedError</a></li>
26
- <li class="tsd-hierarchy-item"><a href="errors.ForbiddenError.html" class="tsd-signature-type tsd-kind-class">ForbiddenError</a></li>
27
- <li class="tsd-hierarchy-item"><a href="errors.NotFoundError.html" class="tsd-signature-type tsd-kind-class">NotFoundError</a></li></ul></li></ul></li></ul></section>
26
+ <li class="tsd-hierarchy-item"><a href="../modules/errors.html" class="tsd-signature-type tsd-kind-namespace">errors</a><span class="tsd-signature-symbol">.</span><a href="errors.ForbiddenError.html" class="tsd-signature-type tsd-kind-class">ForbiddenError</a></li>
27
+ <li class="tsd-hierarchy-item"><a href="../modules/errors.html" class="tsd-signature-type tsd-kind-namespace">errors</a><span class="tsd-signature-symbol">.</span><a href="errors.NotFoundError.html" class="tsd-signature-type tsd-kind-class">NotFoundError</a></li></ul></li></ul></li></ul></section>
28
28
  <section class="tsd-panel-group tsd-index-group">
29
29
  <section class="tsd-panel tsd-index-panel">
30
30
  <details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
@@ -14,7 +14,7 @@
14
14
  <section class="tsd-panel tsd-comment">
15
15
  <div class="tsd-comment tsd-typography"><p>Represents a 404 Not Found error.</p>
16
16
  </div></section>
17
- <section class="tsd-panel tsd-hierarchy" data-refl="420">
17
+ <section class="tsd-panel tsd-hierarchy" data-refl="441">
18
18
  <h4>Hierarchy (<a href="../hierarchy.html#errors.NotFoundError">View Summary</a>)</h4>
19
19
  <ul class="tsd-hierarchy">
20
20
  <li class="tsd-hierarchy-item"><a href="errors.HttpError.html" class="tsd-signature-type tsd-kind-class">HttpError</a>
@@ -49,7 +49,7 @@
49
49
  <h3 class="tsd-anchor-link" id="constructor"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
50
50
  <ul class="tsd-signatures">
51
51
  <li class="">
52
- <div class="tsd-signature tsd-anchor-link" id="constructornotfounderror"><span class="tsd-signature-keyword">new</span> <span class="tsd-kind-constructor-signature">NotFoundError</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">NotFoundError</a><a href="#constructornotfounderror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div>
52
+ <div class="tsd-signature tsd-anchor-link" id="constructornotfounderror"><span class="tsd-signature-keyword">new</span> <span class="tsd-kind-constructor-signature">NotFoundError</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">message</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="../modules/errors.html" class="tsd-signature-type tsd-kind-namespace">errors</a><span class="tsd-signature-symbol">.</span><a href="" class="tsd-signature-type tsd-kind-class">NotFoundError</a><a href="#constructornotfounderror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div>
53
53
  <div class="tsd-description">
54
54
  <div class="tsd-comment tsd-typography"><p>Creates an instance of NotFoundError.</p>
55
55
  </div>
@@ -59,7 +59,7 @@
59
59
  <li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">message</span>: <span class="tsd-signature-type">string</span></span>
60
60
  <div class="tsd-comment tsd-typography"><p>The error message.</p>
61
61
  </div></li></ul></div>
62
- <h4 class="tsd-returns-title">Returns <a href="" class="tsd-signature-type tsd-kind-class">NotFoundError</a></h4><aside class="tsd-sources">
62
+ <h4 class="tsd-returns-title">Returns <a href="../modules/errors.html" class="tsd-signature-type tsd-kind-namespace">errors</a><span class="tsd-signature-symbol">.</span><a href="" class="tsd-signature-type tsd-kind-class">NotFoundError</a></h4><aside class="tsd-sources">
63
63
  <p>Overrides <a href="errors.HttpError.html">HttpError</a>.<a href="errors.HttpError.html#constructor">constructor</a></p></aside></div></li></ul></section></section></details>
64
64
  <details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>
65
65
  <h2 class="tsd-anchor-link" id="properties-1">Properties<a href="#properties-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2></summary>
@@ -14,7 +14,7 @@
14
14
  <section class="tsd-panel tsd-comment">
15
15
  <div class="tsd-comment tsd-typography"><p>Represents a 401 Unauthenticated error.</p>
16
16
  </div></section>
17
- <section class="tsd-panel tsd-hierarchy" data-refl="386">
17
+ <section class="tsd-panel tsd-hierarchy" data-refl="407">
18
18
  <h4>Hierarchy (<a href="../hierarchy.html#errors.UnauthenticatedError">View Summary</a>)</h4>
19
19
  <ul class="tsd-hierarchy">
20
20
  <li class="tsd-hierarchy-item"><a href="errors.HttpError.html" class="tsd-signature-type tsd-kind-class">HttpError</a>