@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.
- package/chilkat-checksums.json +4 -4
- package/cpp/HybridAi.cpp +12 -12
- package/cpp/HybridAi.hpp +6 -6
- package/cpp/HybridDns.cpp +7 -7
- package/cpp/HybridDns.hpp +3 -3
- package/cpp/HybridFormats.cpp +100 -0
- package/cpp/HybridFormats.hpp +39 -0
- package/cpp/HybridHashtable.cpp +4 -4
- package/cpp/HybridHashtable.hpp +2 -2
- package/cpp/HybridHttp.cpp +9 -0
- package/cpp/HybridHttp.hpp +2 -0
- package/cpp/HybridHttpCurl.cpp +17 -0
- package/cpp/HybridHttpCurl.hpp +3 -0
- package/cpp/HybridPdf.cpp +152 -0
- package/cpp/HybridPdf.hpp +36 -0
- package/cpp/HybridSocket.cpp +56 -0
- package/cpp/HybridSocket.hpp +13 -0
- package/cpp/HybridSpider.cpp +14 -14
- package/cpp/HybridSpider.hpp +6 -6
- package/cpp/HybridStringBuilder.cpp +8 -0
- package/cpp/HybridStringBuilder.hpp +2 -0
- package/cpp/HybridZipEntry.cpp +8 -8
- package/cpp/HybridZipEntry.hpp +4 -4
- package/cpp/runtime/ProgLang.hpp +1 -1
- package/nitro.json +1 -0
- package/nitrogen/generated/android/ChilkatRN+autolinking.cmake +1 -0
- package/nitrogen/generated/android/ChilkatRNOnLoad.cpp +10 -0
- package/nitrogen/generated/ios/ChilkatRNAutolinking.mm +10 -0
- package/nitrogen/generated/shared/c++/HybridAiSpec.hpp +3 -3
- package/nitrogen/generated/shared/c++/HybridDnsSpec.hpp +2 -2
- package/nitrogen/generated/shared/c++/HybridFormatsSpec.cpp +32 -0
- package/nitrogen/generated/shared/c++/HybridFormatsSpec.hpp +75 -0
- package/nitrogen/generated/shared/c++/HybridHashtableSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridHttpCurlSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridHttpCurlSpec.hpp +2 -0
- package/nitrogen/generated/shared/c++/HybridHttpSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridHttpSpec.hpp +1 -0
- package/nitrogen/generated/shared/c++/HybridPdfSpec.cpp +19 -0
- package/nitrogen/generated/shared/c++/HybridPdfSpec.hpp +19 -0
- package/nitrogen/generated/shared/c++/HybridSocketSpec.cpp +10 -0
- package/nitrogen/generated/shared/c++/HybridSocketSpec.hpp +10 -0
- package/nitrogen/generated/shared/c++/HybridSpiderSpec.hpp +4 -4
- package/nitrogen/generated/shared/c++/HybridStringBuilderSpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridStringBuilderSpec.hpp +1 -0
- package/nitrogen/generated/shared/c++/HybridZipEntrySpec.hpp +2 -2
- package/package.json +1 -1
- package/src/index.ts +3 -0
- package/src/specs/Ai.nitro.ts +3 -12
- package/src/specs/Cert.nitro.ts +24 -6
- package/src/specs/CodeSign.nitro.ts +88 -20
- package/src/specs/Compression.nitro.ts +9 -1
- package/src/specs/Dns.nitro.ts +2 -8
- package/src/specs/FileAccess.nitro.ts +12 -2
- package/src/specs/Formats.nitro.ts +170 -0
- package/src/specs/Hashtable.nitro.ts +1 -4
- package/src/specs/Http.nitro.ts +39 -3
- package/src/specs/HttpCurl.nitro.ts +119 -3
- package/src/specs/Jwe.nitro.ts +12 -5
- package/src/specs/MailMan.nitro.ts +7 -0
- package/src/specs/Pdf.nitro.ts +1482 -11
- package/src/specs/Socket.nitro.ts +181 -2
- package/src/specs/Spider.nitro.ts +4 -16
- package/src/specs/Ssh.nitro.ts +31 -13
- package/src/specs/StringBuilder.nitro.ts +55 -0
- 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):
|
|
252
|
+
remove(key: string): boolean
|
|
256
253
|
|
|
257
254
|
/**
|
|
258
255
|
* Appends all hashtable key strings to the `StringTable` passed in `ARG1`. Existing strings
|
package/src/specs/Http.nitro.ts
CHANGED
|
@@ -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
|
|
3063
|
-
* generate a JWT for each request and include the `DPoP` header. Ensure the
|
|
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,
|
|
20
|
-
* bodies
|
|
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:
|
package/src/specs/Jwe.nitro.ts
CHANGED
|
@@ -214,13 +214,19 @@ export interface Jwe extends HybridObject<{ ios: 'c++', android: 'c++' }> {
|
|
|
214
214
|
preferFlattened: boolean
|
|
215
215
|
|
|
216
216
|
/**
|
|
217
|
-
* Provides a
|
|
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
|
-
*
|
|
222
|
-
*
|
|
223
|
-
*
|
|
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
|