@serve.zone/appstore 32.27.0 → 33.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/.smartconfig.json +4 -1
  2. package/changelog.md +70 -0
  3. package/dist_catalog/catalog.digest +1 -0
  4. package/dist_catalog/catalog.envelope.json +7617 -0
  5. package/{dist_ts_client/data.generated.js → dist_catalog/catalog.json} +6912 -6908
  6. package/dist_ts_client/catalog.d.ts +16 -0
  7. package/dist_ts_client/catalog.js +12 -0
  8. package/dist_ts_client/index.d.ts +3 -1
  9. package/dist_ts_client/index.js +4 -2
  10. package/dist_ts_client/loader.d.ts +69 -0
  11. package/dist_ts_client/loader.js +361 -0
  12. package/dist_ts_client/plugins.d.ts +5 -0
  13. package/dist_ts_client/plugins.js +8 -0
  14. package/dist_ts_client/projection.d.ts +59 -0
  15. package/dist_ts_client/projection.js +83 -0
  16. package/dist_ts_client/storage.d.ts +15 -9
  17. package/dist_ts_client/storage.js +81 -657
  18. package/dist_ts_client/types.d.ts +86 -41
  19. package/dist_ts_client/types.js +1 -1
  20. package/dist_ts_testing/fixtures.d.ts +83 -0
  21. package/dist_ts_testing/fixtures.js +146 -0
  22. package/dist_ts_testing/index.d.ts +1 -0
  23. package/dist_ts_testing/index.js +2 -0
  24. package/dist_ts_testing/plugins.d.ts +7 -0
  25. package/dist_ts_testing/plugins.js +11 -0
  26. package/package.json +16 -11
  27. package/readme.md +162 -93
  28. package/ts_client/catalog.ts +26 -0
  29. package/ts_client/index.ts +3 -1
  30. package/ts_client/loader.ts +414 -0
  31. package/ts_client/plugins.ts +10 -0
  32. package/ts_client/projection.ts +148 -0
  33. package/ts_client/readme.md +17 -27
  34. package/ts_client/storage.ts +93 -882
  35. package/ts_client/types.ts +102 -42
  36. package/ts_testing/fixtures.ts +230 -0
  37. package/ts_testing/index.ts +1 -0
  38. package/ts_testing/plugins.ts +15 -0
  39. package/ts_testing/tspublish.json +3 -0
  40. package/apps/adminer/app.json +0 -10
  41. package/apps/adminer/versions/1.0.0/config.json +0 -6
  42. package/apps/cloudly/app.json +0 -14
  43. package/apps/cloudly/versions/1.0.0/config.json +0 -120
  44. package/apps/cloudly/versions/1.1.0/config.json +0 -120
  45. package/apps/cloudly/versions/1.1.1/config.json +0 -120
  46. package/apps/cloudly/versions/1.1.10/config.json +0 -173
  47. package/apps/cloudly/versions/1.1.2/config.json +0 -130
  48. package/apps/cloudly/versions/1.1.3/config.json +0 -130
  49. package/apps/cloudly/versions/1.1.4/config.json +0 -130
  50. package/apps/cloudly/versions/1.1.5/config.json +0 -149
  51. package/apps/cloudly/versions/1.1.6/config.json +0 -149
  52. package/apps/cloudly/versions/1.1.7/config.json +0 -149
  53. package/apps/cloudly/versions/1.1.8/config.json +0 -173
  54. package/apps/cloudly/versions/1.1.9/config.json +0 -173
  55. package/apps/cloudly/versions/1.10.0/config.json +0 -173
  56. package/apps/cloudly/versions/1.11.0/config.json +0 -173
  57. package/apps/cloudly/versions/1.12.0/config.json +0 -173
  58. package/apps/cloudly/versions/1.13.0/config.json +0 -173
  59. package/apps/cloudly/versions/1.14.0/config.json +0 -173
  60. package/apps/cloudly/versions/1.15.0/config.json +0 -173
  61. package/apps/cloudly/versions/1.16.0/config.json +0 -173
  62. package/apps/cloudly/versions/1.17.0/config.json +0 -173
  63. package/apps/cloudly/versions/1.18.0/config.json +0 -173
  64. package/apps/cloudly/versions/1.19.0/config.json +0 -173
  65. package/apps/cloudly/versions/1.2.0/config.json +0 -173
  66. package/apps/cloudly/versions/1.2.1/config.json +0 -173
  67. package/apps/cloudly/versions/1.20.0/config.json +0 -173
  68. package/apps/cloudly/versions/1.21.0/config.json +0 -173
  69. package/apps/cloudly/versions/1.22.0/config.json +0 -173
  70. package/apps/cloudly/versions/1.23.0/config.json +0 -173
  71. package/apps/cloudly/versions/1.24.0/config.json +0 -173
  72. package/apps/cloudly/versions/1.25.0/config.json +0 -173
  73. package/apps/cloudly/versions/1.26.0/config.json +0 -173
  74. package/apps/cloudly/versions/1.27.0/config.json +0 -173
  75. package/apps/cloudly/versions/1.3.0/config.json +0 -173
  76. package/apps/cloudly/versions/1.4.0/config.json +0 -173
  77. package/apps/cloudly/versions/1.5.0/config.json +0 -173
  78. package/apps/cloudly/versions/1.6.0/config.json +0 -173
  79. package/apps/cloudly/versions/1.7.0/config.json +0 -173
  80. package/apps/cloudly/versions/1.8.0/config.json +0 -173
  81. package/apps/cloudly/versions/1.9.0/config.json +0 -173
  82. package/apps/ghost/app.json +0 -10
  83. package/apps/ghost/versions/1.0.0/config.json +0 -18
  84. package/apps/gitea/app.json +0 -10
  85. package/apps/gitea/versions/1.0.0/config.json +0 -16
  86. package/apps/gitops/app.json +0 -14
  87. package/apps/gitops/versions/1.0.0/config.json +0 -28
  88. package/apps/grafana/app.json +0 -10
  89. package/apps/grafana/versions/1.0.0/config.json +0 -9
  90. package/apps/mariadb/app.json +0 -10
  91. package/apps/mariadb/versions/1.0.0/config.json +0 -9
  92. package/apps/mattermost/app.json +0 -10
  93. package/apps/mattermost/versions/1.0.0/config.json +0 -6
  94. package/apps/n8n/app.json +0 -10
  95. package/apps/n8n/versions/1.0.0/config.json +0 -6
  96. package/apps/nextcloud/app.json +0 -10
  97. package/apps/nextcloud/versions/1.0.0/config.json +0 -16
  98. package/apps/nginx/app.json +0 -10
  99. package/apps/nginx/versions/1.0.0/config.json +0 -6
  100. package/apps/openbao/app.json +0 -16
  101. package/apps/openbao/versions/1.0.0/config.json +0 -52
  102. package/apps/plausible/app.json +0 -10
  103. package/apps/plausible/versions/1.0.0/config.json +0 -9
  104. package/apps/portainer/app.json +0 -10
  105. package/apps/portainer/versions/1.0.0/config.json +0 -6
  106. package/apps/postgres/app.json +0 -10
  107. package/apps/postgres/versions/1.0.0/config.json +0 -11
  108. package/apps/rustdesk-server/app.json +0 -14
  109. package/apps/rustdesk-server/versions/1.0.0/config.json +0 -19
  110. package/apps/siprouter/app.json +0 -14
  111. package/apps/siprouter/versions/1.0.0/config.json +0 -84
  112. package/apps/uptime-kuma/app.json +0 -10
  113. package/apps/uptime-kuma/versions/1.0.0/config.json +0 -6
  114. package/apps/valkey/app.json +0 -10
  115. package/apps/valkey/versions/1.0.0/config.json +0 -6
  116. package/apps/vaultwarden/app.json +0 -10
  117. package/apps/vaultwarden/versions/1.0.0/config.json +0 -6
  118. package/apps/wordpress/app.json +0 -10
  119. package/apps/wordpress/versions/1.0.0/config.json +0 -15
  120. package/appstore.json +0 -194
  121. package/dist_ts_client/classes.appstoreresolver.d.ts +0 -59
  122. package/dist_ts_client/classes.appstoreresolver.js +0 -736
  123. package/dist_ts_client/data.generated.d.ts +0 -2
  124. package/ts_client/classes.appstoreresolver.ts +0 -896
  125. package/ts_client/data.generated.ts +0 -7606
@@ -0,0 +1,83 @@
1
+ import * as plugins from './plugins.js';
2
+ const selectLatestInstallableVersion = (appArg, installableArg) => {
3
+ if (appArg.upgradeStrategy === 'branch') {
4
+ return installableArg.includes(appArg.latestVersion) ? appArg.latestVersion : null;
5
+ }
6
+ const { data } = plugins.servezoneInterfaces;
7
+ let latest = null;
8
+ for (const version of installableArg) {
9
+ const parsed = data.parseReleaseVersion(version);
10
+ if (parsed === null) {
11
+ throw new Error(`App Store catalog app '${appArg.info.id}' lists '${version}', which is not a release version`);
12
+ }
13
+ if (latest === null || data.compareReleaseVersions(parsed, latest.parsed) > 0)
14
+ latest = { version, parsed };
15
+ }
16
+ return latest === null ? null : latest.version;
17
+ };
18
+ /**
19
+ * Projects one catalog app for a consumer: every listed version with its install refusal, the
20
+ * newest install target for this consumer, and the `IAppStoreApp` / `IAppStoreAppMeta` shapes its App Store views
21
+ * show. Pure: it reads the catalog app and never changes it.
22
+ */
23
+ export const projectAppStoreCatalogApp = (appArg, optionsArg) => {
24
+ const supportedFeatureIds = [...optionsArg.supportedFeatureIds];
25
+ const versions = appArg.versions.map((versionArg) => ({
26
+ version: versionArg.version,
27
+ installRefusal: plugins.servezoneInterfaces.appstore.judgeAppStoreCatalogInstallTarget(versionArg, supportedFeatureIds, optionsArg.consumer),
28
+ }));
29
+ const installable = versions
30
+ .filter((versionArg) => versionArg.installRefusal === null)
31
+ .map((versionArg) => versionArg.version);
32
+ const latestInstallableVersion = selectLatestInstallableVersion(appArg, installable);
33
+ const { info } = appArg;
34
+ const display = latestInstallableVersion === null
35
+ ? null
36
+ : {
37
+ app: {
38
+ id: info.id,
39
+ name: info.name,
40
+ description: info.description,
41
+ category: info.category,
42
+ ...(info.iconName === undefined ? {} : { iconName: info.iconName }),
43
+ ...(info.iconUrl === undefined ? {} : { iconUrl: info.iconUrl }),
44
+ latestVersion: latestInstallableVersion,
45
+ versions: [...installable],
46
+ versionStates: structuredClone(versions),
47
+ ...(info.tags === undefined ? {} : { tags: [...info.tags] }),
48
+ ...(appArg.upgradeStrategy === undefined ? {} : { upgradeStrategy: appArg.upgradeStrategy }),
49
+ },
50
+ meta: {
51
+ id: info.id,
52
+ name: info.name,
53
+ description: info.description,
54
+ category: info.category,
55
+ ...(info.iconName === undefined ? {} : { iconName: info.iconName }),
56
+ latestVersion: latestInstallableVersion,
57
+ versions: [...installable],
58
+ versionStates: structuredClone(versions),
59
+ ...(info.maintainer === undefined ? {} : { maintainer: info.maintainer }),
60
+ ...(info.links === undefined ? {} : { links: { ...info.links } }),
61
+ ...(info.tags === undefined ? {} : { tags: [...info.tags] }),
62
+ },
63
+ };
64
+ return {
65
+ appId: info.id,
66
+ catalogLatestVersion: appArg.latestVersion,
67
+ versions,
68
+ latestInstallableVersion,
69
+ display,
70
+ };
71
+ };
72
+ /** Projects every catalog app, in catalog order (by id). */
73
+ export const projectAppStoreCatalog = (catalogArg, optionsArg) => {
74
+ const options = { supportedFeatureIds: [...optionsArg.supportedFeatureIds], consumer: optionsArg.consumer };
75
+ return catalogArg.apps.map((appArg) => projectAppStoreCatalogApp(appArg, options));
76
+ };
77
+ /**
78
+ * The App Store listing a consumer serves (`getAppStoreTemplates`): one `IAppStoreApp` per app
79
+ * that has an install target for it, in catalog order. An app without one is left out of the
80
+ * listing; its projection (`projectAppStoreCatalogApp`) still states why.
81
+ */
82
+ export const getAppStoreCatalogListing = (catalogArg, optionsArg) => projectAppStoreCatalog(catalogArg, optionsArg).flatMap((projectionArg) => projectionArg.display === null ? [] : [projectionArg.display.app]);
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX2NsaWVudC9wcm9qZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBa0R4QyxNQUFNLDhCQUE4QixHQUFHLENBQUMsTUFBbUIsRUFBRSxjQUFpQyxFQUFpQixFQUFFO0lBQy9HLElBQUksTUFBTSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckYsQ0FBQztJQUNELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsSUFBSSxNQUFNLEdBQXlGLElBQUksQ0FBQztJQUN4RyxLQUFLLE1BQU0sT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWSxPQUFPLG1DQUFtQyxDQUFDLENBQUM7UUFDbEgsQ0FBQztRQUNELElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQUUsTUFBTSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlHLENBQUM7SUFDRCxPQUFPLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxD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
@@ -1,13 +1,19 @@
1
- import type { IAppStoreStorageNormalizationOptions, INormalizedAppStoreStorageConfig, TAppStoreVersionConfig } from './types.js';
2
- export declare function parseStorageCapacityQuantity(quantityArg: unknown, labelArg?: string): bigint;
1
+ import * as plugins from './plugins.js';
2
+ import type { IAppStoreStorageNormalizationOptions, INormalizedAppStoreStorageConfig } from './types.js';
3
+ type TCatalogVersionConfig = plugins.servezoneInterfaces.appstore.TAppStoreCatalogVersionConfig;
4
+ type TVolume = plugins.servezoneInterfaces.appstore.IAppStoreVolume;
3
5
  /**
4
- * Strict structural validation plus deterministic legacy normalization. This
5
- * does not claim that a runtime can fulfill explicit requests; installers must
6
- * call normalizeAppStoreStorageConfig with an advertised feature set.
6
+ * The legacy `volumes` of a version config in their object form (`{ name?, mountPath, readOnly?,
7
+ * backup? }`), after the config's storage passed the interfaces contract.
7
8
  */
8
- export declare function validateAppStoreStorageConfig(configArg: TAppStoreVersionConfig, labelArg?: string): INormalizedAppStoreStorageConfig;
9
+ export declare function normalizeAppStoreVolumes(configArg: TCatalogVersionConfig, labelArg?: string): TVolume[];
9
10
  /**
10
- * Canonical pre-fulfillment handoff. Explicit storage contracts fail closed
11
- * unless every derived storage feature is advertised by the target runtime.
11
+ * The canonical pre-fulfillment storage handoff of a version config.
12
+ *
13
+ * The config's storage is judged by the interfaces contract first. Legacy `volumes` become
14
+ * filesystem requests of the reserved `legacyFilesystem` class, `platformRequirements.s3` becomes
15
+ * the `legacy-s3` object-storage request, and explicit requests fail closed unless every storage
16
+ * feature they need is advertised by the target runtime.
12
17
  */
13
- export declare function normalizeAppStoreStorageConfig(configArg: TAppStoreVersionConfig, optionsArg: IAppStoreStorageNormalizationOptions, labelArg?: string): INormalizedAppStoreStorageConfig;
18
+ export declare function normalizeAppStoreStorageConfig(configArg: TCatalogVersionConfig, optionsArg: IAppStoreStorageNormalizationOptions, labelArg?: string): INormalizedAppStoreStorageConfig;
19
+ export {};