@bridgething/catalog 0.1.0 → 0.12.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.
- package/LICENSE +21 -0
- package/README.md +42 -0
- package/dist/blend.d.ts +2 -1
- package/dist/blend.d.ts.map +1 -1
- package/dist/blend.js +1 -0
- package/dist/blend.js.map +1 -1
- package/dist/extension.d.ts +10 -0
- package/dist/extension.d.ts.map +1 -0
- package/dist/extension.js +49 -0
- package/dist/extension.js.map +1 -0
- package/dist/generated/schema.v1.validator.mjs +313 -163
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/resolve.d.ts +8 -1
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +29 -3
- package/dist/resolve.js.map +1 -1
- package/dist/sources.d.ts +4 -1
- package/dist/sources.d.ts.map +1 -1
- package/dist/sources.js +17 -5
- package/dist/sources.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +9 -0
- package/dist/validate.js.map +1 -1
- package/package.json +35 -6
- package/schema.v1.json +112 -16
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export type { AppEntry, AppVersion, Catalog, Download, InstallCount, RecommendedSource, Repo, SourceCatalog, } from './types.ts';
|
|
1
|
+
export type { AppEntry, AppExtension, AppVersion, Catalog, Download, InstallCount, RecommendedSource, Repo, SourceCatalog, } from './types.ts';
|
|
2
2
|
export { CatalogValidationError, validate, validateInvariants, validateSchema } from './validate.ts';
|
|
3
|
+
export { EXTENSION_PERMISSION_PATTERN, EXTENSION_SOURCE_PATTERN, declaresExtension, describeExtensionPermission, describeExtensionPermissions, extensionOf, extensionRepoLabel, isExtensionPermission, } from './extension.ts';
|
|
3
4
|
export { releasedAtInstant, sortNewestFirst } from './versions.ts';
|
|
4
|
-
export { aggregate, compareVersions, isListedWebapp, listedWebapps, newestCompatible, pinsFrom, recommendedSources, satisfies, updates, versionCompatible, type CatalogAppListing, type CatalogAppUpdate, type InstalledWebapp, } from './resolve.ts';
|
|
5
|
+
export { SETTINGS_PAGE_MIME, aggregate, compareVersions, isListedWebapp, listedWebapps, newestCompatible, offersApp, pinsFrom, recommendedSources, satisfies, settingsOrigin, settingsOriginFor, updates, versionCompatible, type CatalogAppListing, type CatalogAppUpdate, type ExtensionOffering, type InstalledWebapp, } from './resolve.ts';
|
|
5
6
|
export { blendStoreListings, type StoreListings } from './blend.ts';
|
|
6
|
-
export { DIRECTORY_ORIGIN, OFFICIAL_CATALOG_URL, SOURCE_DIRECTORY_URL, SourceUrlError, fetchCatalog, fetchMergedApps, fetchSources, normalizeSourceUrl, parseSourceUrl, reportInstall, type CatalogSnapshot, type InstallReport, type MergedApps, type MergedCatalog, type SourceFailure, } from './sources.ts';
|
|
7
|
+
export { CATALOG_FETCH_TIMEOUT_MS, DIRECTORY_ORIGIN, OFFICIAL_CATALOG_URL, SOURCE_DIRECTORY_URL, SourceUrlError, fetchCatalog, fetchMergedApps, fetchSources, normalizeSourceUrl, parseSourceUrl, reportInstall, type CatalogSnapshot, type InstallReport, type MergedApps, type MergedCatalog, type SourceFailure, } from './sources.ts';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,UAAU,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,IAAI,EACJ,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErG,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,OAAO,EACP,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,IAAI,EACJ,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErG,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,4BAA4B,EAC5B,WAAW,EACX,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,OAAO,EACP,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { CatalogValidationError, validate, validateInvariants, validateSchema } from "./validate.js";
|
|
2
|
+
export { EXTENSION_PERMISSION_PATTERN, EXTENSION_SOURCE_PATTERN, declaresExtension, describeExtensionPermission, describeExtensionPermissions, extensionOf, extensionRepoLabel, isExtensionPermission, } from "./extension.js";
|
|
2
3
|
export { releasedAtInstant, sortNewestFirst } from "./versions.js";
|
|
3
|
-
export { aggregate, compareVersions, isListedWebapp, listedWebapps, newestCompatible, pinsFrom, recommendedSources, satisfies, updates, versionCompatible, } from "./resolve.js";
|
|
4
|
+
export { SETTINGS_PAGE_MIME, aggregate, compareVersions, isListedWebapp, listedWebapps, newestCompatible, offersApp, pinsFrom, recommendedSources, satisfies, settingsOrigin, settingsOriginFor, updates, versionCompatible, } from "./resolve.js";
|
|
4
5
|
export { blendStoreListings } from "./blend.js";
|
|
5
|
-
export { DIRECTORY_ORIGIN, OFFICIAL_CATALOG_URL, SOURCE_DIRECTORY_URL, SourceUrlError, fetchCatalog, fetchMergedApps, fetchSources, normalizeSourceUrl, parseSourceUrl, reportInstall, } from "./sources.js";
|
|
6
|
+
export { CATALOG_FETCH_TIMEOUT_MS, DIRECTORY_ORIGIN, OFFICIAL_CATALOG_URL, SOURCE_DIRECTORY_URL, SourceUrlError, fetchCatalog, fetchMergedApps, fetchSources, normalizeSourceUrl, parseSourceUrl, reportInstall, } from "./sources.js";
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErG,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,2BAA2B,EAC3B,4BAA4B,EAC5B,WAAW,EACX,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,OAAO,EACP,iBAAiB,GAKlB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,kBAAkB,EAAsB,MAAM,YAAY,CAAC;AAEpE,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,aAAa,GAMd,MAAM,cAAc,CAAC"}
|
package/dist/resolve.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type { AppEntry, AppVersion, Catalog, InstallCount, RecommendedSource, SourceCatalog } from './types.ts';
|
|
1
|
+
import type { AppEntry, AppVersion, Catalog, Download, InstallCount, RecommendedSource, SourceCatalog } from './types.ts';
|
|
2
|
+
export type ExtensionOffering = 'listed' | 'omitted';
|
|
3
|
+
export declare function offersApp(app: AppEntry, extensions: ExtensionOffering): boolean;
|
|
2
4
|
export type InstalledWebapp = {
|
|
3
5
|
id: string;
|
|
4
6
|
version: string;
|
|
@@ -41,15 +43,20 @@ export declare function aggregate(args: {
|
|
|
41
43
|
installed: InstalledWebapp[];
|
|
42
44
|
deviceLibVersion: string | null;
|
|
43
45
|
installs?: InstallCount[];
|
|
46
|
+
extensions: ExtensionOffering;
|
|
44
47
|
}): CatalogAppListing[];
|
|
45
48
|
export declare function updates(args: {
|
|
46
49
|
catalogs: Map<string, Catalog>;
|
|
47
50
|
installed: InstalledWebapp[];
|
|
48
51
|
deviceLibVersion: string | null;
|
|
52
|
+
extensions: ExtensionOffering;
|
|
49
53
|
}): CatalogAppUpdate[];
|
|
50
54
|
export declare function recommendedSources(args: {
|
|
51
55
|
directory: Catalog | null;
|
|
52
56
|
orderedCatalogs: SourceCatalog[];
|
|
53
57
|
subscribed: string[];
|
|
54
58
|
}): RecommendedSource[];
|
|
59
|
+
export declare const SETTINGS_PAGE_MIME = "text/html; charset=utf-8";
|
|
60
|
+
export declare function settingsOriginFor(catalogs: SourceCatalog[], provenance: string | null, webappId: string, deviceSettingsHash: string | null): Download | null;
|
|
61
|
+
export declare function settingsOrigin(app: AppEntry | null, deviceSettingsHash: string | null): Download | null;
|
|
55
62
|
//# sourceMappingURL=resolve.d.ts.map
|
package/dist/resolve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/resolve.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import { declaresExtension } from "./extension.js";
|
|
1
2
|
import { sortNewestFirst } from "./versions.js";
|
|
3
|
+
export function offersApp(app, extensions) {
|
|
4
|
+
return extensions === 'listed' || !declaresExtension(app);
|
|
5
|
+
}
|
|
2
6
|
export function satisfies(deviceVersion, minimum) {
|
|
3
7
|
return compareVersions(deviceVersion, minimum) >= 0;
|
|
4
8
|
}
|
|
@@ -60,13 +64,15 @@ function installsById(counts) {
|
|
|
60
64
|
return out;
|
|
61
65
|
}
|
|
62
66
|
export function aggregate(args) {
|
|
63
|
-
const { orderedCatalogs, installed, deviceLibVersion } = args;
|
|
67
|
+
const { orderedCatalogs, installed, deviceLibVersion, extensions } = args;
|
|
64
68
|
const installedById = new Map(installed.map(i => [i.id.toLowerCase(), i]));
|
|
65
69
|
const tallies = installsById(args.installs ?? []);
|
|
66
70
|
const pins = pinsFrom(installed);
|
|
67
71
|
const offerings = new Map();
|
|
68
72
|
for (const { url, catalog } of orderedCatalogs) {
|
|
69
73
|
for (const app of catalog.apps) {
|
|
74
|
+
if (!offersApp(app, extensions))
|
|
75
|
+
continue;
|
|
70
76
|
const list = offerings.get(app.id.toLowerCase());
|
|
71
77
|
if (list)
|
|
72
78
|
list.push({ url, app });
|
|
@@ -96,7 +102,7 @@ export function aggregate(args) {
|
|
|
96
102
|
return listings.sort((a, b) => b.installs - a.installs || a.app.name.localeCompare(b.app.name) || a.app.id.localeCompare(b.app.id));
|
|
97
103
|
}
|
|
98
104
|
export function updates(args) {
|
|
99
|
-
const { catalogs, installed, deviceLibVersion } = args;
|
|
105
|
+
const { catalogs, installed, deviceLibVersion, extensions } = args;
|
|
100
106
|
const pins = pinsFrom(installed);
|
|
101
107
|
const out = [];
|
|
102
108
|
for (const info of installed) {
|
|
@@ -107,7 +113,7 @@ export function updates(args) {
|
|
|
107
113
|
if (!sourceUrl)
|
|
108
114
|
continue;
|
|
109
115
|
const app = catalogs.get(sourceUrl)?.apps.find(a => a.id.toLowerCase() === id);
|
|
110
|
-
if (!app)
|
|
116
|
+
if (!app || !offersApp(app, extensions))
|
|
111
117
|
continue;
|
|
112
118
|
const newest = newestCompatible(app, deviceLibVersion);
|
|
113
119
|
if (!newest || !isUpgrade(newest.version, info.version))
|
|
@@ -139,4 +145,24 @@ export function recommendedSources(args) {
|
|
|
139
145
|
}
|
|
140
146
|
return [...byUrl.values()].sort((a, b) => Number(b.attested) - Number(a.attested) || a.name.localeCompare(b.name));
|
|
141
147
|
}
|
|
148
|
+
export const SETTINGS_PAGE_MIME = 'text/html; charset=utf-8';
|
|
149
|
+
export function settingsOriginFor(catalogs, provenance, webappId, deviceSettingsHash) {
|
|
150
|
+
if (!provenance)
|
|
151
|
+
return null;
|
|
152
|
+
const catalog = catalogs.find(source => source.url === provenance)?.catalog ?? null;
|
|
153
|
+
if (!catalog)
|
|
154
|
+
return null;
|
|
155
|
+
const id = webappId.toLowerCase();
|
|
156
|
+
return settingsOrigin(catalog.apps.find(app => app.id.toLowerCase() === id) ?? null, deviceSettingsHash);
|
|
157
|
+
}
|
|
158
|
+
export function settingsOrigin(app, deviceSettingsHash) {
|
|
159
|
+
if (!app || !deviceSettingsHash)
|
|
160
|
+
return null;
|
|
161
|
+
const wanted = deviceSettingsHash.toLowerCase();
|
|
162
|
+
for (const version of app.versions) {
|
|
163
|
+
if (version.settings?.sha256.toLowerCase() === wanted)
|
|
164
|
+
return version.settings;
|
|
165
|
+
}
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
142
168
|
//# sourceMappingURL=resolve.js.map
|
package/dist/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/sources.d.ts
CHANGED
|
@@ -15,7 +15,10 @@ export declare class SourceUrlError extends Error {
|
|
|
15
15
|
}
|
|
16
16
|
export declare function parseSourceUrl(raw: string): URL;
|
|
17
17
|
export declare function normalizeSourceUrl(raw: string): string;
|
|
18
|
-
export declare
|
|
18
|
+
export declare const CATALOG_FETCH_TIMEOUT_MS = 15000;
|
|
19
|
+
export declare function fetchCatalog(url: string, init?: {
|
|
20
|
+
signal?: AbortSignal;
|
|
21
|
+
}): Promise<Catalog>;
|
|
19
22
|
export type MergedCatalog = {
|
|
20
23
|
url: string;
|
|
21
24
|
official: boolean;
|
package/dist/sources.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../src/sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGvE,eAAO,MAAM,oBAAoB,8CAA8C,CAAC;AAEhF,eAAO,MAAM,oBAAoB,6CAA6C,CAAC;AAE/E,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAI5C,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAoB/C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../src/sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGvE,eAAO,MAAM,oBAAoB,8CAA8C,CAAC;AAEhF,eAAO,MAAM,oBAAoB,6CAA6C,CAAC;AAE/E,eAAO,MAAM,gBAAgB,4BAA4B,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAI5C,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAoB/C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAcjG;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B,CAAC;AAEF,wBAAsB,eAAe,CAAC,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAY3G;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE1F,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAkBtF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAsB3E"}
|
package/dist/sources.js
CHANGED
|
@@ -34,11 +34,23 @@ export function normalizeSourceUrl(raw) {
|
|
|
34
34
|
url.pathname += 'catalog.json';
|
|
35
35
|
return url.toString();
|
|
36
36
|
}
|
|
37
|
-
export
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
export const CATALOG_FETCH_TIMEOUT_MS = 15_000;
|
|
38
|
+
export async function fetchCatalog(url, init) {
|
|
39
|
+
const controller = new AbortController();
|
|
40
|
+
const deadline = init?.signal ? null : setTimeout(() => controller.abort(), CATALOG_FETCH_TIMEOUT_MS);
|
|
41
|
+
try {
|
|
42
|
+
const response = await fetch(url, {
|
|
43
|
+
headers: { accept: 'application/json' },
|
|
44
|
+
signal: init?.signal ?? controller.signal,
|
|
45
|
+
});
|
|
46
|
+
if (!response.ok)
|
|
47
|
+
throw new Error(`${url} returned ${response.status}`);
|
|
48
|
+
return validate(await response.json());
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
if (deadline)
|
|
52
|
+
clearTimeout(deadline);
|
|
53
|
+
}
|
|
42
54
|
}
|
|
43
55
|
export async function fetchMergedApps(init) {
|
|
44
56
|
const origin = init?.origin ?? DIRECTORY_ORIGIN;
|
package/dist/sources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../src/sources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEhF,MAAM,CAAC,MAAM,oBAAoB,GAAG,0CAA0C,CAAC;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAU1D,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG;AAE5C,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAE9C,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,cAAc,CAAC,8BAA8B,CAAC,CAAC;IAEvE,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,cAAc,CAAC,IAAI,OAAO,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,cAAc,CAAC,2CAA2C,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,cAAc,CAAC,yCAAyC,CAAC,CAAC;IACtE,CAAC;IAED,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,cAAc,CAAC,8BAA8B,CAAC,CAAC;IAEvE,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;IACtF,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,QAAQ,IAAI,cAAc,CAAC;IAC/D,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW;
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../src/sources.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export type AppEntry = {
|
|
|
18
18
|
description: string;
|
|
19
19
|
author: string;
|
|
20
20
|
icon: string | null;
|
|
21
|
+
screenshots?: string[];
|
|
21
22
|
homepage: string | null;
|
|
22
23
|
source: string | null;
|
|
23
24
|
versions: AppVersion[];
|
|
@@ -26,12 +27,18 @@ export type AppVersion = {
|
|
|
26
27
|
version: string;
|
|
27
28
|
released_at: string;
|
|
28
29
|
download: Download;
|
|
30
|
+
settings?: Download;
|
|
29
31
|
permissions: string[];
|
|
30
32
|
role?: 'standard' | 'launcher';
|
|
31
33
|
provides_overlay?: boolean;
|
|
34
|
+
extension?: AppExtension;
|
|
32
35
|
min_libbridgething_version: string;
|
|
33
36
|
changelog: string | null;
|
|
34
37
|
};
|
|
38
|
+
export type AppExtension = {
|
|
39
|
+
desktop: true;
|
|
40
|
+
permissions: string[];
|
|
41
|
+
};
|
|
35
42
|
export type Download = {
|
|
36
43
|
url: string;
|
|
37
44
|
size: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,0BAA0B,EAAE,MAAM,CAAC;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,IAAI,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
package/dist/validate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C,qBAAa,sBAAuB,SAAQ,KAAK;aAG7B,MAAM,EAAE,MAAM,EAAE;gBADhC,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EAAE;CAKnC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAK3E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqDzD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAIlD"}
|
package/dist/validate.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { declaresExtension, EXTENSION_SOURCE_PATTERN, extensionOf, isExtensionPermission } from "./extension.js";
|
|
1
2
|
import validateSchemaFn from './generated/schema.v1.validator.mjs';
|
|
2
3
|
const UUIDV7 = /^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
3
4
|
export class CatalogValidationError extends Error {
|
|
@@ -36,6 +37,14 @@ export function validateInvariants(catalog) {
|
|
|
36
37
|
else {
|
|
37
38
|
seenVersions.add(v.version);
|
|
38
39
|
}
|
|
40
|
+
for (const permission of extensionOf(v)?.permissions ?? []) {
|
|
41
|
+
if (!isExtensionPermission(permission)) {
|
|
42
|
+
errors.push(`app "${app.name}" version "${v.version}" declares extension permission "${permission}", which is not a permission descriptor`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (declaresExtension(app) && !EXTENSION_SOURCE_PATTERN.test(app.source ?? '')) {
|
|
47
|
+
errors.push(`app "${app.name}" ships a native extension, so its source must be a github.com repo url, not ${app.source === null ? 'null' : `"${app.source}"`}`);
|
|
39
48
|
}
|
|
40
49
|
for (let i = 1; i < app.versions.length; i++) {
|
|
41
50
|
const prev = app.versions[i - 1];
|
package/dist/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bridgething/catalog",
|
|
3
|
+
"version": "0.12.1",
|
|
4
|
+
"description": "The catalog.v1 schema, validator and resolution rules for the bridgething webapp store. Use it to publish a source or to write a client that reads one.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Joey Eamigh <55670930+JoeyEamigh@users.noreply.github.com> (https://github.com/JoeyEamigh)",
|
|
7
|
+
"homepage": "https://bridgething.com/docs/publishing-apps",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/JoeyEamigh/bridgething.git",
|
|
11
|
+
"directory": "packages/catalog"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/JoeyEamigh/bridgething/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"bridgething",
|
|
18
|
+
"spotify",
|
|
19
|
+
"car-thing",
|
|
20
|
+
"superbird",
|
|
21
|
+
"catalog",
|
|
22
|
+
"appstore",
|
|
23
|
+
"schema"
|
|
24
|
+
],
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public",
|
|
27
|
+
"registry": "https://registry.npmjs.org/"
|
|
28
|
+
},
|
|
3
29
|
"type": "module",
|
|
4
|
-
"
|
|
5
|
-
"version": "0.1.0",
|
|
6
|
-
"description": "catalog.v1 schema, validator, and resolution rules for the bridgething webapp appstore",
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
7
31
|
"exports": {
|
|
8
32
|
".": {
|
|
9
33
|
"types": "./dist/index.d.ts",
|
|
@@ -11,7 +35,12 @@
|
|
|
11
35
|
},
|
|
12
36
|
"./schema.v1.json": "./schema.v1.json"
|
|
13
37
|
},
|
|
14
|
-
"files": [
|
|
38
|
+
"files": [
|
|
39
|
+
"dist",
|
|
40
|
+
"schema.v1.json",
|
|
41
|
+
"LICENSE",
|
|
42
|
+
"README.md"
|
|
43
|
+
],
|
|
15
44
|
"scripts": {
|
|
16
45
|
"prebuild": "rm -rf dist",
|
|
17
46
|
"build": "tsc -p tsconfig.build.json && mkdir -p dist/generated && cp src/generated/schema.v1.validator.mjs src/generated/schema.v1.validator.d.mts dist/generated/",
|
|
@@ -24,7 +53,7 @@
|
|
|
24
53
|
"ajv": "^8.20.0",
|
|
25
54
|
"ajv-formats": "^3.0.1"
|
|
26
55
|
},
|
|
27
|
-
"
|
|
28
|
-
"
|
|
56
|
+
"peerDependencies": {
|
|
57
|
+
"typescript": "^6.0.3"
|
|
29
58
|
}
|
|
30
59
|
}
|
package/schema.v1.json
CHANGED
|
@@ -5,7 +5,13 @@
|
|
|
5
5
|
"description": "A federated catalog of installable webapps for a bridgething-flashed Spotify Car Thing. Served at any source URL; the companion aggregates entries across subscribed sources.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
|
-
"required": [
|
|
8
|
+
"required": [
|
|
9
|
+
"schema",
|
|
10
|
+
"updated_at",
|
|
11
|
+
"repo",
|
|
12
|
+
"apps",
|
|
13
|
+
"recommended_sources"
|
|
14
|
+
],
|
|
9
15
|
"properties": {
|
|
10
16
|
"$schema": {
|
|
11
17
|
"type": "string",
|
|
@@ -66,7 +72,12 @@
|
|
|
66
72
|
"Repo": {
|
|
67
73
|
"type": "object",
|
|
68
74
|
"additionalProperties": false,
|
|
69
|
-
"required": [
|
|
75
|
+
"required": [
|
|
76
|
+
"name",
|
|
77
|
+
"description",
|
|
78
|
+
"homepage",
|
|
79
|
+
"icon"
|
|
80
|
+
],
|
|
70
81
|
"properties": {
|
|
71
82
|
"name": {
|
|
72
83
|
"type": "string",
|
|
@@ -80,11 +91,17 @@
|
|
|
80
91
|
"maxLength": 300
|
|
81
92
|
},
|
|
82
93
|
"homepage": {
|
|
83
|
-
"type": [
|
|
94
|
+
"type": [
|
|
95
|
+
"string",
|
|
96
|
+
"null"
|
|
97
|
+
],
|
|
84
98
|
"format": "uri"
|
|
85
99
|
},
|
|
86
100
|
"icon": {
|
|
87
|
-
"type": [
|
|
101
|
+
"type": [
|
|
102
|
+
"string",
|
|
103
|
+
"null"
|
|
104
|
+
],
|
|
88
105
|
"format": "uri",
|
|
89
106
|
"description": "Square source icon for the companion's source list."
|
|
90
107
|
}
|
|
@@ -92,8 +109,18 @@
|
|
|
92
109
|
},
|
|
93
110
|
"AppEntry": {
|
|
94
111
|
"type": "object",
|
|
95
|
-
"additionalProperties":
|
|
96
|
-
"
|
|
112
|
+
"additionalProperties": true,
|
|
113
|
+
"description": "One installable webapp. Unknown keys are tolerated so a catalog that carries a property added after a client shipped still validates; every key defined here is still checked strictly.",
|
|
114
|
+
"required": [
|
|
115
|
+
"id",
|
|
116
|
+
"name",
|
|
117
|
+
"description",
|
|
118
|
+
"author",
|
|
119
|
+
"icon",
|
|
120
|
+
"homepage",
|
|
121
|
+
"source",
|
|
122
|
+
"versions"
|
|
123
|
+
],
|
|
97
124
|
"properties": {
|
|
98
125
|
"id": {
|
|
99
126
|
"$ref": "#/$defs/Uuid"
|
|
@@ -116,16 +143,35 @@
|
|
|
116
143
|
"maxLength": 100
|
|
117
144
|
},
|
|
118
145
|
"icon": {
|
|
119
|
-
"type": [
|
|
146
|
+
"type": [
|
|
147
|
+
"string",
|
|
148
|
+
"null"
|
|
149
|
+
],
|
|
120
150
|
"format": "uri",
|
|
121
151
|
"description": "Hosted square icon. The publish step extracts the bundle's icon and uploads it; null until then."
|
|
122
152
|
},
|
|
153
|
+
"screenshots": {
|
|
154
|
+
"type": "array",
|
|
155
|
+
"minItems": 1,
|
|
156
|
+
"maxItems": 6,
|
|
157
|
+
"items": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"format": "uri"
|
|
160
|
+
},
|
|
161
|
+
"description": "Captures of the app running on a device, 800x480 landscape. The store shows the first one on the listing. Omit the key entirely rather than sending an empty array."
|
|
162
|
+
},
|
|
123
163
|
"homepage": {
|
|
124
|
-
"type": [
|
|
164
|
+
"type": [
|
|
165
|
+
"string",
|
|
166
|
+
"null"
|
|
167
|
+
],
|
|
125
168
|
"format": "uri"
|
|
126
169
|
},
|
|
127
170
|
"source": {
|
|
128
|
-
"type": [
|
|
171
|
+
"type": [
|
|
172
|
+
"string",
|
|
173
|
+
"null"
|
|
174
|
+
],
|
|
129
175
|
"format": "uri",
|
|
130
176
|
"description": "Repository or source URL, for users who want to check it themselves."
|
|
131
177
|
},
|
|
@@ -141,7 +187,8 @@
|
|
|
141
187
|
},
|
|
142
188
|
"AppVersion": {
|
|
143
189
|
"type": "object",
|
|
144
|
-
"additionalProperties":
|
|
190
|
+
"additionalProperties": true,
|
|
191
|
+
"description": "One published version. Unknown keys are tolerated so a catalog that carries a property added after a client shipped still validates; every key defined here is still checked strictly.",
|
|
145
192
|
"required": [
|
|
146
193
|
"version",
|
|
147
194
|
"released_at",
|
|
@@ -161,6 +208,10 @@
|
|
|
161
208
|
"download": {
|
|
162
209
|
"$ref": "#/$defs/Download"
|
|
163
210
|
},
|
|
211
|
+
"settings": {
|
|
212
|
+
"$ref": "#/$defs/Download",
|
|
213
|
+
"description": "The bundle's settings page, hosted separately so a companion can fetch it over the internet instead of pulling it off the device over Bluetooth. Its sha256 MUST be the digest of the same bytes the bundle ships, which is what the device reports as settings_hash; a client verifies against the device's hash and falls back to the device when they disagree. Absent when the version ships no settings page."
|
|
214
|
+
},
|
|
164
215
|
"permissions": {
|
|
165
216
|
"type": "array",
|
|
166
217
|
"items": {
|
|
@@ -171,31 +222,68 @@
|
|
|
171
222
|
"description": "Permission catalog keys this version requests (net.fetch, geo, ...). Shown at install, informational, never a gate."
|
|
172
223
|
},
|
|
173
224
|
"role": {
|
|
174
|
-
"enum": [
|
|
225
|
+
"enum": [
|
|
226
|
+
"standard",
|
|
227
|
+
"launcher"
|
|
228
|
+
],
|
|
175
229
|
"description": "Mirrors the bundle manifest's role. A launcher can take the device's launcher slot and replace the built-in hub. Absent means standard."
|
|
176
230
|
},
|
|
177
231
|
"provides_overlay": {
|
|
178
232
|
"type": "boolean",
|
|
179
233
|
"description": "Whether this version ships an overlay the device can inject over every webapp. Absent means it does not."
|
|
180
234
|
},
|
|
235
|
+
"extension": {
|
|
236
|
+
"$ref": "#/$defs/Extension"
|
|
237
|
+
},
|
|
181
238
|
"min_libbridgething_version": {
|
|
182
239
|
"$ref": "#/$defs/Semver"
|
|
183
240
|
},
|
|
184
241
|
"changelog": {
|
|
185
|
-
"type": [
|
|
242
|
+
"type": [
|
|
243
|
+
"string",
|
|
244
|
+
"null"
|
|
245
|
+
],
|
|
186
246
|
"description": "Markdown changelog for this version."
|
|
187
247
|
}
|
|
188
248
|
}
|
|
189
249
|
},
|
|
250
|
+
"Extension": {
|
|
251
|
+
"type": "object",
|
|
252
|
+
"additionalProperties": false,
|
|
253
|
+
"required": [
|
|
254
|
+
"desktop",
|
|
255
|
+
"permissions"
|
|
256
|
+
],
|
|
257
|
+
"description": "A native extension shipped inside the bundle, run by a host that has an extension host. Absent means the version is webapp-only.",
|
|
258
|
+
"properties": {
|
|
259
|
+
"desktop": {
|
|
260
|
+
"const": true,
|
|
261
|
+
"description": "The desktop companion runs this extension. Phones have no extension host and ignore the block."
|
|
262
|
+
},
|
|
263
|
+
"permissions": {
|
|
264
|
+
"type": "array",
|
|
265
|
+
"items": {
|
|
266
|
+
"type": "string",
|
|
267
|
+
"minLength": 1
|
|
268
|
+
},
|
|
269
|
+
"uniqueItems": true,
|
|
270
|
+
"description": "Deno permission descriptors the extension is granted verbatim: all, net[:host[:port]], read[:path], write[:path], run[:binary], env[:VAR], sys[:kind], ffi[:path]. Shown before install, never a gate."
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
},
|
|
190
274
|
"Download": {
|
|
191
275
|
"type": "object",
|
|
192
276
|
"additionalProperties": false,
|
|
193
|
-
"required": [
|
|
277
|
+
"required": [
|
|
278
|
+
"url",
|
|
279
|
+
"size",
|
|
280
|
+
"sha256"
|
|
281
|
+
],
|
|
194
282
|
"properties": {
|
|
195
283
|
"url": {
|
|
196
284
|
"type": "string",
|
|
197
285
|
"format": "uri",
|
|
198
|
-
"description": "Direct download URL for the
|
|
286
|
+
"description": "Direct download URL for the artifact."
|
|
199
287
|
},
|
|
200
288
|
"size": {
|
|
201
289
|
"type": "integer",
|
|
@@ -210,7 +298,12 @@
|
|
|
210
298
|
"RecommendedSource": {
|
|
211
299
|
"type": "object",
|
|
212
300
|
"additionalProperties": false,
|
|
213
|
-
"required": [
|
|
301
|
+
"required": [
|
|
302
|
+
"name",
|
|
303
|
+
"url",
|
|
304
|
+
"description",
|
|
305
|
+
"attested"
|
|
306
|
+
],
|
|
214
307
|
"properties": {
|
|
215
308
|
"name": {
|
|
216
309
|
"type": "string",
|
|
@@ -223,7 +316,10 @@
|
|
|
223
316
|
"description": "A catalog.v1 manifest URL the companion can subscribe to."
|
|
224
317
|
},
|
|
225
318
|
"description": {
|
|
226
|
-
"type": [
|
|
319
|
+
"type": [
|
|
320
|
+
"string",
|
|
321
|
+
"null"
|
|
322
|
+
],
|
|
227
323
|
"maxLength": 300
|
|
228
324
|
},
|
|
229
325
|
"attested": {
|