@synopackageland/cli 0.3.9 → 0.4.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/README.md +20 -9
- package/dist/bin.js +1 -2
- package/dist/build-spk/generator.d.ts +0 -3
- package/dist/build-spk/generator.js +135 -287
- package/dist/build-spk/native-lifecycle.js +0 -3
- package/dist/build-spk/native-payload.js +0 -1
- package/dist/cli.js +171 -151
- package/dist/compose/analyze.d.ts +1 -2
- package/dist/compose/analyze.js +5 -48
- package/dist/contract/unsupported-types.d.ts +10 -0
- package/dist/contract/unsupported-types.js +49 -0
- package/dist/contract/validate.js +25 -2
- package/dist/contract/web-launch.js +0 -2
- package/dist/deploy/deploy.d.ts +1 -4
- package/dist/deploy/deploy.js +57 -156
- package/dist/deploy/homes-values.js +1 -1
- package/dist/deploy/plan.d.ts +18 -0
- package/dist/deploy/plan.js +54 -0
- package/dist/deploy/port-preflight.d.ts +21 -0
- package/dist/deploy/port-preflight.js +42 -0
- package/dist/deploy/spk-version.d.ts +2 -14
- package/dist/deploy/spk-version.js +25 -111
- package/dist/dev.d.ts +1 -3
- package/dist/dev.js +14 -28
- package/dist/error-registry.js +810 -857
- package/dist/host/dsm-client.js +23 -263
- package/dist/host/dsm-port-profile.d.ts +47 -0
- package/dist/host/dsm-port-profile.js +206 -0
- package/dist/host/port-info-lookup.d.ts +9 -0
- package/dist/host/port-info-lookup.js +87 -0
- package/dist/host/port-info.d.ts +33 -0
- package/dist/host/port-info.js +66 -0
- package/dist/host/types.d.ts +6 -78
- package/dist/index.d.ts +0 -9
- package/dist/index.js +0 -6
- package/dist/info.d.ts +0 -1
- package/dist/info.js +3 -10
- package/dist/init.d.ts +11 -1
- package/dist/init.js +112 -4
- package/dist/log.js +2 -3
- package/dist/native/validate.js +0 -1
- package/dist/standalone/binary.d.ts +9 -0
- package/dist/standalone/binary.js +67 -0
- package/dist/standalone/build.d.ts +25 -0
- package/dist/standalone/build.js +108 -0
- package/dist/standalone/dsm-window.d.ts +26 -0
- package/dist/standalone/dsm-window.js +251 -0
- package/dist/standalone/helper.d.ts +31 -0
- package/dist/standalone/helper.js +104 -0
- package/dist/standalone/i18n.d.ts +28 -0
- package/dist/standalone/i18n.js +161 -0
- package/dist/standalone/inspect-spk.d.ts +21 -0
- package/dist/standalone/inspect-spk.js +160 -0
- package/dist/standalone/manifest.d.ts +71 -0
- package/dist/standalone/manifest.js +276 -0
- package/dist/standalone/root-messages.d.ts +7 -0
- package/dist/standalone/root-messages.js +250 -0
- package/dist/standalone/root-ops.d.ts +42 -0
- package/dist/standalone/root-ops.js +101 -0
- package/dist/standalone/root-window.d.ts +35 -0
- package/dist/standalone/root-window.js +290 -0
- package/dist/standalone/spk.d.ts +22 -0
- package/dist/standalone/spk.js +205 -0
- package/dist/templates/binary/synology-app.yaml +7 -0
- package/dist/templates/hello-files/compose.yaml +0 -1
- package/dist/templates/hello-web/compose.yaml +13 -10
- package/dist/templates/hello-web/html/app.js +1 -23
- package/dist/templates/hello-web/html/index.html +1 -3
- package/dist/templates/hello-web-page/compose.yaml +13 -10
- package/dist/templates/hello-web-page/html/app.js +1 -23
- package/dist/templates/hello-web-page/html/index.html +1 -3
- package/dist/templates/native-go/README.md +268 -0
- package/dist/templates/native-go/backend/cmd/app/main.go +49 -0
- package/dist/templates/native-go/backend/cmd/helper/main.go +38 -0
- package/dist/templates/native-go/backend/go.mod +3 -0
- package/dist/templates/native-go/backend/internal/api/errors.go +33 -0
- package/dist/templates/native-go/backend/internal/api/registry.go +94 -0
- package/dist/templates/native-go/backend/internal/api/registry_test.go +329 -0
- package/dist/templates/native-go/backend/internal/api/server.go +155 -0
- package/dist/templates/native-go/backend/internal/app/root_none.go +9 -0
- package/dist/templates/native-go/backend/internal/app/routes.go +127 -0
- package/dist/templates/native-go/backend/internal/app/routes_test.go +167 -0
- package/dist/templates/native-go/backend/internal/dsm/auth.go +118 -0
- package/dist/templates/native-go/backend/internal/dsm/auth_test.go +139 -0
- package/dist/templates/native-go/backend/internal/helper/control.go +219 -0
- package/dist/templates/native-go/backend/internal/helper/control_test.go +242 -0
- package/dist/templates/native-go/backend/internal/helper/peer_linux.go +44 -0
- package/dist/templates/native-go/backend/internal/helper/peer_other.go +7 -0
- package/dist/templates/native-go/backend/internal/helper/process_linux.go +167 -0
- package/dist/templates/native-go/backend/internal/helper/process_other.go +5 -0
- package/dist/templates/native-go/backend/internal/helper/server_linux.go +83 -0
- package/dist/templates/native-go/backend/internal/helper/status.go +271 -0
- package/dist/templates/native-go/backend/internal/helper/status_test.go +205 -0
- package/dist/templates/native-go/backend/internal/helper/supervision.go +84 -0
- package/dist/templates/native-go/backend/internal/helper/supervision_test.go +124 -0
- package/dist/templates/native-go/backend/internal/helper/supervisor_linux.go +192 -0
- package/dist/templates/native-go/backend/internal/helper/supervisor_linux_test.go +302 -0
- package/dist/templates/native-go/dsm-package.yaml +58 -0
- package/dist/templates/native-go/gitignore +1 -0
- package/dist/templates/native-go/i18n/glossary.json +662 -0
- package/dist/templates/native-go/i18n/messages/de.json +28 -0
- package/dist/templates/native-go/i18n/messages/en.json +28 -0
- package/dist/templates/native-go/i18n/messages/es.json +28 -0
- package/dist/templates/native-go/i18n/messages/fr.json +28 -0
- package/dist/templates/native-go/i18n/messages/it.json +28 -0
- package/dist/templates/native-go/i18n/messages/ja.json +28 -0
- package/dist/templates/native-go/i18n/messages/ko.json +28 -0
- package/dist/templates/native-go/i18n/messages/zh-CN.json +28 -0
- package/dist/templates/native-go/i18n/messages/zh-TW.json +28 -0
- package/dist/templates/native-go/ui/app.css +35 -0
- package/dist/templates/native-go/ui/app.js +94 -0
- package/dist/templates/native-go-better-auth/backend/internal/app/identity.go +208 -0
- package/dist/templates/native-go-better-auth/backend/internal/app/identity_test.go +113 -0
- package/dist/templates/native-go-better-auth/node/app.mjs +72 -0
- package/dist/templates/native-go-better-auth/node/build.mjs +2 -0
- package/dist/templates/native-go-better-auth/node/package-lock.json +862 -0
- package/dist/templates/native-go-better-auth/node/package.json +1 -0
- package/dist/templates/native-go-better-auth/node/test/auth.test.mjs +31 -0
- package/dist/templates/native-go-integration/backend/internal/app/identity_none.go +6 -0
- package/dist/templates/native-go-integration/backend/internal/app/personal.go +203 -0
- package/dist/templates/native-go-integration/backend/internal/app/personal_test.go +119 -0
- package/dist/templates/native-go-root/backend/internal/app/root.go +107 -0
- package/dist/templates/native-go-root/backend/internal/app/root_test.go +124 -0
- package/dist/templates/native-go-root/root/whoami.sh +6 -0
- package/dist/templates/native-go-vue/README.md +110 -0
- package/dist/templates/native-go-vue/frontend/DESIGN.md +78 -0
- package/dist/templates/native-go-vue/frontend/package-lock.json +2507 -0
- package/dist/templates/native-go-vue/frontend/package.json +6 -0
- package/dist/templates/native-go-vue/frontend/src/App.vue +132 -0
- package/dist/templates/native-go-vue/frontend/src/context.ts +17 -0
- package/dist/templates/native-go-vue/frontend/src/main.ts +26 -0
- package/dist/templates/native-go-vue/frontend/src/style.css +14 -0
- package/dist/templates/native-go-vue/frontend/test/apps.test.ts +148 -0
- package/dist/templates/native-go-vue/frontend/tsconfig.json +1 -0
- package/dist/templates/native-go-vue/frontend/vite.config.ts +8 -0
- package/dist/templates/native-go-vue/gitignore +2 -0
- package/dist/types.d.ts +1 -1
- package/dist/validate.js +11 -7
- package/package.json +3 -7
- package/schema/synology-app.schema.json +36 -37
- package/skills/SKILL.md +4 -48
- package/skills/reference/create.md +11 -83
- package/skills/reference/deploy.md +7 -78
- package/skills/reference/diagnose.md +4 -101
- package/skills/reference/files.md +5 -41
- package/skills/reference/identity.md +3 -29
- package/skills/reference/wrap.md +0 -2
- package/templates/binary/synology-app.yaml +7 -0
- package/templates/hello-files/compose.yaml +0 -1
- package/templates/hello-web/compose.yaml +13 -10
- package/templates/hello-web/html/app.js +1 -23
- package/templates/hello-web/html/index.html +1 -3
- package/templates/hello-web-page/compose.yaml +13 -10
- package/templates/hello-web-page/html/app.js +1 -23
- package/templates/hello-web-page/html/index.html +1 -3
- package/templates/native-go/README.md +268 -0
- package/templates/native-go/backend/cmd/app/main.go +49 -0
- package/templates/native-go/backend/cmd/helper/main.go +38 -0
- package/templates/native-go/backend/go.mod +3 -0
- package/templates/native-go/backend/internal/api/errors.go +33 -0
- package/templates/native-go/backend/internal/api/registry.go +94 -0
- package/templates/native-go/backend/internal/api/registry_test.go +329 -0
- package/templates/native-go/backend/internal/api/server.go +155 -0
- package/templates/native-go/backend/internal/app/root_none.go +9 -0
- package/templates/native-go/backend/internal/app/routes.go +127 -0
- package/templates/native-go/backend/internal/app/routes_test.go +167 -0
- package/templates/native-go/backend/internal/dsm/auth.go +118 -0
- package/templates/native-go/backend/internal/dsm/auth_test.go +139 -0
- package/templates/native-go/backend/internal/helper/control.go +219 -0
- package/templates/native-go/backend/internal/helper/control_test.go +242 -0
- package/templates/native-go/backend/internal/helper/peer_linux.go +44 -0
- package/templates/native-go/backend/internal/helper/peer_other.go +7 -0
- package/templates/native-go/backend/internal/helper/process_linux.go +167 -0
- package/templates/native-go/backend/internal/helper/process_other.go +5 -0
- package/templates/native-go/backend/internal/helper/server_linux.go +83 -0
- package/templates/native-go/backend/internal/helper/status.go +271 -0
- package/templates/native-go/backend/internal/helper/status_test.go +205 -0
- package/templates/native-go/backend/internal/helper/supervision.go +84 -0
- package/templates/native-go/backend/internal/helper/supervision_test.go +124 -0
- package/templates/native-go/backend/internal/helper/supervisor_linux.go +192 -0
- package/templates/native-go/backend/internal/helper/supervisor_linux_test.go +302 -0
- package/templates/native-go/dsm-package.yaml +58 -0
- package/templates/native-go/gitignore +1 -0
- package/templates/native-go/i18n/glossary.json +662 -0
- package/templates/native-go/i18n/messages/de.json +28 -0
- package/templates/native-go/i18n/messages/en.json +28 -0
- package/templates/native-go/i18n/messages/es.json +28 -0
- package/templates/native-go/i18n/messages/fr.json +28 -0
- package/templates/native-go/i18n/messages/it.json +28 -0
- package/templates/native-go/i18n/messages/ja.json +28 -0
- package/templates/native-go/i18n/messages/ko.json +28 -0
- package/templates/native-go/i18n/messages/zh-CN.json +28 -0
- package/templates/native-go/i18n/messages/zh-TW.json +28 -0
- package/templates/native-go/ui/app.css +35 -0
- package/templates/native-go/ui/app.js +94 -0
- package/templates/native-go-better-auth/backend/internal/app/identity.go +208 -0
- package/templates/native-go-better-auth/backend/internal/app/identity_test.go +113 -0
- package/templates/native-go-better-auth/node/app.mjs +72 -0
- package/templates/native-go-better-auth/node/build.mjs +2 -0
- package/templates/native-go-better-auth/node/package-lock.json +862 -0
- package/templates/native-go-better-auth/node/package.json +1 -0
- package/templates/native-go-better-auth/node/test/auth.test.mjs +31 -0
- package/templates/native-go-integration/backend/internal/app/identity_none.go +6 -0
- package/templates/native-go-integration/backend/internal/app/personal.go +203 -0
- package/templates/native-go-integration/backend/internal/app/personal_test.go +119 -0
- package/templates/native-go-root/backend/internal/app/root.go +107 -0
- package/templates/native-go-root/backend/internal/app/root_test.go +124 -0
- package/templates/native-go-root/root/whoami.sh +6 -0
- package/templates/native-go-vue/README.md +110 -0
- package/templates/native-go-vue/frontend/DESIGN.md +78 -0
- package/templates/native-go-vue/frontend/package-lock.json +2507 -0
- package/templates/native-go-vue/frontend/package.json +6 -0
- package/templates/native-go-vue/frontend/src/App.vue +132 -0
- package/templates/native-go-vue/frontend/src/context.ts +17 -0
- package/templates/native-go-vue/frontend/src/main.ts +26 -0
- package/templates/native-go-vue/frontend/src/style.css +14 -0
- package/templates/native-go-vue/frontend/test/apps.test.ts +148 -0
- package/templates/native-go-vue/frontend/tsconfig.json +1 -0
- package/templates/native-go-vue/frontend/vite.config.ts +8 -0
- package/templates/native-go-vue/gitignore +2 -0
- package/dist/attestation/app-package.d.ts +0 -86
- package/dist/attestation/app-package.js +0 -206
- package/dist/attestation/install-on-host.d.ts +0 -14
- package/dist/attestation/install-on-host.js +0 -52
- package/dist/attestation/keyring.d.ts +0 -21
- package/dist/attestation/keyring.js +0 -168
- package/dist/attestation/platform-service.d.ts +0 -70
- package/dist/attestation/platform-service.js +0 -250
- package/dist/build-spk/broker-glue.d.ts +0 -16
- package/dist/build-spk/broker-glue.js +0 -40
- package/dist/deploy/catalog-publish.d.ts +0 -3
- package/dist/deploy/catalog-publish.js +0 -7
- package/dist/doctor.d.ts +0 -22
- package/dist/doctor.js +0 -721
- package/dist/error-collector.d.ts +0 -2
- package/dist/error-collector.js +0 -46
- package/dist/host/broker-paths.d.ts +0 -1
- package/dist/host/broker-paths.js +0 -1
- package/dist/host/broker-upgrade-preflight.d.ts +0 -61
- package/dist/host/broker-upgrade-preflight.js +0 -156
- package/dist/host/digests.d.ts +0 -5
- package/dist/host/digests.js +0 -63
- package/dist/host/fake-nas.d.ts +0 -41
- package/dist/host/fake-nas.js +0 -174
- package/dist/mock-broker/bootstrap.d.ts +0 -2
- package/dist/mock-broker/bootstrap.js +0 -8
- package/dist/mock-broker/files.d.ts +0 -60
- package/dist/mock-broker/files.js +0 -408
- package/dist/mock-broker/oidc.d.ts +0 -31
- package/dist/mock-broker/oidc.js +0 -161
- package/dist/mock-broker/path.d.ts +0 -9
- package/dist/mock-broker/path.js +0 -50
- package/dist/mock-broker/server.d.ts +0 -19
- package/dist/mock-broker/server.js +0 -350
- package/dist/publish/build-ledger.d.ts +0 -22
- package/dist/publish/build-ledger.js +0 -26
- package/dist/publish/community-path.d.ts +0 -6
- package/dist/publish/community-path.js +0 -41
- package/dist/publish/curated-release.d.ts +0 -78
- package/dist/publish/curated-release.js +0 -883
- package/dist/publish/file-build-ledger.d.ts +0 -18
- package/dist/publish/file-build-ledger.js +0 -268
- package/dist/publish/github-pr.d.ts +0 -25
- package/dist/publish/github-pr.js +0 -85
- package/dist/publish/github-repo.d.ts +0 -8
- package/dist/publish/github-repo.js +0 -21
- package/dist/publish/platform-service-release.d.ts +0 -60
- package/dist/publish/platform-service-release.js +0 -333
- package/dist/publish/preflight.d.ts +0 -24
- package/dist/publish/preflight.js +0 -138
- package/dist/publish/publish.d.ts +0 -27
- package/dist/publish/publish.js +0 -136
- package/dist/publish/sync-definition.d.ts +0 -4
- package/dist/publish/sync-definition.js +0 -48
- package/dist/release-bin.d.ts +0 -2
- package/dist/release-bin.js +0 -23
- package/dist/templates/hello-web/html/sdk.js +0 -68
- package/dist/templates/hello-web-page/html/sdk.js +0 -68
- package/dist/templates/native/synology-app.yaml +0 -7
- package/dist/test-host.d.ts +0 -15
- package/dist/test-host.js +0 -37
- package/templates/hello-web/html/sdk.js +0 -68
- package/templates/hello-web-page/html/sdk.js +0 -68
- package/templates/native/synology-app.yaml +0 -7
- /package/dist/templates/{native → binary}/native.yaml +0 -0
- /package/templates/{native → binary}/native.yaml +0 -0
|
@@ -1,117 +1,31 @@
|
|
|
1
1
|
import { loadContract } from "../contract/load.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function baseVersion(version) {
|
|
22
|
-
const match = /^(.+)-(\d+)$/.exec(version);
|
|
23
|
-
return match ? match[1] : version;
|
|
24
|
-
}
|
|
25
|
-
function buildNumber(version) {
|
|
26
|
-
const match = /^.+-(\d+)$/.exec(version);
|
|
27
|
-
if (!match) {
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
const build = Number(match[1]);
|
|
31
|
-
return Number.isSafeInteger(build) ? build : undefined;
|
|
32
|
-
}
|
|
33
|
-
function personalBuildNumber(version) {
|
|
34
|
-
const build = buildNumber(version);
|
|
35
|
-
return build !== undefined && build >= 1 && build <= PERSONAL_BUILD_MAX ? build : undefined;
|
|
36
|
-
}
|
|
37
|
-
export function resolvePersonalDeploySpkVersion(contractVersion, candidates = {}) {
|
|
38
|
-
const base = baseVersion(contractVersion);
|
|
39
|
-
const existingVersions = [candidates.installed, candidates.feed].filter((version) => typeof version === "string" && version.length > 0);
|
|
40
|
-
const latestExisting = existingVersions.sort(comparePackageVersions).at(-1);
|
|
41
|
-
let proposedVersion;
|
|
42
|
-
if (!latestExisting || baseVersion(latestExisting) !== base) {
|
|
43
|
-
proposedVersion = `${base}-0001`;
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
const latestBuild = buildNumber(latestExisting);
|
|
47
|
-
if (latestBuild === undefined || latestBuild >= CURATED_BUILD_OFFSET) {
|
|
48
|
-
throw new DeployPersonalBuildExhaustedError();
|
|
2
|
+
/** Increment the installed build only for the same application version. */
|
|
3
|
+
export function nextDeployVersion(version, installed) {
|
|
4
|
+
const match = /^(\d+(?:\.\d+)*)(?:-(\d+))?$/.exec(version);
|
|
5
|
+
if (!match)
|
|
6
|
+
throw new Error(`Invalid package version: ${version}`);
|
|
7
|
+
const base = match[1];
|
|
8
|
+
let build = Number(match[2] ?? 1);
|
|
9
|
+
if (installed) {
|
|
10
|
+
const previous = /^(\d+(?:\.\d+)*)(?:-(\d+))?$/.exec(installed);
|
|
11
|
+
if (!previous)
|
|
12
|
+
throw new Error(`Cannot compare installed version: ${installed}`);
|
|
13
|
+
const a = base.split('.').map(Number), b = previous[1].split('.').map(Number);
|
|
14
|
+
let order = 0;
|
|
15
|
+
for (let i = 0; i < Math.max(a.length, b.length); i++) {
|
|
16
|
+
order = (a[i] ?? 0) - (b[i] ?? 0);
|
|
17
|
+
if (order !== 0)
|
|
18
|
+
break;
|
|
49
19
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
proposedVersion = `${base}-${String(nextBuild).padStart(4, "0")}`;
|
|
55
|
-
}
|
|
56
|
-
if (candidates.installed &&
|
|
57
|
-
comparePackageVersions(proposedVersion, candidates.installed) <= 0) {
|
|
58
|
-
throw new DeployVersionNotAscendingError(contractVersion, proposedVersion, candidates.installed);
|
|
20
|
+
if (order < 0)
|
|
21
|
+
throw new Error(`Refusing downgrade from ${installed} to ${version}`);
|
|
22
|
+
if (order === 0)
|
|
23
|
+
build = Math.max(build, Number(previous[2] ?? 0) + 1);
|
|
59
24
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return (manifest?.packages ?? [])
|
|
64
|
-
.filter((entry) => entry.package === packageId)
|
|
65
|
-
.map((entry) => entry.version)
|
|
66
|
-
.filter((version) => personalBuildNumber(version) !== undefined)
|
|
67
|
-
.sort(comparePackageVersions)
|
|
68
|
-
.at(-1);
|
|
69
|
-
}
|
|
70
|
-
async function resolvePackageSourceManifest(origin) {
|
|
71
|
-
try {
|
|
72
|
-
const manifest = await fetchPackageSourceManifest(origin);
|
|
73
|
-
if (manifest) {
|
|
74
|
-
return manifest;
|
|
75
|
-
}
|
|
76
|
-
if (origin !== LIVE_TEST_FALLBACK_ORIGIN) {
|
|
77
|
-
return fetchPackageSourceManifest(LIVE_TEST_FALLBACK_ORIGIN);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
async function resolveOfflineDeploySpkVersion(project, host, packageId) {
|
|
86
|
-
const contract = loadContract(project.contractPath).contract;
|
|
87
|
-
const contractVersion = String(contract.version ?? "1.0.0");
|
|
88
|
-
const installed = (await host.isPackageInstalled(packageId))
|
|
89
|
-
? await host.getInstalledPackageVersion?.(packageId)
|
|
90
|
-
: undefined;
|
|
91
|
-
return resolvePersonalDeploySpkVersion(contractVersion, { installed });
|
|
25
|
+
if (!Number.isSafeInteger(build) || build < 1)
|
|
26
|
+
throw new Error('Invalid build number');
|
|
27
|
+
return `${base}-${String(build).padStart(4, '0')}`;
|
|
92
28
|
}
|
|
93
29
|
export async function resolveDeploySpkVersion(project, host, packageId) {
|
|
94
|
-
|
|
95
|
-
if (host.installationId !== "live-nas" || isDevelopmentPackageIdentity(packageId)) {
|
|
96
|
-
return resolveOfflineDeploySpkVersion(project, host, packageId);
|
|
97
|
-
}
|
|
98
|
-
const contract = loadContract(project.contractPath).contract;
|
|
99
|
-
const target = resolvePublishTarget();
|
|
100
|
-
const manifest = (await fetchPackageSourceManifestFromR2(target)) ??
|
|
101
|
-
(await resolvePackageSourceManifest(target.origin));
|
|
102
|
-
const contractVersion = String(contract.version ?? "1.0.0");
|
|
103
|
-
const installed = await host.getInstalledPackageVersion?.(packageId);
|
|
104
|
-
const feed = latestPersonalFeedVersion(packageId, manifest);
|
|
105
|
-
return resolvePersonalDeploySpkVersion(contractVersion, { installed, feed });
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
if (error.code === "PERSONAL_BUILD_EXHAUSTED") {
|
|
109
|
-
throw new DeployPersonalBuildExhaustedError();
|
|
110
|
-
}
|
|
111
|
-
throw error;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
export async function publishDeploySpk(spkPath) {
|
|
115
|
-
const published = await publishBuiltSpk(spkPath);
|
|
116
|
-
return published.version;
|
|
30
|
+
return nextDeployVersion(String(loadContract(project.contractPath).contract.version), await host.getInstalledPackageVersion?.(packageId));
|
|
117
31
|
}
|
package/dist/dev.d.ts
CHANGED
|
@@ -2,12 +2,10 @@ import type { ProjectRoot } from "./discovery.js";
|
|
|
2
2
|
import type { ComposeRunner } from "./compose/runner.js";
|
|
3
3
|
export interface DevOptions {
|
|
4
4
|
project: ProjectRoot;
|
|
5
|
-
filesRoot?: string;
|
|
6
5
|
composeRunner?: ComposeRunner;
|
|
7
6
|
}
|
|
8
7
|
export interface DevHandle {
|
|
9
|
-
brokerBaseUrl: string;
|
|
10
|
-
bootstrapPath: string;
|
|
11
8
|
close(): Promise<void>;
|
|
12
9
|
}
|
|
10
|
+
/** Run the application's own Compose project locally. */
|
|
13
11
|
export declare function runDev(options: DevOptions): Promise<DevHandle>;
|
package/dist/dev.js
CHANGED
|
@@ -1,31 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { writeMockBrokerBootstrap } from "./mock-broker/bootstrap.js";
|
|
3
|
-
import { startMockBroker } from "./mock-broker/server.js";
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
4
2
|
import { createDockerComposeRunner } from "./compose/runner.js";
|
|
3
|
+
/** Run the application's own Compose project locally. */
|
|
5
4
|
export async function runDev(options) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const composeRunner = options.composeRunner ?? createDockerComposeRunner();
|
|
19
|
-
await composeRunner.up(options.project.root);
|
|
20
|
-
await composeRunner.waitReady(options.project.root);
|
|
21
|
-
return {
|
|
22
|
-
brokerBaseUrl: broker.baseUrl,
|
|
23
|
-
bootstrapPath,
|
|
24
|
-
close: async () => {
|
|
25
|
-
if (composeRunner.down) {
|
|
26
|
-
await composeRunner.down(options.project.root);
|
|
27
|
-
}
|
|
28
|
-
await broker.close();
|
|
29
|
-
},
|
|
30
|
-
};
|
|
5
|
+
if (!existsSync(options.project.composePath))
|
|
6
|
+
throw new Error('dev requires compose.yaml');
|
|
7
|
+
const runner = options.composeRunner ?? createDockerComposeRunner();
|
|
8
|
+
try {
|
|
9
|
+
await runner.up(options.project.root);
|
|
10
|
+
await runner.waitReady(options.project.root);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
await runner.down?.(options.project.root);
|
|
14
|
+
throw error;
|
|
15
|
+
}
|
|
16
|
+
return { close: async () => { await runner.down?.(options.project.root); } };
|
|
31
17
|
}
|