cdk-serverless 3.3.3 → 3.4.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 (35) hide show
  1. package/docs/constructs/assets/hierarchy.js +1 -1
  2. package/docs/constructs/assets/search.js +1 -1
  3. package/docs/constructs/classes/GraphQlApi.html +1 -1
  4. package/docs/constructs/classes/McpAuth.html +1 -1
  5. package/docs/constructs/classes/McpCognitoAuth.html +1 -1
  6. package/docs/constructs/classes/RestApi.html +1 -1
  7. package/docs/constructs/classes/SingleTableDatastore.html +1 -1
  8. package/docs/constructs/classes/Workflow.html +1 -1
  9. package/docs/constructs/hierarchy.html +5 -5
  10. package/docs/constructs/interfaces/GraphQlApiProps.html +24 -3
  11. package/docs/constructs/interfaces/RestApiProps.html +1 -1
  12. package/docs/experiments/appsync-unit-resolver-error-probe.md +201 -0
  13. package/docs/lambda/assets/hierarchy.js +1 -1
  14. package/docs/lambda/assets/navigation.js +1 -1
  15. package/docs/lambda/assets/search.js +1 -1
  16. package/docs/lambda/classes/errors.ForbiddenError.html +2 -2
  17. package/docs/lambda/classes/errors.HttpError.html +2 -2
  18. package/docs/lambda/classes/errors.NotFoundError.html +2 -2
  19. package/docs/lambda/classes/errors.appsync.AppSyncError.html +193 -0
  20. package/docs/lambda/classes/errors.appsync.ConflictError.html +184 -0
  21. package/docs/lambda/classes/errors.appsync.ForbiddenError.html +184 -0
  22. package/docs/lambda/classes/errors.appsync.NotFoundError.html +184 -0
  23. package/docs/lambda/classes/errors.appsync.ValidationError.html +184 -0
  24. package/docs/lambda/hierarchy.html +7 -0
  25. package/docs/lambda/modules/errors.appsync.html +38 -0
  26. package/docs/lambda/modules/errors.html +4 -0
  27. package/lib/constructs/graphql.d.ts +17 -0
  28. package/lib/constructs/graphql.js +78 -2
  29. package/lib/lambda/appsync-errors.d.ts +67 -0
  30. package/lib/lambda/appsync-errors.js +91 -0
  31. package/lib/lambda/errors.d.ts +1 -0
  32. package/lib/lambda/errors.js +36 -2
  33. package/lib/lambda/handler.js +78 -1
  34. package/llm.md +31 -0
  35. package/package.json +1 -1
@@ -1 +1 @@
1
- window.hierarchyData = "eJyVk8tuwyAQRf9l1qRJjG1sdmkrVd31tYuyoPYkRiUQAVlF/veKNG1pY/mxYQF35t4DwwmsMd4BXxclYZQkCWGUbQhY3CqsvDTaAT9BkoRViz0Ch8c7s9PSm9XRN6i9rETQAYEPqWvgSZYTOFoFHKT2aLeiQjfvLrpp/F4BgUoJ54CDd/UsdJn9VIbDRqraoga+TstNSyAtozT9YZZJ8R3m7IFuPi3I10ZLgNHI9FY4XB3kkzUHNwAeS6fi0qwk+SINzEV5bd9HeZEMcP11K0qS02Vwo1ls92DFoXlWI4H/qUcwB8Oi27AP8Vc1/Hr5Io36v6DzI2li6TiUnC6vrfo4LpIxI8jib/gq9U7hm3hXeC+8cN5YHPqFXTVTp5Jl5xlhWczZG6YDelKQyw207SfbLozW"
1
+ window.hierarchyData = "eJyVkztvwyAUhf/LnUnjQrANW9JKVbe+tigDtUmMSiACMkX+7xVp2tLG8mNhgHPvOR9cTuCsDR74umSoIAhjVJByg8DJrZZVUNZ44CfAOK5G7CVweLyzO6OCXR5DI01QlYg6QPChTA0c0xzB0WngoEyQbisq6efdRTdN2GtAUGnhPXAIvp7FLrOfynjYKF07aYCvF2zTIliwJE1/mFtcfoc5e0g/nxbka6NFUJDEdCW8XB7Uk7MHPwCeSqfiEspQntHIXLJr+z7Ki2SA668by1BOcHQjNLV7cOLQPOuRwP/UI5ijIcs6DfsQf1XDr5dnNOn/In0YSZNKx6HkBF9b9XFcJGNGsEy/4asyOy3fxLuW9yIIH6yTQ7+wq2bqVBb0PCMFTTl7w3RATwpyuYG2/QTETYzO"
@@ -1 +1 @@
1
- window.searchData = "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";
1
+ window.searchData = "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";
@@ -27,7 +27,7 @@ and authorization using Cognito User Pool and Identity Pool. It also provides me
27
27
  <li><span id="resolvers"><span class="tsd-kind-type-parameter">RESOLVERS</span></span>
28
28
  <div class="tsd-comment tsd-typography"><p>The type definition for the GraphQL resolvers.</p>
29
29
  </div></li></ul></section>
30
- <section class="tsd-panel tsd-hierarchy" data-refl="389">
30
+ <section class="tsd-panel tsd-hierarchy" data-refl="390">
31
31
  <h4>Hierarchy (<a href="../hierarchy.html#GraphQlApi">View Summary</a>)</h4>
32
32
  <ul class="tsd-hierarchy">
33
33
  <li class="tsd-hierarchy-item"><a href="BaseApi.html" class="tsd-signature-type tsd-kind-class">BaseApi</a>
@@ -23,7 +23,7 @@ required paths into the OpenAPI spec and wires Lambda integrations.</p>
23
23
  </code><button type="button">Copy</button></pre>
24
24
 
25
25
  </div></div></section>
26
- <section class="tsd-panel tsd-hierarchy" data-refl="533">
26
+ <section class="tsd-panel tsd-hierarchy" data-refl="534">
27
27
  <h4>Hierarchy</h4>
28
28
  <ul class="tsd-hierarchy">
29
29
  <li class="tsd-hierarchy-item"><span class="tsd-signature-type">Construct</span>
@@ -23,7 +23,7 @@ use McpAuth directly for other OAuth2/OIDC providers.</p>
23
23
  </code><button type="button">Copy</button></pre>
24
24
 
25
25
  </div></div></section>
26
- <section class="tsd-panel tsd-hierarchy" data-refl="566">
26
+ <section class="tsd-panel tsd-hierarchy" data-refl="567">
27
27
  <h4>Hierarchy</h4>
28
28
  <ul class="tsd-hierarchy">
29
29
  <li class="tsd-hierarchy-item"><span class="tsd-signature-type">Construct</span>
@@ -30,7 +30,7 @@ It allows auto-generating routes based on the provided OpenAPI definition and pr
30
30
  <li><span id="ops"><span class="tsd-kind-type-parameter">OPS</span></span>
31
31
  <div class="tsd-comment tsd-typography"><p>The type definition for the API operations.</p>
32
32
  </div></li></ul></section>
33
- <section class="tsd-panel tsd-hierarchy" data-refl="631">
33
+ <section class="tsd-panel tsd-hierarchy" data-refl="632">
34
34
  <h4>Hierarchy (<a href="../hierarchy.html#RestApi">View Summary</a>)</h4>
35
35
  <ul class="tsd-hierarchy">
36
36
  <li class="tsd-hierarchy-item"><a href="BaseApi.html" class="tsd-signature-type tsd-kind-class">BaseApi</a>
@@ -21,7 +21,7 @@ It also supports point-in-time recovery and time-to-live attributes.</p>
21
21
  </code><button type="button">Copy</button></pre>
22
22
 
23
23
  </div></div></section>
24
- <section class="tsd-panel tsd-hierarchy" data-refl="751">
24
+ <section class="tsd-panel tsd-hierarchy" data-refl="752">
25
25
  <h4>Hierarchy</h4>
26
26
  <ul class="tsd-hierarchy">
27
27
  <li class="tsd-hierarchy-item"><span class="tsd-signature-type">Construct</span>
@@ -21,7 +21,7 @@ various configurations for logging and tracing. It implements the IGrantable int
21
21
  </code><button type="button">Copy</button></pre>
22
22
 
23
23
  </div></div></section>
24
- <section class="tsd-panel tsd-hierarchy" data-refl="781">
24
+ <section class="tsd-panel tsd-hierarchy" data-refl="782">
25
25
  <h4>Hierarchy</h4>
26
26
  <ul class="tsd-hierarchy">
27
27
  <li class="tsd-hierarchy-item"><span class="tsd-signature-type">Construct</span>
@@ -12,21 +12,21 @@
12
12
  <ul class="tsd-full-hierarchy">
13
13
  <li data-refl="89" id="BaseApi"><a href="classes/BaseApi.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>BaseApi</a>
14
14
  <ul>
15
- <li data-refl="389" id="GraphQlApi"><a href="classes/GraphQlApi.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>GraphQlApi</a></li>
16
- <li data-refl="631" id="RestApi"><a href="classes/RestApi.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>RestApi</a></li></ul></li></ul>
15
+ <li data-refl="390" id="GraphQlApi"><a href="classes/GraphQlApi.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>GraphQlApi</a></li>
16
+ <li data-refl="632" id="RestApi"><a href="classes/RestApi.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>RestApi</a></li></ul></li></ul>
17
17
  <ul class="tsd-full-hierarchy">
18
18
  <li data-refl="73" id="BaseApiProps"><a href="interfaces/BaseApiProps.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BaseApiProps</a>
19
19
  <ul>
20
20
  <li data-refl="359" id="GraphQlApiProps"><a href="interfaces/GraphQlApiProps.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>GraphQlApiProps</a></li>
21
- <li data-refl="604" id="RestApiProps"><a href="interfaces/RestApiProps.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>RestApiProps</a></li></ul></li></ul>
21
+ <li data-refl="605" id="RestApiProps"><a href="interfaces/RestApiProps.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>RestApiProps</a></li></ul></li></ul>
22
22
  <ul class="tsd-full-hierarchy">
23
23
  <li data-refl="22" id="ICognitoAuthentication"><a href="interfaces/ICognitoAuthentication.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ICognitoAuthentication</a>
24
24
  <ul>
25
25
  <li data-refl="49" id="CognitoAuthentication"><a href="classes/CognitoAuthentication.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>CognitoAuthentication</a></li></ul></li></ul>
26
26
  <ul class="tsd-full-hierarchy">
27
- <li data-refl="737" id="ISingleTableDatastore"><a href="interfaces/ISingleTableDatastore.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ISingleTableDatastore</a>
27
+ <li data-refl="738" id="ISingleTableDatastore"><a href="interfaces/ISingleTableDatastore.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>ISingleTableDatastore</a>
28
28
  <ul>
29
- <li data-refl="751" id="SingleTableDatastore"><a href="classes/SingleTableDatastore.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>SingleTableDatastore</a></li></ul></li></ul></div>
29
+ <li data-refl="752" id="SingleTableDatastore"><a href="classes/SingleTableDatastore.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>SingleTableDatastore</a></li></ul></li></ul></div>
30
30
  <div class="col-sidebar">
31
31
  <div class="page-menu">
32
32
  <div class="tsd-navigation settings">
@@ -10,7 +10,7 @@
10
10
  <ul class="tsd-breadcrumb" aria-label="Breadcrumb">
11
11
  <li><a href="" aria-current="page">GraphQlApiProps</a></li></ul>
12
12
  <h1>Interface GraphQlApiProps</h1></div>
13
- <div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">GraphQlApiProps</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#additionalenv">additionalEnv</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">key</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</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><br/>    <a class="tsd-kind-property" href="#apihostname">apiHostname</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#apiname">apiName</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#assetcdn">assetCdn</a><span class="tsd-signature-symbol">?:</span> <a href="../classes/AssetCdn.html" class="tsd-signature-type tsd-kind-class">AssetCdn</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#authentication">authentication</a><span class="tsd-signature-symbol">?:</span> <a href="IJwtAuthentication.html" class="tsd-signature-type tsd-kind-interface">IJwtAuthentication</a> <span class="tsd-signature-symbol">|</span> <a href="ICognitoAuthentication.html" class="tsd-signature-type tsd-kind-interface">ICognitoAuthentication</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#definitionfilename">definitionFileName</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#domainname">domainName</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#hostedzone">hostedZone</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">IHostedZone</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#lambdaoptions">lambdaOptions</a><span class="tsd-signature-symbol">?:</span> <a href="../types/LambdaOptions.html" class="tsd-signature-type tsd-kind-type-alias">LambdaOptions</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#lambdatracing">lambdaTracing</a><span class="tsd-signature-symbol">?:</span> <a href="LambdaTracingOptions.html" class="tsd-signature-type tsd-kind-interface">LambdaTracingOptions</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#monitoring">monitoring</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#singletabledatastore">singleTableDatastore</a><span class="tsd-signature-symbol">?:</span> <a href="ISingleTableDatastore.html" class="tsd-signature-type tsd-kind-interface">ISingleTableDatastore</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#stagename">stageName</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#usenestedstacks">useNestedStacks</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
13
+ <div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">GraphQlApiProps</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#additionalenv">additionalEnv</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-signature-symbol">[</span><span class="tsd-kind-index-signature">key</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</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><br/>    <a class="tsd-kind-property" href="#apihostname">apiHostname</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#apiname">apiName</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#assetcdn">assetCdn</a><span class="tsd-signature-symbol">?:</span> <a href="../classes/AssetCdn.html" class="tsd-signature-type tsd-kind-class">AssetCdn</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#authentication">authentication</a><span class="tsd-signature-symbol">?:</span> <a href="IJwtAuthentication.html" class="tsd-signature-type tsd-kind-interface">IJwtAuthentication</a> <span class="tsd-signature-symbol">|</span> <a href="ICognitoAuthentication.html" class="tsd-signature-type tsd-kind-interface">ICognitoAuthentication</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#definitionfilename">definitionFileName</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#domainname">domainName</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#hostedzone">hostedZone</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">IHostedZone</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#lambdaoptions">lambdaOptions</a><span class="tsd-signature-symbol">?:</span> <a href="../types/LambdaOptions.html" class="tsd-signature-type tsd-kind-type-alias">LambdaOptions</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#lambdatracing">lambdaTracing</a><span class="tsd-signature-symbol">?:</span> <a href="LambdaTracingOptions.html" class="tsd-signature-type tsd-kind-interface">LambdaTracingOptions</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#monitoring">monitoring</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#singletabledatastore">singleTableDatastore</a><span class="tsd-signature-symbol">?:</span> <a href="ISingleTableDatastore.html" class="tsd-signature-type tsd-kind-interface">ISingleTableDatastore</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#stagename">stageName</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#typederrors">typedErrors</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#usenestedstacks">useNestedStacks</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
14
14
  <section class="tsd-panel tsd-hierarchy" data-refl="359">
15
15
  <h4>Hierarchy (<a href="../hierarchy.html#GraphQlApiProps">View Summary</a>)</h4>
16
16
  <ul class="tsd-hierarchy">
@@ -37,6 +37,7 @@
37
37
  <a href="#monitoring" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>monitoring?</span></a>
38
38
  <a href="#singletabledatastore" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>single<wbr/>Table<wbr/>Datastore?</span></a>
39
39
  <a href="#stagename" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stage<wbr/>Name</span></a>
40
+ <a href="#typederrors" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>typed<wbr/>Errors?</span></a>
40
41
  <a href="#usenestedstacks" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>use<wbr/>Nested<wbr/>Stacks?</span></a>
41
42
  </div></section></div></details></section></section>
42
43
  <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>
@@ -162,6 +163,26 @@ to use any other JWT-based authorization service.</p>
162
163
  </div><aside class="tsd-sources">
163
164
  <p>Inherited from <a href="BaseApiProps.html">BaseApiProps</a>.<a href="BaseApiProps.html#stagename">stageName</a></p></aside></section>
164
165
  <section class="tsd-panel tsd-member">
166
+ <h3 class="tsd-anchor-link" id="typederrors"><code class="tsd-tag">Optional</code><span>typed<wbr/>Errors</span><a href="#typederrors" 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>
167
+ <div class="tsd-signature"><span class="tsd-kind-property">typedErrors</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span></div>
168
+ <div class="tsd-comment tsd-typography"><p>If true, addLambdaResolver synthesizes an APPSYNC_JS pipeline resolver whose
169
+ response handler converts the errors.appsync.* envelope returned by
170
+ createAppSyncHandler into a typed GraphQL error.</p>
171
+ <p>When false (the default), addLambdaResolver synthesizes a plain UNIT
172
+ direct-Lambda resolver (the pre-#385 behavior) with no response handler. On
173
+ that path, if a handler throws an AppSyncError the sentinel envelope is
174
+ returned as field data instead of becoming a GraphQL error.</p>
175
+ <p>This flag applies to ALL Lambda resolvers on the API. Enabling it changes
176
+ the resolver topology from UNIT to PIPELINE, which produces a cdk diff for
177
+ every Lambda resolver, so opt in deliberately.</p>
178
+ </div>
179
+ <div class="tsd-comment tsd-typography">
180
+ <div class="tsd-tag-default">
181
+ <h4 class="tsd-anchor-link" id="default-7">Default<a href="#default-7" 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></h4><pre><code class="ts"><span class="hl-5">false</span>
182
+ </code><button type="button">Copy</button></pre>
183
+
184
+ </div></div></section>
185
+ <section class="tsd-panel tsd-member">
165
186
  <h3 class="tsd-anchor-link" id="usenestedstacks"><code class="tsd-tag">Optional</code><span>use<wbr/>Nested<wbr/>Stacks</span><a href="#usenestedstacks" 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>
166
187
  <div class="tsd-signature"><span class="tsd-kind-property">useNestedStacks</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span></div>
167
188
  <div class="tsd-comment tsd-typography"><p>If true, resolvers and Lambda functions will be created in nested stacks
@@ -180,7 +201,7 @@ to delete and recreate resolvers, or perform a two-step deployment.</p>
180
201
  </div>
181
202
  <div class="tsd-comment tsd-typography">
182
203
  <div class="tsd-tag-default">
183
- <h4 class="tsd-anchor-link" id="default-7">Default<a href="#default-7" 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></h4><pre><code class="ts"><span class="hl-5">false</span>
204
+ <h4 class="tsd-anchor-link" id="default-8">Default<a href="#default-8" 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></h4><pre><code class="ts"><span class="hl-5">false</span>
184
205
  </code><button type="button">Copy</button></pre>
185
206
 
186
207
  </div></div></section></section></details></div>
@@ -200,7 +221,7 @@ to delete and recreate resolvers, or perform a two-step deployment.</p>
200
221
  <h3>On This Page</h3></summary>
201
222
  <div class="tsd-accordion-details">
202
223
  <details open class="tsd-accordion tsd-page-navigation-section"><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>Properties</summary>
203
- <div><a href="#additionalenv" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>additional<wbr/>Env</span></a><a href="#apihostname" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Hostname</span></a><a href="#apiname" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Name</span></a><a href="#assetcdn" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>asset<wbr/>Cdn</span></a><a href="#authentication" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>authentication</span></a><a href="#definitionfilename"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>definition<wbr/>File<wbr/>Name</span></a><a href="#domainname" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>domain<wbr/>Name</span></a><a href="#hostedzone" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>hosted<wbr/>Zone</span></a><a href="#lambdaoptions" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>lambda<wbr/>Options</span></a><a href="#lambdatracing" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>lambda<wbr/>Tracing</span></a><a href="#monitoring" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>monitoring</span></a><a href="#singletabledatastore" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>single<wbr/>Table<wbr/>Datastore</span></a><a href="#stagename" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stage<wbr/>Name</span></a><a href="#usenestedstacks"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>use<wbr/>Nested<wbr/>Stacks</span></a></div></details></div></details></div>
224
+ <div><a href="#additionalenv" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>additional<wbr/>Env</span></a><a href="#apihostname" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Hostname</span></a><a href="#apiname" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>api<wbr/>Name</span></a><a href="#assetcdn" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>asset<wbr/>Cdn</span></a><a href="#authentication" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>authentication</span></a><a href="#definitionfilename"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>definition<wbr/>File<wbr/>Name</span></a><a href="#domainname" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>domain<wbr/>Name</span></a><a href="#hostedzone" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>hosted<wbr/>Zone</span></a><a href="#lambdaoptions" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>lambda<wbr/>Options</span></a><a href="#lambdatracing" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>lambda<wbr/>Tracing</span></a><a href="#monitoring" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>monitoring</span></a><a href="#singletabledatastore" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>single<wbr/>Table<wbr/>Datastore</span></a><a href="#stagename" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stage<wbr/>Name</span></a><a href="#typederrors"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>typed<wbr/>Errors</span></a><a href="#usenestedstacks"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>use<wbr/>Nested<wbr/>Stacks</span></a></div></details></div></details></div>
204
225
  <div class="site-menu">
205
226
  <nav class="tsd-navigation"><a href="../modules.html">cdk-serverless</a>
206
227
  <ul class="tsd-small-nested-navigation" id="tsd-nav-container">
@@ -15,7 +15,7 @@
15
15
  <h4>Type Parameters</h4>
16
16
  <ul class="tsd-type-parameter-list">
17
17
  <li><span id="ops"><span class="tsd-kind-type-parameter">OPS</span></span></li></ul></section>
18
- <section class="tsd-panel tsd-hierarchy" data-refl="604">
18
+ <section class="tsd-panel tsd-hierarchy" data-refl="605">
19
19
  <h4>Hierarchy (<a href="../hierarchy.html#RestApiProps">View Summary</a>)</h4>
20
20
  <ul class="tsd-hierarchy">
21
21
  <li class="tsd-hierarchy-item"><a href="BaseApiProps.html" class="tsd-signature-type tsd-kind-interface">BaseApiProps</a>
@@ -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 = "eJytls1ymzAUhd9Fa8VBSOJvl3SadrpIO+20WXSyUEGuNcUSkUQzbsbv3hE2jLBNADsbFnDPPZ8uR4IXoJWyBmQ/CU4gpgiGMEyTRwg0X5Y8t0JJA7IXELqLZGsOMvDp2d7UdqW0+Mc1gOCPkAXIUJhAUOsSZCAvmTHcXLParha96sXKrksAdxUgA9YUV05+tbsBQb4SZaG5dEQhjBOIUPq4hYD4AO/UbymsmgFxpJgDEuIGIU48hJtKfGCWP7PNXzRvHoPKOUiINkgIpaeZwrOZwvOZ0h0THWBC81/bq+oRNoeSDo3nIpRj9ThKiPso1beNzM+hOC2cAJD68f1ccc3c5u4cQxq1jkJarpcsd6aVWHS1gyadoB8IHBAXCByQU84Pwq6+8qeaG3uris0ckAPpBC6HQQMPg2uttOlMSWu5VkVdcnO9ez7Y2XUxVdcZeZ0/Wlu9d+rXXua+fVc7Z5/hKIU4iSAJMCRh0Iw48tN1y4r9dKZyHCjG04STyDP8Ll04ubQiZ5YXU11PycatSYA96zulf4mi4HKqaV8wOvdaiqea37M1/8I0l82nEtNg90nyA3Wv7J2q5eTF9+ovwsCxh8GqymxkPhrsfd20gBOcHB9eUxfaOvmyWb8BNIEkjiFJI0gRbZZMk0si0BK9TRQgwXEDFccXxKFlepNYdEipv0t/sFIUzfk5F+pAOb5HKaK93zW5LEU++TRqbXu6MdPt9j+W+qIN"
@@ -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 = "eJytlk1z0zAQhv+LzhloPP2A3NIOpe2hZcoAh04PqrTBGtyVkNcUw/DfmaSJY9myvKZcrXef/ZZ191sQ/CSxENIZMRNOUi4W4tHqqoDytXTmVU6PhZiJbwa1WBzOhMpNoT2gWNw1xkvnPtaoLiTqAvyZxc33BmeQwK+k2hKj6tBPdnT8Z9bgL4gck92XjoFvoXQWS+CQO9oU+saBl2QsDgIbBQvzxVB+C98rKOnU6nqc2jFIOVl+uHwvCZ5k/WO+Ld6eT7Xb9a0v61AP3p7Mj7I2OWh1FBooxnit9sZgreMxkvIgCYbiW1Wo1kV8xsa0If/4sIeOhhrjDgYdgd44wKUzLG6onYgeHLdxT8nBm+r42u527gUh7CG9YO5b4ciK8sgdWFHOvARNsx5n9isassuKcuvNr3arVCHLcsdN2oRe59mbYLH2hldPNMlRoGc6yf4ho74N19nEjLIJGW12mJ9MXJ5ywWVPgnIKMlKE9qSD99aX/Vl//s6adulcWaMaZGzPpzwf3q0t+8l1gG1xug+4KowiHjVQp7Dn1j8YrQF53FCeAl9bOrcVah43UKewn2Vh9OZBwAN39Ok5OpV6e82m4R3df6gvv67r32ua1She3h52Wz7hemcByShJMEKNiWONuf8Ld5QnIA=="
@@ -1 +1 @@
1
- window.searchData = "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";
1
+ window.searchData = "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";
@@ -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>
@@ -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>