@arcforges/api-client 1.0.0-ci.23.1 → 1.0.0-ci.244.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/NOTICE +57 -5
  2. package/README.md +9 -2
  3. package/build-identity.json +209 -0
  4. package/contracts.binpb +0 -0
  5. package/dist/gen/http.d.ts +10 -0
  6. package/dist/gen/http.js +13 -0
  7. package/dist/index.d.ts +10 -1
  8. package/dist/index.js +20 -2
  9. package/dist/shapes/gen/AndroidUpdate.d.ts +41 -0
  10. package/dist/shapes/gen/AndroidUpdate.js +620 -0
  11. package/dist/shapes/gen/CatalogIndex.d.ts +49 -0
  12. package/dist/shapes/gen/CatalogIndex.js +703 -0
  13. package/dist/shapes/gen/CatalogRevocations.d.ts +46 -0
  14. package/dist/shapes/gen/CatalogRevocations.js +647 -0
  15. package/dist/shapes/gen/DeclarativePanel.d.ts +154 -0
  16. package/dist/shapes/gen/DeclarativePanel.js +2988 -0
  17. package/dist/shapes/gen/ExtensionManifest.d.ts +278 -0
  18. package/dist/shapes/gen/ExtensionManifest.js +3974 -0
  19. package/dist/shapes/gen/ExtensionWorkflow.d.ts +151 -0
  20. package/dist/shapes/gen/ExtensionWorkflow.js +2251 -0
  21. package/dist/shapes/gen/PackageInventory.d.ts +24 -0
  22. package/dist/shapes/gen/PackageInventory.js +327 -0
  23. package/dist/shapes/gen/PartReceipt.d.ts +21 -0
  24. package/dist/shapes/gen/PartReceipt.js +290 -0
  25. package/dist/shapes/gen/PolicyBody.d.ts +269 -0
  26. package/dist/shapes/gen/PolicyBody.js +4188 -0
  27. package/dist/shapes/gen/RealmDescriptor.d.ts +39 -0
  28. package/dist/shapes/gen/RealmDescriptor.js +627 -0
  29. package/package.json +15 -7
  30. package/sbom.cdx.json +17 -17
  31. package/schemas/public/http/v1/inventory.schema.json +49 -0
  32. package/schemas/public/http/v1/manifest.schema.json +1459 -0
  33. package/schemas/public/http/v1/panel.schema.json +963 -0
  34. package/schemas/public/http/v1/policy-body.schema.json +1376 -0
  35. package/schemas/public/http/v1/schema.json +30 -0
  36. package/schemas/public/http/v1/signed-formats.schema.json +748 -0
  37. package/schemas/public/http/v1/workflow.schema.json +715 -0
  38. package/schemas/public/proto/arcforges/catalog/v1/catalog.proto +204 -0
  39. package/schemas/public/proto/arcforges/events/v1/events.proto +14 -0
  40. package/schemas/public/proto/arcforges/foundation/v1/foundation.proto +373 -0
  41. package/schemas/public/proto/arcforges/hello/v1/hello.proto +23 -0
  42. package/schemas/public/proto/arcforges/publicapi/v1/commerce.proto +542 -0
  43. package/schemas/public/proto/arcforges/publicapi/v1/content.proto +774 -0
  44. package/schemas/public/proto/arcforges/publicapi/v1/descriptors.proto +27 -0
  45. package/schemas/public/proto/arcforges/publicapi/v1/inprocess-values.proto +134 -0
  46. package/source.json +38 -10
package/NOTICE CHANGED
@@ -1,13 +1,65 @@
1
1
  ArcForges Contracts
2
2
  Copyright 2026 ArcForges contributors
3
3
 
4
- @arcforges/api-client 1.0.0-ci.23.1 (Apache-2.0)
4
+ @arcforges/api-client 1.0.0-ci.244.1 (Apache-2.0)
5
5
 
6
6
  Resolved runtime dependency inventory (dependencies retain their own licences):
7
- - @arcforges/proto 1.0.0-ci.23.1: Apache-2.0 (pkg:npm/%40arcforges/proto@1.0.0-ci.23.1)
8
- - @bufbuild/protobuf 2.14.1: (Apache-2.0 AND BSD-3-Clause) (pkg:npm/%40bufbuild/protobuf@2.14.1)
7
+ - @arcforges/proto 1.0.0-ci.244.1: Apache-2.0 (pkg:npm/%40arcforges/proto@1.0.0-ci.244.1)
8
+ - @bufbuild/protobuf 2.15.0: (Apache-2.0 AND BSD-3-Clause) (pkg:npm/%40bufbuild/protobuf@2.15.0)
9
9
  - @connectrpc/connect 2.2.0: Apache-2.0 (pkg:npm/%40connectrpc/connect@2.2.0)
10
10
  - @connectrpc/connect-web 2.2.0: Apache-2.0 (pkg:npm/%40connectrpc/connect-web@2.2.0)
11
11
 
12
- Third-party dependencies are referenced, not vendored into this package.
13
- The installed dependency packages supply their original licence and notice files.
12
+ Third-party dependencies are referenced, not vendored into this package. Installed dependencies supply their original licence and notice files.
13
+
14
+ ArcForges source provenance notices
15
+
16
+ Generated from reviewed active records. Original licence files and dependency notices remain authoritative.
17
+
18
+ contract-bindings-con-08-r1
19
+ Source: https://github.com/ArcForges/Contracts @ 82f7dc331e39674b812ee53296ac5d6dd6badd0b
20
+ Material licence: Apache-2.0
21
+ Notice scope: packages
22
+ Copyright 2026 ArcForges contributors.
23
+ Copyright 2008 Google Inc. All rights reserved.
24
+ Copyright 2015, 2019, 2020 gRPC authors.
25
+ Copyright 2021-2026 Buf Technologies, Inc.
26
+ Copyright 2022-2026 The Connect Authors.
27
+ Selected ArcForges contract bindings are generated from Apache-2.0 schemas using Grpc.Tools 2.84.0, protoc-gen-es 2.15.0 and Connect-Kotlin 0.9.0. Shape validators, domain identity adapters and fixture exports use Apache-2.0 repository tooling. Historical protobuf BSD-3-Clause and applicable generator Apache-2.0 attributions are retained. Build tools are not bundled in client packages. Native-grpc-only Android generation remains retired.
28
+
29
+ protobuf-generator-licence-r1
30
+ Source: https://github.com/protocolbuffers/protobuf @ 35cd01f9fe9afbeea38cc7b979a3b6bfcde82c03
31
+ Material licence: BSD-3-Clause
32
+ Notice scope: packages
33
+ Copyright 2008 Google Inc. All rights reserved.
34
+ Copyright 2008 Google Inc. All rights reserved.
35
+
36
+ Redistribution and use in source and binary forms, with or without
37
+ modification, are permitted provided that the following conditions are
38
+ met:
39
+
40
+ * Redistributions of source code must retain the above copyright
41
+ notice, this list of conditions and the following disclaimer.
42
+ * Redistributions in binary form must reproduce the above
43
+ copyright notice, this list of conditions and the following disclaimer
44
+ in the documentation and/or other materials provided with the
45
+ distribution.
46
+ * Neither the name of Google Inc. nor the names of its
47
+ contributors may be used to endorse or promote products derived from
48
+ this software without specific prior written permission.
49
+
50
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
51
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
52
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
53
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
54
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
55
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
56
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
57
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
58
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
59
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
60
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
61
+
62
+ Code generated by the Protocol Buffer compiler is owned by the owner
63
+ of the input file used when generating it. This code is not
64
+ standalone and requires a support library to be linked with it. This
65
+ support library is itself covered by the above license.
package/README.md CHANGED
@@ -12,10 +12,17 @@ const reply = await client.sayHello({ name: "World" }, { timeoutMs: 5000 });
12
12
  console.log(reply.message);
13
13
  ```
14
14
 
15
+ `createPublicGrpcWebTransport` is the public business transport: binary gRPC-Web
16
+ only, unknown fields retained and the shared 100-level nesting bound. It refuses
17
+ `useBinaryFormat`, `jsonOptions` and `binaryOptions` overrides. The declared HTTP
18
+ exception records have strict codecs such as `tryParsePartReceiptJson` and
19
+ `serializePartReceiptJson`; they enforce the schema byte limit, UTF-8, JSON depth 32,
20
+ duplicate-property and integer-lexeme rules before the closed schema check.
21
+
15
22
  The endpoint must serve gRPC-Web. Browser cross-origin access also requires
16
23
  server CORS configuration. The demo host binds to loopback for tests.
17
24
 
18
- React Native uses the same proto types and a separately validated Hermes
19
- transport; this browser client does not claim RN support.
25
+ Android uses the separately published Kotlin artifacts with binary gRPC-Web.
26
+ This package is the TypeScript Web client; it does not provide a mobile runtime.
20
27
 
21
28
  Apache-2.0. [Source and full setup](https://github.com/ArcForges/Contracts).
@@ -0,0 +1,209 @@
1
+ {
2
+ "schema": "arcforges.build-identity.v1",
3
+ "owner": "Contracts",
4
+ "artifact": {
5
+ "id": "@arcforges/api-client",
6
+ "version": "1.0.0-ci.244.1"
7
+ },
8
+ "build": {
9
+ "sourceCommit": "063762f32c551449fb01936d9ec30fedb77260de",
10
+ "dirty": false,
11
+ "kind": "ci",
12
+ "buildId": "36461962570.1",
13
+ "runId": "36461962570",
14
+ "runAttempt": 1,
15
+ "pipelineRun": "https://github.com/ArcForges/Contracts/actions/runs/36461962570",
16
+ "sourceDateEpoch": 1790618328
17
+ },
18
+ "axes": {
19
+ "AppVersion": {
20
+ "status": "not-applicable",
21
+ "reason": "Contracts distributes libraries, not an installed product."
22
+ },
23
+ "ContractSet": {
24
+ "status": "present",
25
+ "values": [
26
+ {
27
+ "subject": "arcforges.catalog",
28
+ "version": "1",
29
+ "source": {
30
+ "path": "public/proto/arcforges/catalog/v1/catalog.proto",
31
+ "sha256": "ff77d24be445e107d4fb4a0b3f7fd6b205664317e856a3696e471be1a18f0828"
32
+ },
33
+ "descriptorSha256": "4735c9b35035a39773980752ae9f541b8fa04cb0e2c8e449596a4bc0cd01bedf"
34
+ },
35
+ {
36
+ "subject": "arcforges.events",
37
+ "version": "1",
38
+ "source": {
39
+ "path": "public/proto/arcforges/events/v1/events.proto",
40
+ "sha256": "ea0ac740c06bbb5b81724b4a7e601110424cabc4940b07e579cf97d852880f43"
41
+ },
42
+ "descriptorSha256": "4735c9b35035a39773980752ae9f541b8fa04cb0e2c8e449596a4bc0cd01bedf"
43
+ },
44
+ {
45
+ "subject": "arcforges.foundation",
46
+ "version": "1",
47
+ "source": {
48
+ "path": "public/proto/arcforges/foundation/v1/foundation.proto",
49
+ "sha256": "adff62f65799bc5523965caf40f1f6bf11cbb4e2d769f46d9e3183a72a6d24d5"
50
+ },
51
+ "descriptorSha256": "4735c9b35035a39773980752ae9f541b8fa04cb0e2c8e449596a4bc0cd01bedf"
52
+ },
53
+ {
54
+ "subject": "arcforges.hello",
55
+ "version": "1",
56
+ "source": {
57
+ "path": "public/proto/arcforges/hello/v1/hello.proto",
58
+ "sha256": "92489f89d1898a3d3bbea56c72116416cd0152ae8866c98745739437020c67d9"
59
+ },
60
+ "descriptorSha256": "4735c9b35035a39773980752ae9f541b8fa04cb0e2c8e449596a4bc0cd01bedf"
61
+ },
62
+ {
63
+ "subject": "arcforges.publicapi",
64
+ "version": "1",
65
+ "descriptorSha256": "4735c9b35035a39773980752ae9f541b8fa04cb0e2c8e449596a4bc0cd01bedf",
66
+ "sources": [
67
+ {
68
+ "path": "public/proto/arcforges/publicapi/v1/commerce.proto",
69
+ "sha256": "e0ed5700197fdb20006c7ea699d9071dd8c4ac9d4248651f8a148363ad8af9dc"
70
+ },
71
+ {
72
+ "path": "public/proto/arcforges/publicapi/v1/content.proto",
73
+ "sha256": "1c912ac9fa37633a3e5d186cb6f3838bd886f09f935e1ce41c5a665640c54abd"
74
+ },
75
+ {
76
+ "path": "public/proto/arcforges/publicapi/v1/descriptors.proto",
77
+ "sha256": "d8a43c27fd345d55786a67ce9776efa0b4bc089f57361c3e532dd1b5f9326161"
78
+ },
79
+ {
80
+ "path": "public/proto/arcforges/publicapi/v1/inprocess-values.proto",
81
+ "sha256": "24921ae4f54f48800ea1201a9eee27a4e23a476b738cc3903665dff137a10eea"
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ "subject": "json:DeclarativePanel",
87
+ "version": "1",
88
+ "source": {
89
+ "path": "public/http/v1/panel.schema.json",
90
+ "sha256": "e47e3fcad128918ca888c7f2a61ac03876ab50467a46b7597cda5cce53de21ce"
91
+ }
92
+ },
93
+ {
94
+ "subject": "json:ExtensionManifest",
95
+ "version": "1",
96
+ "source": {
97
+ "path": "public/http/v1/manifest.schema.json",
98
+ "sha256": "1f768f3d5cd7ffba35c2f2460914d6a7ab7f2b6988cb90abd02c8e49065ba844"
99
+ }
100
+ },
101
+ {
102
+ "subject": "json:ExtensionWorkflow",
103
+ "version": "1",
104
+ "source": {
105
+ "path": "public/http/v1/workflow.schema.json",
106
+ "sha256": "a23961e89badb790abca4f7fef01a833d647394b16194c51d7b4f79352181b42"
107
+ }
108
+ },
109
+ {
110
+ "subject": "json:PackageInventory",
111
+ "version": "1",
112
+ "source": {
113
+ "path": "public/http/v1/inventory.schema.json",
114
+ "sha256": "2d17acc663de43ff847e522ddb16f32b1e7ec356df7db7dcafe8342d3fb014ce"
115
+ }
116
+ },
117
+ {
118
+ "subject": "json:PartReceipt",
119
+ "version": "1",
120
+ "source": {
121
+ "path": "public/http/v1/schema.json",
122
+ "sha256": "8d4c1282c0f93452a0304e44c832179d4c6f65fa563ae53517aa324af87105ce"
123
+ }
124
+ },
125
+ {
126
+ "subject": "json:PolicyBody",
127
+ "version": "1",
128
+ "source": {
129
+ "path": "public/http/v1/policy-body.schema.json",
130
+ "sha256": "62509c5a2f104b4d84fcbee28a0bf41946e49a89a3c5baf1e609700e05f24f68"
131
+ }
132
+ },
133
+ {
134
+ "subject": "json:SignedFormats",
135
+ "version": "1",
136
+ "source": {
137
+ "path": "public/http/v1/signed-formats.schema.json",
138
+ "sha256": "9719004a495ae2475841dc3506b86a7ba8faa2eeb33d774dbf12effa5d495a03"
139
+ }
140
+ }
141
+ ]
142
+ },
143
+ "CapabilityVersion": {
144
+ "status": "not-produced",
145
+ "reason": "The selected contract records do not declare implemented product capabilities.",
146
+ "producer": "WP09 and product capability owners"
147
+ },
148
+ "NativeFormatVersion": {
149
+ "status": "not-produced",
150
+ "reason": "No portable product format exists here.",
151
+ "producer": "WP18/28, WP34 and WP38"
152
+ },
153
+ "StorageSchemaVersion": {
154
+ "status": "not-produced",
155
+ "reason": "Contracts owns no implemented migration set.",
156
+ "producer": "WP07/21 and product storage owners"
157
+ },
158
+ "NativeAbiVersion": {
159
+ "status": "not-applicable",
160
+ "reason": "These packages contain no first-party native C boundary."
161
+ },
162
+ "PolicySchemaVersion": {
163
+ "status": "not-produced",
164
+ "reason": "The selected schemas contain no implemented product policy declaration.",
165
+ "producer": "WP03 and WP44"
166
+ },
167
+ "ExtensionProtocolVersion": {
168
+ "status": "not-applicable",
169
+ "reason": "This package closure contains no extension protocol."
170
+ },
171
+ "PackageVersion": {
172
+ "status": "present",
173
+ "values": [
174
+ {
175
+ "subject": "pkg:npm/%40arcforges/proto",
176
+ "version": "1.0.0-ci.244.1",
177
+ "source": {
178
+ "path": "sbom.cdx.json#components",
179
+ "sha256": "7d1c0506884183be94130c1562bebe4f852bfeddb607cd9607c80cd8d2c00a22"
180
+ }
181
+ },
182
+ {
183
+ "subject": "pkg:npm/%40bufbuild/protobuf",
184
+ "version": "2.15.0",
185
+ "source": {
186
+ "path": "sbom.cdx.json#components",
187
+ "sha256": "7d1c0506884183be94130c1562bebe4f852bfeddb607cd9607c80cd8d2c00a22"
188
+ }
189
+ },
190
+ {
191
+ "subject": "pkg:npm/%40connectrpc/connect",
192
+ "version": "2.2.0",
193
+ "source": {
194
+ "path": "sbom.cdx.json#components",
195
+ "sha256": "7d1c0506884183be94130c1562bebe4f852bfeddb607cd9607c80cd8d2c00a22"
196
+ }
197
+ },
198
+ {
199
+ "subject": "pkg:npm/%40connectrpc/connect-web",
200
+ "version": "2.2.0",
201
+ "source": {
202
+ "path": "sbom.cdx.json#components",
203
+ "sha256": "7d1c0506884183be94130c1562bebe4f852bfeddb607cd9607c80cd8d2c00a22"
204
+ }
205
+ }
206
+ ]
207
+ }
208
+ }
209
+ }
Binary file
@@ -0,0 +1,10 @@
1
+ export * from "../shapes/gen/ExtensionManifest.js";
2
+ export * from "../shapes/gen/ExtensionWorkflow.js";
3
+ export * from "../shapes/gen/DeclarativePanel.js";
4
+ export * from "../shapes/gen/PolicyBody.js";
5
+ export * from "../shapes/gen/PartReceipt.js";
6
+ export * from "../shapes/gen/PackageInventory.js";
7
+ export * from "../shapes/gen/CatalogIndex.js";
8
+ export * from "../shapes/gen/CatalogRevocations.js";
9
+ export * from "../shapes/gen/AndroidUpdate.js";
10
+ export * from "../shapes/gen/RealmDescriptor.js";
@@ -0,0 +1,13 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // <auto-generated />
3
+ // Generated by eng/generate_shapes.py; do not edit.
4
+ export * from "../shapes/gen/ExtensionManifest.js";
5
+ export * from "../shapes/gen/ExtensionWorkflow.js";
6
+ export * from "../shapes/gen/DeclarativePanel.js";
7
+ export * from "../shapes/gen/PolicyBody.js";
8
+ export * from "../shapes/gen/PartReceipt.js";
9
+ export * from "../shapes/gen/PackageInventory.js";
10
+ export * from "../shapes/gen/CatalogIndex.js";
11
+ export * from "../shapes/gen/CatalogRevocations.js";
12
+ export * from "../shapes/gen/AndroidUpdate.js";
13
+ export * from "../shapes/gen/RealmDescriptor.js";
package/dist/index.d.ts CHANGED
@@ -1,9 +1,18 @@
1
+ import type { Transport } from "@connectrpc/connect";
1
2
  import type { GrpcWebTransportOptions } from "@connectrpc/connect-web";
3
+ /** Caller-owned endpoint, fetch, interceptors and timeout; the wire format is fixed. */
4
+ export type PublicGrpcWebTransportOptions = Omit<GrpcWebTransportOptions, "useBinaryFormat" | "jsonOptions" | "binaryOptions">;
5
+ /**
6
+ * Creates the public business transport: binary gRPC-Web only, unknown fields
7
+ * retained and the shared nesting bound. JSON selection is refused.
8
+ */
9
+ export declare function createPublicGrpcWebTransport(options: PublicGrpcWebTransportOptions): Transport;
2
10
  /** Creates the example client using the caller's gRPC-Web endpoint and fetch. */
3
- export declare function createHelloClient(options: GrpcWebTransportOptions): import("@connectrpc/connect").Client<import("@bufbuild/protobuf/codegenv2").GenService<{
11
+ export declare function createHelloClient(options: PublicGrpcWebTransportOptions): import("@connectrpc/connect").Client<import("@bufbuild/protobuf/codegenv2").GenService<{
4
12
  sayHello: {
5
13
  methodKind: "unary";
6
14
  input: typeof import("@arcforges/proto").SayHelloRequestSchema;
7
15
  output: typeof import("@arcforges/proto").SayHelloResponseSchema;
8
16
  };
9
17
  }>>;
18
+ export * from "./gen/http.js";
package/dist/index.js CHANGED
@@ -1,8 +1,26 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- import { HelloService } from "@arcforges/proto";
2
+ import { contractBinaryReadOptions, HelloService } from "@arcforges/proto";
3
3
  import { createClient } from "@connectrpc/connect";
4
4
  import { createGrpcWebTransport } from "@connectrpc/connect-web";
5
+ /**
6
+ * Creates the public business transport: binary gRPC-Web only, unknown fields
7
+ * retained and the shared nesting bound. JSON selection is refused.
8
+ */
9
+ export function createPublicGrpcWebTransport(options) {
10
+ const selected = options;
11
+ if (selected.useBinaryFormat !== undefined ||
12
+ selected.jsonOptions !== undefined ||
13
+ selected.binaryOptions !== undefined) {
14
+ throw new TypeError("Public ArcForges business calls use binary gRPC-Web with fixed codec options.");
15
+ }
16
+ return createGrpcWebTransport({
17
+ ...options,
18
+ useBinaryFormat: true,
19
+ binaryOptions: { ...contractBinaryReadOptions, writeUnknownFields: true },
20
+ });
21
+ }
5
22
  /** Creates the example client using the caller's gRPC-Web endpoint and fetch. */
6
23
  export function createHelloClient(options) {
7
- return createClient(HelloService, createGrpcWebTransport(options));
24
+ return createClient(HelloService, createPublicGrpcWebTransport(options));
8
25
  }
26
+ export * from "./gen/http.js";
@@ -0,0 +1,41 @@
1
+ export interface AndroidUpdate {
2
+ schemaVersion: string;
3
+ realmId: string;
4
+ channel: string;
5
+ revision: string;
6
+ issuedAt: string;
7
+ expiresAt: string;
8
+ keyId: string;
9
+ bodyHash: string;
10
+ body: AndroidUpdateBody;
11
+ signature: string;
12
+ }
13
+ export interface AndroidUpdateBody {
14
+ packageId: string;
15
+ channel: string;
16
+ versionName: string;
17
+ versionCode: string;
18
+ minSdk: number;
19
+ minSupportedVersionCode: string;
20
+ apkUrl: string;
21
+ sha256: string;
22
+ size: string;
23
+ signingCertificateSha256: string;
24
+ releaseNotesUrl: string;
25
+ publishedAt: string;
26
+ }
27
+ export declare function isAndroidUpdate(value: unknown): value is AndroidUpdate;
28
+ /** The schema's declared UTF-8 document bound in bytes. */
29
+ export declare const androidUpdateJsonMaxBytes = 1048576;
30
+ /** Parses one strict AndroidUpdate document; refusal kinds match the C# codec. */
31
+ export declare function tryParseAndroidUpdateJson(input: Uint8Array | string): {
32
+ ok: true;
33
+ value: AndroidUpdate;
34
+ } | {
35
+ ok: false;
36
+ failure: "tooLarge" | "malformed" | "invalid";
37
+ };
38
+ /** Parses one strict AndroidUpdate document or throws an error carrying the refusal kind. */
39
+ export declare function parseAndroidUpdateJson(input: Uint8Array | string): AndroidUpdate;
40
+ /** Writes compact UTF-8 in schema property order and refuses output the schema rejects. */
41
+ export declare function serializeAndroidUpdateJson(value: AndroidUpdate): Uint8Array;