@chilkat/react-native 11.6.1 → 11.7.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 (65) hide show
  1. package/chilkat-checksums.json +4 -4
  2. package/cpp/HybridAi.cpp +12 -12
  3. package/cpp/HybridAi.hpp +6 -6
  4. package/cpp/HybridDns.cpp +7 -7
  5. package/cpp/HybridDns.hpp +3 -3
  6. package/cpp/HybridFormats.cpp +100 -0
  7. package/cpp/HybridFormats.hpp +39 -0
  8. package/cpp/HybridHashtable.cpp +4 -4
  9. package/cpp/HybridHashtable.hpp +2 -2
  10. package/cpp/HybridHttp.cpp +9 -0
  11. package/cpp/HybridHttp.hpp +2 -0
  12. package/cpp/HybridHttpCurl.cpp +17 -0
  13. package/cpp/HybridHttpCurl.hpp +3 -0
  14. package/cpp/HybridPdf.cpp +152 -0
  15. package/cpp/HybridPdf.hpp +36 -0
  16. package/cpp/HybridSocket.cpp +56 -0
  17. package/cpp/HybridSocket.hpp +13 -0
  18. package/cpp/HybridSpider.cpp +14 -14
  19. package/cpp/HybridSpider.hpp +6 -6
  20. package/cpp/HybridStringBuilder.cpp +8 -0
  21. package/cpp/HybridStringBuilder.hpp +2 -0
  22. package/cpp/HybridZipEntry.cpp +8 -8
  23. package/cpp/HybridZipEntry.hpp +4 -4
  24. package/cpp/runtime/ProgLang.hpp +1 -1
  25. package/nitro.json +1 -0
  26. package/nitrogen/generated/android/ChilkatRN+autolinking.cmake +1 -0
  27. package/nitrogen/generated/android/ChilkatRNOnLoad.cpp +10 -0
  28. package/nitrogen/generated/ios/ChilkatRNAutolinking.mm +10 -0
  29. package/nitrogen/generated/shared/c++/HybridAiSpec.hpp +3 -3
  30. package/nitrogen/generated/shared/c++/HybridDnsSpec.hpp +2 -2
  31. package/nitrogen/generated/shared/c++/HybridFormatsSpec.cpp +32 -0
  32. package/nitrogen/generated/shared/c++/HybridFormatsSpec.hpp +75 -0
  33. package/nitrogen/generated/shared/c++/HybridHashtableSpec.hpp +1 -1
  34. package/nitrogen/generated/shared/c++/HybridHttpCurlSpec.cpp +2 -0
  35. package/nitrogen/generated/shared/c++/HybridHttpCurlSpec.hpp +2 -0
  36. package/nitrogen/generated/shared/c++/HybridHttpSpec.cpp +1 -0
  37. package/nitrogen/generated/shared/c++/HybridHttpSpec.hpp +1 -0
  38. package/nitrogen/generated/shared/c++/HybridPdfSpec.cpp +19 -0
  39. package/nitrogen/generated/shared/c++/HybridPdfSpec.hpp +19 -0
  40. package/nitrogen/generated/shared/c++/HybridSocketSpec.cpp +10 -0
  41. package/nitrogen/generated/shared/c++/HybridSocketSpec.hpp +10 -0
  42. package/nitrogen/generated/shared/c++/HybridSpiderSpec.hpp +4 -4
  43. package/nitrogen/generated/shared/c++/HybridStringBuilderSpec.cpp +1 -0
  44. package/nitrogen/generated/shared/c++/HybridStringBuilderSpec.hpp +1 -0
  45. package/nitrogen/generated/shared/c++/HybridZipEntrySpec.hpp +2 -2
  46. package/package.json +1 -1
  47. package/src/index.ts +3 -0
  48. package/src/specs/Ai.nitro.ts +3 -12
  49. package/src/specs/Cert.nitro.ts +24 -6
  50. package/src/specs/CodeSign.nitro.ts +88 -20
  51. package/src/specs/Compression.nitro.ts +9 -1
  52. package/src/specs/Dns.nitro.ts +2 -8
  53. package/src/specs/FileAccess.nitro.ts +12 -2
  54. package/src/specs/Formats.nitro.ts +170 -0
  55. package/src/specs/Hashtable.nitro.ts +1 -4
  56. package/src/specs/Http.nitro.ts +39 -3
  57. package/src/specs/HttpCurl.nitro.ts +119 -3
  58. package/src/specs/Jwe.nitro.ts +12 -5
  59. package/src/specs/MailMan.nitro.ts +7 -0
  60. package/src/specs/Pdf.nitro.ts +1482 -11
  61. package/src/specs/Socket.nitro.ts +181 -2
  62. package/src/specs/Spider.nitro.ts +4 -16
  63. package/src/specs/Ssh.nitro.ts +31 -13
  64. package/src/specs/StringBuilder.nitro.ts +55 -0
  65. package/src/specs/ZipEntry.nitro.ts +2 -8
@@ -0,0 +1,170 @@
1
+ // Generated by ReactNativeNs.RnGenerator -- do not edit.
2
+ import type { HybridObject } from 'react-native-nitro-modules'
3
+ import type { JsonObject } from './JsonObject.nitro'
4
+
5
+ /**
6
+ * A collection of data-format operations, starting with barcode and QR code generation.
7
+ *
8
+ * `Formats` is not string, number or date display formatting. It groups operations on
9
+ * well-defined data formats behind a small number of JSON-driven methods, so the class can grow by
10
+ * adding a
11
+ * method per format family without adding a public class for each feature. Introduced in v11.7.0
12
+ * with the
13
+ * barcode feature methods `Barcode` and `QrCode`.
14
+ *
15
+ * **QR Code generation**
16
+ *
17
+ * Versions 1–40, error-correction levels L/M/Q/H, automatic or explicit version and mask,
18
+ * numeric/alphanumeric/byte modes, ECI, structured append.
19
+ *
20
+ * **Precise rendering**
21
+ *
22
+ * Integer-pixel modules, px/mm/in/pt units with DPI, quiet zone, padding, rotation, colors with
23
+ * opacity, caption text, size limits with shrink-to-fit.
24
+ *
25
+ * **PNG or SVG output**
26
+ *
27
+ * Returned inline as base64 or SVG text, or written to files (numbered file sets for structured
28
+ * append). Optional module bit-matrix and reusable definition.
29
+ *
30
+ * **Measure and validate**
31
+ *
32
+ * `measure` reports exact geometry without rendering; `validate` checks a request; `capabilities`
33
+ * describes what the build supports.
34
+ *
35
+ * **One calling convention:** every operation is `method(op, jsonIn, jsonOut)`. Requests are
36
+ * checked strictly (unknown options are rejected, not ignored) and every failure has a stable error
37
+ * code with the
38
+ * JSON Pointer of the offending member.
39
+ *
40
+ * See the [Barcode / QR Code Generation Overview](https://www.chilkatsoft.com/barcode_overview.asp)
41
+ * for the complete documentation with examples and sample images.
42
+ *
43
+ * Each `Formats` instance owns a native Chilkat object. It is released when the JavaScript object
44
+ * is
45
+ * garbage collected, or immediately by `dispose()`; any use after `dispose()` throws.
46
+ * Create one with `new Formats()`.
47
+ */
48
+ export interface Formats extends HybridObject<{ ios: 'c++', android: 'c++' }> {
49
+ // ---- Properties ----
50
+
51
+ /**
52
+ * Provides HTML-formatted information about the last called method or property. If a method call
53
+ * fails or behaves unexpectedly, check this property for details. Note that information is
54
+ * available regardless of the method call's success.
55
+ *
56
+ * This property is read-only.
57
+ */
58
+ readonly lastErrorHtml: string
59
+
60
+ /**
61
+ * Provides plain text information about the last called method or property. If a method call
62
+ * fails or behaves unexpectedly, check this property for details. Note that information is
63
+ * available regardless of the method call's success.
64
+ *
65
+ * This property is read-only.
66
+ */
67
+ readonly lastErrorText: string
68
+
69
+ /**
70
+ * Provides XML-formatted information about the last called method or property. If a method call
71
+ * fails or behaves unexpectedly, check this property for details. Note that information is
72
+ * available regardless of the method call's success.
73
+ *
74
+ * This property is read-only.
75
+ */
76
+ readonly lastErrorXml: string
77
+
78
+ /**
79
+ * Version of the component/library, such as "10.1.0"
80
+ *
81
+ * This property is read-only.
82
+ */
83
+ readonly version: string
84
+
85
+ /**
86
+ * If set to a file path, this property logs the LastErrorText of each Chilkat method or property
87
+ * call to the specified file. This logging helps identify the context and history of Chilkat
88
+ * calls leading up to any crash or hang, aiding in debugging.
89
+ *
90
+ * Enabling the VerboseLogging property provides more detailed information.
91
+ *
92
+ * This property is mainly used for debugging rare instances where a Chilkat method call causes a
93
+ * hang or crash, which should generally not happen.
94
+ *
95
+ * Possible causes of hangs include:
96
+ *
97
+ * - A timeout property set to 0, indicating an infinite timeout.
98
+ *
99
+ * - A hang occurring within an event callback in the application code.
100
+ *
101
+ * - An internal bug in the Chilkat code causing the hang.
102
+ */
103
+ debugLogFilePath: string
104
+
105
+ /**
106
+ * If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may
107
+ * contain more verbose information. The default value is `false`. Verbose logging should only be
108
+ * used for debugging. The potentially large quantity of logged information may adversely affect
109
+ * peformance.
110
+ */
111
+ verboseLogging: boolean
112
+
113
+ /**
114
+ * Indicates the success or failure of the most recent method call: `true` means success, `false`
115
+ * means failure. This property remains unchanged by property setters or getters. This method is
116
+ * present to address challenges in checking for null or Nothing returns in certain programming
117
+ * languages. Note: This property does not apply to methods that return integer values or to
118
+ * boolean-returning methods where the boolean does not indicate success or failure.
119
+ */
120
+ lastMethodSuccess: boolean
121
+
122
+ // ---- Methods ----
123
+
124
+ /**
125
+ * Runs one barcode operation and returns the result as JSON. `op` is the operation: "generate"
126
+ * (encode the payload, lay out the symbol and render a PNG or SVG), "measure" (encode and lay out
127
+ * only, reporting the exact geometry and whether the symbol fits), "validate" (examine a
128
+ * request's definition, capacity or layout) or "capabilities" (describe the symbologies,
129
+ * operations, formats and limits this build implements). `jsonIn` is the request: it names the
130
+ * `symbology` (currently `"qr"`), the `payload` (text or base64 binary) and optional `encoding`,
131
+ * `render`, `output` and `limits` groups. `jsonOut` is replaced with the response. Every response
132
+ * carries `errors[]` and `warnings[]`; a successful "generate" also returns `symbols[]` (the
133
+ * encoding actually selected), `measurements[]` (pixel geometry) and `outputs[]` (the image as
134
+ * base64 or SVG text, or the path of the file written).
135
+ *
136
+ * Returns `true` when the operation completed successfully. Returns `false` when the request was
137
+ * rejected or execution failed; `errors[0]` then holds a stable `code`, the JSON Pointer `path`
138
+ * of the offending request member and a `message`.
139
+ *
140
+ * The request and response vocabulary (payload types, QR version, error correction, mask, ECI,
141
+ * structured append, module size and physical units, quiet zone, rotation, colors, captions,
142
+ * PNG/SVG output, file writing, limits and error codes) is documented in full, with examples and
143
+ * sample images, at the links below.
144
+ *
145
+ * @throws Error if the call fails (the message names the reason); the full log is in
146
+ * {@link Formats.lastErrorText}.
147
+ */
148
+ barcode(op: string, jsonIn: JsonObject, jsonOut: JsonObject): void
149
+
150
+ /**
151
+ * The same as `Barcode` with the `symbology` defaulting to `"qr"`, so the smallest request is `{
152
+ * "payload": { "text": "..." } }`. `op` is the operation ("generate", "measure", "validate" or
153
+ * "capabilities"), `jsonIn` the request and `jsonOut` the response. Identical requests to
154
+ * `QrCode` and `Barcode` produce identical results; a request naming a symbology outside the QR
155
+ * family is rejected.
156
+ *
157
+ * Generates QR Code (Model 2) symbols in versions 1-40 with error-correction levels L, M, Q and
158
+ * H, automatic or explicit version and mask selection, numeric, alphanumeric and byte modes,
159
+ * optional ECI, and structured append of up to 16 symbols. Output is PNG or SVG, returned inline
160
+ * (base64 or SVG text) and/or written to files.
161
+ *
162
+ * Returns `true` when the operation completed successfully, otherwise `false` with the reason in
163
+ * `errors[0]` of `jsonOut` (code, JSON Pointer path and message). See the links below for the
164
+ * complete documentation of every option, with examples and sample images.
165
+ *
166
+ * @throws Error if the call fails (the message names the reason); the full log is in
167
+ * {@link Formats.lastErrorText}.
168
+ */
169
+ qrCode(op: string, jsonIn: JsonObject, jsonOut: JsonObject): void
170
+ }
@@ -248,11 +248,8 @@ export interface Hashtable extends HybridObject<{ ios: 'c++', android: 'c++' }>
248
248
  *
249
249
  * A `false` result caused by an absent key is a normal lookup outcome, not an indication that the
250
250
  * hashtable was damaged. Removing an existing entry decreases `Count` by one.
251
- *
252
- * @throws Error if the call fails (the message names the reason); the full log is in
253
- * {@link Hashtable.lastErrorText}.
254
251
  */
255
- remove(key: string): void
252
+ remove(key: string): boolean
256
253
 
257
254
  /**
258
255
  * Appends all hashtable key strings to the `StringTable` passed in `ARG1`. Existing strings
@@ -1465,6 +1465,13 @@ export interface Http extends HybridObject<{ ios: 'c++', android: 'c++' }> {
1465
1465
  * explicitly set the SNI hostname via the `SniHostname` property, which would be typical if
1466
1466
  * connecting via an IP address. See the example below.
1467
1467
  *
1468
+ * Starting in v11.7.0, a wildcard SAN entry is matched as RFC 9525 (formerly RFC 6125) specifies.
1469
+ * The wildcard must be the entire left-most label (`*.example.com`) and stands for exactly one
1470
+ * label: `*.example.com` matches `www.example.com`, but not `a.b.example.com` and not the bare
1471
+ * `example.com`. (Earlier versions matched the bare domain, and accepted a wildcard in any
1472
+ * position.) A wildcard is not accepted directly under a top-level domain or a country-code
1473
+ * second level such as `co.uk`, and never matches an IP address.
1474
+ *
1468
1475
  * The default value is `false`.
1469
1476
  */
1470
1477
  requireHostnameMatch: boolean
@@ -3059,15 +3066,44 @@ export interface Http extends HybridObject<{ ios: 'c++', android: 'c++' }> {
3059
3066
  clearInMemoryCookies(): void
3060
3067
 
3061
3068
  /**
3062
- * Sets the EC private key for automatically adding the DPoP header to HTTP requests. Chilkat will
3063
- * generate a JWT for each request and include the `DPoP` header. Ensure the AuthToken property is
3064
- * also set.
3069
+ * Sets the private key for automatically adding the DPoP header to HTTP requests. Chilkat will
3070
+ * generate a JWT (a DPoP proof) for each request and include the `DPoP` header. Ensure the {@link
3071
+ * Http.authToken} property is also set.
3072
+ *
3073
+ * The key can be an EC key on the P-256, P-384 or P-521 curve (the proof is signed with ES256,
3074
+ * ES384 or ES512), an RSA key of 2048 bits or more (RS256), or an Ed25519 key (EdDSA). Before
3075
+ * v11.7.0, only EC keys were accepted.
3065
3076
  *
3066
3077
  * @throws Error if the call fails (the message names the reason); the full log is in
3067
3078
  * {@link Http.lastErrorText}.
3068
3079
  */
3069
3080
  setDPoPKey(privKey: PrivateKey): void
3070
3081
 
3082
+ /**
3083
+ * Sets the private key for `private_key_jwt` client authentication (RFC 7523) in the OAuth2
3084
+ * client credentials flow of the {@link Http.authToken} property. When the `AuthToken` is set to
3085
+ * JSON with the client credentials, Chilkat creates a new `client_assertion` JWT, signed with
3086
+ * this key, for each token request, and sends it with `client_assertion_type` set to
3087
+ * `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`. The JWT has the claims `iss` and
3088
+ * `sub` (the `client_id` from the JSON), `aud` (the `token_endpoint`), `iat`, `exp` (5 minutes
3089
+ * after `iat`) and a unique `jti`.
3090
+ *
3091
+ * \*kid\* is the key ID, which is put in the JWT header. Pass an empty string if the
3092
+ * authorization server does not need one. The key can be an EC key on the P-256, P-384 or P-521
3093
+ * curve (the JWT is signed with ES256, ES384 or ES512), an RSA key of 2048 bits or more (RS256),
3094
+ * or an Ed25519 key (EdDSA). For example, load a key in JWK format with `PrivateKey.LoadJwk` and
3095
+ * pass its `kid`.
3096
+ *
3097
+ * This is typically used with {@link Http.setDPoPKey}, when the authorization server requires
3098
+ * both a client assertion and DPoP. The same key may be passed to both methods if the server
3099
+ * allows it. A `client_assertion` or `client_assertion_type` member in the `AuthToken` JSON is
3100
+ * ignored once this key is set. The JSON must include the `client_id`.
3101
+ *
3102
+ * @throws Error if the call fails (the message names the reason); the full log is in
3103
+ * {@link Http.lastErrorText}.
3104
+ */
3105
+ setClientAssertionKey(privKey: PrivateKey, kid: string): void
3106
+
3071
3107
  // ---- Events (ReactNativeGen_DESIGN.md §6) ----
3072
3108
 
3073
3109
  /**
@@ -16,8 +16,9 @@ import type { Xml } from './Xml.nitro'
16
16
  * dependency resolution, response extraction, and structured diagnostics.
17
17
  *
18
18
  * Variables such as `{{access_token}}`, `{{site_id}}`, or
19
- * `{{drive_id}}` can appear in URLs, headers, query parameters, or request
20
- * bodies. If a variable is not yet known, `HttpCurl` can build an execution
19
+ * `{{drive_id}}` can appear in URLs, headers, query parameters, request
20
+ * bodies, the JSON paths that extract values from a response, and the local file path a
21
+ * response is written to. If a variable is not yet known, `HttpCurl` can build an execution
21
22
  * plan from previously defined curl functions, run the prerequisite requests, extract
22
23
  * values from JSON responses, and then execute the final target request.
23
24
  *
@@ -157,6 +158,19 @@ export interface HttpCurl extends HybridObject<{ ios: 'c++', android: 'c++' }> {
157
158
  */
158
159
  readonly responseBodyStr: string
159
160
 
161
+ /**
162
+ * Returns the HTTP response header from the last call to {@link HttpCurl.doYourThing}: the status
163
+ * line (such as `HTTP/1.1 200 OK`) followed by the header fields, with CRLF line endings. Empty
164
+ * if no response was received. When redirects were followed (`-L`), this is the header of the
165
+ * final response. To get a single field, use {@link HttpCurl.getResponseHeaderField}. The curl
166
+ * `-D`/`--dump-header` option writes the header of every response (including redirects) to a
167
+ * file, and `-i`/`--include` writes the header before the body in the `-o`/`-O` output file;
168
+ * neither changes this property or the response body returned in memory.
169
+ *
170
+ * This property is read-only.
171
+ */
172
+ readonly responseHeader: string
173
+
160
174
  /**
161
175
  * Set this property to the path of a file to stream the response body to a file. If the response
162
176
  * is streamed to a file, it will not be available in {@link HttpCurl.responseBodyStr}, {@link
@@ -200,6 +214,10 @@ export interface HttpCurl extends HybridObject<{ ios: 'c++', android: 'c++' }> {
200
214
  *
201
215
  * - Failed to open or create the local output file (if a curl option directed output to a file).
202
216
  *
217
+ * - The response body is compressed with a Content-Encoding Chilkat cannot decode, such as Brotli
218
+ * (`br`) or zstd, so it is unusable. gzip and deflate are decoded automatically. (Introduced in
219
+ * v11.7.0.)
220
+ *
203
221
  * **Note:** `curl` can read data from a local file and send it in a request (usually POST/PUT)
204
222
  * using special syntax:
205
223
  *
@@ -238,6 +256,16 @@ export interface HttpCurl extends HybridObject<{ ios: 'c++', android: 'c++' }> {
238
256
  * Provides a comma-separated list of uncommon option keywords.
239
257
  *
240
258
  * This property defaults to an empty string and should normally remain empty.
259
+ *
260
+ * Can be set to a list of the following comma separated keywords:
261
+ *
262
+ * - `IgnoreUnknownCurlOptions` - Introduced in v11.7.0. Starting in v11.7.0, a curl option that
263
+ * HttpCurl does not recognize causes {@link HttpCurl.doYourThing} to fail with a syntax error
264
+ * ({@link HttpCurl.failReason} = 1) naming the option in `LastErrorText`, rather than being
265
+ * silently dropped as in earlier versions. (Options that are meaningless to HttpCurl but
266
+ * harmless, such as `--progress-bar` or `--retry`, are accepted and ignored.) This keyword
267
+ * restores the earlier behavior: an unknown option is skipped with a note in `LastErrorText`.
268
+ * Note that the value of an unknown option that takes one is then seen as a stray token.
241
269
  */
242
270
  uncommonOptions: string
243
271
 
@@ -264,6 +292,53 @@ export interface HttpCurl extends HybridObject<{ ios: 'c++', android: 'c++' }> {
264
292
  * {@link HttpCurl.addTargetOutput} will be populated by applying each variable's JSON path to the
265
293
  * response JSON.
266
294
  *
295
+ * **Writing the response to a local file**
296
+ *
297
+ * A curl command may write the response body to a local file with `-o` / `--output` (an explicit
298
+ * filename), or with
299
+ * `-O` / `--remote-name` (the filename is the final path segment of the URL). Either may be
300
+ * combined with
301
+ * `--output-dir`, which, as in curl, is applied only when the filename itself contains no
302
+ * directory separator.
303
+ *
304
+ * Starting in v11.7.0, the output file path may contain variable names enclosed in `{{` and `}}`,
305
+ * resolved from the
306
+ * current variable values at the time the request is sent. This applies to the path given with
307
+ * `-o`, the directory given with
308
+ * `--output-dir`, and the URL that `-O` derives a filename from. In previous versions the path
309
+ * was used exactly as
310
+ * written, so `-o "{{report_name}}.pdf"` created a file literally named `{{report_name}}.pdf` and
311
+ * reported success.
312
+ *
313
+ * ```
314
+ * httpCurl.SetVar("customer","acme");
315
+ * httpCurl.SetVar("report_name","q3-summary");
316
+ * httpCurl.DoYourThing("curl https://api.example.com/reports/{{report_name}} "
317
+ * "--output-dir \"reports/{{customer}}\" -o \"{{report_name}}.pdf\"");
318
+ * // writes reports/acme/q3-summary.pdf
319
+ * ```
320
+ *
321
+ * Two conditions cause the request to fail rather than write a file:
322
+ *
323
+ * - The resolved path still contains a `{{varName}}` reference, or a variable in it resolved to
324
+ * an empty string. (Elsewhere -- in a URL
325
+ * or a request body -- an unresolved reference is left in place. In a file path that would
326
+ * silently create a misnamed file.)
327
+ *
328
+ * - A variable substituted into the path has a value containing a `..` directory segment. Because
329
+ * a variable's value can come from a
330
+ * server's response (see {@link HttpCurl.addOutput} and {@link HttpCurl.addOutput2}), a
331
+ * response
332
+ * must not be able to move the output file out of the directory the curl command named. A `..`
333
+ * written literally in the curl command
334
+ * itself is the application's own choice and is allowed.
335
+ *
336
+ * The path as it will actually be used is written to `LastErrorText` as `resolvedOutputPath`.
337
+ *
338
+ * This is independent of the {@link HttpCurl.responseFilePath} property, which streams the
339
+ * response body to a file
340
+ * for requests whose curl command names no output file.
341
+ *
267
342
  * This call blocks the JavaScript thread until Chilkat returns; from UI code prefer
268
343
  * {@link HttpCurl.doYourThingAsync}.
269
344
  *
@@ -350,9 +425,25 @@ export interface HttpCurl extends HybridObject<{ ios: 'c++', android: 'c++' }> {
350
425
  */
351
426
  getResponseJarr(jarr: JsonArray): void
352
427
 
428
+ /**
429
+ * Returns the value of the response header field named `name` (case-insensitive) from the last
430
+ * call to {@link HttpCurl.doYourThing}, such as `"Content-Type"` or `"ETag"`. Returns an empty
431
+ * string if the response has no such field. When redirects were followed (`-L`), the field is
432
+ * from the final response. The full response header is available in {@link
433
+ * HttpCurl.responseHeader}.
434
+ *
435
+ * @throws Error if the call fails (the message names the reason); the full log is in
436
+ * {@link HttpCurl.lastErrorText}.
437
+ */
438
+ getResponseHeaderField(name: string): string
439
+
353
440
  /**
354
441
  * Sets the value of a variable to be replaced in curl commands. Variable names are enclosed in
355
- * `{{` and `}}` and can occur in the path, query params, or the body of the request.
442
+ * `{{` and `}}` and can occur in the path, query params, or the body of the request. Starting in
443
+ * v11.7.0, they can also occur in the `arrayPath`, `wherePath`, `whereValue` and `subPath` passed
444
+ * to {@link HttpCurl.addOutput2}, and in the local output file path of a curl command -- the path
445
+ * given with `-o` or `--output`, the directory given with `--output-dir`, and the URL that `-O`
446
+ * derives a filename from. See {@link HttpCurl.doYourThing}.
356
447
  */
357
448
  setVar(varName: string, varValue: string): void
358
449
 
@@ -457,13 +548,16 @@ export interface HttpCurl extends HybridObject<{ ios: 'c++', android: 'c++' }> {
457
548
  *
458
549
  * -
459
550
  * `arrayPath` — The JSON path identifying the array of records within the JSON response.
551
+ * May contain variable references (see below).
460
552
  *
461
553
  * -
462
554
  * `wherePath` — A relative JSON path within each array element used to locate the matching
463
555
  * record.
556
+ * May contain variable references (see below).
464
557
  *
465
558
  * -
466
559
  * `whereValue` — The value to match against the JSON value found at `wherePath`.
560
+ * May contain variable references (see below).
467
561
  *
468
562
  * -
469
563
  * `caseSensitive` — If `true`, the comparison between `whereValue` and the JSON value is
@@ -472,10 +566,32 @@ export interface HttpCurl extends HybridObject<{ ios: 'c++', android: 'c++' }> {
472
566
  * -
473
567
  * `subPath` — A relative JSON path within the matched array element identifying the value to
474
568
  * extract.
569
+ * May contain variable references (see below).
475
570
  *
476
571
  * -
477
572
  * `varName` — The name of the variable that will receive the extracted value.
478
573
  *
574
+ * **Variable references**
575
+ *
576
+ * Starting in v11.7.0, the `arrayPath`, `wherePath`, `whereValue` and
577
+ * `subPath` may each contain variable names enclosed in `{{` and `}}`, such as
578
+ * `{{site_name}}`, either on their own or within a longer string such as
579
+ * `result.{{list_name}}.items`. Each is stored exactly as passed here, and the references in it
580
+ * are
581
+ * resolved every time this output is evaluated — not when `AddOutput2` is called. A variable
582
+ * whose value
583
+ * is set later by `SetVar`, or that is produced as the output of another curl function, is
584
+ * therefore used
585
+ * with its current value.
586
+ *
587
+ * A variable referenced here is treated as an input of the curl function, exactly like one
588
+ * appearing in the curl
589
+ * command itself, so the execution plan runs whatever produces it first. If a referenced variable
590
+ * has no value and
591
+ * nothing can produce it, the reference is left in place, no array element matches, and the
592
+ * LastErrorText reports the
593
+ * failure with both the resolved and the unresolved form of the record spec.
594
+ *
479
595
  * **Example**
480
596
  *
481
597
  * Given the following JSON response:
@@ -214,13 +214,19 @@ export interface Jwe extends HybridObject<{ ios: 'c++', android: 'c++' }> {
214
214
  preferFlattened: boolean
215
215
 
216
216
  /**
217
- * Provides a catch-all string for specialized compatibility options that are not exposed as
217
+ * Provides a comma-separated list of specialized compatibility options that are not exposed as
218
218
  * ordinary properties. The default is the empty string, which is appropriate for normal JWE
219
219
  * creation and decryption.
220
220
  *
221
- * **No public keywords documented:** This reference does not currently define any public
222
- * `Jwe.UncommonOptions` keywords. Leave the property empty unless a Chilkat release note,
223
- * example, or support response provides the exact option name, syntax, and intended use.
221
+ * OptionEffect
222
+ *
223
+ * | `jwe-no-inflate-limit` | | Starting in v11.7.0. Removes the limit on the decompressed size of
224
+ * a JWE that uses `zip`:`DEF`. By default, decryption fails if the plaintext would decompress to
225
+ * more than 64 MB, which protects against decompression bombs. |
226
+ *
227
+ * **Use only for trusted senders:** A small compressed JWE can expand to an enormous plaintext.
228
+ * Set `jwe-no-inflate-limit` only when every JWE you decrypt comes from a trusted source and
229
+ * legitimately decompresses to more than 64 MB.
224
230
  */
225
231
  uncommonOptions: string
226
232
 
@@ -548,7 +554,8 @@ export interface Jwe extends HybridObject<{ ios: 'c++', android: 'c++' }> {
548
554
  *
549
555
  * Loaded AAD is used automatically. Authentication is completed before plaintext is returned. For
550
556
  * `zip`:`DEF`, decompression occurs only after successful authentication, and no partial
551
- * decompressed output is returned.
557
+ * decompressed output is returned. Starting in v11.7.0, decryption fails if the plaintext would
558
+ * decompress to more than 64 MB, unless `UncommonOptions` contains `jwe-no-inflate-limit`.
552
559
  *
553
560
  * **Charset errors:** Charset conversion errors cause `Decrypt` to fail.
554
561
  *
@@ -1610,6 +1610,13 @@ export interface MailMan extends HybridObject<{ ios: 'c++', android: 'c++' }> {
1610
1610
  * {@link MailMan.requireSslCertVerify}. Therefore,
1611
1611
  * it still occurs when certificate-chain verification is not required.
1612
1612
  *
1613
+ * Starting in v11.7.0, a wildcard SAN entry is matched as RFC 9525 (formerly RFC 6125) specifies.
1614
+ * The wildcard must be the entire left-most label (`*.example.com`) and stands for exactly one
1615
+ * label: `*.example.com` matches `www.example.com`, but not `a.b.example.com` and not the bare
1616
+ * `example.com`. (Earlier versions matched the bare domain, and accepted a wildcard in any
1617
+ * position.) A wildcard is not accepted directly under a top-level domain or a country-code
1618
+ * second level such as `co.uk`, and never matches an IP address.
1619
+ *
1613
1620
  * The default value is `_FALSE_`.
1614
1621
  */
1615
1622
  requireHostnameMatch: boolean