@wix/himalaya-cli 0.1013.0 → 0.1014.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/dist/cli.mjs +35 -19
- package/package.json +2 -2
package/dist/cli.mjs
CHANGED
|
@@ -45887,6 +45887,29 @@ var init_assets = __esm({
|
|
|
45887
45887
|
}
|
|
45888
45888
|
});
|
|
45889
45889
|
|
|
45890
|
+
// ../../core/serve-runtime/src/pinned-read.ts
|
|
45891
|
+
async function checkPinnedRead(input) {
|
|
45892
|
+
const { secret, token, app, releaseId, screenId, authorizePreview } = input;
|
|
45893
|
+
if (!secret) return authorizePreview ? { status: 503, body: { error: "preview_token_unavailable" } } : null;
|
|
45894
|
+
if (!token) return await input.isLive() ? null : { status: 401, body: { error: "preview_token_required", app, releaseId } };
|
|
45895
|
+
const verified = await verifyPreviewToken({ token, secret, app, releaseId, screenId });
|
|
45896
|
+
if (verified.ok) {
|
|
45897
|
+
if (authorizePreview ? !await authorizePreview(verified.claims) : !!verified.claims.siteLease) {
|
|
45898
|
+
return { status: 403, body: { error: "site_preview_forbidden" } };
|
|
45899
|
+
}
|
|
45900
|
+
return null;
|
|
45901
|
+
}
|
|
45902
|
+
return {
|
|
45903
|
+
status: verified.error === "scope_mismatch" ? 403 : 401,
|
|
45904
|
+
body: { error: `preview_token_${verified.error}`, app, releaseId, ...screenId ? { screenId } : {} }
|
|
45905
|
+
};
|
|
45906
|
+
}
|
|
45907
|
+
var init_pinned_read = __esm({
|
|
45908
|
+
"../../core/serve-runtime/src/pinned-read.ts"() {
|
|
45909
|
+
init_preview_token();
|
|
45910
|
+
}
|
|
45911
|
+
});
|
|
45912
|
+
|
|
45890
45913
|
// ../../core/serve-runtime/package-share.ts
|
|
45891
45914
|
function parseStored(bytes2, id) {
|
|
45892
45915
|
if (!bytes2) return null;
|
|
@@ -46222,23 +46245,16 @@ ${releaseId}`;
|
|
|
46222
46245
|
return new Response(body, { status: 200, headers: { "content-type": JSON_CT, etag, "cache-control": cache, ...vary } });
|
|
46223
46246
|
}
|
|
46224
46247
|
async function authorizePinnedRead(request, url, app, releaseId, screenId) {
|
|
46225
|
-
const
|
|
46226
|
-
|
|
46227
|
-
|
|
46228
|
-
const live2 = await manifest(app);
|
|
46229
|
-
const isLive = live2?.releaseId === releaseId;
|
|
46230
|
-
if (!token) return isLive ? null : json3(401, { error: "preview_token_required", app, releaseId });
|
|
46231
|
-
const verified = await verifyPreviewToken({ token, secret, app, releaseId, screenId });
|
|
46232
|
-
if (verified.ok) {
|
|
46233
|
-
if (opts.authorizePreview ? !await opts.authorizePreview(verified.claims) : !!verified.claims.siteLease) return json3(403, { error: "site_preview_forbidden" });
|
|
46234
|
-
return null;
|
|
46235
|
-
}
|
|
46236
|
-
return json3(verified.error === "scope_mismatch" ? 403 : 401, {
|
|
46237
|
-
error: `preview_token_${verified.error}`,
|
|
46248
|
+
const denied = await checkPinnedRead({
|
|
46249
|
+
secret: opts.previewTokenSecret,
|
|
46250
|
+
token: resolvePreviewToken(request, url),
|
|
46238
46251
|
app,
|
|
46239
46252
|
releaseId,
|
|
46240
|
-
|
|
46253
|
+
screenId,
|
|
46254
|
+
isLive: async () => (await manifest(app))?.releaseId === releaseId,
|
|
46255
|
+
authorizePreview: opts.authorizePreview
|
|
46241
46256
|
});
|
|
46257
|
+
return denied && json3(denied.status, denied.body);
|
|
46242
46258
|
}
|
|
46243
46259
|
const corsHeaders = (request) => {
|
|
46244
46260
|
const origin = request.headers.get("origin");
|
|
@@ -46669,6 +46685,10 @@ ${releaseId}`;
|
|
|
46669
46685
|
const cfgMatch = /^\/v1\/app-config\/([^/]+)$/.exec(path2);
|
|
46670
46686
|
const app = cfgMatch?.[1] ?? resolveApp(request, url);
|
|
46671
46687
|
const pin = resolvePin(request, url);
|
|
46688
|
+
if (app && pin) {
|
|
46689
|
+
const denied = await authorizePinnedRead(request, url, app, pin);
|
|
46690
|
+
if (denied) return denied;
|
|
46691
|
+
}
|
|
46672
46692
|
if (path2 === "/v1/template-source") {
|
|
46673
46693
|
if (!app) return json3(400, { error: "missing_app" });
|
|
46674
46694
|
if (!store.getSource) return json3(501, { error: "templates_unsupported" });
|
|
@@ -46685,10 +46705,6 @@ ${releaseId}`;
|
|
|
46685
46705
|
headers: { "content-type": JSON_CT, etag, "cache-control": DOC_CACHE_CONTROL, "x-himalaya-app": app }
|
|
46686
46706
|
});
|
|
46687
46707
|
}
|
|
46688
|
-
if (app && pin) {
|
|
46689
|
-
const denied = await authorizePinnedRead(request, url, app, pin);
|
|
46690
|
-
if (denied) return denied;
|
|
46691
|
-
}
|
|
46692
46708
|
if (path2 === "/v1/authoring-docs" || /^\/v1\/authoring-docs\/(spec|mobile-ux)$/.test(path2)) {
|
|
46693
46709
|
if (!app) return json3(400, { error: "missing_app" });
|
|
46694
46710
|
const m = pin ? await pinnedManifest(app, pin) : await manifest(app);
|
|
@@ -47008,7 +47024,7 @@ var init_server = __esm({
|
|
|
47008
47024
|
init_store();
|
|
47009
47025
|
init_base64();
|
|
47010
47026
|
init_contract();
|
|
47011
|
-
|
|
47027
|
+
init_pinned_read();
|
|
47012
47028
|
init_package_share();
|
|
47013
47029
|
init_wix_bridge();
|
|
47014
47030
|
init_wix_member_auth();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/himalaya-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1014.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "himi — the Himalaya authoring CLI. Build a Tier-5 content package on your own machine, push it to the production serve as a draft, preview it on web + Himi Player, and read worker logs back — the remote dev loop. Wraps @himalaya/serve-cli for transport.",
|
|
6
6
|
"keywords": [
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"artifactId": "himalaya-cli"
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
|
-
"falconPackageHash": "
|
|
68
|
+
"falconPackageHash": "18405dc60f540308524da075bbb12c054da8e06b44e0fcdabaf2e2b0"
|
|
69
69
|
}
|