@apollo-deploy/tesseract 1.9.0 → 2.1.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 (194) hide show
  1. package/README.md +218 -110
  2. package/dist/adapters/csharp/index.d.ts +5 -8
  3. package/dist/adapters/csharp/index.d.ts.map +1 -1
  4. package/dist/adapters/csharp/index.js +314 -74
  5. package/dist/adapters/csharp/index.js.map +1 -1
  6. package/dist/adapters/documentation.d.ts +17 -0
  7. package/dist/adapters/documentation.d.ts.map +1 -0
  8. package/dist/adapters/documentation.js +268 -0
  9. package/dist/adapters/documentation.js.map +1 -0
  10. package/dist/adapters/go/index.d.ts +5 -8
  11. package/dist/adapters/go/index.d.ts.map +1 -1
  12. package/dist/adapters/go/index.js +197 -101
  13. package/dist/adapters/go/index.js.map +1 -1
  14. package/dist/adapters/kotlin/index.d.ts +5 -9
  15. package/dist/adapters/kotlin/index.d.ts.map +1 -1
  16. package/dist/adapters/kotlin/index.js +280 -212
  17. package/dist/adapters/kotlin/index.js.map +1 -1
  18. package/dist/adapters/php/index.d.ts +5 -15
  19. package/dist/adapters/php/index.d.ts.map +1 -1
  20. package/dist/adapters/php/index.js +362 -90
  21. package/dist/adapters/php/index.js.map +1 -1
  22. package/dist/adapters/python/index.d.ts +5 -8
  23. package/dist/adapters/python/index.d.ts.map +1 -1
  24. package/dist/adapters/python/index.js +240 -109
  25. package/dist/adapters/python/index.js.map +1 -1
  26. package/dist/adapters/ruby/index.d.ts +3 -3
  27. package/dist/adapters/ruby/index.d.ts.map +1 -1
  28. package/dist/adapters/ruby/index.js +235 -46
  29. package/dist/adapters/ruby/index.js.map +1 -1
  30. package/dist/adapters/rust/index.d.ts +5 -9
  31. package/dist/adapters/rust/index.d.ts.map +1 -1
  32. package/dist/adapters/rust/index.js +237 -169
  33. package/dist/adapters/rust/index.js.map +1 -1
  34. package/dist/adapters/shared.d.ts +7 -0
  35. package/dist/adapters/shared.d.ts.map +1 -0
  36. package/dist/adapters/shared.js +68 -0
  37. package/dist/adapters/shared.js.map +1 -0
  38. package/dist/adapters/type-utils.d.ts +13 -0
  39. package/dist/adapters/type-utils.d.ts.map +1 -0
  40. package/dist/adapters/type-utils.js +105 -0
  41. package/dist/adapters/type-utils.js.map +1 -0
  42. package/dist/adapters/types.d.ts.map +1 -1
  43. package/dist/adapters/typescript/emitter/emitSchema.d.ts +2 -2
  44. package/dist/adapters/typescript/emitter/emitSchema.js +39 -27
  45. package/dist/adapters/typescript/emitter/emitSchema.js.map +1 -1
  46. package/dist/adapters/typescript/emitter/emitTypeScriptModels.d.ts +2 -2
  47. package/dist/adapters/typescript/emitter/emitTypeScriptModels.js +15 -15
  48. package/dist/adapters/typescript/emitter/importCollector.d.ts +2 -4
  49. package/dist/adapters/typescript/emitter/importCollector.d.ts.map +1 -1
  50. package/dist/adapters/typescript/emitter/importCollector.js +40 -50
  51. package/dist/adapters/typescript/emitter/importCollector.js.map +1 -1
  52. package/dist/adapters/typescript/emitter/parsers.d.ts +1 -1
  53. package/dist/adapters/typescript/emitter/parsers.js +13 -13
  54. package/dist/adapters/typescript/emitter/typeHoister.d.ts +1 -1
  55. package/dist/adapters/typescript/emitter/typeHoister.d.ts.map +1 -1
  56. package/dist/adapters/typescript/emitter/typeHoister.js +12 -20
  57. package/dist/adapters/typescript/emitter/typeHoister.js.map +1 -1
  58. package/dist/adapters/typescript/index.d.ts +3 -3
  59. package/dist/adapters/typescript/index.d.ts.map +1 -1
  60. package/dist/adapters/typescript/index.js +148 -166
  61. package/dist/adapters/typescript/index.js.map +1 -1
  62. package/dist/adapters/typescript/shared.d.ts +2 -2
  63. package/dist/adapters/typescript/shared.js +12 -12
  64. package/dist/cli.js +50 -37
  65. package/dist/cli.js.map +1 -1
  66. package/dist/collector.d.ts +32 -7
  67. package/dist/collector.d.ts.map +1 -1
  68. package/dist/collector.js +149 -49
  69. package/dist/collector.js.map +1 -1
  70. package/dist/elysia.js +2 -2
  71. package/dist/elysia.js.map +1 -1
  72. package/dist/express.d.ts.map +1 -1
  73. package/dist/express.js.map +1 -1
  74. package/dist/fastify.d.ts +9 -2
  75. package/dist/fastify.d.ts.map +1 -1
  76. package/dist/fastify.js +40 -21
  77. package/dist/fastify.js.map +1 -1
  78. package/dist/helpers/handlebars.d.ts +7 -16
  79. package/dist/helpers/handlebars.d.ts.map +1 -1
  80. package/dist/helpers/handlebars.js +127 -177
  81. package/dist/helpers/handlebars.js.map +1 -1
  82. package/dist/hono.d.ts.map +1 -1
  83. package/dist/hono.js.map +1 -1
  84. package/dist/index.d.ts +14 -12
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +32 -30
  87. package/dist/index.js.map +1 -1
  88. package/dist/koa.d.ts.map +1 -1
  89. package/dist/koa.js.map +1 -1
  90. package/dist/nestjs.d.ts.map +1 -1
  91. package/dist/nestjs.js +41 -14
  92. package/dist/nestjs.js.map +1 -1
  93. package/dist/pipeline/enrich.d.ts +2 -13
  94. package/dist/pipeline/enrich.d.ts.map +1 -1
  95. package/dist/pipeline/enrich.js +157 -212
  96. package/dist/pipeline/enrich.js.map +1 -1
  97. package/dist/pipeline/intake.d.ts +3 -3
  98. package/dist/pipeline/intake.d.ts.map +1 -1
  99. package/dist/pipeline/intake.js +342 -238
  100. package/dist/pipeline/intake.js.map +1 -1
  101. package/dist/pipeline/write.d.ts +1 -14
  102. package/dist/pipeline/write.d.ts.map +1 -1
  103. package/dist/pipeline/write.js +73 -113
  104. package/dist/pipeline/write.js.map +1 -1
  105. package/dist/types/config.d.ts +14 -26
  106. package/dist/types/config.d.ts.map +1 -1
  107. package/dist/types/config.js +16 -12
  108. package/dist/types/config.js.map +1 -1
  109. package/dist/types/ir.d.ts +12 -8
  110. package/dist/types/ir.d.ts.map +1 -1
  111. package/dist/types/manifest.d.ts +10 -11
  112. package/dist/types/manifest.d.ts.map +1 -1
  113. package/dist/types/manifest.js +54 -14
  114. package/dist/types/manifest.js.map +1 -1
  115. package/dist/types/sdk-module.d.ts +2 -2
  116. package/dist/types/sdk-module.js +1 -1
  117. package/dist/utils/format.d.ts +1 -3
  118. package/dist/utils/format.d.ts.map +1 -1
  119. package/dist/utils/format.js +3 -10
  120. package/dist/utils/format.js.map +1 -1
  121. package/dist/utils/naming.d.ts.map +1 -1
  122. package/dist/utils/naming.js +174 -184
  123. package/dist/utils/naming.js.map +1 -1
  124. package/dist/utils/npm-token.d.ts +1 -17
  125. package/dist/utils/npm-token.d.ts.map +1 -1
  126. package/dist/utils/npm-token.js +27 -76
  127. package/dist/utils/npm-token.js.map +1 -1
  128. package/dist/utils/version.d.ts +14 -0
  129. package/dist/utils/version.d.ts.map +1 -0
  130. package/dist/utils/version.js +60 -0
  131. package/dist/utils/version.js.map +1 -0
  132. package/package.json +4 -3
  133. package/templates/csharp/client.hbs +26 -49
  134. package/templates/csharp/csproj.hbs +7 -0
  135. package/templates/csharp/domain.hbs +48 -130
  136. package/templates/csharp/errors.hbs +17 -25
  137. package/templates/csharp/readme.hbs +31 -44
  138. package/templates/csharp/transport.hbs +238 -136
  139. package/templates/csharp/types.hbs +30 -76
  140. package/templates/go/client.hbs +44 -109
  141. package/templates/go/domain.hbs +83 -25
  142. package/templates/go/go-mod.hbs +1 -4
  143. package/templates/go/readme.hbs +32 -29
  144. package/templates/go/transport.hbs +174 -173
  145. package/templates/go/types.hbs +17 -53
  146. package/templates/go/utils.hbs +3 -2
  147. package/templates/kotlin/build-gradle.hbs +1 -1
  148. package/templates/kotlin/client.hbs +18 -15
  149. package/templates/kotlin/domain.hbs +54 -51
  150. package/templates/kotlin/errors.hbs +1 -1
  151. package/templates/kotlin/readme.hbs +35 -137
  152. package/templates/kotlin/transport.hbs +140 -123
  153. package/templates/kotlin/types.hbs +30 -81
  154. package/templates/php/client.hbs +8 -46
  155. package/templates/php/composer.hbs +2 -1
  156. package/templates/php/domain.hbs +86 -117
  157. package/templates/php/errors.hbs +1 -1
  158. package/templates/php/readme.hbs +42 -49
  159. package/templates/php/transport.hbs +192 -145
  160. package/templates/php/types.hbs +63 -60
  161. package/templates/python/client.hbs +15 -2
  162. package/templates/python/domain.hbs +50 -108
  163. package/templates/python/pyproject.hbs +5 -0
  164. package/templates/python/readme.hbs +47 -30
  165. package/templates/python/resources-init.hbs +1 -1
  166. package/templates/python/transport.hbs +167 -53
  167. package/templates/python/types.hbs +22 -58
  168. package/templates/ruby/client.hbs +10 -6
  169. package/templates/ruby/domain.hbs +48 -67
  170. package/templates/ruby/errors.hbs +3 -3
  171. package/templates/ruby/gemspec.hbs +3 -10
  172. package/templates/ruby/index.hbs +3 -3
  173. package/templates/ruby/readme.hbs +33 -70
  174. package/templates/ruby/transport.hbs +129 -103
  175. package/templates/ruby/types.hbs +11 -16
  176. package/templates/ruby/version.hbs +1 -1
  177. package/templates/rust/cargo.hbs +2 -0
  178. package/templates/rust/client.hbs +10 -1
  179. package/templates/rust/domain.hbs +69 -52
  180. package/templates/rust/error.hbs +3 -1
  181. package/templates/rust/lib.hbs +4 -5
  182. package/templates/rust/readme.hbs +33 -46
  183. package/templates/rust/transport.hbs +170 -159
  184. package/templates/rust/types.hbs +34 -111
  185. package/templates/typescript/domain-class.hbs +14 -6
  186. package/templates/typescript/domain.hbs +13 -5
  187. package/templates/typescript/package-json.hbs +3 -1
  188. package/templates/typescript/readme.hbs +42 -42
  189. package/templates/typescript/transport.hbs +46 -8
  190. package/templates/typescript/types-errors.hbs +1 -1
  191. package/dist/adapters/typescript/model-emitter.d.ts +0 -13
  192. package/dist/adapters/typescript/model-emitter.d.ts.map +0 -1
  193. package/dist/adapters/typescript/model-emitter.js +0 -415
  194. package/dist/adapters/typescript/model-emitter.js.map +0 -1
@@ -2,30 +2,19 @@ namespace {{namespace}};
2
2
 
3
3
  using System;
4
4
 
5
- /// <summary>
6
- /// Represents an error returned by the API.
7
- /// </summary>
8
- public class SdkException : Exception
5
+ /// <summary>Represents a normalized SDK or API error.</summary>
6
+ public sealed class SdkException : Exception
9
7
  {
10
- /// <summary>
11
- /// HTTP status code.
12
- /// </summary>
13
8
  public int Status { get; }
14
-
15
- /// <summary>
16
- /// Machine-readable error code from the API.
17
- /// </summary>
18
9
  public string? Code { get; }
19
-
20
- /// <summary>
21
- /// Unique request identifier for support.
22
- /// </summary>
23
10
  public string? RequestId { get; }
24
11
 
25
- /// <summary>
26
- /// Creates a new SdkException.
27
- /// </summary>
28
- public SdkException(int status, string? code, string message, string? requestId, Exception? innerException = null)
12
+ public SdkException(
13
+ int status,
14
+ string? code,
15
+ string message,
16
+ string? requestId,
17
+ Exception? innerException = null)
29
18
  : base(message, innerException)
30
19
  {
31
20
  Status = status;
@@ -33,13 +22,16 @@ public class SdkException : Exception
33
22
  RequestId = requestId;
34
23
  }
35
24
 
36
- /// <summary>
37
- /// Returns a string representation of the error.
38
- /// </summary>
25
+ public bool IsNetworkError => Status == 0;
26
+ public bool IsClientError => Status is >= 400 and <= 499;
27
+ public bool IsServerError => Status is >= 500 and <= 599;
28
+ public bool IsRetryable => IsNetworkError || Status is 408 or 425 or 429 or 500 or 502 or 503 or 504;
29
+
39
30
  public override string ToString()
40
31
  {
41
- if (!string.IsNullOrEmpty(Code))
42
- return $"[{Status}] {Code}: {Message}";
43
- return $"[{Status}] {Message}";
32
+ var request = string.IsNullOrEmpty(RequestId) ? "" : $" (request {RequestId})";
33
+ return string.IsNullOrEmpty(Code)
34
+ ? $"[{Status}] {Message}{request}"
35
+ : $"[{Status}] {Code}: {Message}{request}";
44
36
  }
45
37
  }
@@ -1,8 +1,8 @@
1
1
  # {{title}} .NET SDK
2
2
 
3
- [![NuGet](https://img.shields.io/nuget/v/{{packageName}}.svg)](https://www.nuget.org/packages/{{packageName}}/)
3
+ {{#if description}}{{description}}{{else}}.NET client for the {{title}} API.{{/if}}
4
4
 
5
- The official .NET SDK for {{#if description}}{{description}}{{else}}the {{title}} API{{/if}}.
5
+ > Generated by Tesseract. Generated source files should not be edited manually.
6
6
 
7
7
  ## Installation
8
8
 
@@ -10,67 +10,54 @@ The official .NET SDK for {{#if description}}{{description}}{{else}}the {{title}
10
10
  dotnet add package {{packageName}}
11
11
  ```
12
12
 
13
- ## Quick Start
13
+ ## Quick start
14
14
 
15
15
  ```csharp
16
16
  using {{namespace}};
17
17
 
18
- {{#each securitySchemes}}
19
- {{#if (eq type "apiKey")}}
20
- var config = new {{../clientName}}ClientConfig
18
+ var client = new {{clientName}}Client(new {{clientName}}ClientConfig
21
19
  {
22
- {{pascalCase configKey}} = "your-api-key"{{#if (and (eq type "apiKey") (eq in "header"))}}{{/if}}
23
- };
24
- {{/if}}
25
- {{#if (and (eq type "http") (eq scheme "bearer"))}}
26
- var config = new {{../clientName}}ClientConfig
27
- {
28
- {{pascalCase configKey}} = "your-bearer-token"
29
- };
20
+ BaseUrl = "{{baseUrl}}",
21
+ TimeoutMs = 15_000,
22
+ });
23
+
24
+ {{#if groups.length}}
25
+ var api = client.{{pascalCase groups.[0].name}};
30
26
  {{/if}}
31
- {{/each}}
32
- {{#unless securitySchemes.length}}
33
- var config = new {{clientName}}ClientConfig();
34
- {{/unless}}
27
+ ```
35
28
 
36
- var client = new {{clientName}}Client(config);
29
+ ## Configuration and reliability
37
30
 
38
- {{#each groups}}
39
- {{#with operations.[0]}}
40
- // {{../interfaceName}}.{{pascalCase name}} example
41
- var result = await client.{{pascalCase ../name}}.{{pascalCase name}}Async({{#each ../pathParams}}"{{this}}"{{#unless @last}}, {{/unless}}{{/each}}{{#if requestBody}}{{#if ../pathParams.length}}, {{/if}}new {{requestBody.type}}(){}{{/if}});
42
- Console.WriteLine(result);
43
- {{/with}}
44
- {{/each}}
31
+ The generated `HttpClient` transport supports cancellation tokens, bounded timeouts, exponential-backoff retries, `Retry-After` handling, default headers, and structured `SdkException` values. Unsafe requests are not retried unless they are explicitly idempotent or unsafe retries are enabled.
32
+
33
+ ```csharp
34
+ var client = new {{clientName}}Client(new {{clientName}}ClientConfig
35
+ {
36
+ TimeoutMs = 30_000,
37
+ MaxRetries = 3,
38
+ DefaultHeaders = new() { ["X-Application"] = "my-service" },
39
+ });
45
40
  ```
46
41
 
47
- ## API Reference
42
+ ## Documentation
43
+
44
+ - [Documentation index](./docs/README.md)
45
+ - [Generated types](./docs/types.md)
48
46
 
49
47
  | Domain | Description |
50
- |--------|-------------|
48
+ |---|---|
51
49
  {{#each groups}}
52
- | `{{interfaceName}}` | {{#if description}}{{description}}{{else}}{{name}} operations{{/if}} |
50
+ | [{{interfaceName}}](./docs/domains/{{fileName}}.md) | {{#if description}}{{description}}{{else}}{{name}} operations{{/if}} |
53
51
  {{/each}}
54
52
 
55
- ## Error Handling
56
-
57
- All async methods throw `SdkException` on API errors. Use try-catch to handle errors:
53
+ ## Error handling
58
54
 
59
- ```csharp
60
- try
61
- {
62
- var result = await client.{{#each groups}}{{#if @first}}{{pascalCase name}}{{/if}}{{/each}}.{{#each groups}}{{#if @first}}{{#with operations.[0]}}{{pascalCase name}}Async(){{/with}}{{/if}}{{/each}};
63
- }
64
- catch (SdkException ex)
65
- {
66
- Console.WriteLine($"Status: {ex.Status}, Code: {ex.Code}, RequestId: {ex.RequestId}");
67
- }
68
- ```
55
+ All operations throw `SdkException` on API or transport failures. It exposes `Status`, `Code`, `RequestId`, and the original exception when available.
69
56
 
70
57
  ## Requirements
71
58
 
72
- - .NET 8.0 or later
59
+ - .NET 8 or later
73
60
 
74
61
  ## License
75
62
 
76
- {{#if license}}{{license}}{{else}}MIT{{/if}}
63
+ MIT