@graview/guest 0.1.28 → 0.1.29
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 +3 -2
- package/client.js +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/client.generated.js +2 -2
- package/dist/headless/index.d.ts.map +1 -1
- package/dist/headless/index.js +4 -1
- package/dist/headless/index.js.map +1 -1
- package/dist/host/arrive.d.ts +6 -0
- package/dist/host/arrive.d.ts.map +1 -1
- package/dist/host/arrive.js +6 -0
- package/dist/host/arrive.js.map +1 -1
- package/dist/host/frame.d.ts +15 -0
- package/dist/host/frame.d.ts.map +1 -1
- package/dist/host/frame.js +41 -1
- package/dist/host/frame.js.map +1 -1
- package/dist/host/index.d.ts +2 -5
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +0 -9
- package/dist/host/index.js.map +1 -1
- package/dist/host/links.js +1 -1
- package/dist/host/links.js.map +1 -1
- package/dist/host/manifest.d.ts +11 -0
- package/dist/host/manifest.d.ts.map +1 -1
- package/dist/host/manifest.js +17 -1
- package/dist/host/manifest.js.map +1 -1
- package/dist/host/pictures.d.ts +59 -0
- package/dist/host/pictures.d.ts.map +1 -0
- package/dist/host/pictures.js +230 -0
- package/dist/host/pictures.js.map +1 -0
- package/dist/host/react.d.ts +3 -0
- package/dist/host/react.d.ts.map +1 -1
- package/dist/host/react.js +29 -18
- package/dist/host/react.js.map +1 -1
- package/dist/host/session.d.ts +4 -1
- package/dist/host/session.d.ts.map +1 -1
- package/dist/host/session.js +2 -1
- package/dist/host/session.js.map +1 -1
- package/dist/host/view-runtime.generated.js +1 -1
- package/dist/host/view.d.ts.map +1 -1
- package/dist/host/view.js +37 -3
- package/dist/host/view.js.map +1 -1
- package/dist/host/views.d.ts +2 -1
- package/dist/host/views.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/protocol.d.ts +39 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +6 -0
- package/dist/protocol.js.map +1 -1
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -10,12 +10,13 @@ The rail says the act came through the view.
|
|
|
10
10
|
## In the host
|
|
11
11
|
|
|
12
12
|
```ts
|
|
13
|
-
import { guestView
|
|
13
|
+
import { guestView } from "@graview/guest/host";
|
|
14
14
|
|
|
15
15
|
views.register("recipe", { fidelity: "full", cardinality: "one" },
|
|
16
16
|
guestView({ url: "https://cards.example/recipe.html", name: "recipe-card" }));
|
|
17
17
|
|
|
18
|
-
// Or without React, into any element:
|
|
18
|
+
// Or without React, into any element (`guestView` fetches this as it is first drawn):
|
|
19
|
+
import { mountGuestView } from "@graview/guest/host/frame";
|
|
19
20
|
const frame = mountGuestView(element, { url, view: "recipe-card", store, principal, input: () => ({ node: { id } }) });
|
|
20
21
|
frame.update(); // the input moved
|
|
21
22
|
frame.dispose();
|
package/client.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! @graview/guest/client.js — a frame guest's client (GraviewGuest.connect). Generated from src/client-script.ts. Elastic License 2.0. */
|
|
2
|
-
"use strict";var GraviewGuest=(()=>{var f=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var k=(o,t)=>{for(var r in t)f(o,r,{get:t[r],enumerable:!0})},M=(o,t,r,
|
|
2
|
+
"use strict";var GraviewGuest=(()=>{var f=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var k=(o,t)=>{for(var r in t)f(o,r,{get:t[r],enumerable:!0})},M=(o,t,r,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of O(t))!H.call(o,a)&&a!==r&&f(o,a,{get:()=>t[a],enumerable:!(d=R(t,a))||d.enumerable});return o};var P=o=>M(f({},"__esModule",{value:!0}),o);var T={};k(T,{connect:()=>w,protocol:()=>y});var y=1;function G(o){let t=o;return typeof o=="object"&&o!==null&&t.graview==="host-hello"&&typeof t.nonce=="string"}function b(o,t={}){let r,d="",a,h=0,u=new Set,g=new Map,m=[],i=n=>{r?r.postMessage({...n,nonce:d}):m.push(n)},x=n=>{let e=n.data;if(!(!e||typeof e!="object")){if(e.type==="props"){a=e.props;for(let s of u)s(e.props)}else e.type==="answer"?(g.get(e.id)?.(e),g.delete(e.id)):e.type==="event"&&typeof e.listener=="number"?t.onEvent?.(e):e.type==="heartbeat"&&typeof e.beat=="number"&&i({type:"heartbeat",beat:e.beat});t.onMessage?.(e)}},p=()=>{},E=n=>{if(r||!o.fromHost(n)||!G(n.data)||n.data.protocol!==1)return;let e=n.ports[0];if(e){r=e,d=n.data.nonce,r.onmessage=x,r.start?.(),p();for(let s of m.splice(0))i(s)}};p=o.listen(E),o.ready({graview:"guest-ready",protocol:1});let c,v={get props(){return a},subscribe(n){return u.add(n),()=>u.delete(n)},act(n,e={}){let s=h+=1;return new Promise(l=>{g.set(s,l),i({type:"act",id:s,name:n,args:e})})},navigate(n){typeof n=="string"?i({type:"navigate",to:n}):n&&typeof n.place=="string"&&i({type:"navigate",place:n.place})},size(n){i({type:"size",height:n})},autoSize(n){let e=n??globalThis.document?.documentElement,s=globalThis.ResizeObserver;if(!e||!s||typeof e.getBoundingClientRect!="function")return()=>{};c?.disconnect();let l=new s(()=>v.size(Math.ceil(e.getBoundingClientRect().height)));return l.observe(e),c=l,()=>l.disconnect()},close(){c?.disconnect(),p(),r?.close(),u.clear()}};return{guest:v,send:i}}function w(o={}){let t=o.window??globalThis;return b({listen(r){return t.addEventListener("message",r),()=>t.removeEventListener("message",r)},fromHost:r=>r.source===t.parent&&(o.hostOrigin===void 0||r.origin===o.hostOrigin),ready:r=>t.parent?.postMessage(r,"*")}).guest}return P(T);})();
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,UAAU,2VAKtB,CAAC;AASF,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,UAAU,2VAKtB,CAAC;AASF,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA6CnE"}
|
package/dist/cli.js
CHANGED
|
@@ -60,7 +60,8 @@ export async function view(argv) {
|
|
|
60
60
|
manifest: readJson(manifestAt),
|
|
61
61
|
source: readFileSync(resolve(process.cwd(), file), "utf8"),
|
|
62
62
|
run: nodeIsolate(),
|
|
63
|
-
|
|
63
|
+
// Each slug once: a picture over several kinds is one place to a view.
|
|
64
|
+
places: (app.views?.places?.() ?? []).filter((place, at, all) => all.findIndex((other) => other.as === place.as) === at).map((place) => ({ as: place.as, title: place.title, kind: place.kind })),
|
|
64
65
|
...(width ? { width: Number(width) } : {}),
|
|
65
66
|
});
|
|
66
67
|
if (argv.includes("--json")) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/client.generated.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* The frame guest's client as one classic script (FR-88), as text a host
|
|
4
4
|
* inlines, and its hash for a policy that names it.
|
|
5
5
|
*/
|
|
6
|
-
export const GUEST_CLIENT = "/*! @graview/guest/client.js — a frame guest's client (GraviewGuest.connect). Generated from src/client-script.ts. Elastic License 2.0. */\n\"use strict\";var GraviewGuest=(()=>{var f=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var k=(o,t)=>{for(var r in t)f(o,r,{get:t[r],enumerable:!0})},M=(o,t,r,
|
|
6
|
+
export const GUEST_CLIENT = "/*! @graview/guest/client.js — a frame guest's client (GraviewGuest.connect). Generated from src/client-script.ts. Elastic License 2.0. */\n\"use strict\";var GraviewGuest=(()=>{var f=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var H=Object.prototype.hasOwnProperty;var k=(o,t)=>{for(var r in t)f(o,r,{get:t[r],enumerable:!0})},M=(o,t,r,d)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let a of O(t))!H.call(o,a)&&a!==r&&f(o,a,{get:()=>t[a],enumerable:!(d=R(t,a))||d.enumerable});return o};var P=o=>M(f({},\"__esModule\",{value:!0}),o);var T={};k(T,{connect:()=>w,protocol:()=>y});var y=1;function G(o){let t=o;return typeof o==\"object\"&&o!==null&&t.graview===\"host-hello\"&&typeof t.nonce==\"string\"}function b(o,t={}){let r,d=\"\",a,h=0,u=new Set,g=new Map,m=[],i=n=>{r?r.postMessage({...n,nonce:d}):m.push(n)},x=n=>{let e=n.data;if(!(!e||typeof e!=\"object\")){if(e.type===\"props\"){a=e.props;for(let s of u)s(e.props)}else e.type===\"answer\"?(g.get(e.id)?.(e),g.delete(e.id)):e.type===\"event\"&&typeof e.listener==\"number\"?t.onEvent?.(e):e.type===\"heartbeat\"&&typeof e.beat==\"number\"&&i({type:\"heartbeat\",beat:e.beat});t.onMessage?.(e)}},p=()=>{},E=n=>{if(r||!o.fromHost(n)||!G(n.data)||n.data.protocol!==1)return;let e=n.ports[0];if(e){r=e,d=n.data.nonce,r.onmessage=x,r.start?.(),p();for(let s of m.splice(0))i(s)}};p=o.listen(E),o.ready({graview:\"guest-ready\",protocol:1});let c,v={get props(){return a},subscribe(n){return u.add(n),()=>u.delete(n)},act(n,e={}){let s=h+=1;return new Promise(l=>{g.set(s,l),i({type:\"act\",id:s,name:n,args:e})})},navigate(n){typeof n==\"string\"?i({type:\"navigate\",to:n}):n&&typeof n.place==\"string\"&&i({type:\"navigate\",place:n.place})},size(n){i({type:\"size\",height:n})},autoSize(n){let e=n??globalThis.document?.documentElement,s=globalThis.ResizeObserver;if(!e||!s||typeof e.getBoundingClientRect!=\"function\")return()=>{};c?.disconnect();let l=new s(()=>v.size(Math.ceil(e.getBoundingClientRect().height)));return l.observe(e),c=l,()=>l.disconnect()},close(){c?.disconnect(),p(),r?.close(),u.clear()}};return{guest:v,send:i}}function w(o={}){let t=o.window??globalThis;return b({listen(r){return t.addEventListener(\"message\",r),()=>t.removeEventListener(\"message\",r)},fromHost:r=>r.source===t.parent&&(o.hostOrigin===void 0||r.origin===o.hostOrigin),ready:r=>t.parent?.postMessage(r,\"*\")}).guest}return P(T);})();\n";
|
|
7
7
|
/** For `script-src 'sha256-…'`. */
|
|
8
|
-
export const GUEST_CLIENT_SHA256 = "sha256-
|
|
8
|
+
export const GUEST_CLIENT_SHA256 = "sha256-77S4CaI79eCdObIWK/+28tKBTU0GNrjBxBOPCeyp4ZI=";
|
|
9
9
|
//# sourceMappingURL=client.generated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/headless/index.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAgD,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/headless/index.ts"],"names":[],"mappings":"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"}
|
package/dist/headless/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { checkManifest, manifestActs, workerViewProps } from "../host/manifest.js";
|
|
2
|
+
import { guestFileOf, handFiles } from "../host/pictures.js";
|
|
2
3
|
import { checkViewSource } from "../host/view-source.js";
|
|
3
4
|
import { judgeTranscript } from "./judge.js";
|
|
4
5
|
import { HEADLESS_ENTRY, HEADLESS_VIEW } from "./protocol.js";
|
|
@@ -81,7 +82,9 @@ export async function runWorkerViewHeadless(options) {
|
|
|
81
82
|
if (unloadable.length > 0)
|
|
82
83
|
return failed("source", unloadable.join(" "));
|
|
83
84
|
const places = options.places ?? [];
|
|
84
|
-
const
|
|
85
|
+
const shown = workerViewProps(store, principal, { manifest, ...(options.input ? { input: options.input } : {}), theme: options.theme ?? HEADLESS_THEME, places });
|
|
86
|
+
/* A view that asks for pictures (FR-175) is handed each file without the host's path; headless, no bytes are fetched, so a picture comes without its address, as it does before the host has made it. */
|
|
87
|
+
const props = manifest.pictures ? handFiles(shown, (file) => guestFileOf(file)) : shown;
|
|
85
88
|
const input = {
|
|
86
89
|
props,
|
|
87
90
|
acts: manifestActs(manifest).map((one) => one.as ?? one.act),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/headless/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAA2B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/headless/index.ts"],"names":[],"mappings":"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"}
|
package/dist/host/arrive.d.ts
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
* asked for again with a URL of its own when it did not arrive (FR-139).
|
|
4
4
|
*/
|
|
5
5
|
export declare const workerChunk: () => Promise<typeof import("./worker.js")>;
|
|
6
|
+
/**
|
|
7
|
+
* The host's half of a frame view — the frame, its session and the theme it
|
|
8
|
+
* reads — fetched when one is first drawn (FR-179), so a page that only
|
|
9
|
+
* registers a `guestView` carries none of it before a face draws one.
|
|
10
|
+
*/
|
|
11
|
+
export declare const frameChunk: () => Promise<typeof import("./frame.js")>;
|
|
6
12
|
/**
|
|
7
13
|
* Load a part, and hand it over once it is here: when it did not arrive —
|
|
8
14
|
* the network away as the view was drawn — it is asked for again when the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrive.d.ts","sourceRoot":"","sources":["../../src/host/arrive.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,WAAW,6CAA8C,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAoB/F"}
|
|
1
|
+
{"version":3,"file":"arrive.d.ts","sourceRoot":"","sources":["../../src/host/arrive.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,WAAW,6CAA8C,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,UAAU,4CAA6D,CAAC;AAErF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAoB/F"}
|
package/dist/host/arrive.js
CHANGED
|
@@ -4,6 +4,12 @@ import { retryingImport } from "@graview/core/retry";
|
|
|
4
4
|
* asked for again with a URL of its own when it did not arrive (FR-139).
|
|
5
5
|
*/
|
|
6
6
|
export const workerChunk = retryingImport(() => import("./worker.js"));
|
|
7
|
+
/**
|
|
8
|
+
* The host's half of a frame view — the frame, its session and the theme it
|
|
9
|
+
* reads — fetched when one is first drawn (FR-179), so a page that only
|
|
10
|
+
* registers a `guestView` carries none of it before a face draws one.
|
|
11
|
+
*/
|
|
12
|
+
export const frameChunk = /* @__PURE__ */ retryingImport(() => import("./frame.js"));
|
|
7
13
|
/**
|
|
8
14
|
* Load a part, and hand it over once it is here: when it did not arrive —
|
|
9
15
|
* the network away as the view was drawn — it is asked for again when the
|
package/dist/host/arrive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrive.js","sourceRoot":"","sources":["../../src/host/arrive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAI,IAAsB,EAAE,IAAyB;IACjF,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;IACvB,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,KAAK,IAAI,EAAE,CAAC,IAAI,CACd,CAAC,MAAM,EAAE,EAAE;QACT,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,EACD,GAAG,EAAE;QACH,IAAI,CAAC,IAAI;YAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC,CACF,CAAC;IACJ,OAAO,EAAE,CAAC;IACV,OAAO,GAAG,EAAE;QACV,IAAI,GAAG,IAAI,CAAC;QACZ,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"arrive.js","sourceRoot":"","sources":["../../src/host/arrive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAErF;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAI,IAAsB,EAAE,IAAyB;IACjF,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;IACvB,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,KAAK,IAAI,EAAE,CAAC,IAAI,CACd,CAAC,MAAM,EAAE,EAAE;QACT,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC,EACD,GAAG,EAAE;QACH,IAAI,CAAC,IAAI;YAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC,CACF,CAAC;IACJ,OAAO,EAAE,CAAC;IACV,OAAO,GAAG,EAAE;QACV,IAAI,GAAG,IAAI,CAAC;QACZ,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/host/frame.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { AnySchema, Principal, Store } from "@graview/core";
|
|
2
2
|
import { type GuestPlace, type GuestTheme } from "../protocol.js";
|
|
3
3
|
import { type GuestLimits, type GuestReads, type GuestStats, type GuestViewInput } from "./session.js";
|
|
4
|
+
import type { GuestPictures } from "./pictures.js";
|
|
4
5
|
import { type GuestBrand } from "./theme.js";
|
|
6
|
+
export { createGuestHost, createGuestLimiter, readAcross } from "./session.js";
|
|
7
|
+
export { readTheme } from "./theme.js";
|
|
8
|
+
export { GUEST_PROTOCOL, GUEST_SANDBOX, OPAQUE_ORIGIN } from "../protocol.js";
|
|
5
9
|
export interface MountGuestViewOptions<S extends AnySchema> {
|
|
6
10
|
/** Where the guest's code is served. Where that is, and its CSP, are the host's business. */
|
|
7
11
|
readonly url: string;
|
|
@@ -32,6 +36,17 @@ export interface MountGuestViewOptions<S extends AnySchema> {
|
|
|
32
36
|
* again when it changes (`update`).
|
|
33
37
|
*/
|
|
34
38
|
readonly brand?: () => GuestBrand | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* The pictures on the records the guest is handed (FR-175): `true`, or
|
|
41
|
+
* `{ width }`, the widest it draws one in CSS pixels. Each file a record
|
|
42
|
+
* holds is then handed as a `GuestFile` — a picture with `src`, a
|
|
43
|
+
* `data:` image the host made from the bytes it fetched as the viewer
|
|
44
|
+
* (a frame is another origin, where neither the host's path nor its
|
|
45
|
+
* `blob:` loads); a document by its name, type and size. Within
|
|
46
|
+
* `limits.pictureBytes` and `limits.picturesBytes`. Left out, a file is
|
|
47
|
+
* handed as the record keeps it.
|
|
48
|
+
*/
|
|
49
|
+
readonly pictures?: GuestPictures;
|
|
35
50
|
/** The app's named places: what the guest is told of (`props.places`), and may ask to go to by slug. None by default. */
|
|
36
51
|
readonly places?: () => readonly GuestPlace[];
|
|
37
52
|
readonly onNavigate?: (id: string) => void;
|
package/dist/host/frame.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/host/frame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAA8D,KAAK,UAAU,EAAE,KAAK,UAAU,EAAkB,MAAM,gBAAgB,CAAC;AAE9I,OAAO,EAAuD,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/host/frame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAA8D,KAAK,UAAU,EAAE,KAAK,UAAU,EAAkB,MAAM,gBAAgB,CAAC;AAE9I,OAAO,EAAuD,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG5J,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAA0D,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAWrG,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9E,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,SAAS;IACxD,6FAA6F;IAC7F,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,iGAAiG;IACjG,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,cAAc,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,UAAU,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC;IAC9C;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,yHAAyH;IACzH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,SAAS,UAAU,EAAE,CAAC;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,0CAA0C;IAC1C,MAAM,IAAI,IAAI,CAAC;IACf,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,UAAU,CA+IvH"}
|
package/dist/host/frame.js
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import { GUEST_PROTOCOL, GUEST_SANDBOX, OPAQUE_ORIGIN, isGuestReady } from "../protocol.js";
|
|
2
2
|
import { mintNonce } from "./nonce.js";
|
|
3
3
|
import { createGuestHost, createGuestLimiter } from "./session.js";
|
|
4
|
+
import { retryingImport } from "@graview/core/retry";
|
|
5
|
+
import { untilItArrives } from "./arrive.js";
|
|
4
6
|
import { createGuestLogo, readTheme, themeWithBrand, watchTheme } from "./theme.js";
|
|
7
|
+
/* The pictures' host, fetched only for a frame that asks for them (FR-175): a page of frames that do not carries none of it. */
|
|
8
|
+
const picturesChunk = retryingImport(() => import("./pictures.js"));
|
|
9
|
+
/*
|
|
10
|
+
* A FRAME GUEST'S HOST: `@graview/guest/host/frame`. Mounting a frame into
|
|
11
|
+
* any element, the host without the DOM, and the theme read off the page —
|
|
12
|
+
* apart from `@graview/guest/host`, so a page that registers a `guestView`
|
|
13
|
+
* fetches this as the view is first drawn rather than up front (FR-179).
|
|
14
|
+
*/
|
|
15
|
+
export { createGuestHost, createGuestLimiter, readAcross } from "./session.js";
|
|
16
|
+
export { readTheme } from "./theme.js";
|
|
17
|
+
export { GUEST_PROTOCOL, GUEST_SANDBOX, OPAQUE_ORIGIN } from "../protocol.js";
|
|
5
18
|
/**
|
|
6
19
|
* MOUNT A GUEST VIEW: an iframe sandboxed to scripts alone, so its origin
|
|
7
20
|
* is opaque and nothing of the host's is reachable from it, and one
|
|
@@ -57,6 +70,21 @@ export function mountGuestView(element, options) {
|
|
|
57
70
|
if (session && JSON.stringify(theme()) !== pushed)
|
|
58
71
|
push();
|
|
59
72
|
});
|
|
73
|
+
/*
|
|
74
|
+
* The pictures on what it is handed (FR-175), where its host asks:
|
|
75
|
+
* `data:` images, pushed again as each is ready. A guest that says it is
|
|
76
|
+
* ready before their host has arrived is answered once it has, so it is
|
|
77
|
+
* never handed a record's path to a file.
|
|
78
|
+
*/
|
|
79
|
+
let pictures;
|
|
80
|
+
let waiting = false;
|
|
81
|
+
const stopPictures = options.pictures
|
|
82
|
+
? untilItArrives(picturesChunk, ({ createGuestPictures }) => {
|
|
83
|
+
pictures = createGuestPictures(window, { as: "data", view: `"${options.title ?? options.view}"`, pictures: options.pictures, ...(options.limits ? { limits: options.limits } : {}), moved: () => session?.push() });
|
|
84
|
+
if (waiting)
|
|
85
|
+
greet();
|
|
86
|
+
})
|
|
87
|
+
: () => { };
|
|
60
88
|
const end = () => {
|
|
61
89
|
tally();
|
|
62
90
|
session?.dispose();
|
|
@@ -77,6 +105,15 @@ export function mountGuestView(element, options) {
|
|
|
77
105
|
stats.dropped += 1;
|
|
78
106
|
return;
|
|
79
107
|
}
|
|
108
|
+
if (options.pictures && !pictures) {
|
|
109
|
+
waiting = true;
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
greet();
|
|
113
|
+
};
|
|
114
|
+
/* Answer the guest's ready: a fresh nonce and port, the one before closed. */
|
|
115
|
+
const greet = () => {
|
|
116
|
+
waiting = false;
|
|
80
117
|
end();
|
|
81
118
|
const nonce = mintNonce();
|
|
82
119
|
const channel = new MessageChannel();
|
|
@@ -89,8 +126,9 @@ export function mountGuestView(element, options) {
|
|
|
89
126
|
send: (message) => channel.port1.postMessage(message),
|
|
90
127
|
...(options.input ? { input: options.input } : {}),
|
|
91
128
|
...(options.reads ? { reads: options.reads } : {}),
|
|
129
|
+
...(pictures ? { hand: pictures.hand } : {}),
|
|
92
130
|
theme,
|
|
93
|
-
...(options.places ? { places: () => options.places().map((place) => place.as), placesShown: options.places } : {}),
|
|
131
|
+
...(options.places ? { places: () => [...new Set(options.places().map((place) => place.as))], placesShown: options.places } : {}),
|
|
94
132
|
...(options.onNavigatePlace ? { onNavigatePlace: options.onNavigatePlace } : {}),
|
|
95
133
|
...(options.onNavigate ? { onNavigate: options.onNavigate } : {}),
|
|
96
134
|
onSize: options.onSize ?? ((height) => (iframe.style.height = `${height}px`)),
|
|
@@ -124,6 +162,8 @@ export function mountGuestView(element, options) {
|
|
|
124
162
|
end();
|
|
125
163
|
unwatch();
|
|
126
164
|
logo.dispose();
|
|
165
|
+
stopPictures();
|
|
166
|
+
pictures?.dispose();
|
|
127
167
|
window.removeEventListener("message", onMessage);
|
|
128
168
|
iframe.remove();
|
|
129
169
|
},
|
package/dist/host/frame.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/host/frame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAoD,MAAM,gBAAgB,CAAC;AAC9I,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAA2F,MAAM,cAAc,CAAC;AAC5J,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAmB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/host/frame.ts"],"names":[],"mappings":"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"}
|
package/dist/host/index.d.ts
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
export { mountGuestView } from "./frame.js";
|
|
2
1
|
export type { GuestFrame, MountGuestViewOptions } from "./frame.js";
|
|
3
|
-
export { createGuestHost, createGuestLimiter, readAcross } from "./session.js";
|
|
4
2
|
export type { GuestHost, GuestHostOptions, GuestLimiter, GuestLimits, GuestReads, GuestStats, GuestViewInput } from "./session.js";
|
|
5
|
-
export {
|
|
3
|
+
export type { GuestPictureLimits, GuestPictures } from "./pictures.js";
|
|
6
4
|
export type { GuestBrand } from "./theme.js";
|
|
7
5
|
export type { GuestWorker, GuestWorkerFailure, GuestWorkerSource, MountGuestWorkerOptions } from "./worker.js";
|
|
8
6
|
export type { KitLinks, KitRefusal, KitRefusalReason, KitRenderer, KitRendererOptions } from "./kit.js";
|
|
9
7
|
export type { GuestKitElement, Kit, KitComponent, KitEvent, KitProperty, KitPropertyType, KitTone } from "../kit.js";
|
|
10
8
|
export { guestView } from "./react.js";
|
|
11
9
|
export type { GuestViewOptions } from "./react.js";
|
|
12
|
-
export {
|
|
13
|
-
export type { GuestPlace, GuestProps, GuestTheme } from "../protocol.js";
|
|
10
|
+
export type { GuestFile, GuestPlace, GuestProps, GuestTheme } from "../protocol.js";
|
|
14
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/host/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAMA,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACpE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnI,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACvE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC/G,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACxG,YAAY,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMnD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/host/index.js
CHANGED
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
export { mountGuestView } from "./frame.js";
|
|
2
|
-
export { createGuestHost, createGuestLimiter, readAcross } from "./session.js";
|
|
3
|
-
export { readTheme } from "./theme.js";
|
|
4
1
|
export { guestView } from "./react.js";
|
|
5
|
-
/*
|
|
6
|
-
* A worker view as a place (FR-91–FR-96) — registering one, and judging
|
|
7
|
-
* what it may be handed, ask and run — is `@graview/guest/host/views`, so a
|
|
8
|
-
* page that draws only frames carries none of it.
|
|
9
|
-
*/
|
|
10
|
-
export { GUEST_PROTOCOL, GUEST_SANDBOX, OPAQUE_ORIGIN } from "../protocol.js";
|
|
11
2
|
//# sourceMappingURL=index.js.map
|
package/dist/host/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/host/links.js
CHANGED
|
@@ -6,7 +6,7 @@ export const quoted = (asked) => `"${asked.length > 80 ? `${asked.slice(0, 79)}
|
|
|
6
6
|
export const nowhere = (to, slugs) => `${"place" in to ? `The place ${quoted(to.place)}` : `${quoted(to.record)} is no record this viewer may see and`} is no place of this app: it goes nowhere.${placesSaid(slugs)}`;
|
|
7
7
|
export function createLinks(options) {
|
|
8
8
|
const go = (to) => {
|
|
9
|
-
const slugs = options.places().map((place) => place.as);
|
|
9
|
+
const slugs = [...new Set(options.places().map((place) => place.as))];
|
|
10
10
|
/* A record the viewer may see first, then a place by that slug. */
|
|
11
11
|
const place = "place" in to ? to.place : options.sees(to.record) ? undefined : to.record;
|
|
12
12
|
const ok = place === undefined || slugs.includes(place);
|
package/dist/host/links.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/host/links.ts"],"names":[],"mappings":"AA2CA,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,gBAAgB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC;AAEjI,8JAA8J;AAC9J,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAErG,gEAAgE;AAChE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAe,EAAE,KAAwB,EAAE,EAAE,CACnE,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,uCAAuC,6CAA6C,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;AAEnL,MAAM,UAAU,WAAW,CAAC,OAAqB;IAC/C,MAAM,EAAE,GAAG,CAAC,EAAe,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/host/links.ts"],"names":[],"mappings":"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"}
|
package/dist/host/manifest.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnySchema, Principal, Store } from "@graview/core";
|
|
2
2
|
import type { GuestPlace, GuestProps, GuestTheme } from "../protocol.js";
|
|
3
|
+
import type { GuestPictures } from "./pictures.js";
|
|
3
4
|
import { type GuestViewInput } from "./session.js";
|
|
4
5
|
/** An act a view may ask for, with what the host fills in for it (FR-92). */
|
|
5
6
|
export interface ManifestAct {
|
|
@@ -30,6 +31,16 @@ export interface WorkerViewManifest {
|
|
|
30
31
|
* the view. Only for `cardinality: "one"` on a kind.
|
|
31
32
|
*/
|
|
32
33
|
readonly replaces?: "page";
|
|
34
|
+
/**
|
|
35
|
+
* The pictures on the records it is handed (FR-175): `true`, or
|
|
36
|
+
* `{ width }`, the widest it draws a picture in CSS pixels (1 200 by
|
|
37
|
+
* default). Each file a record holds is then handed as a `GuestFile` —
|
|
38
|
+
* a picture with `src`, an address the host made from the bytes, made
|
|
39
|
+
* smaller where it is wider than `width`; a document by its name, type
|
|
40
|
+
* and size — never as the host's path to it. Left out, a file is handed
|
|
41
|
+
* as the record keeps it.
|
|
42
|
+
*/
|
|
43
|
+
readonly pictures?: GuestPictures;
|
|
33
44
|
}
|
|
34
45
|
/** An act of a manifest, said in full. */
|
|
35
46
|
export declare function manifestActs(manifest: WorkerViewManifest): readonly ManifestAct[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/host/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EAAuB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/host/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EAAuB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AA6B1E,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,gIAAgI;IAChI,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IAChF,oHAAoH;IACpH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5F,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IAClD;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;CACnC;AAaD,0CAA0C;AAC1C,wBAAgB,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,SAAS,WAAW,EAAE,CAEjF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,MAAM,EAAE,CAuBnH;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,GAAG,UAAU,CAoDnI"}
|
package/dist/host/manifest.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { plainNode, readAcross } from "./session.js";
|
|
2
|
+
/** What `pictures` asks for, said wrongly, in sentences; empty when it is sound. */
|
|
3
|
+
function picturesProblems(pictures) {
|
|
4
|
+
if (pictures === undefined || pictures === true)
|
|
5
|
+
return [];
|
|
6
|
+
if (typeof pictures !== "object" || pictures === null || Array.isArray(pictures))
|
|
7
|
+
return ['The view\'s pictures is true, or { "width": <the widest it draws a picture, in pixels> }.'];
|
|
8
|
+
const { width, ...rest } = pictures;
|
|
9
|
+
const problems = [];
|
|
10
|
+
if (Object.keys(rest).length > 0)
|
|
11
|
+
problems.push(`The view's pictures says ${Object.keys(rest).map((key) => `"${key}"`).join(", ")}: only "width" is read.`);
|
|
12
|
+
if (width !== undefined && !(Number.isInteger(width) && width >= 16 && width <= 4_096))
|
|
13
|
+
problems.push("The view's pictures width is a whole number of pixels from 16 to 4096.");
|
|
14
|
+
return problems;
|
|
15
|
+
}
|
|
2
16
|
/** An act of a manifest, said in full. */
|
|
3
17
|
export function manifestActs(manifest) {
|
|
4
18
|
return (manifest.acts ?? []).map((one) => (typeof one === "string" ? { act: one } : one));
|
|
@@ -27,6 +41,7 @@ export function checkManifest(manifest, store) {
|
|
|
27
41
|
findings.push(`The view's replaces is "${String(manifest.replaces)}": the one thing a view replaces is "page", or leave it out to draw the view above the record's own fields.`);
|
|
28
42
|
else if (manifest.replaces === "page" && (manifest.attach === "home" || manifest.cardinality !== "one"))
|
|
29
43
|
findings.push('Only a view of one record replaces its page: replaces "page" needs cardinality one on a kind.');
|
|
44
|
+
findings.push(...picturesProblems(manifest.pictures));
|
|
30
45
|
for (const kind of manifest.reads?.kinds ?? [])
|
|
31
46
|
if (!kinds.has(kind))
|
|
32
47
|
findings.push(`The view reads "${kind}", which is no kind of this app.`);
|
|
@@ -101,7 +116,8 @@ export function workerViewProps(store, principal, given) {
|
|
|
101
116
|
...(input.flagged ? { flagged: visible(input.flagged) } : {}),
|
|
102
117
|
acts,
|
|
103
118
|
...(given.theme ? { theme: given.theme } : {}),
|
|
104
|
-
|
|
119
|
+
// A link names a place by its slug, so each slug once: a picture over several kinds is one place to a view.
|
|
120
|
+
...(given.places ? { places: given.places.filter((place, at, all) => all.findIndex((other) => other.as === place.as) === at).map(({ as, title, kind }) => ({ as, title, kind })) } : {}),
|
|
105
121
|
};
|
|
106
122
|
}
|
|
107
123
|
//# sourceMappingURL=manifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/host/manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/host/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { FileValue } from "@graview/core";
|
|
2
|
+
import type { GuestFile, GuestNode, GuestProps } from "../protocol.js";
|
|
3
|
+
/** What a guest asks for: `true`, or the widest it draws a picture, in CSS pixels (1 200 by default). */
|
|
4
|
+
export type GuestPictures = true | {
|
|
5
|
+
readonly width?: number;
|
|
6
|
+
};
|
|
7
|
+
/** How many bytes of pictures a guest is handed. */
|
|
8
|
+
export interface GuestPictureLimits {
|
|
9
|
+
/** The most one picture may be, as handed (made smaller first where it can be). 1 500 000 by default. */
|
|
10
|
+
readonly pictureBytes?: number;
|
|
11
|
+
/** The most the pictures a view is handed may be together. 12 000 000 by default. */
|
|
12
|
+
readonly picturesBytes?: number;
|
|
13
|
+
}
|
|
14
|
+
/** The widest a picture is drawn, by default, in CSS pixels. */
|
|
15
|
+
export declare const PICTURE_WIDTH = 1200;
|
|
16
|
+
/** A file larger than this, as the record says it, is not fetched for a guest at all. */
|
|
17
|
+
export declare const PICTURE_FETCH_BYTES = 40000000;
|
|
18
|
+
/** Whether a file is a picture a guest is handed an address for: an image, not an SVG, which could act. */
|
|
19
|
+
export declare const isGuestPicture: (file: {
|
|
20
|
+
readonly type: string;
|
|
21
|
+
}) => boolean;
|
|
22
|
+
/** A file as a guest is handed it, before the host has its bytes: no path, and for a picture its facts. */
|
|
23
|
+
export declare function guestFileOf(file: FileValue, more?: {
|
|
24
|
+
readonly src?: string;
|
|
25
|
+
readonly left?: string;
|
|
26
|
+
}): GuestFile;
|
|
27
|
+
/**
|
|
28
|
+
* EVERY FILE ON THE RECORDS IN `props`, as `hand` makes it — a field that
|
|
29
|
+
* holds one, or a list of them — in the order a reader meets them: the
|
|
30
|
+
* view's own record, then the others. Nothing else is changed.
|
|
31
|
+
*/
|
|
32
|
+
export declare function handFiles(props: GuestProps, hand: (file: FileValue, on: GuestNode) => GuestFile): GuestProps;
|
|
33
|
+
export interface GuestPicturesOptions {
|
|
34
|
+
/** `"blob"` for a worker view, drawn in this page (a `data:` image where the page's policy refuses `blob:`); `"data"` for a frame, another origin. */
|
|
35
|
+
readonly as: "blob" | "data";
|
|
36
|
+
/** The view, as a sentence names it: its title, else its name. */
|
|
37
|
+
readonly view: string;
|
|
38
|
+
readonly pictures: GuestPictures;
|
|
39
|
+
readonly limits?: GuestPictureLimits;
|
|
40
|
+
/** A picture is ready, or was left out: push again. */
|
|
41
|
+
readonly moved: () => void;
|
|
42
|
+
/** A picture was left out, and why, said once. */
|
|
43
|
+
readonly onLeft?: (said: string) => void;
|
|
44
|
+
/** How the bytes are made smaller: to at most `width` pixels across, and `bytes` bytes. The canvas, by default. */
|
|
45
|
+
readonly shrink?: (blob: Blob, width: number, bytes: number) => Promise<Blob | undefined>;
|
|
46
|
+
}
|
|
47
|
+
export interface GuestPictureHand {
|
|
48
|
+
/** `props` with each file as the guest is handed it, starting what has not been fetched. */
|
|
49
|
+
hand(props: GuestProps): GuestProps;
|
|
50
|
+
/** Let go of every address made. */
|
|
51
|
+
dispose(): void;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* THE HOST'S PICTURES FOR ONE GUEST: fetched once each, on the page's own
|
|
55
|
+
* origin with the reader's credentials, made smaller where the view needs
|
|
56
|
+
* no more, and let go when no record handed holds them.
|
|
57
|
+
*/
|
|
58
|
+
export declare function createGuestPictures(window: Window & typeof globalThis, options: GuestPicturesOptions): GuestPictureHand;
|
|
59
|
+
//# sourceMappingURL=pictures.d.ts.map
|