@zveltio/cli 3.0.0-beta.4 → 3.0.0-beta.5

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 (2) hide show
  1. package/dist/index.js +34 -25
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -4082,6 +4082,7 @@ ${c7.bold("Extension validate")}
4082
4082
  manifest = null;
4083
4083
  }
4084
4084
  }
4085
+ const isStudioOnly = manifest != null && typeof manifest === "object" && manifest?.contributes?.engine === false && !manifest?.engine;
4085
4086
  const migrationsDir = join10(dir, "engine", "migrations");
4086
4087
  let sqlFiles = [];
4087
4088
  let parsedTableCount = 0;
@@ -4101,7 +4102,7 @@ ${c7.bold("Extension validate")}
4101
4102
  paths[rel] = existsSync10(join10(dir, rel));
4102
4103
  }
4103
4104
  const required = ["manifest.json"];
4104
- if (!(paths["engine/index.ts"] || paths["engine/index.js"])) {
4105
+ if (!isStudioOnly && !(paths["engine/index.ts"] || paths["engine/index.js"])) {
4105
4106
  required.push("engine/index.ts");
4106
4107
  }
4107
4108
  const bundleBytes = recursiveSize(dir);
@@ -4126,9 +4127,12 @@ ${c7.bold("Extension validate")}
4126
4127
  stats: { tables: parsedTableCount, migrations: sqlFiles.length }
4127
4128
  });
4128
4129
  const m = manifest;
4130
+ const studioOnly = isStudioOnly;
4129
4131
  const v2Status = (() => {
4130
4132
  if (!m)
4131
4133
  return "unknown";
4134
+ if (studioOnly)
4135
+ return "studio-only";
4132
4136
  if (!m.engine)
4133
4137
  return "v1-legacy";
4134
4138
  if (m.engine.bundled !== true)
@@ -4143,30 +4147,35 @@ ${c7.bold("Extension validate")}
4143
4147
  console.log(` Migrations: ${c7.dim(`${result.stats.migrations} file(s), ${result.stats.tables} table(s) parsed`)}`);
4144
4148
  console.log(` Peer deps: ${c7.dim(`${result.stats.peerDeps} declared`)}`);
4145
4149
  console.log(` Bundle size: ${c7.dim(`${Math.ceil(bundleBytes / 1024)} KB`)}`);
4146
- const v2Label = v2Status === "v2-ok" ? c7.green("v2 (bundled)") : v2Status === "v1-legacy" ? c7.yellow("v1 (no engine block \u2014 run `zveltio extension pack`)") : v2Status === "engine-not-bundled" ? c7.red("engine.bundled !== true \u2014 re-pack required") : v2Status === "missing-engine-entry" ? c7.red("engine.entry missing") : v2Status === "missing-engine-sha" ? c7.red("integrity.engineSha256 missing \u2014 re-pack required") : c7.dim("unknown");
4150
+ const v2Label = v2Status === "v2-ok" ? c7.green("v2 (bundled)") : v2Status === "studio-only" ? c7.green("studio/client-only (no engine)") : v2Status === "v1-legacy" ? c7.yellow("v1 (no engine block \u2014 run `zveltio extension pack`)") : v2Status === "engine-not-bundled" ? c7.red("engine.bundled !== true \u2014 re-pack required") : v2Status === "missing-engine-entry" ? c7.red("engine.entry missing") : v2Status === "missing-engine-sha" ? c7.red("integrity.engineSha256 missing \u2014 re-pack required") : c7.dim("unknown");
4147
4151
  console.log(` Manifest v2: ${v2Label}`);
4148
- const isolation = m?.engine?.isolation ?? "inline";
4149
- const resolved = await resolvePublisherTier({
4150
- firstParty: opts.firstParty,
4151
- token: opts.token,
4152
- registryUrl: opts.registryUrl
4153
- });
4154
- const inlineOk = tierAllowsInline(resolved.tier);
4155
- const tierSrc = resolved.source === "flag" ? "--first-party" : resolved.source === "registry" ? "registry" : "default";
4156
- if (isolation === "worker") {
4157
- console.log(` Isolation: ${c7.green("worker (runs in any tier)")}`);
4158
- } else if (inlineOk) {
4159
- console.log(` Isolation: ${c7.dim(`inline (${resolved.tier} \u2014 allowed, via ${tierSrc})`)}`);
4152
+ if (studioOnly) {
4153
+ console.log(` Isolation: ${c7.dim("n/a (no engine)")}`);
4154
+ console.log("");
4160
4155
  } else {
4161
- console.log(` Isolation: ${c7.red(`inline \u2014 ${resolved.tier} publishers MUST use 'worker'`)}`);
4162
- }
4163
- console.log("");
4164
- if (isolation !== "worker" && !inlineOk) {
4165
- console.error(c7.red(`Validation failed: ${resolved.tier} publishers must declare ` + `engine.isolation: "worker" (MARKETPLACE-POLICY \xA72).`));
4166
- console.error(c7.dim(' Add `"isolation": "worker"` to the engine block in manifest.json, ' + "then re-pack. If you are a verified/first-party publisher, pass " + "--first-party or set ZVELTIO_REGISTRY_TOKEN so the tier can be confirmed. " + "See docs/MARKETPLACE-POLICY.md \xA72."));
4167
- if (opts.silentExit)
4168
- throw new Error("Validation failed: community inline isolation");
4169
- process.exit(1);
4156
+ const isolation = m?.engine?.isolation ?? "inline";
4157
+ const resolved = await resolvePublisherTier({
4158
+ firstParty: opts.firstParty,
4159
+ token: opts.token,
4160
+ registryUrl: opts.registryUrl
4161
+ });
4162
+ const inlineOk = tierAllowsInline(resolved.tier);
4163
+ const tierSrc = resolved.source === "flag" ? "--first-party" : resolved.source === "registry" ? "registry" : "default";
4164
+ if (isolation === "worker") {
4165
+ console.log(` Isolation: ${c7.green("worker (runs in any tier)")}`);
4166
+ } else if (inlineOk) {
4167
+ console.log(` Isolation: ${c7.dim(`inline (${resolved.tier} \u2014 allowed, via ${tierSrc})`)}`);
4168
+ } else {
4169
+ console.log(` Isolation: ${c7.red(`inline \u2014 ${resolved.tier} publishers MUST use 'worker'`)}`);
4170
+ }
4171
+ console.log("");
4172
+ if (isolation !== "worker" && !inlineOk) {
4173
+ console.error(c7.red(`Validation failed: ${resolved.tier} publishers must declare ` + `engine.isolation: "worker" (MARKETPLACE-POLICY \xA72).`));
4174
+ console.error(c7.dim(' Add `"isolation": "worker"` to the engine block in manifest.json, ' + "then re-pack. If you are a verified/first-party publisher, pass " + "--first-party or set ZVELTIO_REGISTRY_TOKEN so the tier can be confirmed. " + "See docs/MARKETPLACE-POLICY.md \xA72."));
4175
+ if (opts.silentExit)
4176
+ throw new Error("Validation failed: community inline isolation");
4177
+ process.exit(1);
4178
+ }
4170
4179
  }
4171
4180
  if (v2Status === "v1-legacy") {
4172
4181
  console.error(c7.red("Validation failed: manifest is v1 (no engine.bundled block)."));
@@ -5783,7 +5792,7 @@ async function getLocalVersion() {
5783
5792
  // package.json
5784
5793
  var package_default = {
5785
5794
  name: "@zveltio/cli",
5786
- version: "3.0.0-beta.4",
5795
+ version: "3.0.0-beta.5",
5787
5796
  type: "module",
5788
5797
  bin: {
5789
5798
  zveltio: "./dist/index.js"
@@ -5798,7 +5807,7 @@ var package_default = {
5798
5807
  dev: "bun run --watch src/index.ts"
5799
5808
  },
5800
5809
  dependencies: {
5801
- "@zveltio/sdk": "3.0.0-beta.4",
5810
+ "@zveltio/sdk": "3.0.0-beta.5",
5802
5811
  commander: "^12.0.0"
5803
5812
  },
5804
5813
  devDependencies: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zveltio/cli",
3
- "version": "3.0.0-beta.4",
3
+ "version": "3.0.0-beta.5",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "zveltio": "./dist/index.js"
@@ -15,7 +15,7 @@
15
15
  "dev": "bun run --watch src/index.ts"
16
16
  },
17
17
  "dependencies": {
18
- "@zveltio/sdk": "3.0.0-beta.4",
18
+ "@zveltio/sdk": "3.0.0-beta.5",
19
19
  "commander": "^12.0.0"
20
20
  },
21
21
  "devDependencies": {