buckyos 0.7.138 → 0.7.142
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/cli/core/app.ts +4 -0
- package/cli/core/auth.ts +2 -3
- package/cli/dist/cli.mjs +547 -127
- package/cli/dist/cli.mjs.map +1 -1
- package/cli/modules/aiws.ts +294 -0
- package/cli/modules/executor.ts +98 -0
- package/cli/version.ts +1 -1
- package/dist/account.d.ts +0 -2
- package/dist/account.d.ts.map +1 -1
- package/dist/aiworkspace_client.d.ts +91 -0
- package/dist/aiworkspace_client.d.ts.map +1 -0
- package/dist/app-frame.cjs +1 -1
- package/dist/app-frame.cjs.map +1 -1
- package/dist/app-frame.d.ts +103 -3
- package/dist/app-frame.d.ts.map +1 -1
- package/dist/app-frame.mjs +189 -8
- package/dist/app-frame.mjs.map +1 -1
- package/dist/browser.cjs +1 -1
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.ts +2 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.mjs +18 -15
- package/dist/browser.mjs.map +1 -1
- package/dist/content.cjs +1 -1
- package/dist/content.cjs.map +1 -1
- package/dist/content.d.ts +18 -0
- package/dist/content.d.ts.map +1 -1
- package/dist/content.mjs +61 -1
- package/dist/content.mjs.map +1 -1
- package/dist/executor_client-b3ff97ba.js +13 -0
- package/dist/executor_client-b3ff97ba.js.map +1 -0
- package/dist/{ndm_proxy-6b03b9ec.mjs → executor_client-eb372968.mjs} +901 -396
- package/dist/executor_client-eb372968.mjs.map +1 -0
- package/dist/executor_client.d.ts +138 -0
- package/dist/executor_client.d.ts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +23 -15
- package/dist/index.mjs.map +1 -1
- package/dist/internal/hash_worker.d.ts +2 -1
- package/dist/internal/hash_worker.d.ts.map +1 -1
- package/dist/internal/tus_client.d.ts +3 -0
- package/dist/internal/tus_client.d.ts.map +1 -1
- package/dist/namelib.d.ts +1 -10
- package/dist/namelib.d.ts.map +1 -1
- package/dist/ndm_client.d.ts +56 -7
- package/dist/ndm_client.d.ts.map +1 -1
- package/dist/ndn_types-08dc9ef1.js +2 -0
- package/dist/ndn_types-08dc9ef1.js.map +1 -0
- package/dist/{ndn_types-ac9c1e48.mjs → ndn_types-bbb1f6a6.mjs} +53 -100
- package/dist/ndn_types-bbb1f6a6.mjs.map +1 -0
- package/dist/nfsp.cjs +1 -1
- package/dist/nfsp.cjs.map +1 -1
- package/dist/nfsp.d.ts +16 -0
- package/dist/nfsp.d.ts.map +1 -1
- package/dist/nfsp.mjs +6 -0
- package/dist/nfsp.mjs.map +1 -1
- package/dist/node.cjs +1 -1
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.ts +2 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.mjs +18 -15
- package/dist/node.mjs.map +1 -1
- package/dist/provision.cjs +2 -2
- package/dist/provision.cjs.map +1 -1
- package/dist/provision.mjs +18 -12
- package/dist/provision.mjs.map +1 -1
- package/dist/provision_activate.d.ts.map +1 -1
- package/dist/runtime.d.ts +3 -4
- package/dist/runtime.d.ts.map +1 -1
- package/dist/sdk_core.d.ts +4 -0
- package/dist/sdk_core.d.ts.map +1 -1
- package/dist/{tus_client-2b915a81.js → tus_client-65c5fc5e.js} +4 -4
- package/dist/tus_client-65c5fc5e.js.map +1 -0
- package/dist/{tus_client-19baa342.mjs → tus_client-d313689e.mjs} +40 -2
- package/dist/tus_client-d313689e.mjs.map +1 -0
- package/dist/types.d.ts +0 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/verify-hub-client.d.ts +1 -9
- package/dist/verify-hub-client.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/ndm_proxy-67651066.js +0 -13
- package/dist/ndm_proxy-67651066.js.map +0 -1
- package/dist/ndm_proxy-6b03b9ec.mjs.map +0 -1
- package/dist/ndn_types-324121ae.js +0 -2
- package/dist/ndn_types-324121ae.js.map +0 -1
- package/dist/ndn_types-ac9c1e48.mjs.map +0 -1
- package/dist/tus_client-19baa342.mjs.map +0 -1
- package/dist/tus_client-2b915a81.js.map +0 -1
package/dist/app-frame.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-frame.mjs","sources":["../src/app-frame.ts"],"sourcesContent":["import { isOpenRequest, type OpenRequest } from './content'\nexport interface AppFrameMessage<T extends string = string, P = unknown> {\n protocol: 'buckyos.app-frame'; version: 1; type: T; id?: string; replyTo?: string; payload: P\n}\nexport interface FrameInit {\n nonce: string\n windowId: string\n formFactor: 'desktop' | 'mobile'\n theme: { mode: 'light' | 'dark'; accent?: string }\n locale: string\n launch?: OpenRequest\n shellCapabilities: string[]\n}\nexport type CloseDecision = 'allow' | 'deny' | 'pending'\nconst envelope = (type: string, payload: unknown, extra: { id?: string; replyTo?: string } = {}): AppFrameMessage =>\n ({ protocol: 'buckyos.app-frame', version: 1, type, payload, ...extra })\nconst isMessage = (value: unknown): value is AppFrameMessage => {\n if (!value || typeof value !== 'object') return false\n const v = value as AppFrameMessage\n return v.protocol === 'buckyos.app-frame' && v.version === 1 && typeof v.type === 'string' && !!v.payload && typeof v.payload === 'object'\n}\nexport class AppFrameHost {\n ready = false\n capabilities: string[] = []\n private pending = new Map<string, { resolve: (v: unknown) => void; reject: (e: Error) => void; timer: ReturnType<typeof setTimeout>; type: string }>()\n private listener = (event: MessageEvent) => this.receive(event)\n private opens: number[] = []\n constructor(private options: {\n target: () => Window | null; origin: string; init: FrameInit\n onReady?: () => void\n onTitle?: (title: string, dirty: boolean) => void\n onRequestClose?: () => void\n onContentOpen?: (request: OpenRequest, target: 'default' | 'preview', newWindow: boolean) => void\n }) { window.addEventListener('message', this.listener) }\n private receive(event: MessageEvent): void {\n if (event.source !== this.options.target() || event.origin !== this.options.origin || !isMessage(event.data)) return\n const m = event.data\n const p = m.payload as Record<string, unknown>\n if (m.type === 'frame.hello') {\n if (p.nonce !== this.options.init.nonce || !Array.isArray(p.appCapabilities)) return\n this.ready = true\n this.capabilities = p.appCapabilities.filter((c): c is string => typeof c === 'string')\n this.send('frame.init', this.options.init)\n this.options.onReady?.()\n return\n }\n if (!this.ready) return\n if (m.replyTo) {\n const pending = this.pending.get(m.replyTo)\n if (pending && m.type === pending.type + 'Result') {\n clearTimeout(pending.timer); this.pending.delete(m.replyTo); pending.resolve(m.payload)\n }\n return\n }\n if (m.type === 'window.setTitle' && typeof p.title === 'string') this.options.onTitle?.(p.title.slice(0, 256), p.dirty === true)\n if (m.type === 'window.requestClose') this.options.onRequestClose?.()\n if (m.type === 'content.open' && (p.target === 'default' || p.target === 'preview')) {\n const request = { ...(p.request as object), requestId: crypto.randomUUID() }\n if (!isOpenRequest(request)) return\n this.opens = this.opens.filter(t => t > Date.now() - 10000)\n if (this.opens.length >= 5) return\n this.opens.push(Date.now())\n this.options.onContentOpen?.(request, p.target, p.newWindow === true)\n }\n }\n update(init: Partial<FrameInit>): void { this.options.init = { ...this.options.init, ...init } }\n send(type: string, payload: unknown): void {\n if (this.ready) this.options.target()?.postMessage(envelope(type, payload), this.options.origin)\n }\n request(type: string, payload: unknown, timeout = 3000): Promise<unknown> {\n if (!this.ready) return Promise.reject(new Error('App frame is not ready'))\n const id = crypto.randomUUID()\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => { this.pending.delete(id); reject(new Error('App frame timed out')) }, timeout)\n this.pending.set(id, { resolve, reject, timer, type })\n this.options.target()?.postMessage(envelope(type, payload, { id }), this.options.origin)\n })\n }\n async open(request: OpenRequest): Promise<{ accepted: boolean; fallback?: 'preview' }> {\n if (!this.capabilities.includes('open')) return { accepted: false }\n return await this.request('frame.open', { request }) as { accepted: boolean; fallback?: 'preview' }\n }\n async beforeClose(reason: 'user' | 'logout' | 'shell' = 'user'): Promise<CloseDecision> {\n if (!this.ready || !this.capabilities.includes('beforeClose')) return 'allow'\n const r = await this.request('frame.beforeClose', { reason }) as { decision?: CloseDecision }\n return r.decision === 'allow' || r.decision === 'pending' ? r.decision : 'deny'\n }\n async back(): Promise<boolean> {\n if (!this.capabilities.includes('back')) return false\n return (await this.request('frame.back', {}) as { handled?: boolean }).handled === true\n }\n dispose(): void {\n window.removeEventListener('message', this.listener)\n this.pending.forEach(p => { clearTimeout(p.timer); p.reject(new Error('App frame disposed')) })\n this.pending.clear(); this.ready = false\n }\n}\nexport class AppFrameClient {\n init?: FrameInit\n private helloTimer?: ReturnType<typeof setInterval>\n private helloDeadline?: ReturnType<typeof setTimeout>\n private readonly nonce: string | null\n private readonly origin: string\n private readonly listener = (event: MessageEvent) => { void this.receive(event) }\n constructor(private options: {\n shellOrigin: string\n onInit?: (init: FrameInit) => void\n onOpen?: (request: OpenRequest) => Promise<{ accepted: boolean; fallback?: 'preview' }> | { accepted: boolean; fallback?: 'preview' }\n onBeforeClose?: (reason: 'user' | 'logout' | 'shell') => Promise<CloseDecision> | CloseDecision\n onBack?: () => Promise<boolean> | boolean\n onTheme?: (theme: FrameInit['theme']) => void\n onLocale?: (locale: string) => void\n onFocus?: (focused: boolean) => void\n }) {\n this.origin = new URL(options.shellOrigin).origin\n this.nonce = new URLSearchParams(window.location.hash.slice(1)).get('bfp')\n window.addEventListener('message', this.listener)\n if (window.parent !== window && this.nonce) {\n const hello = () => window.parent.postMessage(envelope('frame.hello', { nonce: this.nonce, appCapabilities: [\n ...options.onOpen ? ['open'] : [], ...options.onBeforeClose ? ['beforeClose'] : [], ...options.onBack ? ['back'] : [],\n ] }), this.origin)\n hello()\n this.helloTimer = setInterval(hello, 250)\n this.helloDeadline = setTimeout(() => clearInterval(this.helloTimer), 1500)\n }\n }\n private async receive(event: MessageEvent): Promise<void> {\n if (event.source !== window.parent || event.origin !== this.origin || !isMessage(event.data)) return\n const m = event.data\n const p = m.payload as Record<string, unknown>\n if (m.type === 'frame.init') {\n if (!this.nonce || p.nonce !== this.nonce || typeof p.locale !== 'string' || !p.theme || typeof p.windowId !== 'string' || p.launch && !isOpenRequest(p.launch)) return\n clearInterval(this.helloTimer); clearTimeout(this.helloDeadline)\n this.init = p as unknown as FrameInit\n this.options.onInit?.(this.init)\n return\n }\n if (!this.init) return\n const reply = (payload: unknown) => window.parent.postMessage(envelope(m.type + 'Result', payload, { replyTo: m.id }), this.origin)\n try {\n if (m.type === 'frame.open' && isOpenRequest(p.request)) reply(await this.options.onOpen?.(p.request) ?? { accepted: false })\n if (m.type === 'frame.beforeClose') reply({ decision: await this.options.onBeforeClose?.(p.reason as 'user') ?? 'allow' })\n if (m.type === 'frame.back') reply({ handled: await this.options.onBack?.() ?? false })\n if (m.type === 'frame.themeChanged' && (p.mode === 'dark' || p.mode === 'light')) this.options.onTheme?.(p as FrameInit['theme'])\n if (m.type === 'frame.localeChanged' && typeof p.locale === 'string') this.options.onLocale?.(p.locale)\n if (m.type === 'frame.focusChanged') this.options.onFocus?.(p.focused === true)\n } catch {\n if (m.type === 'frame.open') reply({ accepted: false, fallback: 'preview' })\n if (m.type === 'frame.beforeClose') reply({ decision: 'deny' })\n }\n }\n send(type: string, payload: unknown): void {\n if (this.init) window.parent.postMessage(envelope(type, payload), this.origin)\n }\n setTitle(title: string, dirty = false): void { this.send('window.setTitle', { title, dirty }) }\n requestClose(): void { this.send('window.requestClose', {}) }\n openContent(request: Omit<OpenRequest, 'requestId'>, target: 'default' | 'preview' = 'default', newWindow = false): void {\n this.send('content.open', { request, target, newWindow })\n }\n dispose(): void { clearInterval(this.helloTimer); clearTimeout(this.helloDeadline); window.removeEventListener('message', this.listener) }\n}\n"],"names":[],"mappings":";AAcA,MAAM,WAAW,CAAC,MAAc,SAAkB,QAA2C,CAAA,OAC1F,EAAE,UAAU,qBAAqB,SAAS,GAAG,MAAM,SAAS,GAAG,MAAM;AACxE,MAAM,YAAY,CAAC,UAA6C;AAC1D,MAAA,CAAC,SAAS,OAAO,UAAU;AAAiB,WAAA;AAChD,QAAM,IAAI;AACV,SAAO,EAAE,aAAa,uBAAuB,EAAE,YAAY,KAAK,OAAO,EAAE,SAAS,YAAY,CAAC,CAAC,EAAE,WAAW,OAAO,EAAE,YAAY;AACpI;AACO,MAAM,aAAa;AAAA,EAMxB,YAAoB,SAMjB;AANiB,SAAA,UAAA;AALZ,SAAA,QAAA;AACR,SAAA,eAAyB;AACjB,SAAA,8BAAc;AACtB,SAAQ,WAAW,CAAC,UAAwB,KAAK,QAAQ,KAAK;AAC9D,SAAQ,QAAkB;AAOd,WAAA,iBAAiB,WAAW,KAAK,QAAQ;AAAA,EAAE;AAAA,EAC/C,QAAQ,OAA2B;;AACzC,QAAI,MAAM,WAAW,KAAK,QAAQ,OAAY,KAAA,MAAM,WAAW,KAAK,QAAQ,UAAU,CAAC,UAAU,MAAM,IAAI;AAAG;AAC9G,UAAM,IAAI,MAAM;AAChB,UAAM,IAAI,EAAE;AACR,QAAA,EAAE,SAAS,eAAe;AACxB,UAAA,EAAE,UAAU,KAAK,QAAQ,KAAK,SAAS,CAAC,MAAM,QAAQ,EAAE,eAAe;AAAG;AAC9E,WAAK,QAAQ;AACR,WAAA,eAAe,EAAE,gBAAgB,OAAO,CAAC,MAAmB,OAAO,MAAM,QAAQ;AACtF,WAAK,KAAK,cAAc,KAAK,QAAQ,IAAI;AACzC,uBAAK,SAAQ,YAAb;AACA;AAAA,IACF;AACA,QAAI,CAAC,KAAK;AAAO;AACjB,QAAI,EAAE,SAAS;AACb,YAAM,UAAU,KAAK,QAAQ,IAAI,EAAE,OAAO;AAC1C,UAAI,WAAW,EAAE,SAAS,QAAQ,OAAO,UAAU;AACjD,qBAAa,QAAQ,KAAK;AAAQ,aAAA,QAAQ,OAAO,EAAE,OAAO;AAAW,gBAAA,QAAQ,EAAE,OAAO;AAAA,MACxF;AACA;AAAA,IACF;AACA,QAAI,EAAE,SAAS,qBAAqB,OAAO,EAAE,UAAU;AAAe,uBAAA,SAAQ,YAAR,4BAAkB,EAAE,MAAM,MAAM,GAAG,GAAG,GAAG,EAAE,UAAU;AAC3H,QAAI,EAAE,SAAS;AAAuB,uBAAK,SAAQ,mBAAb;AAClC,QAAA,EAAE,SAAS,mBAAmB,EAAE,WAAW,aAAa,EAAE,WAAW,YAAY;AAC7E,YAAA,UAAU,EAAE,GAAI,EAAE,SAAoB,WAAW,OAAO;AAC1D,UAAA,CAAC,cAAc,OAAO;AAAG;AACxB,WAAA,QAAQ,KAAK,MAAM,OAAO,OAAK,IAAI,KAAK,IAAI,IAAI,GAAK;AACtD,UAAA,KAAK,MAAM,UAAU;AAAG;AAC5B,WAAK,MAAM,KAAK,KAAK,IAAK,CAAA;AAC1B,uBAAK,SAAQ,kBAAb,4BAA6B,SAAS,EAAE,QAAQ,EAAE,cAAc;AAAA,IAClE;AAAA,EACF;AAAA,EACA,OAAO,MAAgC;AAAO,SAAA,QAAQ,OAAO,EAAE,GAAG,KAAK,QAAQ,MAAM,GAAG;EAAO;AAAA,EAC/F,KAAK,MAAc,SAAwB;;AACzC,QAAI,KAAK;AAAY,iBAAA,QAAQ,OAAO,MAAf,mBAAkB,YAAY,SAAS,MAAM,OAAO,GAAG,KAAK,QAAQ;AAAA,EAC3F;AAAA,EACA,QAAQ,MAAc,SAAkB,UAAU,KAAwB;AACxE,QAAI,CAAC,KAAK;AAAO,aAAO,QAAQ,OAAO,IAAI,MAAM,wBAAwB,CAAC;AACpE,UAAA,KAAK,OAAO;AAClB,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;;AAChC,YAAA,QAAQ,WAAW,MAAM;AAAO,aAAA,QAAQ,OAAO,EAAE;AAAU,eAAA,IAAI,MAAM,qBAAqB,CAAC;AAAA,SAAK,OAAO;AACxG,WAAA,QAAQ,IAAI,IAAI,EAAE,SAAS,QAAQ,OAAO,MAAM;AACrD,iBAAK,QAAQ,OAAU,MAAvB,mBAAuB,YAAY,SAAS,MAAM,SAAS,EAAE,GAAG,CAAC,GAAG,KAAK,QAAQ;AAAA,IAAM,CACxF;AAAA,EACH;AAAA,EACA,MAAM,KAAK,SAA4E;AACrF,QAAI,CAAC,KAAK,aAAa,SAAS,MAAM;AAAU,aAAA,EAAE,UAAU;AAC5D,WAAO,MAAM,KAAK,QAAQ,cAAc,EAAE,QAAS,CAAA;AAAA,EACrD;AAAA,EACA,MAAM,YAAY,SAAsC,QAAgC;AACtF,QAAI,CAAC,KAAK,SAAS,CAAC,KAAK,aAAa,SAAS,aAAa;AAAU,aAAA;AACtE,UAAM,IAAI,MAAM,KAAK,QAAQ,qBAAqB,EAAE,QAAQ;AAC5D,WAAO,EAAE,aAAa,WAAW,EAAE,aAAa,YAAY,EAAE,WAAW;AAAA,EAC3E;AAAA,EACA,MAAM,OAAyB;AAC7B,QAAI,CAAC,KAAK,aAAa,SAAS,MAAM;AAAU,aAAA;AAChD,YAAQ,MAAM,KAAK,QAAQ,cAAc,EAAE,GAA4B,YAAY;AAAA,EACrF;AAAA,EACA,UAAgB;AACP,WAAA,oBAAoB,WAAW,KAAK,QAAQ;AAC9C,SAAA,QAAQ,QAAQ,CAAK,MAAA;AAAE,mBAAa,EAAE,KAAK;AAAG,QAAE,OAAO,IAAI,MAAM,oBAAoB,CAAC;AAAA,IAAA,CAAG;AAC9F,SAAK,QAAQ;AAAS,SAAK,QAAQ;AAAA,EACrC;AACF;AACO,MAAM,eAAe;AAAA,EAO1B,YAAoB,SASjB;AATiB,SAAA,UAAA;AADH,SAAA,WAAW,CAAC,UAAwB;AAAO,WAAA,KAAK,QAAQ,KAAK;AAAA,IAAA;AAW5E,SAAK,SAAS,IAAI,IAAI,QAAQ,WAAW,EAAE;AACtC,SAAA,QAAQ,IAAI,gBAAgB,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,KAAK;AAClE,WAAA,iBAAiB,WAAW,KAAK,QAAQ;AAChD,QAAI,OAAO,WAAW,UAAU,KAAK,OAAO;AACpC,YAAA,QAAQ,MAAM,OAAO,OAAO,YAAY,SAAS,eAAe,EAAE,OAAO,KAAK,OAAO,iBAAiB;AAAA,QAC1G,GAAG,QAAQ,SAAS,CAAC,MAAM,IAAI,CAAC;AAAA,QAAG,GAAG,QAAQ,gBAAgB,CAAC,aAAa,IAAI,CAAC;AAAA,QAAG,GAAG,QAAQ,SAAS,CAAC,MAAM,IAAI,CAAC;AAAA,MAAA,GACnH,GAAG,KAAK,MAAM;AACX;AACD,WAAA,aAAa,YAAY,OAAO,GAAG;AACxC,WAAK,gBAAgB,WAAW,MAAM,cAAc,KAAK,UAAU,GAAG,IAAI;AAAA,IAC5E;AAAA,EACF;AAAA,EACA,MAAc,QAAQ,OAAoC;;AACpD,QAAA,MAAM,WAAW,OAAO,UAAU,MAAM,WAAW,KAAK,UAAU,CAAC,UAAU,MAAM,IAAI;AAAG;AAC9F,UAAM,IAAI,MAAM;AAChB,UAAM,IAAI,EAAE;AACR,QAAA,EAAE,SAAS,cAAc;AACvB,UAAA,CAAC,KAAK,SAAS,EAAE,UAAU,KAAK,SAAS,OAAO,EAAE,WAAW,YAAY,CAAC,EAAE,SAAS,OAAO,EAAE,aAAa,YAAY,EAAE,UAAU,CAAC,cAAc,EAAE,MAAM;AAAG;AACjK,oBAAc,KAAK,UAAU;AAAG,mBAAa,KAAK,aAAa;AAC/D,WAAK,OAAO;AACP,uBAAA,SAAQ,WAAR,4BAAiB,KAAK;AAC3B;AAAA,IACF;AACA,QAAI,CAAC,KAAK;AAAM;AAChB,UAAM,QAAQ,CAAC,YAAqB,OAAO,OAAO,YAAY,SAAS,EAAE,OAAO,UAAU,SAAS,EAAE,SAAS,EAAE,IAAI,GAAG,KAAK,MAAM;AAC9H,QAAA;AACF,UAAI,EAAE,SAAS,gBAAgB,cAAc,EAAE,OAAO;AAAS,cAAA,QAAM,gBAAK,SAAQ,WAAb,4BAAsB,EAAE,aAAY,EAAE,UAAU,MAAA,CAAO;AAC5H,UAAI,EAAE,SAAS;AAA2B,cAAA,EAAE,UAAU,QAAM,gBAAK,SAAQ,kBAAb,4BAA6B,EAAE,YAAqB,QAAA,CAAS;AACzH,UAAI,EAAE,SAAS;AAAoB,cAAA,EAAE,SAAS,QAAM,gBAAK,SAAQ,WAAb,gCAA2B,OAAO;AACtF,UAAI,EAAE,SAAS,yBAAyB,EAAE,SAAS,UAAU,EAAE,SAAS;AAAe,yBAAA,SAAQ,YAAR,4BAAkB;AACzG,UAAI,EAAE,SAAS,yBAAyB,OAAO,EAAE,WAAW;AAAe,yBAAA,SAAQ,aAAR,4BAAmB,EAAE;AAChG,UAAI,EAAE,SAAS;AAAsB,yBAAK,SAAQ,YAAb,4BAAuB,EAAE,YAAY;AAAA,IAAI,QACxE;AACN,UAAI,EAAE,SAAS;AAAc,cAAM,EAAE,UAAU,OAAO,UAAU,UAAW,CAAA;AAC3E,UAAI,EAAE,SAAS;AAA2B,cAAA,EAAE,UAAU,OAAA,CAAQ;AAAA,IAChE;AAAA,EACF;AAAA,EACA,KAAK,MAAc,SAAwB;AACzC,QAAI,KAAK;AAAM,aAAO,OAAO,YAAY,SAAS,MAAM,OAAO,GAAG,KAAK,MAAM;AAAA,EAC/E;AAAA,EACA,SAAS,OAAe,QAAQ,OAAa;AAAE,SAAK,KAAK,mBAAmB,EAAE,OAAO,MAAO,CAAA;AAAA,EAAE;AAAA,EAC9F,eAAqB;AAAO,SAAA,KAAK,uBAAuB,CAAA,CAAE;AAAA,EAAE;AAAA,EAC5D,YAAY,SAAyC,SAAgC,WAAW,YAAY,OAAa;AACvH,SAAK,KAAK,gBAAgB,EAAE,SAAS,QAAQ,WAAW;AAAA,EAC1D;AAAA,EACA,UAAgB;AAAE,kBAAc,KAAK,UAAU;AAAG,iBAAa,KAAK,aAAa;AAAU,WAAA,oBAAoB,WAAW,KAAK,QAAQ;AAAA,EAAE;AAC3I;"}
|
|
1
|
+
{"version":3,"file":"app-frame.mjs","sources":["../src/app-frame.ts"],"sourcesContent":["import { isOpenRequest, isTransferableRef, isTransferableSession, readContentHints, systemOpenUrl, type ContentHints, type ContentOpenTarget, type OpenRequest, type TransferableContentRef, type TransferableSessionContext } from './content'\nexport interface AppFrameMessage<T extends string = string, P = unknown> {\n protocol: 'buckyos.app-frame'; version: 1; type: T; id?: string; replyTo?: string; payload: P\n}\nexport interface FrameInit {\n nonce: string\n windowId: string\n formFactor: 'desktop' | 'mobile'\n theme: { mode: 'light' | 'dark'; accent?: string }\n locale: string\n launch?: OpenRequest\n shellCapabilities: string[]\n}\nexport type CloseDecision = 'allow' | 'deny' | 'pending'\nconst envelope = (type: string, payload: unknown, extra: { id?: string; replyTo?: string } = {}): AppFrameMessage =>\n ({ protocol: 'buckyos.app-frame', version: 1, type, payload, ...extra })\nconst isMessage = (value: unknown): value is AppFrameMessage => {\n if (!value || typeof value !== 'object') return false\n const v = value as AppFrameMessage\n return v.protocol === 'buckyos.app-frame' && v.version === 1 && typeof v.type === 'string' && !!v.payload && typeof v.payload === 'object'\n}\nexport class AppFrameHost {\n ready = false\n capabilities: string[] = []\n private pending = new Map<string, { resolve: (v: unknown) => void; reject: (e: Error) => void; timer: ReturnType<typeof setTimeout>; type: string }>()\n private listener = (event: MessageEvent) => this.receive(event)\n private opens: number[] = []\n constructor(private options: {\n target: () => Window | null; origin: string; init: FrameInit\n onReady?: () => void\n onTitle?: (title: string, dirty: boolean) => void\n onRequestClose?: () => void\n onContentOpen?: (request: OpenRequest, target: ContentOpenTarget, options: { newWindow: boolean; hints: ContentHints }) => void\n }) { window.addEventListener('message', this.listener) }\n private focused?: boolean\n private receive(event: MessageEvent): void {\n if (event.source !== this.options.target() || event.origin !== this.options.origin || !isMessage(event.data)) return\n const m = event.data\n const p = m.payload as Record<string, unknown>\n if (m.type === 'frame.hello') {\n if (p.nonce !== this.options.init.nonce || !Array.isArray(p.appCapabilities)) return\n this.ready = true\n this.capabilities = p.appCapabilities.filter((c): c is string => typeof c === 'string')\n this.send('frame.init', this.options.init)\n if (this.focused !== undefined) this.send('frame.focusChanged', { focused: this.focused })\n this.options.onReady?.()\n return\n }\n if (!this.ready) return\n if (m.replyTo) {\n const pending = this.pending.get(m.replyTo)\n if (pending && m.type === pending.type + 'Result') {\n clearTimeout(pending.timer); this.pending.delete(m.replyTo); pending.resolve(m.payload)\n }\n return\n }\n if (m.type === 'window.setTitle' && typeof p.title === 'string') this.options.onTitle?.(p.title.slice(0, 256), p.dirty === true)\n if (m.type === 'window.requestClose') this.options.onRequestClose?.()\n if (m.type === 'content.open' && (p.target === 'default' || p.target === 'preview' || p.target === 'chooser')) {\n const request = { ...(p.request as object), requestId: crypto.randomUUID() }\n if (!isOpenRequest(request)) return\n this.opens = this.opens.filter(t => t > Date.now() - 10000)\n if (this.opens.length >= 5) return\n this.opens.push(Date.now())\n this.options.onContentOpen?.(request, p.target, { newWindow: p.newWindow === true, hints: readContentHints(p.hints) })\n }\n }\n update(init: Partial<FrameInit>): void { this.options.init = { ...this.options.init, ...init } }\n /** Reports whether the App's window is the focused one; only a change is sent. */\n setFocused(focused: boolean): void {\n if (this.focused === focused) return\n this.focused = focused\n this.send('frame.focusChanged', { focused })\n }\n send(type: string, payload: unknown): void {\n if (this.ready) this.options.target()?.postMessage(envelope(type, payload), this.options.origin)\n }\n request(type: string, payload: unknown, timeout = 3000): Promise<unknown> {\n if (!this.ready) return Promise.reject(new Error('App frame is not ready'))\n const id = crypto.randomUUID()\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => { this.pending.delete(id); reject(new Error('App frame timed out')) }, timeout)\n this.pending.set(id, { resolve, reject, timer, type })\n this.options.target()?.postMessage(envelope(type, payload, { id }), this.options.origin)\n })\n }\n async open(request: OpenRequest): Promise<{ accepted: boolean; fallback?: 'preview' }> {\n if (!this.capabilities.includes('open')) return { accepted: false }\n return await this.request('frame.open', { request }) as { accepted: boolean; fallback?: 'preview' }\n }\n async beforeClose(reason: 'user' | 'logout' | 'shell' = 'user'): Promise<CloseDecision> {\n if (!this.ready || !this.capabilities.includes('beforeClose')) return 'allow'\n const r = await this.request('frame.beforeClose', { reason }) as { decision?: CloseDecision }\n return r.decision === 'allow' || r.decision === 'pending' ? r.decision : 'deny'\n }\n async back(): Promise<boolean> {\n if (!this.capabilities.includes('back')) return false\n return (await this.request('frame.back', {}) as { handled?: boolean }).handled === true\n }\n dispose(): void {\n window.removeEventListener('message', this.listener)\n this.pending.forEach(p => { clearTimeout(p.timer); p.reject(new Error('App frame disposed')) })\n this.pending.clear(); this.ready = false\n }\n}\n/**\n * Origin of the window embedding this page, when `accept` admits it. `location.ancestorOrigins` names the real\n * parent even after the frame navigated through other pages (a sign-in round trip); the referrer is the fallback.\n */\nexport function embedderOrigin(accept: (origin: string) => boolean): string | null {\n if (window.parent === window) return null\n const candidates = [window.location.ancestorOrigins?.[0], document.referrer]\n for (const candidate of candidates) {\n if (!candidate) continue\n try {\n const origin = new URL(candidate).origin\n if (accept(origin)) return origin\n } catch {}\n }\n return null\n}\nexport const originInZone = (origin: string, zoneHost: string): boolean => {\n try {\n const url = new URL(origin)\n return url.protocol === window.location.protocol && (url.hostname === zoneHost || url.hostname.endsWith(`.${zoneHost}`))\n } catch { return false }\n}\nexport class AppFrameClient {\n init?: FrameInit\n private title?: string\n private focused?: boolean\n private helloTimer?: ReturnType<typeof setInterval>\n private helloDeadline?: ReturnType<typeof setTimeout>\n private readonly nonce: string | null\n private readonly origin: string\n private readonly listener = (event: MessageEvent) => { void this.receive(event) }\n constructor(private options: {\n shellOrigin: string\n /** The Zone's system entry (its root origin): where content is opened when this page is not embedded in the shell. */\n systemOrigin?: string\n /** This App's id, so the system does not offer the content back to it. */\n appId?: string\n onInit?: (init: FrameInit) => void\n onOpen?: (request: OpenRequest) => Promise<{ accepted: boolean; fallback?: 'preview' }> | { accepted: boolean; fallback?: 'preview' }\n onBeforeClose?: (reason: 'user' | 'logout' | 'shell') => Promise<CloseDecision> | CloseDecision\n onBack?: () => Promise<boolean> | boolean\n onTheme?: (theme: FrameInit['theme']) => void\n onLocale?: (locale: string) => void\n onFocus?: (focused: boolean) => void\n }) {\n this.origin = new URL(options.shellOrigin).origin\n this.nonce = new URLSearchParams(window.location.hash.slice(1)).get('bfp')\n window.addEventListener('message', this.listener)\n if (window.parent !== window && this.nonce) {\n const hello = () => window.parent.postMessage(envelope('frame.hello', { nonce: this.nonce, appCapabilities: [\n ...options.onOpen ? ['open'] : [], ...options.onBeforeClose ? ['beforeClose'] : [], ...options.onBack ? ['back'] : [],\n ] }), this.origin)\n hello()\n this.helloTimer = setInterval(hello, 250)\n this.helloDeadline = setTimeout(() => clearInterval(this.helloTimer), 1500)\n }\n }\n private async receive(event: MessageEvent): Promise<void> {\n if (event.source !== window.parent || event.origin !== this.origin || !isMessage(event.data)) return\n const m = event.data\n const p = m.payload as Record<string, unknown>\n if (m.type === 'frame.init') {\n if (!this.nonce || p.nonce !== this.nonce || typeof p.locale !== 'string' || !p.theme || typeof p.windowId !== 'string' || p.launch && !isOpenRequest(p.launch)) return\n clearInterval(this.helloTimer); clearTimeout(this.helloDeadline)\n this.init = p as unknown as FrameInit\n this.title = undefined; this.focused = undefined\n this.options.onInit?.(this.init)\n return\n }\n if (!this.init) return\n const reply = (payload: unknown) => window.parent.postMessage(envelope(m.type + 'Result', payload, { replyTo: m.id }), this.origin)\n try {\n if (m.type === 'frame.open' && isOpenRequest(p.request)) reply(await this.options.onOpen?.(p.request) ?? { accepted: false })\n if (m.type === 'frame.beforeClose') reply({ decision: await this.options.onBeforeClose?.(p.reason as 'user') ?? 'allow' })\n if (m.type === 'frame.back') reply({ handled: await this.options.onBack?.() ?? false })\n if (m.type === 'frame.themeChanged' && (p.mode === 'dark' || p.mode === 'light')) this.options.onTheme?.(p as FrameInit['theme'])\n if (m.type === 'frame.localeChanged' && typeof p.locale === 'string') this.options.onLocale?.(p.locale)\n if (m.type === 'frame.focusChanged' && this.focused !== (p.focused === true)) { this.focused = p.focused === true; this.options.onFocus?.(this.focused) }\n } catch {\n if (m.type === 'frame.open') reply({ accepted: false, fallback: 'preview' })\n if (m.type === 'frame.beforeClose') reply({ decision: 'deny' })\n }\n }\n send(type: string, payload: unknown): void {\n if (this.init) window.parent.postMessage(envelope(type, payload), this.origin)\n }\n setTitle(title: string, dirty = false): void {\n const key = JSON.stringify([title, dirty])\n if (!this.init || key === this.title) return\n this.title = key\n this.send('window.setTitle', { title, dirty })\n }\n requestClose(): void { this.send('window.requestClose', {}) }\n /**\n * Asks the system to open content: with its default app, in Preview, or by letting the user choose (`chooser`).\n * Embedded in the shell the request goes over the frame; in a standalone tab it opens the Zone's system entry\n * (`systemOrigin`) in a new tab. Returns false when neither is available.\n */\n openContent(request: Omit<OpenRequest, 'requestId'>, target: ContentOpenTarget = 'default', options: { newWindow?: boolean; hints?: ContentHints } = {}): boolean {\n const hints = options.hints ?? {}\n if (this.init) { this.send('content.open', { request, target, newWindow: options.newWindow === true, hints }); return true }\n if (!this.options.systemOrigin) return false\n window.open(systemOpenUrl(this.options.systemOrigin, { request, target, hints, from: this.options.appId }), '_blank', 'noopener')\n return true\n }\n dispose(): void { clearInterval(this.helloTimer); clearTimeout(this.helloDeadline); window.removeEventListener('message', this.listener) }\n}\n\n/**\n * Preview embed protocol (`buckyos.preview-embed` v1): an App shows the system Preview component inside its own UI.\n * The App frames `<systemOrigin>/embed/preview` (component only, no shell) and hands it a content reference; the\n * system page reads the content with its own Zone-root session, so no token crosses origins. Open With goes back\n * through the App to the shell (`AppFrameClient.openContent(…, 'chooser')`).\n */\nexport type PreviewEmbedSource = TransferableContentRef | { kind: 'blob'; blob: Blob; name: string }\nexport interface PreviewEmbedInit {\n nonce: string\n source: PreviewEmbedSource\n session?: TransferableSessionContext\n theme: 'light' | 'dark'\n locale: string\n}\nexport interface PreviewEmbedState {\n status: 'loading' | 'ready' | 'error'\n /** Preview error kind (`unsupported`, `not-found`, `permission-denied`, `timeout`, `error`, …) and code. */\n error?: { kind: string; code: string }\n title?: string\n mediaType?: string\n}\nexport interface PreviewEmbedOpenWith { request: Omit<OpenRequest, 'requestId'>; hints: ContentHints }\nconst PREVIEW_EMBED = 'buckyos.preview-embed'\nconst embedEnvelope = (type: string, payload: unknown) => ({ protocol: PREVIEW_EMBED, version: 1, type, payload })\nconst isEmbedMessage = (value: unknown): value is { type: string; payload: Record<string, unknown> } => {\n const v = value as { protocol?: unknown; version?: unknown; type?: unknown; payload?: unknown } | null\n return !!v && v.protocol === PREVIEW_EMBED && v.version === 1 && typeof v.type === 'string' && !!v.payload && typeof v.payload === 'object'\n}\nconst isEmbedSource = (value: unknown): value is PreviewEmbedSource =>\n isTransferableRef(value) || (!!value && typeof value === 'object' && (value as { kind?: unknown }).kind === 'blob' &&\n typeof Blob !== 'undefined' && (value as { blob?: unknown }).blob instanceof Blob && typeof (value as { name?: unknown }).name === 'string')\nexport const PREVIEW_EMBED_PATH = '/embed/preview'\n\n/** App side: owns the iframe that shows the system Preview. */\nexport class PreviewEmbed {\n readonly url: string\n private readonly nonce = crypto.randomUUID()\n private readonly origin: string\n private readonly listener = (event: MessageEvent) => this.receive(event)\n private init: Omit<PreviewEmbedInit, 'nonce'>\n constructor(private options: {\n systemOrigin: string\n frame: () => HTMLIFrameElement | null\n init: Omit<PreviewEmbedInit, 'nonce'>\n onState?: (state: PreviewEmbedState) => void\n onOpenWith?: (open: PreviewEmbedOpenWith) => void\n onExit?: () => void\n }) {\n this.origin = new URL(options.systemOrigin).origin\n this.init = options.init\n this.url = `${this.origin}${PREVIEW_EMBED_PATH}#bpe=${this.nonce}&po=${encodeURIComponent(window.location.origin)}`\n window.addEventListener('message', this.listener)\n }\n private post(type: string, payload: unknown): void {\n this.options.frame()?.contentWindow?.postMessage(embedEnvelope(type, payload), this.origin)\n }\n private receive(event: MessageEvent): void {\n if (event.origin !== this.origin || event.source !== this.options.frame()?.contentWindow || !isEmbedMessage(event.data)) return\n const { type, payload: p } = event.data\n if (type === 'embed.hello') { if (p.nonce === this.nonce) this.post('embed.init', { ...this.init, nonce: this.nonce }); return }\n if (type === 'embed.state' && (p.status === 'loading' || p.status === 'ready' || p.status === 'error')) {\n const error = p.error as { kind?: unknown; code?: unknown } | undefined\n this.options.onState?.({ status: p.status,\n error: error && typeof error.kind === 'string' && typeof error.code === 'string' ? { kind: error.kind, code: error.code } : undefined,\n title: typeof p.title === 'string' ? p.title.slice(0, 256) : undefined, mediaType: typeof p.mediaType === 'string' ? p.mediaType.slice(0, 128) : undefined })\n }\n if (type === 'embed.openWith') {\n const request = p.request as Omit<OpenRequest, 'requestId'> | undefined\n if (request && isTransferableRef(request.source) && (request.session === undefined || isTransferableSession(request.session))) {\n this.options.onOpenWith?.({ request: { source: request.source, session: request.session }, hints: readContentHints(p.hints) })\n }\n }\n if (type === 'embed.exit') this.options.onExit?.()\n }\n update(patch: Partial<Pick<PreviewEmbedInit, 'theme' | 'locale'>>): void {\n this.init = { ...this.init, ...patch }\n this.post('embed.update', patch)\n }\n dispose(): void { window.removeEventListener('message', this.listener) }\n}\n\n/** System side: the component-only page at `PREVIEW_EMBED_PATH`. Accepts one embedding App whose origin `accept` admits. */\nexport class PreviewEmbedHost {\n readonly parentOrigin: string | null\n private readonly nonce: string | null\n private ready = false\n private readonly hello?: ReturnType<typeof setInterval>\n private readonly listener = (event: MessageEvent) => this.receive(event)\n constructor(private options: {\n accept: (origin: string) => boolean\n onInit: (init: PreviewEmbedInit) => void\n onUpdate?: (patch: Partial<Pick<PreviewEmbedInit, 'theme' | 'locale'>>) => void\n }) {\n const params = new URLSearchParams(window.location.hash.slice(1))\n this.nonce = params.get('bpe')\n let parentOrigin: string | null = null\n try { parentOrigin = new URL(params.get('po') ?? '').origin } catch {}\n this.parentOrigin = window.parent !== window && this.nonce && parentOrigin && options.accept(parentOrigin) ? parentOrigin : null\n if (!this.parentOrigin) return\n window.addEventListener('message', this.listener)\n const hello = () => window.parent.postMessage(embedEnvelope('embed.hello', { nonce: this.nonce }), this.parentOrigin!)\n hello()\n this.hello = setInterval(() => { if (!this.ready) hello() }, 250)\n }\n private receive(event: MessageEvent): void {\n if (event.source !== window.parent || event.origin !== this.parentOrigin || !isEmbedMessage(event.data)) return\n const { type, payload: p } = event.data\n if (type === 'embed.init') {\n if (p.nonce !== this.nonce || !isEmbedSource(p.source) || (p.session !== undefined && !isTransferableSession(p.session)) || typeof p.locale !== 'string') return\n this.ready = true; clearInterval(this.hello)\n this.options.onInit({ nonce: String(p.nonce), source: p.source, session: p.session as TransferableSessionContext | undefined, theme: p.theme === 'dark' ? 'dark' : 'light', locale: p.locale })\n return\n }\n if (type === 'embed.update' && this.ready) {\n const patch: Partial<Pick<PreviewEmbedInit, 'theme' | 'locale'>> = {}\n if (p.theme === 'dark' || p.theme === 'light') patch.theme = p.theme\n if (typeof p.locale === 'string') patch.locale = p.locale\n this.options.onUpdate?.(patch)\n }\n }\n private post(type: string, payload: unknown): void {\n if (this.ready && this.parentOrigin) window.parent.postMessage(embedEnvelope(type, payload), this.parentOrigin)\n }\n state(state: PreviewEmbedState): void { this.post('embed.state', state) }\n openWith(open: PreviewEmbedOpenWith): void { this.post('embed.openWith', open) }\n exit(): void { this.post('embed.exit', {}) }\n dispose(): void { clearInterval(this.hello); window.removeEventListener('message', this.listener) }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/browser.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ndm_proxy-67651066.js"),t=require("./ndn_types-324121ae.js"),_=e.createSDKModule("browser"),o=_.buckyos,s=_.initBuckyOS,r=_.getBuckyOSConfig,E=_.getRuntimeType,A=_.getAppId,T=_.getAppDid,S=_.getAppInstanceId,p=_.getAppDataDir,i=_.getKEventClient,n=_.createEventReader,C=_.create_event_reader,I=_.subscribeKEvent,a=_.attachEvent,O=_.removeEvent,x=_.getAccountInfo,R=_.getCurrentIdentity,D=_.loginByPassword,N=_.loginByBrowserSSO,c=_.loginByRuntimeSession,M=_.login,l=_.logout,u=_.getAppSetting,d=_.setAppSetting,P=_.getCurrentWalletUser,K=_.resolve_did,L=_.walletSignWithActiveDid,H=_.openExternalUrl,g=_.getZoneHostName,U=_.getZoneServiceURL,y=_.getServiceRpcClient,k=_.getVerifyHubClient,B=_.getSystemConfigClient,m=_.getTaskManagerClient,F=_.getWorkflowClient;exports.ACCESS_DENIED_ERROR_CODE=e.ACCESS_DENIED_ERROR_CODE,exports.AGENT_DELEGATE_TASK_SCHEMA_ID=e.AGENT_DELEGATE_TASK_SCHEMA_ID,exports.AICC_AI_METHODS=e.AICC_AI_METHODS,exports.AICC_COMPUTE_TASK_SCHEMA_ID=e.AICC_COMPUTE_TASK_SCHEMA_ID,exports.AICC_CORE_METHODS=e.AICC_CORE_METHODS,exports.AICC_EXECUTION_MODES=e.AICC_EXECUTION_MODES,exports.AICC_FEATURES=e.AICC_FEATURES,exports.AICC_MANAGEMENT_METHODS=e.AICC_MANAGEMENT_METHODS,exports.AICC_METHODS=e.AICC_METHODS,exports.AICC_POLICY_REFUSAL_CODES=e.AICC_POLICY_REFUSAL_CODES,exports.AICC_QUOTA_METHODS=e.AICC_QUOTA_METHODS,exports.AICC_SERVICE_SERVICE_NAME=e.AICC_SERVICE_SERVICE_NAME,exports.AICC_SERVICE_SERVICE_PORT=e.AICC_SERVICE_SERVICE_PORT,exports.AICC_SERVICE_UNIQUE_ID=e.AICC_SERVICE_UNIQUE_ID,exports.ANONYMOUS_IDENTITY=e.ANONYMOUS_IDENTITY,exports.APP_INSTALL_TASK_SCHEMA_ID=e.APP_INSTALL_TASK_SCHEMA_ID,exports.APP_START_TASK_SCHEMA_ID=e.APP_START_TASK_SCHEMA_ID,exports.APP_UNINSTALL_TASK_SCHEMA_ID=e.APP_UNINSTALL_TASK_SCHEMA_ID,exports.APP_UPDATE_BATCH_TASK_SCHEMA_ID=e.APP_UPDATE_BATCH_TASK_SCHEMA_ID,exports.APP_UPDATE_TASK_SCHEMA_ID=e.APP_UPDATE_TASK_SCHEMA_ID,exports.AiccClient=e.AiccClient,exports.BNS_DNS_TXT_DEFAULT_TTL=e.BNS_DNS_TXT_DEFAULT_TTL,exports.BNS_DNS_TXT_DOC_TYPE=e.BNS_DNS_TXT_DOC_TYPE,exports.BNS_EVM_DEFAULT_GAS_LIMIT=e.BNS_EVM_DEFAULT_GAS_LIMIT,exports.BNS_EVM_DEFAULT_MAX_FEE_PER_GAS=e.BNS_EVM_DEFAULT_MAX_FEE_PER_GAS,exports.BNS_EVM_DEFAULT_MAX_PRIORITY_FEE_PER_GAS=e.BNS_EVM_DEFAULT_MAX_PRIORITY_FEE_PER_GAS,exports.BNS_MAX_INLINE_DOCUMENT_BYTES=e.BNS_MAX_INLINE_DOCUMENT_BYTES,exports.BNS_PUBLISH_DOCUMENT_ABI=e.BNS_PUBLISH_DOCUMENT_ABI,exports.BS_SERVICE_TASK_MANAGER=e.BS_SERVICE_TASK_MANAGER,exports.BS_SERVICE_VERIFY_HUB=e.BS_SERVICE_VERIFY_HUB,exports.BnsEvmTxBuilder=e.BnsEvmTxBuilder,exports.BnsEvmTxError=e.BnsEvmTxError,exports.BnsTxExecutor=e.BnsTxExecutor,exports.BnsTxExecutorError=e.BnsTxExecutorError,exports.BuckyOSSDK=e.BuckyOSSDK,exports.CONTACT_CHANGED_EVENT_BOX=e.CONTACT_CHANGED_EVENT_BOX,exports.CONTACT_TAG_HOMESTATION_FOLLOWING=e.CONTACT_TAG_HOMESTATION_FOLLOWING,exports.CONTACT_TAG_ZONE_AGENT=e.CONTACT_TAG_ZONE_AGENT,exports.CONTACT_TAG_ZONE_USER=e.CONTACT_TAG_ZONE_USER,exports.DEFAULT_CHILD_CONTROL_POLICY=e.DEFAULT_CHILD_CONTROL_POLICY,exports.DEFAULT_JUMP_BASE_URL=e.DEFAULT_JUMP_BASE_URL,exports.DENY_REASONS=e.DENY_REASONS,exports.DOWNLOAD_TASK_SCHEMA_ID=e.DOWNLOAD_TASK_SCHEMA_ID,exports.EXTERNAL_PRINCIPAL_CLAIM=e.EXTERNAL_PRINCIPAL_CLAIM,exports.FRIEND_INTENT=e.FRIEND_INTENT,exports.HUMAN_APPROVAL_SCHEMA_ID=e.HUMAN_APPROVAL_SCHEMA_ID,exports.HUMAN_INPUT_TASK_SCHEMA_ID=e.HUMAN_INPUT_TASK_SCHEMA_ID,exports.JUMP_ACTION_PATHS=e.JUMP_ACTION_PATHS,exports.KEventClient=e.KEventClient,exports.KEventReader=e.KEventReader,exports.MsgCenterClient=e.MsgCenterClient,exports.MsgQueueClient=e.MsgQueueClient,exports.NOTIFY_ACTION_ANSWER=e.NOTIFY_ACTION_ANSWER,exports.NOTIFY_ACTION_DISMISS=e.NOTIFY_ACTION_DISMISS,exports.NOTIFY_CHOICE_CONTROL_ID=e.NOTIFY_CHOICE_CONTROL_ID,exports.NOTIFY_DATA_VERSION=e.NOTIFY_DATA_VERSION,exports.NOTIFY_DELIVERED_INTENT=e.NOTIFY_DELIVERED_INTENT,exports.NOTIFY_INTENT=e.NOTIFY_INTENT,exports.NOTIFY_LINK_PATH=e.NOTIFY_LINK_PATH,exports.NOTIFY_SESSION_PREFIX=e.NOTIFY_SESSION_PREFIX,exports.NOTIFY_TEXT_CONTROL_ID=e.NOTIFY_TEXT_CONTROL_ID,exports.OPENDAN_ASYNC_TOOL_TASK_SCHEMA_ID=e.OPENDAN_ASYNC_TOOL_TASK_SCHEMA_ID,exports.OPENDAN_COMMAND_TASK_SCHEMA_ID=e.OPENDAN_COMMAND_TASK_SCHEMA_ID,exports.RAW_TASK_SCHEMA_ID=e.RAW_TASK_SCHEMA_ID,exports.RPCError=e.RPCError,exports.RepoClient=e.RepoClient,exports.RuntimeType=e.RuntimeType,exports.SCHEDULER_DISPATCH_THUNK_TASK_SCHEMA_ID=e.SCHEDULER_DISPATCH_THUNK_TASK_SCHEMA_ID,exports.StorageDomain=e.StorageDomain,exports.SystemConfigClient=e.SystemConfigClient,exports.TASK_ERR_ALREADY_COMPLETED=e.TASK_ERR_ALREADY_COMPLETED,exports.TASK_ERR_CONTROL_ALREADY_PENDING=e.TASK_ERR_CONTROL_ALREADY_PENDING,exports.TASK_ERR_CONTROL_NOT_AVAILABLE=e.TASK_ERR_CONTROL_NOT_AVAILABLE,exports.TASK_ERR_IDEMPOTENCY_CONFLICT=e.TASK_ERR_IDEMPOTENCY_CONFLICT,exports.TASK_ERR_INPUT_SCHEMA_MISMATCH=e.TASK_ERR_INPUT_SCHEMA_MISMATCH,exports.TASK_ERR_INVALID_PHASE=e.TASK_ERR_INVALID_PHASE,exports.TASK_ERR_NOT_FOUND=e.TASK_ERR_NOT_FOUND,exports.TASK_ERR_PERMISSION_DENIED=e.TASK_ERR_PERMISSION_DENIED,exports.TASK_ERR_RESULT_SCHEMA_MISMATCH=e.TASK_ERR_RESULT_SCHEMA_MISMATCH,exports.TASK_ERR_REVISION_CONFLICT=e.TASK_ERR_REVISION_CONFLICT,exports.TASK_ERR_SCHEMA_NOT_FOUND=e.TASK_ERR_SCHEMA_NOT_FOUND,exports.TASK_ERR_STALE_RUNNER_EPOCH=e.TASK_ERR_STALE_RUNNER_EPOCH,exports.TASK_MANAGER_SERVICE_NAME=e.TASK_MANAGER_SERVICE_NAME,exports.TASK_MANAGER_SERVICE_PORT=e.TASK_MANAGER_SERVICE_PORT,exports.TASK_MANAGER_SERVICE_UNIQUE_ID=e.TASK_MANAGER_SERVICE_UNIQUE_ID,exports.TASK_MGR_ERROR_CODES=e.TASK_MGR_ERROR_CODES,exports.TASK_POLICY_PRESET_COLLABORATIVE_TREE_V1=e.TASK_POLICY_PRESET_COLLABORATIVE_TREE_V1,exports.TOOL_EXEC_BASH_TASK_SCHEMA_ID=e.TOOL_EXEC_BASH_TASK_SCHEMA_ID,exports.TaskAction=e.TaskAction,exports.TaskControlAction=e.TaskControlAction,exports.TaskDataScope=e.TaskDataScope,exports.TaskEventType=e.TaskEventType,exports.TaskExecutorKind=e.TaskExecutorKind,exports.TaskGrantScope=e.TaskGrantScope,exports.TaskManagerClient=e.TaskManagerClient,exports.TaskOutcome=e.TaskOutcome,exports.TaskPhase=e.TaskPhase,exports.TaskWaitReasonKind=e.TaskWaitReasonKind,exports.USER_GROUP_REF_PREFIX=e.USER_GROUP_REF_PREFIX,exports.USER_TYPE_GROUP_REF_PREFIX=e.USER_TYPE_GROUP_REF_PREFIX,exports.VerifyHubClient=e.VerifyHubClient,exports.WEB3_BRIDGE_HOST=e.WEB3_BRIDGE_HOST,exports.WELL_KNOWN_CONTACT_TAGS=e.WELL_KNOWN_CONTACT_TAGS,exports.WORKFLOW_EXECUTE_RPC_TASK_SCHEMA_ID=e.WORKFLOW_EXECUTE_RPC_TASK_SCHEMA_ID,exports.WORKFLOW_MAP_SHARD_TASK_SCHEMA_ID=e.WORKFLOW_MAP_SHARD_TASK_SCHEMA_ID,exports.WORKFLOW_RUN_TARGET_TASK_SCHEMA_ID=e.WORKFLOW_RUN_TARGET_TASK_SCHEMA_ID,exports.WORKFLOW_RUN_TREE_TASK_SCHEMA_ID=e.WORKFLOW_RUN_TREE_TASK_SCHEMA_ID,exports.WORKFLOW_SCHEDULE_TASK_SCHEMA_ID=e.WORKFLOW_SCHEDULE_TASK_SCHEMA_ID,exports.WORKFLOW_SEND_MESSAGE_TASK_SCHEMA_ID=e.WORKFLOW_SEND_MESSAGE_TASK_SCHEMA_ID,exports.WORKFLOW_SERVICE_NAME=e.WORKFLOW_SERVICE_NAME,exports.WORKFLOW_STEP_TASK_SCHEMA_ID=e.WORKFLOW_STEP_TASK_SCHEMA_ID,exports.WORKFLOW_THUNK_TASK_SCHEMA_ID=e.WORKFLOW_THUNK_TASK_SCHEMA_ID,exports.WorkflowClient=e.WorkflowClient,exports.WorkflowDefinitionStatus=e.WorkflowDefinitionStatus,exports.WorkflowHumanActionKind=e.WorkflowHumanActionKind,exports.WorkflowJoinMode=e.WorkflowJoinMode,exports.WorkflowNodeRunState=e.WorkflowNodeRunState,exports.WorkflowOutputMode=e.WorkflowOutputMode,exports.WorkflowRetryFallback=e.WorkflowRetryFallback,exports.WorkflowRunStatus=e.WorkflowRunStatus,exports.WorkflowScheduledTaskFireStatus=e.WorkflowScheduledTaskFireStatus,exports.WorkflowScheduledTaskMisfirePolicy=e.WorkflowScheduledTaskMisfirePolicy,exports.WorkflowScheduledTaskStatus=e.WorkflowScheduledTaskStatus,exports.WorkflowStepType=e.WorkflowStepType,exports.ZONE_USER_TYPES=e.ZONE_USER_TYPES,exports.accessDenialOf=e.accessDenialOf,exports.aiccMessageFirstText=e.aiccMessageFirstText,exports.aiccMessageTextContent=e.aiccMessageTextContent,exports.aiccRefusalOf=e.aiccRefusalOf,exports.aiccTextMessage=e.aiccTextMessage,exports.answerNotify=e.answerNotify,exports.appDidFromId=e.appDidFromId,exports.appIdFromDid=e.appIdFromDid,exports.baselineTaskControlProfile=e.baselineTaskControlProfile,exports.bns=e.bns_client,exports.buildJumpUrl=e.buildJumpUrl,exports.commitNotifyAnswer=e.commitNotifyAnswer,exports.contactTagApp=e.contactTagApp,exports.contactTagKind=e.contactTagKind,exports.createAppInstanceId=e.createAppInstanceId,exports.createSDKModule=e.createSDKModule,exports.decisionRequirements=e.decisionRequirements,exports.decodeBnsPublishDocumentCalldata=e.decodeBnsPublishDocumentCalldata,exports.getActiveRuntimeType=e.getActiveRuntimeType,exports.getActiveSessionToken=e.getActiveSessionToken,exports.getActiveZoneGatewayOrigin=e.getActiveZoneGatewayOrigin,exports.getCurrentWalletUserFromHost=e.getCurrentWalletUserFromHost,exports.identityAllows=e.identityAllows,exports.identityKey=e.identityKey,exports.inputPrompt=e.inputPrompt,exports.isAiccAiMethod=e.isAiccAiMethod,exports.isExternalPrincipal=e.isExternalPrincipal,exports.isNotifyClosed=e.isNotifyClosed,exports.isTerminalTaskPhase=e.isTerminalTaskPhase,exports.isUserGroupRefTag=e.isUserGroupRefTag,exports.mailboxAddress=e.mailboxAddress,exports.mailboxResource=e.mailboxResource,exports.msgMachineData=e.msgMachineData,exports.ndm=e.ndm_client,exports.ndm_proxy=e.ndm_proxy,exports.normalizeZoneHostname=e.normalizeZoneHostname,exports.notifyAnswerToTaskResult=e.notifyAnswerToTaskResult,exports.notifyCategoryFromSessionId=e.notifyCategoryFromSessionId,exports.notifyCategorySessionId=e.notifyCategorySessionId,exports.notifyMessageData=e.notifyMessageData,exports.notifyUrl=e.notifyUrl,exports.parseAccessDenial=e.parseAccessDenial,exports.parseAppId=e.parseAppId,exports.parseAppInstanceId=e.parseAppInstanceId,exports.parseCurrentIdentity=e.parseCurrentIdentity,exports.parseSessionTokenClaims=e.parseSessionTokenClaims,exports.parseVideoPrompt=e.parseVideoPrompt,exports.parseZoneUserType=e.parseZoneUserType,exports.promptOptions=e.promptOptions,exports.resolveDidFromHost=e.resolveDidFromHost,exports.sn=e.sn_client,exports.taskMgrErrorCode=e.taskMgrErrorCode,exports.taskMgrTaskEventPath=e.taskMgrTaskEventPath,exports.taskMgrTreeEventPath=e.taskMgrTreeEventPath,exports.validateAiccMessage=e.validateAiccMessage,exports.validateDecisionAnswers=e.validateDecisionAnswers,exports.validateDecisionRequest=e.validateDecisionRequest,exports.validateNotifyAnswer=e.validateNotifyAnswer,exports.validateVideoEdit=e.validateVideoEdit,exports.validateVideoGeneration=e.validateVideoGeneration,exports.validateVideoOutput=e.validateVideoOutput,exports.videoGenerationRequirement=e.videoGenerationRequirement,exports.waitNotify=e.waitNotify,exports.walletUserHasSnAccount=e.walletUserHasSnAccount,exports.zoneActionUrl=e.zoneActionUrl,exports.DID_OBJECT_SERVICE_ID=t.DID_OBJECT_SERVICE_ID,exports.DID_OBJECT_SERVICE_TYPE=t.DID_OBJECT_SERVICE_TYPE,exports.NODE_IDENTITY_SCHEMA_V2=t.NODE_IDENTITY_SCHEMA_V2,exports.getDidIdentifier=t.getDidIdentifier,exports.getDidMethod=t.getDidMethod,exports.hashPassword=t.hashPassword,exports.isBuckyOSAgentDocument=t.isBuckyOSAgentDocument,exports.isBuckyOSDIDObjectCard=t.isBuckyOSDIDObjectCard,exports.isBuckyOSDeviceDocument=t.isBuckyOSDeviceDocument,exports.isBuckyOSDeviceMiniDocument=t.isBuckyOSDeviceMiniDocument,exports.isBuckyOSLocalNodeIdentityConfig=t.isBuckyOSLocalNodeIdentityConfig,exports.isBuckyOSNodeIdentityConfig=t.isBuckyOSNodeIdentityConfig,exports.isBuckyOSOwnerDocument=t.isBuckyOSOwnerDocument,exports.isBuckyOSZoneBootDocument=t.isBuckyOSZoneBootDocument,exports.isBuckyOSZoneConfig=t.isBuckyOSZoneConfig,exports.isBuckyOSZoneDocument=t.isBuckyOSZoneDocument,exports.isW3CDIDDocumentBase=t.isW3CDIDDocumentBase,exports.namelib=t.namelib,exports.ndn=t.ndn_types,exports.parseBuckyOSDIDDocument=t.parseBuckyOSDIDDocument,exports.parseBuckyOSDeviceMiniDocument=t.parseBuckyOSDeviceMiniDocument,exports.parseBuckyOSOwnerDocument=t.parseBuckyOSOwnerDocument,exports.parseW3CDIDDocumentBase=t.parseW3CDIDDocumentBase,exports.attachEvent=a,exports.buckyos=o,exports.createEventReader=n,exports.create_event_reader=C,exports.getAccountInfo=x,exports.getAppDataDir=p,exports.getAppDid=T,exports.getAppId=A,exports.getAppInstanceId=S,exports.getAppSetting=u,exports.getBuckyOSConfig=r,exports.getCurrentIdentity=R,exports.getCurrentWalletUser=P,exports.getKEventClient=i,exports.getRuntimeType=E,exports.getServiceRpcClient=y,exports.getSystemConfigClient=B,exports.getTaskManagerClient=m,exports.getVerifyHubClient=k,exports.getWorkflowClient=F,exports.getZoneHostName=g,exports.getZoneServiceURL=U,exports.initBuckyOS=s,exports.login=M,exports.loginByBrowserSSO=N,exports.loginByPassword=D,exports.loginByRuntimeSession=c,exports.logout=l,exports.openExternalUrl=H,exports.removeEvent=O,exports.resolve_did=K,exports.setAppSetting=d,exports.subscribeKEvent=I,exports.walletSignWithActiveDid=L;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./executor_client-b3ff97ba.js"),t=require("./ndn_types-08dc9ef1.js"),o=e.createSDKModule("browser"),_=o.buckyos,s=o.initBuckyOS,r=o.getBuckyOSConfig,E=o.getRuntimeType,A=o.getAppId,T=o.getAppDid,S=o.getAppInstanceId,p=o.getAppDataDir,i=o.getKEventClient,n=o.createEventReader,C=o.create_event_reader,I=o.subscribeKEvent,a=o.attachEvent,x=o.removeEvent,O=o.getAccountInfo,R=o.getCurrentIdentity,D=o.loginByPassword,N=o.loginByBrowserSSO,c=o.loginByRuntimeSession,M=o.login,l=o.logout,u=o.getAppSetting,d=o.setAppSetting,P=o.getCurrentWalletUser,K=o.resolve_did,L=o.walletSignWithActiveDid,H=o.openExternalUrl,g=o.getZoneHostName,U=o.getZoneServiceURL,k=o.getServiceRpcClient,y=o.getVerifyHubClient,m=o.getSystemConfigClient,B=o.getTaskManagerClient,F=o.getWorkflowClient;exports.ACCESS_DENIED_ERROR_CODE=e.ACCESS_DENIED_ERROR_CODE,exports.AGENT_DELEGATE_TASK_SCHEMA_ID=e.AGENT_DELEGATE_TASK_SCHEMA_ID,exports.AICC_AI_METHODS=e.AICC_AI_METHODS,exports.AICC_COMPUTE_TASK_SCHEMA_ID=e.AICC_COMPUTE_TASK_SCHEMA_ID,exports.AICC_CORE_METHODS=e.AICC_CORE_METHODS,exports.AICC_EXECUTION_MODES=e.AICC_EXECUTION_MODES,exports.AICC_FEATURES=e.AICC_FEATURES,exports.AICC_MANAGEMENT_METHODS=e.AICC_MANAGEMENT_METHODS,exports.AICC_METHODS=e.AICC_METHODS,exports.AICC_POLICY_REFUSAL_CODES=e.AICC_POLICY_REFUSAL_CODES,exports.AICC_QUOTA_METHODS=e.AICC_QUOTA_METHODS,exports.AICC_SERVICE_SERVICE_NAME=e.AICC_SERVICE_SERVICE_NAME,exports.AICC_SERVICE_SERVICE_PORT=e.AICC_SERVICE_SERVICE_PORT,exports.AICC_SERVICE_UNIQUE_ID=e.AICC_SERVICE_UNIQUE_ID,exports.ANONYMOUS_IDENTITY=e.ANONYMOUS_IDENTITY,exports.APP_INSTALL_TASK_SCHEMA_ID=e.APP_INSTALL_TASK_SCHEMA_ID,exports.APP_START_TASK_SCHEMA_ID=e.APP_START_TASK_SCHEMA_ID,exports.APP_UNINSTALL_TASK_SCHEMA_ID=e.APP_UNINSTALL_TASK_SCHEMA_ID,exports.APP_UPDATE_BATCH_TASK_SCHEMA_ID=e.APP_UPDATE_BATCH_TASK_SCHEMA_ID,exports.APP_UPDATE_TASK_SCHEMA_ID=e.APP_UPDATE_TASK_SCHEMA_ID,exports.AiccClient=e.AiccClient,exports.BNS_DNS_TXT_DEFAULT_TTL=e.BNS_DNS_TXT_DEFAULT_TTL,exports.BNS_DNS_TXT_DOC_TYPE=e.BNS_DNS_TXT_DOC_TYPE,exports.BNS_EVM_DEFAULT_GAS_LIMIT=e.BNS_EVM_DEFAULT_GAS_LIMIT,exports.BNS_EVM_DEFAULT_MAX_FEE_PER_GAS=e.BNS_EVM_DEFAULT_MAX_FEE_PER_GAS,exports.BNS_EVM_DEFAULT_MAX_PRIORITY_FEE_PER_GAS=e.BNS_EVM_DEFAULT_MAX_PRIORITY_FEE_PER_GAS,exports.BNS_MAX_INLINE_DOCUMENT_BYTES=e.BNS_MAX_INLINE_DOCUMENT_BYTES,exports.BNS_PUBLISH_DOCUMENT_ABI=e.BNS_PUBLISH_DOCUMENT_ABI,exports.BS_SERVICE_TASK_MANAGER=e.BS_SERVICE_TASK_MANAGER,exports.BS_SERVICE_VERIFY_HUB=e.BS_SERVICE_VERIFY_HUB,exports.BnsEvmTxBuilder=e.BnsEvmTxBuilder,exports.BnsEvmTxError=e.BnsEvmTxError,exports.BnsTxExecutor=e.BnsTxExecutor,exports.BnsTxExecutorError=e.BnsTxExecutorError,exports.BuckyOSSDK=e.BuckyOSSDK,exports.CONTACT_CHANGED_EVENT_BOX=e.CONTACT_CHANGED_EVENT_BOX,exports.CONTACT_TAG_HOMESTATION_FOLLOWING=e.CONTACT_TAG_HOMESTATION_FOLLOWING,exports.CONTACT_TAG_ZONE_AGENT=e.CONTACT_TAG_ZONE_AGENT,exports.CONTACT_TAG_ZONE_USER=e.CONTACT_TAG_ZONE_USER,exports.DEFAULT_CHILD_CONTROL_POLICY=e.DEFAULT_CHILD_CONTROL_POLICY,exports.DEFAULT_JUMP_BASE_URL=e.DEFAULT_JUMP_BASE_URL,exports.DENY_REASONS=e.DENY_REASONS,exports.DOWNLOAD_TASK_SCHEMA_ID=e.DOWNLOAD_TASK_SCHEMA_ID,exports.EXTERNAL_PRINCIPAL_CLAIM=e.EXTERNAL_PRINCIPAL_CLAIM,exports.ExecutorClient=e.ExecutorClient,exports.ExecutorCommandStream=e.ExecutorCommandStream,exports.ExecutorStreamError=e.ExecutorStreamError,exports.FRIEND_INTENT=e.FRIEND_INTENT,exports.HUMAN_APPROVAL_SCHEMA_ID=e.HUMAN_APPROVAL_SCHEMA_ID,exports.HUMAN_INPUT_TASK_SCHEMA_ID=e.HUMAN_INPUT_TASK_SCHEMA_ID,exports.JUMP_ACTION_PATHS=e.JUMP_ACTION_PATHS,exports.KEventClient=e.KEventClient,exports.KEventReader=e.KEventReader,exports.MsgCenterClient=e.MsgCenterClient,exports.MsgQueueClient=e.MsgQueueClient,exports.NOTIFY_ACTION_ANSWER=e.NOTIFY_ACTION_ANSWER,exports.NOTIFY_ACTION_DISMISS=e.NOTIFY_ACTION_DISMISS,exports.NOTIFY_CHOICE_CONTROL_ID=e.NOTIFY_CHOICE_CONTROL_ID,exports.NOTIFY_DATA_VERSION=e.NOTIFY_DATA_VERSION,exports.NOTIFY_DELIVERED_INTENT=e.NOTIFY_DELIVERED_INTENT,exports.NOTIFY_INTENT=e.NOTIFY_INTENT,exports.NOTIFY_LINK_PATH=e.NOTIFY_LINK_PATH,exports.NOTIFY_SESSION_PREFIX=e.NOTIFY_SESSION_PREFIX,exports.NOTIFY_TEXT_CONTROL_ID=e.NOTIFY_TEXT_CONTROL_ID,exports.OPENDAN_ASYNC_TOOL_TASK_SCHEMA_ID=e.OPENDAN_ASYNC_TOOL_TASK_SCHEMA_ID,exports.OPENDAN_COMMAND_TASK_SCHEMA_ID=e.OPENDAN_COMMAND_TASK_SCHEMA_ID,exports.RAW_TASK_SCHEMA_ID=e.RAW_TASK_SCHEMA_ID,exports.RPCError=e.RPCError,exports.RepoClient=e.RepoClient,exports.RuntimeType=e.RuntimeType,exports.SCHEDULER_DISPATCH_THUNK_TASK_SCHEMA_ID=e.SCHEDULER_DISPATCH_THUNK_TASK_SCHEMA_ID,exports.StorageDomain=e.StorageDomain,exports.SystemConfigClient=e.SystemConfigClient,exports.TASK_ERR_ALREADY_COMPLETED=e.TASK_ERR_ALREADY_COMPLETED,exports.TASK_ERR_CONTROL_ALREADY_PENDING=e.TASK_ERR_CONTROL_ALREADY_PENDING,exports.TASK_ERR_CONTROL_NOT_AVAILABLE=e.TASK_ERR_CONTROL_NOT_AVAILABLE,exports.TASK_ERR_IDEMPOTENCY_CONFLICT=e.TASK_ERR_IDEMPOTENCY_CONFLICT,exports.TASK_ERR_INPUT_SCHEMA_MISMATCH=e.TASK_ERR_INPUT_SCHEMA_MISMATCH,exports.TASK_ERR_INVALID_PHASE=e.TASK_ERR_INVALID_PHASE,exports.TASK_ERR_NOT_FOUND=e.TASK_ERR_NOT_FOUND,exports.TASK_ERR_PERMISSION_DENIED=e.TASK_ERR_PERMISSION_DENIED,exports.TASK_ERR_RESULT_SCHEMA_MISMATCH=e.TASK_ERR_RESULT_SCHEMA_MISMATCH,exports.TASK_ERR_REVISION_CONFLICT=e.TASK_ERR_REVISION_CONFLICT,exports.TASK_ERR_SCHEMA_NOT_FOUND=e.TASK_ERR_SCHEMA_NOT_FOUND,exports.TASK_ERR_STALE_RUNNER_EPOCH=e.TASK_ERR_STALE_RUNNER_EPOCH,exports.TASK_MANAGER_SERVICE_NAME=e.TASK_MANAGER_SERVICE_NAME,exports.TASK_MANAGER_SERVICE_PORT=e.TASK_MANAGER_SERVICE_PORT,exports.TASK_MANAGER_SERVICE_UNIQUE_ID=e.TASK_MANAGER_SERVICE_UNIQUE_ID,exports.TASK_MGR_ERROR_CODES=e.TASK_MGR_ERROR_CODES,exports.TASK_POLICY_PRESET_COLLABORATIVE_TREE_V1=e.TASK_POLICY_PRESET_COLLABORATIVE_TREE_V1,exports.TOOL_EXEC_BASH_TASK_SCHEMA_ID=e.TOOL_EXEC_BASH_TASK_SCHEMA_ID,exports.TaskAction=e.TaskAction,exports.TaskControlAction=e.TaskControlAction,exports.TaskDataScope=e.TaskDataScope,exports.TaskEventType=e.TaskEventType,exports.TaskExecutorKind=e.TaskExecutorKind,exports.TaskGrantScope=e.TaskGrantScope,exports.TaskManagerClient=e.TaskManagerClient,exports.TaskOutcome=e.TaskOutcome,exports.TaskPhase=e.TaskPhase,exports.TaskWaitReasonKind=e.TaskWaitReasonKind,exports.USER_GROUP_REF_PREFIX=e.USER_GROUP_REF_PREFIX,exports.USER_TYPE_GROUP_REF_PREFIX=e.USER_TYPE_GROUP_REF_PREFIX,exports.VerifyHubClient=e.VerifyHubClient,exports.WEB3_BRIDGE_HOST=e.WEB3_BRIDGE_HOST,exports.WELL_KNOWN_CONTACT_TAGS=e.WELL_KNOWN_CONTACT_TAGS,exports.WORKFLOW_EXECUTE_RPC_TASK_SCHEMA_ID=e.WORKFLOW_EXECUTE_RPC_TASK_SCHEMA_ID,exports.WORKFLOW_MAP_SHARD_TASK_SCHEMA_ID=e.WORKFLOW_MAP_SHARD_TASK_SCHEMA_ID,exports.WORKFLOW_RUN_TARGET_TASK_SCHEMA_ID=e.WORKFLOW_RUN_TARGET_TASK_SCHEMA_ID,exports.WORKFLOW_RUN_TREE_TASK_SCHEMA_ID=e.WORKFLOW_RUN_TREE_TASK_SCHEMA_ID,exports.WORKFLOW_SCHEDULE_TASK_SCHEMA_ID=e.WORKFLOW_SCHEDULE_TASK_SCHEMA_ID,exports.WORKFLOW_SEND_MESSAGE_TASK_SCHEMA_ID=e.WORKFLOW_SEND_MESSAGE_TASK_SCHEMA_ID,exports.WORKFLOW_SERVICE_NAME=e.WORKFLOW_SERVICE_NAME,exports.WORKFLOW_STEP_TASK_SCHEMA_ID=e.WORKFLOW_STEP_TASK_SCHEMA_ID,exports.WORKFLOW_THUNK_TASK_SCHEMA_ID=e.WORKFLOW_THUNK_TASK_SCHEMA_ID,exports.WorkflowClient=e.WorkflowClient,exports.WorkflowDefinitionStatus=e.WorkflowDefinitionStatus,exports.WorkflowHumanActionKind=e.WorkflowHumanActionKind,exports.WorkflowJoinMode=e.WorkflowJoinMode,exports.WorkflowNodeRunState=e.WorkflowNodeRunState,exports.WorkflowOutputMode=e.WorkflowOutputMode,exports.WorkflowRetryFallback=e.WorkflowRetryFallback,exports.WorkflowRunStatus=e.WorkflowRunStatus,exports.WorkflowScheduledTaskFireStatus=e.WorkflowScheduledTaskFireStatus,exports.WorkflowScheduledTaskMisfirePolicy=e.WorkflowScheduledTaskMisfirePolicy,exports.WorkflowScheduledTaskStatus=e.WorkflowScheduledTaskStatus,exports.WorkflowStepType=e.WorkflowStepType,exports.ZONE_USER_TYPES=e.ZONE_USER_TYPES,exports.accessDenialOf=e.accessDenialOf,exports.aiccMessageFirstText=e.aiccMessageFirstText,exports.aiccMessageTextContent=e.aiccMessageTextContent,exports.aiccRefusalOf=e.aiccRefusalOf,exports.aiccTextMessage=e.aiccTextMessage,exports.answerNotify=e.answerNotify,exports.appDidFromId=e.appDidFromId,exports.appIdFromDid=e.appIdFromDid,exports.baselineTaskControlProfile=e.baselineTaskControlProfile,exports.bns=e.bns_client,exports.buildJumpUrl=e.buildJumpUrl,exports.commitNotifyAnswer=e.commitNotifyAnswer,exports.contactTagApp=e.contactTagApp,exports.contactTagKind=e.contactTagKind,exports.createAppInstanceId=e.createAppInstanceId,exports.createSDKModule=e.createSDKModule,exports.decisionRequirements=e.decisionRequirements,exports.decodeBnsPublishDocumentCalldata=e.decodeBnsPublishDocumentCalldata,exports.encodeExecutorControl=e.encodeExecutorControl,exports.getActiveRuntimeType=e.getActiveRuntimeType,exports.getActiveSessionToken=e.getActiveSessionToken,exports.getActiveZoneGatewayOrigin=e.getActiveZoneGatewayOrigin,exports.getCurrentWalletUserFromHost=e.getCurrentWalletUserFromHost,exports.identityAllows=e.identityAllows,exports.identityKey=e.identityKey,exports.inputPrompt=e.inputPrompt,exports.isAiccAiMethod=e.isAiccAiMethod,exports.isExternalPrincipal=e.isExternalPrincipal,exports.isNotifyClosed=e.isNotifyClosed,exports.isTerminalTaskPhase=e.isTerminalTaskPhase,exports.isUserGroupRefTag=e.isUserGroupRefTag,exports.mailboxAddress=e.mailboxAddress,exports.mailboxResource=e.mailboxResource,exports.msgMachineData=e.msgMachineData,exports.ndm=e.ndm_client,exports.ndm_proxy=e.ndm_proxy,exports.normalizeZoneHostname=e.normalizeZoneHostname,exports.notifyAnswerToTaskResult=e.notifyAnswerToTaskResult,exports.notifyCategoryFromSessionId=e.notifyCategoryFromSessionId,exports.notifyCategorySessionId=e.notifyCategorySessionId,exports.notifyMessageData=e.notifyMessageData,exports.notifyUrl=e.notifyUrl,exports.parseAccessDenial=e.parseAccessDenial,exports.parseAppId=e.parseAppId,exports.parseAppInstanceId=e.parseAppInstanceId,exports.parseCurrentIdentity=e.parseCurrentIdentity,exports.parseSessionTokenClaims=e.parseSessionTokenClaims,exports.parseVideoPrompt=e.parseVideoPrompt,exports.parseZoneUserType=e.parseZoneUserType,exports.promptOptions=e.promptOptions,exports.resolveDidFromHost=e.resolveDidFromHost,exports.sn=e.sn_client,exports.taskMgrErrorCode=e.taskMgrErrorCode,exports.taskMgrTaskEventPath=e.taskMgrTaskEventPath,exports.taskMgrTreeEventPath=e.taskMgrTreeEventPath,exports.validateAiccMessage=e.validateAiccMessage,exports.validateDecisionAnswers=e.validateDecisionAnswers,exports.validateDecisionRequest=e.validateDecisionRequest,exports.validateNotifyAnswer=e.validateNotifyAnswer,exports.validateVideoEdit=e.validateVideoEdit,exports.validateVideoGeneration=e.validateVideoGeneration,exports.validateVideoOutput=e.validateVideoOutput,exports.videoGenerationRequirement=e.videoGenerationRequirement,exports.waitNotify=e.waitNotify,exports.walletUserHasSnAccount=e.walletUserHasSnAccount,exports.zoneActionUrl=e.zoneActionUrl,exports.DID_OBJECT_SERVICE_ID=t.DID_OBJECT_SERVICE_ID,exports.DID_OBJECT_SERVICE_TYPE=t.DID_OBJECT_SERVICE_TYPE,exports.NODE_IDENTITY_SCHEMA_V2=t.NODE_IDENTITY_SCHEMA_V2,exports.getDidIdentifier=t.getDidIdentifier,exports.getDidMethod=t.getDidMethod,exports.hashPassword=t.hashPassword,exports.isBuckyOSAgentDocument=t.isBuckyOSAgentDocument,exports.isBuckyOSDIDObjectCard=t.isBuckyOSDIDObjectCard,exports.isBuckyOSDeviceDocument=t.isBuckyOSDeviceDocument,exports.isBuckyOSDeviceMiniDocument=t.isBuckyOSDeviceMiniDocument,exports.isBuckyOSLocalNodeIdentityConfig=t.isBuckyOSLocalNodeIdentityConfig,exports.isBuckyOSOwnerDocument=t.isBuckyOSOwnerDocument,exports.isBuckyOSZoneBootDocument=t.isBuckyOSZoneBootDocument,exports.isBuckyOSZoneConfig=t.isBuckyOSZoneConfig,exports.isBuckyOSZoneDocument=t.isBuckyOSZoneDocument,exports.isW3CDIDDocumentBase=t.isW3CDIDDocumentBase,exports.namelib=t.namelib,exports.ndn=t.ndn_types,exports.parseBuckyOSDIDDocument=t.parseBuckyOSDIDDocument,exports.parseBuckyOSDeviceMiniDocument=t.parseBuckyOSDeviceMiniDocument,exports.parseBuckyOSOwnerDocument=t.parseBuckyOSOwnerDocument,exports.parseW3CDIDDocumentBase=t.parseW3CDIDDocumentBase,exports.attachEvent=a,exports.buckyos=_,exports.createEventReader=n,exports.create_event_reader=C,exports.getAccountInfo=O,exports.getAppDataDir=p,exports.getAppDid=T,exports.getAppId=A,exports.getAppInstanceId=S,exports.getAppSetting=u,exports.getBuckyOSConfig=r,exports.getCurrentIdentity=R,exports.getCurrentWalletUser=P,exports.getKEventClient=i,exports.getRuntimeType=E,exports.getServiceRpcClient=k,exports.getSystemConfigClient=m,exports.getTaskManagerClient=B,exports.getVerifyHubClient=y,exports.getWorkflowClient=F,exports.getZoneHostName=g,exports.getZoneServiceURL=U,exports.initBuckyOS=s,exports.login=M,exports.loginByBrowserSSO=N,exports.loginByPassword=D,exports.loginByRuntimeSession=c,exports.logout=l,exports.openExternalUrl=H,exports.removeEvent=x,exports.resolve_did=K,exports.setAppSetting=d,exports.subscribeKEvent=I,exports.walletSignWithActiveDid=L;
|
|
2
2
|
//# sourceMappingURL=browser.cjs.map
|
package/dist/browser.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.cjs","sources":["../src/browser.ts"],"sourcesContent":["import { createSDKModule } from './sdk_core'\nimport { hashPassword } from './account'\n\nconst sdkModule = createSDKModule('browser')\n\nexport const buckyos = sdkModule.buckyos\nexport const initBuckyOS = sdkModule.initBuckyOS\nexport const getBuckyOSConfig = sdkModule.getBuckyOSConfig\nexport const getRuntimeType = sdkModule.getRuntimeType\nexport const getAppId = sdkModule.getAppId\nexport const getAppDid = sdkModule.getAppDid\nexport const getAppInstanceId = sdkModule.getAppInstanceId\nexport const getAppDataDir = sdkModule.getAppDataDir\nexport const getKEventClient = sdkModule.getKEventClient\nexport const createEventReader = sdkModule.createEventReader\nexport const create_event_reader = sdkModule.create_event_reader\nexport const subscribeKEvent = sdkModule.subscribeKEvent\nexport const attachEvent = sdkModule.attachEvent\nexport const removeEvent = sdkModule.removeEvent\nexport const getAccountInfo = sdkModule.getAccountInfo\nexport const getCurrentIdentity = sdkModule.getCurrentIdentity\nexport const loginByPassword = sdkModule.loginByPassword\nexport const loginByBrowserSSO = sdkModule.loginByBrowserSSO\nexport const loginByRuntimeSession = sdkModule.loginByRuntimeSession\nexport const login = sdkModule.login\nexport const logout = sdkModule.logout\nexport const getAppSetting = sdkModule.getAppSetting\nexport const setAppSetting = sdkModule.setAppSetting\nexport const getCurrentWalletUser = sdkModule.getCurrentWalletUser\nexport const resolve_did = sdkModule.resolve_did\nexport const walletSignWithActiveDid = sdkModule.walletSignWithActiveDid\nexport const openExternalUrl = sdkModule.openExternalUrl\nexport const getZoneHostName = sdkModule.getZoneHostName\nexport const getZoneServiceURL = sdkModule.getZoneServiceURL\nexport const getServiceRpcClient = sdkModule.getServiceRpcClient\nexport const getVerifyHubClient = sdkModule.getVerifyHubClient\nexport const getSystemConfigClient = sdkModule.getSystemConfigClient\nexport const getTaskManagerClient = sdkModule.getTaskManagerClient\nexport const getWorkflowClient = sdkModule.getWorkflowClient\n\nexport { hashPassword }\nexport * from './sdk_core'\nexport * from './types'\nexport * from './app_identity'\nexport * as namelib from './namelib'\nexport * as bns from './bns_client'\nexport * from './bns_evm_tx'\nexport * from './bns_tx_executor'\nexport * as sn from './sn_client'\nexport * as ndn from './ndn_types'\nexport * as ndm from './ndm_client'\nexport * as ndm_proxy from './ndm_proxy'\n"],"names":["sdkModule","createSDKModule","buckyos","initBuckyOS","getBuckyOSConfig","getRuntimeType","getAppId","getAppDid","getAppInstanceId","getAppDataDir","getKEventClient","createEventReader","create_event_reader","subscribeKEvent","attachEvent","removeEvent","getAccountInfo","getCurrentIdentity","loginByPassword","loginByBrowserSSO","loginByRuntimeSession","login","logout","getAppSetting","setAppSetting","getCurrentWalletUser","resolve_did","walletSignWithActiveDid","openExternalUrl","getZoneHostName","getZoneServiceURL","getServiceRpcClient","getVerifyHubClient","getSystemConfigClient","getTaskManagerClient","getWorkflowClient"],"mappings":"
|
|
1
|
+
{"version":3,"file":"browser.cjs","sources":["../src/browser.ts"],"sourcesContent":["import { createSDKModule } from './sdk_core'\nimport { hashPassword } from './account'\n\nconst sdkModule = createSDKModule('browser')\n\nexport const buckyos = sdkModule.buckyos\nexport const initBuckyOS = sdkModule.initBuckyOS\nexport const getBuckyOSConfig = sdkModule.getBuckyOSConfig\nexport const getRuntimeType = sdkModule.getRuntimeType\nexport const getAppId = sdkModule.getAppId\nexport const getAppDid = sdkModule.getAppDid\nexport const getAppInstanceId = sdkModule.getAppInstanceId\nexport const getAppDataDir = sdkModule.getAppDataDir\nexport const getKEventClient = sdkModule.getKEventClient\nexport const createEventReader = sdkModule.createEventReader\nexport const create_event_reader = sdkModule.create_event_reader\nexport const subscribeKEvent = sdkModule.subscribeKEvent\nexport const attachEvent = sdkModule.attachEvent\nexport const removeEvent = sdkModule.removeEvent\nexport const getAccountInfo = sdkModule.getAccountInfo\nexport const getCurrentIdentity = sdkModule.getCurrentIdentity\nexport const loginByPassword = sdkModule.loginByPassword\nexport const loginByBrowserSSO = sdkModule.loginByBrowserSSO\nexport const loginByRuntimeSession = sdkModule.loginByRuntimeSession\nexport const login = sdkModule.login\nexport const logout = sdkModule.logout\nexport const getAppSetting = sdkModule.getAppSetting\nexport const setAppSetting = sdkModule.setAppSetting\nexport const getCurrentWalletUser = sdkModule.getCurrentWalletUser\nexport const resolve_did = sdkModule.resolve_did\nexport const walletSignWithActiveDid = sdkModule.walletSignWithActiveDid\nexport const openExternalUrl = sdkModule.openExternalUrl\nexport const getZoneHostName = sdkModule.getZoneHostName\nexport const getZoneServiceURL = sdkModule.getZoneServiceURL\nexport const getServiceRpcClient = sdkModule.getServiceRpcClient\nexport const getVerifyHubClient = sdkModule.getVerifyHubClient\nexport const getSystemConfigClient = sdkModule.getSystemConfigClient\nexport const getTaskManagerClient = sdkModule.getTaskManagerClient\nexport const getWorkflowClient = sdkModule.getWorkflowClient\n\nexport { hashPassword }\nexport * from './sdk_core'\nexport * from './types'\nexport * from './app_identity'\nexport * as namelib from './namelib'\nexport * as bns from './bns_client'\nexport * from './bns_evm_tx'\nexport * from './bns_tx_executor'\nexport * as sn from './sn_client'\nexport * as ndn from './ndn_types'\nexport * as ndm from './ndm_client'\nexport * as ndm_proxy from './ndm_proxy'\n\nexport * from './executor_client'\n"],"names":["sdkModule","createSDKModule","buckyos","initBuckyOS","getBuckyOSConfig","getRuntimeType","getAppId","getAppDid","getAppInstanceId","getAppDataDir","getKEventClient","createEventReader","create_event_reader","subscribeKEvent","attachEvent","removeEvent","getAccountInfo","getCurrentIdentity","loginByPassword","loginByBrowserSSO","loginByRuntimeSession","login","logout","getAppSetting","setAppSetting","getCurrentWalletUser","resolve_did","walletSignWithActiveDid","openExternalUrl","getZoneHostName","getZoneServiceURL","getServiceRpcClient","getVerifyHubClient","getSystemConfigClient","getTaskManagerClient","getWorkflowClient"],"mappings":"sKAGMA,EAAYC,EAAAA,gBAAgB,WAErBC,EAAUF,EAAUE,QACpBC,EAAcH,EAAUG,YACxBC,EAAmBJ,EAAUI,iBAC7BC,EAAiBL,EAAUK,eAC3BC,EAAWN,EAAUM,SACrBC,EAAYP,EAAUO,UACtBC,EAAmBR,EAAUQ,iBAC7BC,EAAgBT,EAAUS,cAC1BC,EAAkBV,EAAUU,gBAC5BC,EAAoBX,EAAUW,kBAC9BC,EAAsBZ,EAAUY,oBAChCC,EAAkBb,EAAUa,gBAC5BC,EAAcd,EAAUc,YACxBC,EAAcf,EAAUe,YACxBC,EAAiBhB,EAAUgB,eAC3BC,EAAqBjB,EAAUiB,mBAC/BC,EAAkBlB,EAAUkB,gBAC5BC,EAAoBnB,EAAUmB,kBAC9BC,EAAwBpB,EAAUoB,sBAClCC,EAAQrB,EAAUqB,MAClBC,EAAStB,EAAUsB,OACnBC,EAAgBvB,EAAUuB,cAC1BC,EAAgBxB,EAAUwB,cAC1BC,EAAuBzB,EAAUyB,qBACjCC,EAAc1B,EAAU0B,YACxBC,EAA0B3B,EAAU2B,wBACpCC,EAAkB5B,EAAU4B,gBAC5BC,EAAkB7B,EAAU6B,gBAC5BC,EAAoB9B,EAAU8B,kBAC9BC,EAAsB/B,EAAU+B,oBAChCC,EAAqBhC,EAAUgC,mBAC/BC,EAAwBjC,EAAUiC,sBAClCC,EAAuBlC,EAAUkC,qBACjCC,EAAoBnC,EAAUmC"}
|
package/dist/browser.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export declare const buckyos: {
|
|
|
35
35
|
getTaskManagerClient: () => import("./task_mgr_client").TaskManagerClient;
|
|
36
36
|
getWorkflowClient: () => import("./workflow_client").WorkflowClient;
|
|
37
37
|
getAiccClient: () => import("./aicc_client").AiccClient;
|
|
38
|
+
getAiWorkspaceClient: () => import("./aiworkspace_client").AiWorkspaceClient;
|
|
38
39
|
getMsgQueueClient: () => import("./msg_queue_client").MsgQueueClient;
|
|
39
40
|
getMsgCenterClient: () => import("./msg_center_client").MsgCenterClient;
|
|
40
41
|
getRepoClient: () => import("./repo_client").RepoClient;
|
|
@@ -86,4 +87,5 @@ export * as sn from './sn_client';
|
|
|
86
87
|
export * as ndn from './ndn_types';
|
|
87
88
|
export * as ndm from './ndm_client';
|
|
88
89
|
export * as ndm_proxy from './ndm_proxy';
|
|
90
|
+
export * from './executor_client';
|
|
89
91
|
//# sourceMappingURL=browser.d.ts.map
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAIxC,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAIxC,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoB,CAAA;AACxC,eAAO,MAAM,WAAW,sFAAwB,CAAA;AAChD,eAAO,MAAM,gBAAgB,gDAA6B,CAAA;AAC1D,eAAO,MAAM,cAAc,uCAA2B,CAAA;AACtD,eAAO,MAAM,QAAQ,qBAAqB,CAAA;AAC1C,eAAO,MAAM,SAAS,qBAAsB,CAAA;AAC5C,eAAO,MAAM,gBAAgB,qBAA6B,CAAA;AAC1D,eAAO,MAAM,aAAa,qBAA0B,CAAA;AACpD,eAAO,MAAM,eAAe,8CAA4B,CAAA;AACxD,eAAO,MAAM,iBAAiB,sKAA8B,CAAA;AAC5D,eAAO,MAAM,mBAAmB,sKAAgC,CAAA;AAChE,eAAO,MAAM,eAAe,4PAA4B,CAAA;AACxD,eAAO,MAAM,WAAW,iDAAwB,CAAA;AAChD,eAAO,MAAM,WAAW,4BAAwB,CAAA;AAChD,eAAO,MAAM,cAAc,uDAA2B,CAAA;AACtD,eAAO,MAAM,kBAAkB,uDAA+B,CAAA;AAC9D,eAAO,MAAM,eAAe,wJAA4B,CAAA;AACxD,eAAO,MAAM,iBAAiB,qBAA8B,CAAA;AAC5D,eAAO,MAAM,qBAAqB,uDAAkC,CAAA;AACpE,eAAO,MAAM,KAAK,uDAAkB,CAAA;AACpC,eAAO,MAAM,MAAM,sCAAmB,CAAA;AACtC,eAAO,MAAM,aAAa,mDAA0B,CAAA;AACpD,eAAO,MAAM,aAAa,iFAA0B,CAAA;AACpD,eAAO,MAAM,oBAAoB,oBAAiC,CAAA;AAClE,eAAO,MAAM,WAAW,qHAAwB,CAAA;AAChD,eAAO,MAAM,uBAAuB,6GAAoC,CAAA;AACxE,eAAO,MAAM,eAAe,gCAA4B,CAAA;AACxD,eAAO,MAAM,eAAe,qBAA4B,CAAA;AACxD,eAAO,MAAM,iBAAiB,iCAA8B,CAAA;AAC5D,eAAO,MAAM,mBAAmB,6DAAgC,CAAA;AAChE,eAAO,MAAM,kBAAkB,qDAA+B,CAAA;AAC9D,eAAO,MAAM,qBAAqB,2DAAkC,CAAA;AACpE,eAAO,MAAM,oBAAoB,qDAAiC,CAAA;AAClE,eAAO,MAAM,iBAAiB,kDAA8B,CAAA;AAE5D,OAAO,EAAE,YAAY,EAAE,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAA;AAExC,cAAc,mBAAmB,CAAA"}
|
package/dist/browser.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as createSDKModule } from "./
|
|
2
|
-
import { a8, aA, bt, aF, bu, bz, by, bv, bx, bA, bw, br, bs, bq, ab, aG, aI, aH, aK, aJ, bH, b$, c0, bX, bY, bZ, b_, c1, d, B, c3, c2, c7, c5, i, a0, $, _, Y, b6, af, a7, aq, E, X, ap, aB, ag, bR, bQ, o, M, z, A, x, v, u, N, C, w, y, aC, aD, ao, m, j, R, ar, ba, S, aS, aR, aQ, aV, aT, aP, aL, aM, aU, aN, aW, aO, al, am, ak, aX, an, aE, b7, b4, b9, bb, a$, b8, bc, b3, b0, b2, a3, a2, V, W, a1, ay, au, az, as, aw, ax, bd, at, av, bp, bi, bl, bg, bk, bf, bh, bj, bo, bn, bm, be, Z, aa, bF, bE, bB, bD, T, bU, bS, b5, b, aj, Q, a4, a5, bV, bI, c4, e, h, f, g, ae, ad, H, bC, l, D, b1, a6, q, t, O, n, a, ah, J, G, F, P, L, a9, bT, bW, ac, p, bL, k, I, r, s, a_, aY, aZ, bG, bK, bJ, K, bO, bN, bM, bP, U, c6, ai } from "./
|
|
3
|
-
import { b as b10, D as D2, N as N2,
|
|
1
|
+
import { c as createSDKModule } from "./executor_client-eb372968.mjs";
|
|
2
|
+
import { a8, aA, bt, aF, bu, bz, by, bv, bx, bA, bw, br, bs, bq, ab, aG, aI, aH, aK, aJ, bH, b$, c0, bX, bY, bZ, b_, c1, d, B, c3, c2, c7, c5, i, a0, $, _, Y, b6, af, a7, aq, E, c8, cb, c9, X, ap, aB, ag, bR, bQ, o, M, z, A, x, v, u, N, C, w, y, aC, aD, ao, m, j, R, ar, ba, S, aS, aR, aQ, aV, aT, aP, aL, aM, aU, aN, aW, aO, al, am, ak, aX, an, aE, b7, b4, b9, bb, a$, b8, bc, b3, b0, b2, a3, a2, V, W, a1, ay, au, az, as, aw, ax, bd, at, av, bp, bi, bl, bg, bk, bf, bh, bj, bo, bn, bm, be, Z, aa, bF, bE, bB, bD, T, bU, bS, b5, b, aj, Q, a4, a5, bV, bI, c4, ca, e, h, f, g, ae, ad, H, bC, l, D, b1, a6, q, t, O, n, a, ah, J, G, F, P, L, a9, bT, bW, ac, p, bL, k, I, r, s, a_, aY, aZ, bG, bK, bJ, K, bO, bN, bM, bP, U, c6, ai } from "./executor_client-eb372968.mjs";
|
|
3
|
+
import { b as b10, D as D2, N as N2, t as t2, s as s2, h as h2, j as j2, l as l2, g as g2, d as d2, f as f2, c, e as e2, m as m2, k as k2, i as i2, n as n2, a as a10, r as r2, q as q2, o as o2, p as p2 } from "./ndn_types-bbb1f6a6.mjs";
|
|
4
4
|
const sdkModule = createSDKModule("browser");
|
|
5
5
|
const buckyos = sdkModule.buckyos;
|
|
6
6
|
const initBuckyOS = sdkModule.initBuckyOS;
|
|
@@ -83,6 +83,9 @@ export {
|
|
|
83
83
|
D2 as DID_OBJECT_SERVICE_TYPE,
|
|
84
84
|
aq as DOWNLOAD_TASK_SCHEMA_ID,
|
|
85
85
|
E as EXTERNAL_PRINCIPAL_CLAIM,
|
|
86
|
+
c8 as ExecutorClient,
|
|
87
|
+
cb as ExecutorCommandStream,
|
|
88
|
+
c9 as ExecutorStreamError,
|
|
86
89
|
X as FRIEND_INTENT,
|
|
87
90
|
ap as HUMAN_APPROVAL_SCHEMA_ID,
|
|
88
91
|
aB as HUMAN_INPUT_TASK_SCHEMA_ID,
|
|
@@ -187,6 +190,7 @@ export {
|
|
|
187
190
|
create_event_reader,
|
|
188
191
|
bI as decisionRequirements,
|
|
189
192
|
c4 as decodeBnsPublishDocumentCalldata,
|
|
193
|
+
ca as encodeExecutorControl,
|
|
190
194
|
getAccountInfo,
|
|
191
195
|
e as getActiveRuntimeType,
|
|
192
196
|
h as getActiveSessionToken,
|
|
@@ -200,8 +204,8 @@ export {
|
|
|
200
204
|
getCurrentIdentity,
|
|
201
205
|
getCurrentWalletUser,
|
|
202
206
|
g as getCurrentWalletUserFromHost,
|
|
203
|
-
|
|
204
|
-
|
|
207
|
+
t2 as getDidIdentifier,
|
|
208
|
+
s2 as getDidMethod,
|
|
205
209
|
getKEventClient,
|
|
206
210
|
getRuntimeType,
|
|
207
211
|
getServiceRpcClient,
|
|
@@ -217,16 +221,15 @@ export {
|
|
|
217
221
|
initBuckyOS,
|
|
218
222
|
H as inputPrompt,
|
|
219
223
|
bC as isAiccAiMethod,
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
224
|
+
j2 as isBuckyOSAgentDocument,
|
|
225
|
+
l2 as isBuckyOSDIDObjectCard,
|
|
226
|
+
g2 as isBuckyOSDeviceDocument,
|
|
223
227
|
d2 as isBuckyOSDeviceMiniDocument,
|
|
224
|
-
|
|
225
|
-
f2 as isBuckyOSNodeIdentityConfig,
|
|
228
|
+
f2 as isBuckyOSLocalNodeIdentityConfig,
|
|
226
229
|
c as isBuckyOSOwnerDocument,
|
|
227
230
|
e2 as isBuckyOSZoneBootDocument,
|
|
228
|
-
|
|
229
|
-
|
|
231
|
+
m2 as isBuckyOSZoneConfig,
|
|
232
|
+
k2 as isBuckyOSZoneDocument,
|
|
230
233
|
l as isExternalPrincipal,
|
|
231
234
|
D as isNotifyClosed,
|
|
232
235
|
b1 as isTerminalTaskPhase,
|
|
@@ -254,9 +257,9 @@ export {
|
|
|
254
257
|
a9 as parseAccessDenial,
|
|
255
258
|
bT as parseAppId,
|
|
256
259
|
bW as parseAppInstanceId,
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
+
r2 as parseBuckyOSDIDDocument,
|
|
261
|
+
q2 as parseBuckyOSDeviceMiniDocument,
|
|
262
|
+
o2 as parseBuckyOSOwnerDocument,
|
|
260
263
|
ac as parseCurrentIdentity,
|
|
261
264
|
p as parseSessionTokenClaims,
|
|
262
265
|
bL as parseVideoPrompt,
|
package/dist/browser.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.mjs","sources":["../src/browser.ts"],"sourcesContent":["import { createSDKModule } from './sdk_core'\nimport { hashPassword } from './account'\n\nconst sdkModule = createSDKModule('browser')\n\nexport const buckyos = sdkModule.buckyos\nexport const initBuckyOS = sdkModule.initBuckyOS\nexport const getBuckyOSConfig = sdkModule.getBuckyOSConfig\nexport const getRuntimeType = sdkModule.getRuntimeType\nexport const getAppId = sdkModule.getAppId\nexport const getAppDid = sdkModule.getAppDid\nexport const getAppInstanceId = sdkModule.getAppInstanceId\nexport const getAppDataDir = sdkModule.getAppDataDir\nexport const getKEventClient = sdkModule.getKEventClient\nexport const createEventReader = sdkModule.createEventReader\nexport const create_event_reader = sdkModule.create_event_reader\nexport const subscribeKEvent = sdkModule.subscribeKEvent\nexport const attachEvent = sdkModule.attachEvent\nexport const removeEvent = sdkModule.removeEvent\nexport const getAccountInfo = sdkModule.getAccountInfo\nexport const getCurrentIdentity = sdkModule.getCurrentIdentity\nexport const loginByPassword = sdkModule.loginByPassword\nexport const loginByBrowserSSO = sdkModule.loginByBrowserSSO\nexport const loginByRuntimeSession = sdkModule.loginByRuntimeSession\nexport const login = sdkModule.login\nexport const logout = sdkModule.logout\nexport const getAppSetting = sdkModule.getAppSetting\nexport const setAppSetting = sdkModule.setAppSetting\nexport const getCurrentWalletUser = sdkModule.getCurrentWalletUser\nexport const resolve_did = sdkModule.resolve_did\nexport const walletSignWithActiveDid = sdkModule.walletSignWithActiveDid\nexport const openExternalUrl = sdkModule.openExternalUrl\nexport const getZoneHostName = sdkModule.getZoneHostName\nexport const getZoneServiceURL = sdkModule.getZoneServiceURL\nexport const getServiceRpcClient = sdkModule.getServiceRpcClient\nexport const getVerifyHubClient = sdkModule.getVerifyHubClient\nexport const getSystemConfigClient = sdkModule.getSystemConfigClient\nexport const getTaskManagerClient = sdkModule.getTaskManagerClient\nexport const getWorkflowClient = sdkModule.getWorkflowClient\n\nexport { hashPassword }\nexport * from './sdk_core'\nexport * from './types'\nexport * from './app_identity'\nexport * as namelib from './namelib'\nexport * as bns from './bns_client'\nexport * from './bns_evm_tx'\nexport * from './bns_tx_executor'\nexport * as sn from './sn_client'\nexport * as ndn from './ndn_types'\nexport * as ndm from './ndm_client'\nexport * as ndm_proxy from './ndm_proxy'\n"],"names":[],"mappings":";;;AAGA,MAAM,YAAY,gBAAgB,SAAS;AAEpC,MAAM,UAAU,UAAU;AAC1B,MAAM,cAAc,UAAU;AAC9B,MAAM,mBAAmB,UAAU;AACnC,MAAM,iBAAiB,UAAU;AACjC,MAAM,WAAW,UAAU;AAC3B,MAAM,YAAY,UAAU;AAC5B,MAAM,mBAAmB,UAAU;AACnC,MAAM,gBAAgB,UAAU;AAChC,MAAM,kBAAkB,UAAU;AAClC,MAAM,oBAAoB,UAAU;AACpC,MAAM,sBAAsB,UAAU;AACtC,MAAM,kBAAkB,UAAU;AAClC,MAAM,cAAc,UAAU;AAC9B,MAAM,cAAc,UAAU;AAC9B,MAAM,iBAAiB,UAAU;AACjC,MAAM,qBAAqB,UAAU;AACrC,MAAM,kBAAkB,UAAU;AAClC,MAAM,oBAAoB,UAAU;AACpC,MAAM,wBAAwB,UAAU;AACxC,MAAM,QAAQ,UAAU;AACxB,MAAM,SAAS,UAAU;AACzB,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,uBAAuB,UAAU;AACvC,MAAM,cAAc,UAAU;AAC9B,MAAM,0BAA0B,UAAU;AAC1C,MAAM,kBAAkB,UAAU;AAClC,MAAM,kBAAkB,UAAU;AAClC,MAAM,oBAAoB,UAAU;AACpC,MAAM,sBAAsB,UAAU;AACtC,MAAM,qBAAqB,UAAU;AACrC,MAAM,wBAAwB,UAAU;AACxC,MAAM,uBAAuB,UAAU;AACvC,MAAM,oBAAoB,UAAU;"}
|
|
1
|
+
{"version":3,"file":"browser.mjs","sources":["../src/browser.ts"],"sourcesContent":["import { createSDKModule } from './sdk_core'\nimport { hashPassword } from './account'\n\nconst sdkModule = createSDKModule('browser')\n\nexport const buckyos = sdkModule.buckyos\nexport const initBuckyOS = sdkModule.initBuckyOS\nexport const getBuckyOSConfig = sdkModule.getBuckyOSConfig\nexport const getRuntimeType = sdkModule.getRuntimeType\nexport const getAppId = sdkModule.getAppId\nexport const getAppDid = sdkModule.getAppDid\nexport const getAppInstanceId = sdkModule.getAppInstanceId\nexport const getAppDataDir = sdkModule.getAppDataDir\nexport const getKEventClient = sdkModule.getKEventClient\nexport const createEventReader = sdkModule.createEventReader\nexport const create_event_reader = sdkModule.create_event_reader\nexport const subscribeKEvent = sdkModule.subscribeKEvent\nexport const attachEvent = sdkModule.attachEvent\nexport const removeEvent = sdkModule.removeEvent\nexport const getAccountInfo = sdkModule.getAccountInfo\nexport const getCurrentIdentity = sdkModule.getCurrentIdentity\nexport const loginByPassword = sdkModule.loginByPassword\nexport const loginByBrowserSSO = sdkModule.loginByBrowserSSO\nexport const loginByRuntimeSession = sdkModule.loginByRuntimeSession\nexport const login = sdkModule.login\nexport const logout = sdkModule.logout\nexport const getAppSetting = sdkModule.getAppSetting\nexport const setAppSetting = sdkModule.setAppSetting\nexport const getCurrentWalletUser = sdkModule.getCurrentWalletUser\nexport const resolve_did = sdkModule.resolve_did\nexport const walletSignWithActiveDid = sdkModule.walletSignWithActiveDid\nexport const openExternalUrl = sdkModule.openExternalUrl\nexport const getZoneHostName = sdkModule.getZoneHostName\nexport const getZoneServiceURL = sdkModule.getZoneServiceURL\nexport const getServiceRpcClient = sdkModule.getServiceRpcClient\nexport const getVerifyHubClient = sdkModule.getVerifyHubClient\nexport const getSystemConfigClient = sdkModule.getSystemConfigClient\nexport const getTaskManagerClient = sdkModule.getTaskManagerClient\nexport const getWorkflowClient = sdkModule.getWorkflowClient\n\nexport { hashPassword }\nexport * from './sdk_core'\nexport * from './types'\nexport * from './app_identity'\nexport * as namelib from './namelib'\nexport * as bns from './bns_client'\nexport * from './bns_evm_tx'\nexport * from './bns_tx_executor'\nexport * as sn from './sn_client'\nexport * as ndn from './ndn_types'\nexport * as ndm from './ndm_client'\nexport * as ndm_proxy from './ndm_proxy'\n\nexport * from './executor_client'\n"],"names":[],"mappings":";;;AAGA,MAAM,YAAY,gBAAgB,SAAS;AAEpC,MAAM,UAAU,UAAU;AAC1B,MAAM,cAAc,UAAU;AAC9B,MAAM,mBAAmB,UAAU;AACnC,MAAM,iBAAiB,UAAU;AACjC,MAAM,WAAW,UAAU;AAC3B,MAAM,YAAY,UAAU;AAC5B,MAAM,mBAAmB,UAAU;AACnC,MAAM,gBAAgB,UAAU;AAChC,MAAM,kBAAkB,UAAU;AAClC,MAAM,oBAAoB,UAAU;AACpC,MAAM,sBAAsB,UAAU;AACtC,MAAM,kBAAkB,UAAU;AAClC,MAAM,cAAc,UAAU;AAC9B,MAAM,cAAc,UAAU;AAC9B,MAAM,iBAAiB,UAAU;AACjC,MAAM,qBAAqB,UAAU;AACrC,MAAM,kBAAkB,UAAU;AAClC,MAAM,oBAAoB,UAAU;AACpC,MAAM,wBAAwB,UAAU;AACxC,MAAM,QAAQ,UAAU;AACxB,MAAM,SAAS,UAAU;AACzB,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,uBAAuB,UAAU;AACvC,MAAM,cAAc,UAAU;AAC9B,MAAM,0BAA0B,UAAU;AAC1C,MAAM,kBAAkB,UAAU;AAClC,MAAM,kBAAkB,UAAU;AAClC,MAAM,oBAAoB,UAAU;AACpC,MAAM,sBAAsB,UAAU;AACtC,MAAM,qBAAqB,UAAU;AACrC,MAAM,wBAAwB,UAAU;AACxC,MAAM,uBAAuB,UAAU;AACvC,MAAM,oBAAoB,UAAU;"}
|
package/dist/content.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=["txt","text","log","ini","conf","cfg","env","csv","tsv","md","markdown","rst","adoc","json","jsonc","json5","xml","yaml","yml","toml","ts","tsx","js","jsx","mjs","cjs","rs","py","go","c","h","cc","cpp","hpp","java","kt","swift","rb","php","sql","sh","bash","zsh","ps1","bat","css","scss","less","vue","svelte","lua","dart","r","scala","ex","exs","dockerfile","makefile","gitignore","editorconfig","lock"],t={png:"image/png",apng:"image/apng",jpg:"image/jpeg",jpeg:"image/jpeg",jfif:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif",heic:"image/heic",heif:"image/heif",tif:"image/tiff",tiff:"image/tiff",psd:"image/vnd.adobe.photoshop",svg:"image/svg+xml",mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",mkv:"video/x-matroska",avi:"video/x-msvideo",ogv:"video/ogg",mp3:"audio/mpeg",wav:"audio/wav",flac:"audio/flac",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",pdf:"application/pdf",html:"text/html",htm:"text/html",xhtml:"application/xhtml+xml",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",doc:"application/msword",xls:"application/vnd.ms-excel",ppt:"application/vnd.ms-powerpoint",odt:"application/vnd.oasis.opendocument.text",zip:"application/zip",tar:"application/x-tar",gz:"application/gzip","7z":"application/x-7z-compressed",rar:"application/vnd.rar",epub:"application/epub+zip",md:"text/markdown",markdown:"text/markdown",json:"application/json",xml:"application/xml",csv:"text/csv",yaml:"application/yaml",yml:"application/yaml",toml:"application/toml",js:"text/javascript",mjs:"text/javascript",cjs:"text/javascript",css:"text/css"};for(const u of e)t[u]||(t[u]=`text/x-${u}`);function i(e){if(!e)return"";const t=e.split("/").pop()??e,i=t.lastIndexOf(".");return i<=0?"":t.slice(i+1).toLowerCase()}function s(e){return t[e.toLowerCase()]}const n={provider:"system",handler_id:"preview",handler_version:1,selectors:[{mime:"*/*"}],enabled:!0,intents:{open:{entry:{type:"builtin",target:"preview"},modes:["view"],fidelity:"partial",window:"reuse",priority:90}}},o=()=>({schema_version:1,defaults:{},disabled:[]}),r=e=>"cyfs-path"===e.kind?e.path:`obj://${e.objectId}`;function a(e){if(!e||"object"!=typeof e)return!1;const t=e;return"cyfs-path"===t.kind&&"string"==typeof t.path&&/^cyfs:\/\/\/[^\0]*$/.test(t.path)||"object-id"===t.kind&&"string"==typeof t.objectId&&/^[\w.-]+:[\w-]+$/.test(t.objectId)}function c(e){if(!e||"object"!=typeof e)return!1;const t=e;return"single"===t.kind||"container"===t.kind&&a(t.container)&&a(t.current)||"list"===t.kind&&Array.isArray(t.items)&&t.items.every((e=>e&&a(e.source)))&&Number.isInteger(t.currentIndex)&&t.currentIndex>=0&&t.currentIndex<t.items.length}const p=e=>void 0===e?[]:Array.isArray(e)?e:[e];function d(e,t){var i;if(void 0!==e.maxSize&&void 0!==t.size&&t.size>e.maxSize)return 0;if(e.objType&&!p(e.objType).includes(t.objType??""))return 0;let s=e.objType?2:1;if(e.schema){const i=p(e.schema).filter((e=>{var i;return e.endsWith("*")?null==(i=t.schema)?void 0:i.startsWith(e.slice(0,-1)):t.schema===e}));if(!i.length)return 0;s=i.some((e=>e===t.schema))?7:6}if(e.mime){const i=(t.mime??"").toLowerCase().split(";")[0].trim(),n=p(e.mime).map((t=>"*/*"===(t=t.toLowerCase())?1:t.split(";")[0].trim()===i?e.objType?6:5:t.includes("/*+")&&i.startsWith(t.split("/")[0]+"/")&&i.endsWith(t.slice(t.indexOf("+")))?4:t.endsWith("/*")&&i.startsWith(t.slice(0,-1))?3:0)),o=Math.max(...n,0);if(!o)return 0;s=Math.max(s,o)}return e.mime||e.objType||e.schema||(null==(i=e.ext)?void 0:i.includes(t.ext??""))?s:0}function l(e){const t={};for(const i of e.split(";")){const e=i.indexOf(":"),s=i.slice(0,e),n=i.slice(e+1);if("obj"===s)t.objType=n;else if("mime"===s)t.mime=n;else if("schema"===s)t.schema=n;else{if("ext"!==s)return{};t.ext=[n]}}return t}function m(e){if("cyfs-path"!==e.kind)return;const t=e.path.lastIndexOf("/");return t>=7?{kind:"cyfs-path",path:e.path.slice(0,t)||"cyfs:///"}:void 0}function f(e,t){if(!e)return"";const i=e=>btoa(Array.from((new TextEncoder).encode(JSON.stringify(e)),(e=>String.fromCharCode(e))).join("")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),s=i(e);if(s.length<=2048||"list"!==e.kind)return s;const n=m(t);return n&&e.items.every((e=>r(m(e.source)??e.source)===r(n)))?i({kind:"container",container:n,current:t}):""}exports.ContentRegistryClient=class{constructor(e,t){this.config=e,this.userId=t,this.registry={schema_version:1,handlers:{}},this.defaults={schema_version:1,defaults:{},disabled:[]},this.updatedAt=0,this.listeners=new Set}async refresh(){const[e,t]=await Promise.all([this.config.get("system/content_registry"),this.config.get(`users/${this.userId}/content_defaults`).catch((e=>{if(/not found|not_found/i.test(String(e)))return null;throw e}))]);this.registry=JSON.parse(e.value),this.defaults=t?JSON.parse(t.value):{schema_version:1,defaults:{},disabled:[]},this.updatedAt=Date.now(),this.listeners.forEach((e=>e()))}async setDefault(e,t,i){await this.refresh();const s={...this.defaults.defaults[e]};i?s[t]=i:delete s[t],await this.persist({...this.defaults,defaults:{...this.defaults.defaults,[e]:s}})}async setEnabled(e,t){await this.refresh(),await this.persist({...this.defaults,disabled:[...new Set([...this.defaults.disabled.filter((t=>t!==e)),...t?[]:[e]])]})}onChanged(e){return this.listeners.add(e),()=>this.listeners.delete(e)}async persist(e){await this.config.set(`users/${this.userId}/content_defaults`,JSON.stringify(e)),this.defaults=e,this.listeners.forEach((e=>e()))}},exports.TEXT_CODE_EXTENSIONS=e,exports.contentDescriptor=function(e,t={}){const n=t.name??r(e).split("/").pop()??"",o=i(n);return{source:e,name:n,size:t.size,ext:o?`.${o}`:void 0,objType:"cyfs-path"===e.kind?"cyfile":e.objectId.split(":")[0],mime:t.mime||s(o)||"application/octet-stream"}},exports.contentRefString=r,exports.emptyDefaults=o,exports.encodeSession=f,exports.expandOpenPath=function(e,t,i=["view","edit"]){if(!e.startsWith("/")||e.startsWith("//")||/(?:\.\.|\\|[\r\n])/.test(decodeURIComponent(e)))throw new Error("Invalid App entry path");const s={source:r(t.source),mode:t.mode??(i.includes("edit")?"edit":"view"),session:f(t.session,t.source)},n=e.replace(/\{(source|mode|session)\}/g,((e,t)=>encodeURIComponent(s[t])));return n+(n.includes("?")?"&":"?")+"requestId="+encodeURIComponent(t.requestId)},exports.extensionOf=i,exports.isOpenRequest=function(e){if(!e||"object"!=typeof e)return!1;const t=e;return"string"==typeof t.requestId&&a(t.source)&&(void 0===t.mode||"view"===t.mode||"edit"===t.mode)&&(void 0===t.session||c(t.session))},exports.isTransferableRef=a,exports.isTransferableSession=c,exports.matchSelector=d,exports.mediaTypeFromExtension=s,exports.parentSource=m,exports.previewHandler=n,exports.resolveContentHandlers=function(e,t,i,s="open",o={},r=[]){var a;const c=new Set(r),p={...e.handlers,"system#preview":n},m=Object.entries(t.defaults.open??{}).map((([e,t])=>({key:t,score:d(l(e),i)}))).filter((e=>e.score>0)).sort(((e,t)=>t.score-e.score||e.key.localeCompare(t.key))),f=Object.entries(p).flatMap((([e,n])=>{const o=n.intents[s];if(!o||!n.enabled||"system#preview"!==e&&t.disabled.includes(e))return[];if(!("app"!==n.provider||n.app_instance_id&&c.has(n.app_instance_id)&&"web"===o.entry.type))return[];const r=n.selectors.map((e=>({selector:e,specificity:d(e,i)}))).filter((e=>e.specificity>0)).sort(((e,t)=>t.specificity-e.specificity));return r.length?[{key:e,h:n,binding:o,matched:r[0]}]:[]})),u=null==(a=m.find((e=>f.some((t=>t.key===e.key)))))?void 0:a.key;return f.sort(((e,t)=>Number(t.key===u)-Number(e.key===u)||Number(t.matched.specificity>1||"system"===t.h.provider)-Number(e.matched.specificity>1||"system"===e.h.provider)||t.matched.specificity-e.matched.specificity||(t.binding.priority??0)-(e.binding.priority??0)||Number("system"===t.h.provider)-Number("system"===e.h.provider)||(e.h.registered_at??0)-(t.h.registered_at??0)||e.key.localeCompare(t.key))),f.map((e=>{var t;return{handlerKey:e.key,handlerRef:`${(null==(t=e.h.app_instance_id)?void 0:t.split("@")[0])??"system"}#${e.h.handler_id}`,appInstanceId:e.h.app_instance_id,appDocObjectId:e.h.app_doc_object_id,handlerVersion:e.h.handler_version,intent:s,binding:e.binding,matched:e.matched,reason:e.key===u?"user-default":"system"===e.h.provider?"system-default":"ranked"}}))};
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=["txt","text","log","ini","conf","cfg","env","csv","tsv","md","markdown","rst","adoc","json","jsonc","json5","xml","yaml","yml","toml","ts","tsx","js","jsx","mjs","cjs","rs","py","go","c","h","cc","cpp","hpp","java","kt","swift","rb","php","sql","sh","bash","zsh","ps1","bat","css","scss","less","vue","svelte","lua","dart","r","scala","ex","exs","dockerfile","makefile","gitignore","editorconfig","lock"],t={png:"image/png",apng:"image/apng",jpg:"image/jpeg",jpeg:"image/jpeg",jfif:"image/jpeg",gif:"image/gif",webp:"image/webp",bmp:"image/bmp",ico:"image/x-icon",avif:"image/avif",heic:"image/heic",heif:"image/heif",tif:"image/tiff",tiff:"image/tiff",psd:"image/vnd.adobe.photoshop",svg:"image/svg+xml",mp4:"video/mp4",m4v:"video/mp4",webm:"video/webm",mov:"video/quicktime",mkv:"video/x-matroska",avi:"video/x-msvideo",ogv:"video/ogg",mp3:"audio/mpeg",wav:"audio/wav",flac:"audio/flac",ogg:"audio/ogg",oga:"audio/ogg",opus:"audio/ogg",m4a:"audio/mp4",aac:"audio/aac",pdf:"application/pdf",html:"text/html",htm:"text/html",xhtml:"application/xhtml+xml",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",doc:"application/msword",xls:"application/vnd.ms-excel",ppt:"application/vnd.ms-powerpoint",odt:"application/vnd.oasis.opendocument.text",zip:"application/zip",tar:"application/x-tar",gz:"application/gzip","7z":"application/x-7z-compressed",rar:"application/vnd.rar",epub:"application/epub+zip",md:"text/markdown",markdown:"text/markdown",json:"application/json",xml:"application/xml",csv:"text/csv",yaml:"application/yaml",yml:"application/yaml",toml:"application/toml",js:"text/javascript",mjs:"text/javascript",cjs:"text/javascript",css:"text/css"};for(const h of e)t[h]||(t[h]=`text/x-${h}`);function s(e){if(!e)return"";const t=e.split("/").pop()??e,s=t.lastIndexOf(".");return s<=0?"":t.slice(s+1).toLowerCase()}function i(e){return t[e.toLowerCase()]}function n(e){if(!e||"object"!=typeof e)return{};const t=e,s={};"string"==typeof t.name&&t.name&&t.name.length<=255&&!/[\/\\\0]/.test(t.name)&&(s.name=t.name),"string"==typeof t.mime&&/^[\w.+-]+\/[\w.+-]+$/.test(t.mime)&&(s.mime=t.mime.toLowerCase());const i="string"==typeof t.size?Number(t.size):t.size;return"number"==typeof i&&Number.isSafeInteger(i)&&i>=0&&(s.size=i),s}const r={provider:"system",handler_id:"preview",handler_version:1,selectors:[{mime:"*/*"}],enabled:!0,intents:{open:{entry:{type:"builtin",target:"preview"},modes:["view"],fidelity:"partial",window:"reuse",priority:90}}},o=()=>({schema_version:1,defaults:{},disabled:[]}),a=e=>"cyfs-path"===e.kind?e.path:`obj://${e.objectId}`;function c(e){if(!e||"object"!=typeof e)return!1;const t=e;return"cyfs-path"===t.kind&&"string"==typeof t.path&&/^cyfs:\/\/\/[^\0]*$/.test(t.path)||"object-id"===t.kind&&"string"==typeof t.objectId&&/^[\w.-]+:[\w-]+$/.test(t.objectId)}function p(e){if(!e||"object"!=typeof e)return!1;const t=e;return"single"===t.kind||"container"===t.kind&&c(t.container)&&c(t.current)||"list"===t.kind&&Array.isArray(t.items)&&t.items.every((e=>e&&c(e.source)))&&Number.isInteger(t.currentIndex)&&t.currentIndex>=0&&t.currentIndex<t.items.length}const d=e=>void 0===e?[]:Array.isArray(e)?e:[e];function m(e,t){var s;if(void 0!==e.maxSize&&void 0!==t.size&&t.size>e.maxSize)return 0;if(e.objType&&!d(e.objType).includes(t.objType??""))return 0;let i=e.objType?2:1;if(e.schema){const s=d(e.schema).filter((e=>{var s;return e.endsWith("*")?null==(s=t.schema)?void 0:s.startsWith(e.slice(0,-1)):t.schema===e}));if(!s.length)return 0;i=s.some((e=>e===t.schema))?7:6}if(e.mime){const s=(t.mime??"").toLowerCase().split(";")[0].trim(),n=d(e.mime).map((t=>"*/*"===(t=t.toLowerCase())?1:t.split(";")[0].trim()===s?e.objType?6:5:t.includes("/*+")&&s.startsWith(t.split("/")[0]+"/")&&s.endsWith(t.slice(t.indexOf("+")))?4:t.endsWith("/*")&&s.startsWith(t.slice(0,-1))?3:0)),r=Math.max(...n,0);if(!r)return 0;i=Math.max(i,r)}return e.mime||e.objType||e.schema||(null==(s=e.ext)?void 0:s.includes(t.ext??""))?i:0}function l(e){const t={};for(const s of e.split(";")){const e=s.indexOf(":"),i=s.slice(0,e),n=s.slice(e+1);if("obj"===i)t.objType=n;else if("mime"===i)t.mime=n;else if("schema"===i)t.schema=n;else{if("ext"!==i)return{};t.ext=[n]}}return t}function f(e){if("cyfs-path"!==e.kind)return;const t=e.path.lastIndexOf("/");return t>=7?{kind:"cyfs-path",path:e.path.slice(0,t)||"cyfs:///"}:void 0}function u(e,t){if(!e)return"";const s=e=>btoa(Array.from((new TextEncoder).encode(JSON.stringify(e)),(e=>String.fromCharCode(e))).join("")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),i=s(e);if(i.length<=2048||"list"!==e.kind)return i;const n=f(t);return n&&e.items.every((e=>a(f(e.source)??e.source)===a(n)))?s({kind:"container",container:n,current:t}):""}exports.ContentRegistryClient=class{constructor(e,t){this.config=e,this.userId=t,this.registry={schema_version:1,handlers:{}},this.defaults={schema_version:1,defaults:{},disabled:[]},this.updatedAt=0,this.listeners=new Set}async refresh(){const[e,t]=await Promise.all([this.config.get("system/content_registry"),this.config.get(`users/${this.userId}/content_defaults`).catch((e=>{if(/not found|not_found/i.test(String(e)))return null;throw e}))]);this.registry=JSON.parse(e.value),this.defaults=t?JSON.parse(t.value):{schema_version:1,defaults:{},disabled:[]},this.updatedAt=Date.now(),this.listeners.forEach((e=>e()))}async setDefault(e,t,s){await this.refresh();const i={...this.defaults.defaults[e]};s?i[t]=s:delete i[t],await this.persist({...this.defaults,defaults:{...this.defaults.defaults,[e]:i}})}async setEnabled(e,t){await this.refresh(),await this.persist({...this.defaults,disabled:[...new Set([...this.defaults.disabled.filter((t=>t!==e)),...t?[]:[e]])]})}onChanged(e){return this.listeners.add(e),()=>this.listeners.delete(e)}async persist(e){await this.config.set(`users/${this.userId}/content_defaults`,JSON.stringify(e)),this.defaults=e,this.listeners.forEach((e=>e()))}},exports.TEXT_CODE_EXTENSIONS=e,exports.contentDescriptor=function(e,t={}){const n=t.name??a(e).split("/").pop()??"",r=s(n);return{source:e,name:n,size:t.size,ext:r?`.${r}`:void 0,objType:"cyfs-path"===e.kind?"cyfile":e.objectId.split(":")[0],mime:t.mime||i(r)||"application/octet-stream"}},exports.contentRefString=a,exports.emptyDefaults=o,exports.encodeSession=u,exports.expandOpenPath=function(e,t,s=["view","edit"]){if(!e.startsWith("/")||e.startsWith("//")||/(?:\.\.|\\|[\r\n])/.test(decodeURIComponent(e)))throw new Error("Invalid App entry path");const i={source:a(t.source),mode:t.mode??(s.includes("edit")?"edit":"view"),session:u(t.session,t.source)},n=e.replace(/\{(source|mode|session)\}/g,((e,t)=>encodeURIComponent(i[t])));return n+(n.includes("?")?"&":"?")+"requestId="+encodeURIComponent(t.requestId)},exports.extensionOf=s,exports.handlerOfApp=(e,t)=>!!e.appInstanceId&&e.appInstanceId.split("@")[0]===t.split("@")[0],exports.isOpenRequest=function(e){if(!e||"object"!=typeof e)return!1;const t=e;return"string"==typeof t.requestId&&c(t.source)&&(void 0===t.mode||"view"===t.mode||"edit"===t.mode)&&(void 0===t.session||p(t.session))},exports.isTransferableRef=c,exports.isTransferableSession=p,exports.matchSelector=m,exports.mediaTypeFromExtension=i,exports.parentSource=f,exports.parseSystemOpen=function(e){const t=e.get("open");if(!t)return;const s=t.startsWith("obj://")?{kind:"object-id",objectId:t.slice(6)}:{kind:"cyfs-path",path:t};if(!c(s))return;const i=e.get("intent"),r="preview"===i||"chooser"===i?i:"default",o={source:s},a=e.get("mode");"view"!==a&&"edit"!==a||(o.mode=a);const d=e.get("session");if(d)try{const e=JSON.parse((new TextDecoder).decode(Uint8Array.from(atob(d.replace(/-/g,"+").replace(/_/g,"/")),(e=>e.charCodeAt(0)))));p(e)&&(o.session=e)}catch{}const m=e.get("from");return{request:o,target:r,hints:n({name:e.get("name")??void 0,mime:e.get("mime")??void 0,size:e.get("size")??void 0}),from:m&&/^[\w.@-]+$/.test(m)?m:void 0}},exports.previewHandler=r,exports.readContentHints=n,exports.resolveContentHandlers=function(e,t,s,i="open",n={},o=[]){var a;const c=new Set(o),p={...e.handlers,"system#preview":r},d=Object.entries(t.defaults.open??{}).map((([e,t])=>({key:t,score:m(l(e),s)}))).filter((e=>e.score>0)).sort(((e,t)=>t.score-e.score||e.key.localeCompare(t.key))),f=Object.entries(p).flatMap((([e,n])=>{const r=n.intents[i];if(!r||!n.enabled||"system#preview"!==e&&t.disabled.includes(e))return[];if(!("app"!==n.provider||n.app_instance_id&&c.has(n.app_instance_id)&&"web"===r.entry.type))return[];const o=n.selectors.map((e=>({selector:e,specificity:m(e,s)}))).filter((e=>e.specificity>0)).sort(((e,t)=>t.specificity-e.specificity));return o.length?[{key:e,h:n,binding:r,matched:o[0]}]:[]})),u=null==(a=d.find((e=>f.some((t=>t.key===e.key)))))?void 0:a.key;return f.sort(((e,t)=>Number(t.key===u)-Number(e.key===u)||Number(t.matched.specificity>1||"system"===t.h.provider)-Number(e.matched.specificity>1||"system"===e.h.provider)||t.matched.specificity-e.matched.specificity||(t.binding.priority??0)-(e.binding.priority??0)||Number("system"===t.h.provider)-Number("system"===e.h.provider)||(e.h.registered_at??0)-(t.h.registered_at??0)||e.key.localeCompare(t.key))),f.map((e=>{var t;return{handlerKey:e.key,handlerRef:`${(null==(t=e.h.app_instance_id)?void 0:t.split("@")[0])??"system"}#${e.h.handler_id}`,appInstanceId:e.h.app_instance_id,appDocObjectId:e.h.app_doc_object_id,handlerVersion:e.h.handler_version,intent:i,binding:e.binding,matched:e.matched,reason:e.key===u?"user-default":"system"===e.h.provider?"system-default":"ranked"}}))},exports.systemOpenUrl=function(e,t){const s=new URL("/",e);s.searchParams.set("open",a(t.request.source)),s.searchParams.set("intent",t.target);const i=u(t.request.session,t.request.source);i&&s.searchParams.set("session",i),t.request.mode&&s.searchParams.set("mode",t.request.mode);for(const n of["name","mime","size"])void 0!==t.hints[n]&&s.searchParams.set(n,String(t.hints[n]));return t.from&&s.searchParams.set("from",t.from),s.href};
|
|
2
2
|
//# sourceMappingURL=content.cjs.map
|
package/dist/content.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.cjs","sources":["../src/content_mime.ts","../src/content.ts"],"sourcesContent":["export const TEXT_CODE_EXTENSIONS = [\n 'txt', 'text', 'log', 'ini', 'conf', 'cfg', 'env', 'csv', 'tsv',\n 'md', 'markdown', 'rst', 'adoc',\n 'json', 'jsonc', 'json5', 'xml', 'yaml', 'yml', 'toml',\n 'ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs', 'rs', 'py', 'go', 'c', 'h', 'cc', 'cpp', 'hpp',\n 'java', 'kt', 'swift', 'rb', 'php', 'sql', 'sh', 'bash', 'zsh', 'ps1', 'bat',\n 'css', 'scss', 'less', 'vue', 'svelte', 'lua', 'dart', 'r', 'scala', 'ex', 'exs',\n 'dockerfile', 'makefile', 'gitignore', 'editorconfig', 'lock',\n]\n\nconst MEDIA_TYPE_BY_EXTENSION: Record<string, string> = {\n png: 'image/png',\n apng: 'image/apng',\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n jfif: 'image/jpeg',\n gif: 'image/gif',\n webp: 'image/webp',\n bmp: 'image/bmp',\n ico: 'image/x-icon',\n avif: 'image/avif',\n heic: 'image/heic',\n heif: 'image/heif',\n tif: 'image/tiff',\n tiff: 'image/tiff',\n psd: 'image/vnd.adobe.photoshop',\n svg: 'image/svg+xml',\n mp4: 'video/mp4',\n m4v: 'video/mp4',\n webm: 'video/webm',\n mov: 'video/quicktime',\n mkv: 'video/x-matroska',\n avi: 'video/x-msvideo',\n ogv: 'video/ogg',\n mp3: 'audio/mpeg',\n wav: 'audio/wav',\n flac: 'audio/flac',\n ogg: 'audio/ogg',\n oga: 'audio/ogg',\n opus: 'audio/ogg',\n m4a: 'audio/mp4',\n aac: 'audio/aac',\n pdf: 'application/pdf',\n html: 'text/html',\n htm: 'text/html',\n xhtml: 'application/xhtml+xml',\n docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n doc: 'application/msword',\n xls: 'application/vnd.ms-excel',\n ppt: 'application/vnd.ms-powerpoint',\n odt: 'application/vnd.oasis.opendocument.text',\n zip: 'application/zip',\n tar: 'application/x-tar',\n gz: 'application/gzip',\n '7z': 'application/x-7z-compressed',\n rar: 'application/vnd.rar',\n epub: 'application/epub+zip',\n md: 'text/markdown',\n markdown: 'text/markdown',\n json: 'application/json',\n xml: 'application/xml',\n csv: 'text/csv',\n yaml: 'application/yaml',\n yml: 'application/yaml',\n toml: 'application/toml',\n js: 'text/javascript',\n mjs: 'text/javascript',\n cjs: 'text/javascript',\n css: 'text/css',\n}\n\nfor (const ext of TEXT_CODE_EXTENSIONS) {\n if (!MEDIA_TYPE_BY_EXTENSION[ext]) MEDIA_TYPE_BY_EXTENSION[ext] = `text/x-${ext}`\n}\n\n\nexport function extensionOf(name: string | undefined): string {\n if (!name) return ''\n const base = name.split('/').pop() ?? name\n const dot = base.lastIndexOf('.')\n if (dot <= 0) return ''\n return base.slice(dot + 1).toLowerCase()\n}\n\nexport function mediaTypeFromExtension(ext: string): string | undefined {\n return MEDIA_TYPE_BY_EXTENSION[ext.toLowerCase()]\n}\n","import { extensionOf, mediaTypeFromExtension } from './content_mime'\nexport { extensionOf, mediaTypeFromExtension, TEXT_CODE_EXTENSIONS } from './content_mime'\n\nexport type TransferableContentRef =\n | { kind: 'cyfs-path'; path: string; version?: string }\n | { kind: 'object-id'; objectId: string; version?: string }\nexport type TransferableSessionContext =\n | { kind: 'single' }\n | { kind: 'container'; container: TransferableContentRef; current: TransferableContentRef; sort?: unknown; navigation?: 'wrap' | 'bounded' }\n | { kind: 'list'; sessionId?: string; version?: string; items: Array<{ id?: string; source: TransferableContentRef; title?: string }>; currentIndex: number; navigation?: 'wrap' | 'bounded' }\nexport interface OpenRequest {\n requestId: string\n source: TransferableContentRef\n session?: TransferableSessionContext\n mode?: 'view' | 'edit'\n origin?: { appInstanceId?: string; windowId?: string; hostContext?: string }\n}\nexport interface ContentSelector {\n objType?: string | string[]\n mime?: string | string[]\n schema?: string | string[]\n ext?: string[]\n maxSize?: number\n}\nexport interface ContentDescriptor {\n source: TransferableContentRef\n objType?: string\n mime?: string\n schema?: string\n ext?: string\n name?: string\n size?: number\n}\nexport interface OpenBinding {\n entry: { type: 'web'; path: string } | { type: 'builtin'; target: string }\n modes?: Array<'view' | 'edit'>\n fidelity?: 'full' | 'partial'\n window?: 'reuse' | 'new'\n multiSource?: boolean\n priority?: number\n}\nexport interface ContentHandlerEntry {\n provider: 'app' | 'system'\n app_instance_id?: string\n app_doc_object_id?: string\n app_version?: string\n handler_id: string\n handler_version: number\n selectors: ContentSelector[]\n intents: { open?: OpenBinding }\n permissions?: string[]\n enabled: boolean\n registered_at?: number\n}\nexport interface ContentRegistry { schema_version: 1; updated_at?: number; handlers: Record<string, ContentHandlerEntry> }\nexport interface ContentDefaults { schema_version: 1; defaults: { open?: Record<string, string> }; disabled: string[] }\nexport interface HandlerPlan {\n handlerKey: string\n handlerRef: string\n appInstanceId?: string\n appDocObjectId?: string\n handlerVersion: number\n intent: 'open'\n binding: OpenBinding\n matched: { selector: ContentSelector; specificity: number }\n reason: 'user-default' | 'system-default' | 'ranked'\n}\nexport const previewHandler: ContentHandlerEntry = {\n provider: 'system', handler_id: 'preview', handler_version: 1,\n selectors: [{ mime: '*/*' }], enabled: true,\n intents: { open: { entry: { type: 'builtin', target: 'preview' }, modes: ['view'], fidelity: 'partial', window: 'reuse', priority: 90 } },\n}\nexport const emptyDefaults = (): ContentDefaults => ({ schema_version: 1, defaults: {}, disabled: [] })\nexport const contentRefString = (ref: TransferableContentRef): string => ref.kind === 'cyfs-path' ? ref.path : `obj://${ref.objectId}`\nexport function isTransferableRef(value: unknown): value is TransferableContentRef {\n if (!value || typeof value !== 'object') return false\n const v = value as TransferableContentRef\n return (v.kind === 'cyfs-path' && typeof v.path === 'string' && /^cyfs:\\/\\/\\/[^\\0]*$/.test(v.path)) ||\n (v.kind === 'object-id' && typeof v.objectId === 'string' && /^[\\w.-]+:[\\w-]+$/.test(v.objectId))\n}\nexport function isOpenRequest(value: unknown): value is OpenRequest {\n if (!value || typeof value !== 'object') return false\n const v = value as OpenRequest\n return typeof v.requestId === 'string' && isTransferableRef(v.source) &&\n (v.mode === undefined || v.mode === 'view' || v.mode === 'edit') &&\n (v.session === undefined || isTransferableSession(v.session))\n}\nexport function isTransferableSession(value: unknown): value is TransferableSessionContext {\n if (!value || typeof value !== 'object') return false\n const v = value as TransferableSessionContext\n return v.kind === 'single' ||\n (v.kind === 'container' && isTransferableRef(v.container) && isTransferableRef(v.current)) ||\n (v.kind === 'list' && Array.isArray(v.items) && v.items.every(i => i && isTransferableRef(i.source)) &&\n Number.isInteger(v.currentIndex) && v.currentIndex >= 0 && v.currentIndex < v.items.length)\n}\nexport function contentDescriptor(source: TransferableContentRef, hints: { name?: string; mime?: string; size?: number } = {}): ContentDescriptor {\n const name = hints.name ?? contentRefString(source).split('/').pop() ?? ''\n const ext = extensionOf(name)\n return { source, name, size: hints.size, ext: ext ? `.${ext}` : undefined,\n objType: source.kind === 'cyfs-path' ? 'cyfile' : source.objectId.split(':')[0],\n mime: hints.mime || mediaTypeFromExtension(ext) || 'application/octet-stream' }\n}\nconst values = (v?: string | string[]) => v === undefined ? [] : Array.isArray(v) ? v : [v]\nexport function matchSelector(s: ContentSelector, d: ContentDescriptor): number {\n if (s.maxSize !== undefined && d.size !== undefined && d.size > s.maxSize) return 0\n if (s.objType && !values(s.objType).includes(d.objType ?? '')) return 0\n let score = s.objType ? 2 : 1\n if (s.schema) {\n const matches = values(s.schema).filter(v => v.endsWith('*') ? d.schema?.startsWith(v.slice(0, -1)) : d.schema === v)\n if (!matches.length) return 0\n score = matches.some(v => v === d.schema) ? 7 : 6\n }\n if (s.mime) {\n const mime = (d.mime ?? '').toLowerCase().split(';')[0].trim()\n const scores = values(s.mime).map(v => {\n v = v.toLowerCase()\n if (v === '*/*') return 1\n if (v.split(';')[0].trim() === mime) return s.objType ? 6 : 5\n if (v.includes('/*+') && mime.startsWith(v.split('/')[0] + '/') && mime.endsWith(v.slice(v.indexOf('+')))) return 4\n if (v.endsWith('/*') && mime.startsWith(v.slice(0, -1))) return 3\n return 0\n })\n const best = Math.max(...scores, 0)\n if (!best) return 0\n score = Math.max(score, best)\n }\n if (!s.mime && !s.objType && !s.schema && !s.ext?.includes(d.ext ?? '')) return 0\n return score\n}\nfunction compactSelector(value: string): ContentSelector {\n const out: ContentSelector = {}\n for (const part of value.split(';')) {\n const i = part.indexOf(':'); const key = part.slice(0, i); const v = part.slice(i + 1)\n if (key === 'obj') out.objType = v\n else if (key === 'mime') out.mime = v\n else if (key === 'schema') out.schema = v\n else if (key === 'ext') out.ext = [v]\n else return {}\n }\n return out\n}\nexport function resolveContentHandlers(registry: ContentRegistry, defaults: ContentDefaults, descriptor: ContentDescriptor,\n intent: 'open' = 'open', _host: unknown = {}, availableApps: Iterable<string> = []): HandlerPlan[] {\n const visible = new Set(availableApps)\n const handlers = { ...registry.handlers, 'system#preview': previewHandler }\n const preferred = Object.entries(defaults.defaults.open ?? {})\n .map(([s, key]) => ({ key, score: matchSelector(compactSelector(s), descriptor) }))\n .filter(v => v.score > 0).sort((a, b) => b.score - a.score || a.key.localeCompare(b.key))\n const matches = Object.entries(handlers).flatMap(([key, h]) => {\n const binding = h.intents[intent]\n if (!binding || !h.enabled || (key !== 'system#preview' && defaults.disabled.includes(key))) return []\n if (h.provider === 'app' && (!h.app_instance_id || !visible.has(h.app_instance_id) || binding.entry.type !== 'web')) return []\n const selectors = h.selectors.map(selector => ({ selector, specificity: matchSelector(selector, descriptor) }))\n .filter(s => s.specificity > 0).sort((a, b) => b.specificity - a.specificity)\n if (!selectors.length) return []\n return [{ key, h, binding, matched: selectors[0] }]\n })\n const preferredKey = preferred.find(p => matches.some(m => m.key === p.key))?.key\n matches.sort((a, b) => Number(b.key === preferredKey) - Number(a.key === preferredKey) ||\n Number(b.matched.specificity > 1 || b.h.provider === 'system') - Number(a.matched.specificity > 1 || a.h.provider === 'system') ||\n b.matched.specificity - a.matched.specificity || (b.binding.priority ?? 0) - (a.binding.priority ?? 0) ||\n Number(b.h.provider === 'system') - Number(a.h.provider === 'system') ||\n (a.h.registered_at ?? 0) - (b.h.registered_at ?? 0) || a.key.localeCompare(b.key))\n return matches.map(m => ({ handlerKey: m.key, handlerRef: `${m.h.app_instance_id?.split('@')[0] ?? 'system'}#${m.h.handler_id}`,\n appInstanceId: m.h.app_instance_id, appDocObjectId: m.h.app_doc_object_id, handlerVersion: m.h.handler_version,\n intent, binding: m.binding, matched: m.matched,\n reason: m.key === preferredKey ? 'user-default' : m.h.provider === 'system' ? 'system-default' : 'ranked' }))\n}\nexport function parentSource(source: TransferableContentRef): TransferableContentRef | undefined {\n if (source.kind !== 'cyfs-path') return undefined\n const i = source.path.lastIndexOf('/')\n return i >= 7 ? { kind: 'cyfs-path', path: source.path.slice(0, i) || 'cyfs:///' } : undefined\n}\nexport function encodeSession(session: TransferableSessionContext | undefined, source: TransferableContentRef): string {\n if (!session) return ''\n const encode = (v: TransferableSessionContext) => btoa(Array.from(new TextEncoder().encode(JSON.stringify(v)), b => String.fromCharCode(b)).join(''))\n .replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '')\n const encoded = encode(session)\n if (encoded.length <= 2048 || session.kind !== 'list') return encoded\n const parent = parentSource(source)\n if (parent && session.items.every(i => contentRefString(parentSource(i.source) ?? i.source) === contentRefString(parent))) {\n return encode({ kind: 'container', container: parent, current: source })\n }\n return ''\n}\nexport function expandOpenPath(path: string, request: OpenRequest, modes: Array<'view' | 'edit'> = ['view', 'edit']): string {\n if (!path.startsWith('/') || path.startsWith('//') || /(?:\\.\\.|\\\\|[\\r\\n])/.test(decodeURIComponent(path))) throw new Error('Invalid App entry path')\n const params: Record<string, string> = { source: contentRefString(request.source), mode: request.mode ?? (modes.includes('edit') ? 'edit' : 'view'), session: encodeSession(request.session, request.source) }\n const expanded = path.replace(/\\{(source|mode|session)\\}/g, (_, key: string) => encodeURIComponent(params[key]))\n return expanded + (expanded.includes('?') ? '&' : '?') + 'requestId=' + encodeURIComponent(request.requestId)\n}\nexport class ContentRegistryClient {\n registry: ContentRegistry = { schema_version: 1, handlers: {} }\n defaults = emptyDefaults()\n updatedAt = 0\n private listeners = new Set<() => void>()\n constructor(private config: { get(key: string): Promise<{ value: string }>; set(key: string, value: string): Promise<unknown> }, private userId: string) {}\n async refresh(): Promise<void> {\n const [registry, defaults] = await Promise.all([this.config.get('system/content_registry'), this.config.get(`users/${this.userId}/content_defaults`).catch(error => { if (/not found|not_found/i.test(String(error))) return null; throw error })])\n this.registry = JSON.parse(registry.value)\n this.defaults = defaults ? JSON.parse(defaults.value) : emptyDefaults()\n this.updatedAt = Date.now()\n this.listeners.forEach(cb => cb())\n }\n async setDefault(intent: 'open', selector: string, handlerKey: string | null): Promise<void> {\n await this.refresh()\n const next = { ...this.defaults.defaults[intent] }\n if (handlerKey) next[selector] = handlerKey\n else delete next[selector]\n await this.persist({ ...this.defaults, defaults: { ...this.defaults.defaults, [intent]: next } })\n }\n async setEnabled(key: string, enabled: boolean): Promise<void> {\n await this.refresh()\n await this.persist({ ...this.defaults, disabled: [...new Set([...this.defaults.disabled.filter(k => k !== key), ...enabled ? [] : [key]])] })\n }\n onChanged(cb: () => void): () => void { this.listeners.add(cb); return () => this.listeners.delete(cb) }\n private async persist(next: ContentDefaults): Promise<void> {\n await this.config.set(`users/${this.userId}/content_defaults`, JSON.stringify(next))\n this.defaults = next\n this.listeners.forEach(cb => cb())\n }\n}\n"],"names":["TEXT_CODE_EXTENSIONS","MEDIA_TYPE_BY_EXTENSION","png","apng","jpg","jpeg","jfif","gif","webp","bmp","ico","avif","heic","heif","tif","tiff","psd","svg","mp4","m4v","webm","mov","mkv","avi","ogv","mp3","wav","flac","ogg","oga","opus","m4a","aac","pdf","html","htm","xhtml","docx","xlsx","pptx","doc","xls","ppt","odt","zip","tar","gz","rar","epub","md","markdown","json","xml","csv","yaml","yml","toml","js","mjs","cjs","css","ext","extensionOf","name","base","split","pop","dot","lastIndexOf","slice","toLowerCase","mediaTypeFromExtension","previewHandler","provider","handler_id","handler_version","selectors","mime","enabled","intents","open","entry","type","target","modes","fidelity","window","priority","emptyDefaults","schema_version","defaults","disabled","contentRefString","ref","kind","path","objectId","isTransferableRef","value","v","test","isTransferableSession","container","current","Array","isArray","items","every","i","source","Number","isInteger","currentIndex","length","values","matchSelector","s","d","maxSize","size","objType","includes","score","schema","matches","filter","endsWith","_a","startsWith","some","trim","scores","map","indexOf","best","Math","max","compactSelector","out","part","key","parentSource","encodeSession","session","encode","btoa","from","TextEncoder","JSON","stringify","b","String","fromCharCode","join","replace","encoded","parent","constructor","config","userId","this","registry","handlers","updatedAt","listeners","Set","refresh","Promise","all","get","catch","error","parse","Date","now","forEach","cb","setDefault","intent","selector","handlerKey","next","persist","setEnabled","k","onChanged","add","delete","set","hints","request","decodeURIComponent","Error","params","mode","expanded","_","encodeURIComponent","requestId","descriptor","_host","availableApps","visible","preferred","Object","entries","sort","a","localeCompare","flatMap","h","binding","app_instance_id","has","specificity","matched","preferredKey","find","p","m","registered_at","handlerRef","appInstanceId","appDocObjectId","app_doc_object_id","handlerVersion","reason"],"mappings":"gFAAO,MAAMA,EAAuB,CAClC,MAAO,OAAQ,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAO,MAC1D,KAAM,WAAY,MAAO,OACzB,OAAQ,QAAS,QAAS,MAAO,OAAQ,MAAO,OAChD,KAAM,MAAO,KAAM,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,IAAK,IAAK,KAAM,MAAO,MACjF,OAAQ,KAAM,QAAS,KAAM,MAAO,MAAO,KAAM,OAAQ,MAAO,MAAO,MACvE,MAAO,OAAQ,OAAQ,MAAO,SAAU,MAAO,OAAQ,IAAK,QAAS,KAAM,MAC3E,aAAc,WAAY,YAAa,eAAgB,QAGnDC,EAAkD,CACtDC,IAAK,YACLC,KAAM,aACNC,IAAK,aACLC,KAAM,aACNC,KAAM,aACNC,IAAK,YACLC,KAAM,aACNC,IAAK,YACLC,IAAK,eACLC,KAAM,aACNC,KAAM,aACNC,KAAM,aACNC,IAAK,aACLC,KAAM,aACNC,IAAK,4BACLC,IAAK,gBACLC,IAAK,YACLC,IAAK,YACLC,KAAM,aACNC,IAAK,kBACLC,IAAK,mBACLC,IAAK,kBACLC,IAAK,YACLC,IAAK,aACLC,IAAK,YACLC,KAAM,aACNC,IAAK,YACLC,IAAK,YACLC,KAAM,YACNC,IAAK,YACLC,IAAK,YACLC,IAAK,kBACLC,KAAM,YACNC,IAAK,YACLC,MAAO,wBACPC,KAAM,0EACNC,KAAM,oEACNC,KAAM,4EACNC,IAAK,qBACLC,IAAK,2BACLC,IAAK,gCACLC,IAAK,0CACLC,IAAK,kBACLC,IAAK,oBACLC,GAAI,mBACJ,KAAM,8BACNC,IAAK,sBACLC,KAAM,uBACNC,GAAI,gBACJC,SAAU,gBACVC,KAAM,mBACNC,IAAK,kBACLC,IAAK,WACLC,KAAM,mBACNC,IAAK,mBACLC,KAAM,mBACNC,GAAI,kBACJC,IAAK,kBACLC,IAAK,kBACLC,IAAK,YAGP,IAAA,MAAWC,KAAO7D,EACXC,EAAwB4D,KAA8B5D,EAAA4D,GAAO,UAAUA,KAIvE,SAASC,EAAYC,GAC1B,IAAKA,EAAa,MAAA,GAClB,MAAMC,EAAOD,EAAKE,MAAM,KAAKC,OAASH,EAChCI,EAAMH,EAAKI,YAAY,KAC7B,OAAID,GAAO,EAAU,GACdH,EAAKK,MAAMF,EAAM,GAAGG,aAC7B,CAEO,SAASC,EAAuBV,GAC9B,OAAA5D,EAAwB4D,EAAIS,cACrC,CCrBO,MAAME,EAAsC,CACjDC,SAAU,SAAUC,WAAY,UAAWC,gBAAiB,EAC5DC,UAAW,CAAC,CAAEC,KAAM,QAAUC,SAAS,EACvCC,QAAS,CAAEC,KAAM,CAAEC,MAAO,CAAEC,KAAM,UAAWC,OAAQ,WAAaC,MAAO,CAAC,QAASC,SAAU,UAAWC,OAAQ,QAASC,SAAU,MAExHC,EAAgB,KAAwB,CAAEC,eAAgB,EAAGC,SAAU,GAAIC,SAAU,KACrFC,EAAoBC,GAAqD,cAAbA,EAAIC,KAAuBD,EAAIE,KAAO,SAASF,EAAIG,WACrH,SAASC,EAAkBC,GAC5B,IAACA,GAA0B,iBAAVA,EAA2B,OAAA,EAChD,MAAMC,EAAID,EACF,MAAW,cAAXC,EAAEL,MAA0C,iBAAXK,EAAEJ,MAAqB,sBAAsBK,KAAKD,EAAEJ,OAC/E,cAAXI,EAAEL,MAA8C,iBAAfK,EAAEH,UAAyB,mBAAmBI,KAAKD,EAAEH,SAC3F,CAQO,SAASK,EAAsBH,GAChC,IAACA,GAA0B,iBAAVA,EAA2B,OAAA,EAChD,MAAMC,EAAID,EACH,MAAW,WAAXC,EAAEL,MACK,cAAXK,EAAEL,MAAwBG,EAAkBE,EAAEG,YAAcL,EAAkBE,EAAEI,UACrE,SAAXJ,EAAEL,MAAmBU,MAAMC,QAAQN,EAAEO,QAAUP,EAAEO,MAAMC,OAAWC,GAAAA,GAAKX,EAAkBW,EAAEC,WAC1FC,OAAOC,UAAUZ,EAAEa,eAAiBb,EAAEa,cAAgB,GAAKb,EAAEa,aAAeb,EAAEO,MAAMO,MAC1F,CAQA,MAAMC,EAAUf,QAAgC,IAANA,EAAkB,GAAKK,MAAMC,QAAQN,GAAKA,EAAI,CAACA,GACzE,SAAAgB,EAAcC,EAAoBC,SAC5C,QAAc,IAAdD,EAAEE,cAAoC,IAAXD,EAAEE,MAAsBF,EAAEE,KAAOH,EAAEE,QAAgB,OAAA,EAC9E,GAAAF,EAAEI,UAAYN,EAAOE,EAAEI,SAASC,SAASJ,EAAEG,SAAW,IAAY,OAAA,EAClE,IAAAE,EAAQN,EAAEI,QAAU,EAAI,EAC5B,GAAIJ,EAAEO,OAAQ,CACN,MAAAC,EAAUV,EAAOE,EAAEO,QAAQE,QAAO1B,UAAK,OAAAA,EAAE2B,SAAS,KAAO,OAAAC,EAAAV,EAAEM,aAAF,EAAAI,EAAUC,WAAW7B,EAAE9B,MAAM,GAAK,IAAKgD,EAAEM,SAAWxB,CAAA,IACnH,IAAKyB,EAAQX,OAAe,OAAA,EACpBS,EAAAE,EAAQK,MAAK9B,GAAKA,IAAMkB,EAAEM,SAAU,EAAI,CAClD,CACA,GAAIP,EAAEvC,KAAM,CACJ,MAAAA,GAAQwC,EAAExC,MAAQ,IAAIP,cAAcL,MAAM,KAAK,GAAGiE,OAClDC,EAASjB,EAAOE,EAAEvC,MAAMuD,KAASjC,GAE3B,SADVA,EAAIA,EAAE7B,eACkB,EACpB6B,EAAElC,MAAM,KAAK,GAAGiE,SAAWrD,EAAauC,EAAEI,QAAU,EAAI,EACxDrB,EAAEsB,SAAS,QAAU5C,EAAKmD,WAAW7B,EAAElC,MAAM,KAAK,GAAK,MAAQY,EAAKiD,SAAS3B,EAAE9B,MAAM8B,EAAEkC,QAAQ,OAAe,EAC9GlC,EAAE2B,SAAS,OAASjD,EAAKmD,WAAW7B,EAAE9B,MAAM,GAAG,IAAa,EACzD,IAEHiE,EAAOC,KAAKC,OAAOL,EAAQ,GACjC,IAAKG,EAAa,OAAA,EACVZ,EAAAa,KAAKC,IAAId,EAAOY,EAC1B,CACA,OAAKlB,EAAEvC,MAASuC,EAAEI,SAAYJ,EAAEO,SAAW,OAAAI,EAAEX,EAAAvD,UAAK,EAAAkE,EAAAN,SAASJ,EAAExD,KAAO,KAC7D6D,EADyE,CAElF,CACA,SAASe,EAAgBvC,GACvB,MAAMwC,EAAuB,CAAA,EAC7B,IAAA,MAAWC,KAAQzC,EAAMjC,MAAM,KAAM,CAC7B,MAAA2C,EAAI+B,EAAKN,QAAQ,KAAYO,EAAMD,EAAKtE,MAAM,EAAGuC,GAAUT,EAAIwC,EAAKtE,MAAMuC,EAAI,GACpF,GAAY,QAARgC,EAAeF,EAAIlB,QAAUrB,OAAA,GAChB,SAARyC,EAAgBF,EAAI7D,KAAOsB,OAAA,GACnB,WAARyC,EAAkBF,EAAIf,OAASxB,MAAA,IACvB,QAARyC,EACJ,MAAO,GADgBF,EAAA7E,IAAM,CAACsC,GAErC,CACO,OAAAuC,CACT,CA4BO,SAASG,EAAahC,GAC3B,GAAoB,cAAhBA,EAAOf,KAA6B,OACxC,MAAMc,EAAIC,EAAOd,KAAK3B,YAAY,KAClC,OAAOwC,GAAK,EAAI,CAAEd,KAAM,YAAaC,KAAMc,EAAOd,KAAK1B,MAAM,EAAGuC,IAAM,iBAAe,CACvF,CACgB,SAAAkC,EAAcC,EAAiDlC,GAC7E,IAAKkC,EAAgB,MAAA,GACrB,MAAMC,EAAU7C,GAAkC8C,KAAKzC,MAAM0C,MAAK,IAAIC,aAAcH,OAAOI,KAAKC,UAAUlD,KAAUmD,GAAAC,OAAOC,aAAaF,KAAIG,KAAK,KAC9IC,QAAQ,MAAO,KAAKA,QAAQ,MAAO,KAAKA,QAAQ,MAAO,IACpDC,EAAUX,EAAOD,GACvB,GAAIY,EAAQ1C,QAAU,MAAyB,SAAjB8B,EAAQjD,KAAwB,OAAA6D,EACxD,MAAAC,EAASf,EAAahC,GAC5B,OAAI+C,GAAUb,EAAQrC,MAAMC,OAAMC,GAAKhB,EAAiBiD,EAAajC,EAAEC,SAAWD,EAAEC,UAAYjB,EAAiBgE,KACxGZ,EAAO,CAAElD,KAAM,YAAaQ,UAAWsD,EAAQrD,QAASM,IAE1D,EACT,+BAOO,MAKL,WAAAgD,CAAoBC,EAAqHC,GAArHC,KAAAF,OAAAA,EAAqHE,KAAAD,OAAAA,EAJzIC,KAAAC,SAA4B,CAAExE,eAAgB,EAAGyE,SAAU,CAAA,GAC3DF,KAAAtE,SAzHmD,CAAED,eAAgB,EAAGC,SAAU,GAAIC,SAAU,IA0HpFqE,KAAAG,UAAA,EACJH,KAAAI,cAAgBC,GACkI,CAC1J,aAAMC,GACE,MAACL,EAAUvE,SAAkB6E,QAAQC,IAAI,CAACR,KAAKF,OAAOW,IAAI,2BAA4BT,KAAKF,OAAOW,IAAI,SAAST,KAAKD,2BAA2BW,OAAeC,IAAE,GAAI,uBAAuBvE,KAAKmD,OAAOoB,IAAgB,OAAA,KAAY,MAAAA,CAAA,MACzOX,KAAKC,SAAWb,KAAKwB,MAAMX,EAAS/D,OACpC8D,KAAKtE,SAAWA,EAAW0D,KAAKwB,MAAMlF,EAASQ,OAhIE,CAAET,eAAgB,EAAGC,SAAU,GAAIC,SAAU,IAiIzFqE,KAAAG,UAAYU,KAAKC,MACtBd,KAAKI,UAAUW,SAAcC,GAAAA,KAC/B,CACA,gBAAMC,CAAWC,EAAgBC,EAAkBC,SAC3CpB,KAAKM,UACX,MAAMe,EAAO,IAAKrB,KAAKtE,SAASA,SAASwF,IACrCE,EAAYC,EAAKF,GAAYC,SACrBC,EAAKF,SACXnB,KAAKsB,QAAQ,IAAKtB,KAAKtE,SAAUA,SAAU,IAAKsE,KAAKtE,SAASA,SAAUwF,CAACA,GAASG,IAC1F,CACA,gBAAME,CAAW3C,EAAa9D,SACtBkF,KAAKM,gBACLN,KAAKsB,QAAQ,IAAKtB,KAAKtE,SAAUC,SAAU,IAAQ,IAAA0E,IAAI,IAAIL,KAAKtE,SAASC,SAASkC,QAAY2D,GAAAA,IAAM5C,OAAS9D,EAAU,GAAK,CAAC8D,OACrI,CACA,SAAA6C,CAAUT,GAAsD,OAAnBhB,KAAAI,UAAUsB,IAAIV,GAAY,IAAMhB,KAAKI,UAAUuB,OAAOX,EAAI,CACvG,aAAcM,CAAQD,SACdrB,KAAKF,OAAO8B,IAAI,SAAS5B,KAAKD,0BAA2BX,KAAKC,UAAUgC,IAC9ErB,KAAKtE,SAAW2F,EAChBrB,KAAKI,UAAUW,SAAcC,GAAAA,KAC/B,4DA7HK,SAA2BnE,EAAgCgF,EAAyD,IACnH,MAAA9H,EAAO8H,EAAM9H,MAAQ6B,EAAiBiB,GAAQ5C,MAAM,KAAKC,OAAS,GAClEL,EAAMC,EAAYC,GACjB,MAAA,CAAE8C,SAAQ9C,OAAMwD,KAAMsE,EAAMtE,KAAM1D,IAAKA,EAAM,IAAIA,SAAQ,EAC9D2D,QAAyB,cAAhBX,EAAOf,KAAuB,SAAWe,EAAOb,SAAS/B,MAAM,KAAK,GAC7EY,KAAMgH,EAAMhH,MAAQN,EAAuBV,IAAQ,2BACvD,oGAoFO,SAAwBkC,EAAc+F,EAAsB1G,EAAgC,CAAC,OAAQ,SAC1G,IAAKW,EAAKiC,WAAW,MAAQjC,EAAKiC,WAAW,OAAS,qBAAqB5B,KAAK2F,mBAAmBhG,IAAc,MAAA,IAAIiG,MAAM,0BACrH,MAAAC,EAAiC,CAAEpF,OAAQjB,EAAiBkG,EAAQjF,QAASqF,KAAMJ,EAAQI,OAAS9G,EAAMqC,SAAS,QAAU,OAAS,QAASsB,QAASD,EAAcgD,EAAQ/C,QAAS+C,EAAQjF,SAC/LsF,EAAWpG,EAAK2D,QAAQ,8BAA8B,CAAC0C,EAAGxD,IAAgByD,mBAAmBJ,EAAOrD,MACnG,OAAAuD,GAAYA,EAAS1E,SAAS,KAAO,IAAM,KAAO,aAAe4E,mBAAmBP,EAAQQ,UACrG,8CA9GO,SAAuBpG,GACxB,IAACA,GAA0B,iBAAVA,EAA2B,OAAA,EAChD,MAAMC,EAAID,EACH,MAAuB,iBAAhBC,EAAEmG,WAA0BrG,EAAkBE,EAAEU,eAChD,IAAXV,EAAE+F,MAAiC,SAAX/F,EAAE+F,MAA8B,SAAX/F,EAAE+F,aACjC,IAAd/F,EAAE4C,SAAyB1C,EAAsBF,EAAE4C,SACxD,sMAuDgB,SAAuBkB,EAA2BvE,EAA2B6G,EAC3FrB,EAAiB,OAAQsB,EAAiB,CAAA,EAAIC,EAAkC,UAC1E,MAAAC,EAAU,IAAIrC,IAAIoC,GAClBvC,EAAW,IAAKD,EAASC,SAAU,iBAAkB1F,GACrDmI,EAAYC,OAAOC,QAAQnH,EAASA,SAASV,MAAQ,IACxDoD,KAAI,EAAEhB,EAAGwB,MAAU,CAAEA,MAAKlB,MAAOP,EAAcsB,EAAgBrB,GAAImF,OACnE1E,QAAO1B,GAAKA,EAAEuB,MAAQ,IAAGoF,MAAK,CAACC,EAAGzD,IAAMA,EAAE5B,MAAQqF,EAAErF,OAASqF,EAAEnE,IAAIoE,cAAc1D,EAAEV,OAChFhB,EAAUgF,OAAOC,QAAQ3C,GAAU+C,SAAQ,EAAErE,EAAKsE,MAChD,MAAAC,EAAUD,EAAEnI,QAAQmG,GACtB,IAACiC,IAAYD,EAAEpI,SAAoB,mBAAR8D,GAA4BlD,EAASC,SAAS8B,SAASmB,GAAO,MAAO,GACpG,KAAmB,QAAfsE,EAAEzI,UAAwByI,EAAEE,iBAAoBV,EAAQW,IAAIH,EAAEE,kBAA2C,QAAvBD,EAAQlI,MAAMC,MAAiB,MAAO,GACtH,MAAAN,EAAYsI,EAAEtI,UAAUwD,KAAI+C,IAAA,CAAeA,WAAUmC,YAAanG,EAAcgE,EAAUoB,OAC7F1E,QAAYT,GAAAA,EAAEkG,YAAc,IAAGR,MAAK,CAACC,EAAGzD,IAAMA,EAAEgE,YAAcP,EAAEO,cACnE,OAAK1I,EAAUqC,OACR,CAAC,CAAE2B,MAAKsE,IAAGC,UAASI,QAAS3I,EAAU,KADhB,EACoB,IAE9C4I,EAAe,OAAAzF,EAAA4E,EAAUc,MAAKC,GAAK9F,EAAQK,MAAU0F,GAAAA,EAAE/E,MAAQ8E,EAAE9E,cAAO,EAAAb,EAAAa,IAMvE,OALPhB,EAAQkF,MAAK,CAACC,EAAGzD,IAAMxC,OAAOwC,EAAEV,MAAQ4E,GAAgB1G,OAAOiG,EAAEnE,MAAQ4E,IACvE1G,OAAOwC,EAAEiE,QAAQD,YAAc,GAAsB,WAAjBhE,EAAE4D,EAAEzI,UAAyBqC,OAAOiG,EAAEQ,QAAQD,YAAc,GAAsB,WAAjBP,EAAEG,EAAEzI,WACzG6E,EAAEiE,QAAQD,YAAcP,EAAEQ,QAAQD,cAAgBhE,EAAE6D,QAAQ5H,UAAY,IAAMwH,EAAEI,QAAQ5H,UAAY,IACpGuB,OAAwB,WAAjBwC,EAAE4D,EAAEzI,UAAyBqC,OAAwB,WAAjBiG,EAAEG,EAAEzI,YAC9CsI,EAAEG,EAAEU,eAAiB,IAAMtE,EAAE4D,EAAEU,eAAiB,IAAMb,EAAEnE,IAAIoE,cAAc1D,EAAEV,OACxEhB,EAAQQ,KAAUuF,UAAA,MAAA,CAAEvC,WAAYuC,EAAE/E,IAAKiF,WAAY,IAAG,OAAA9F,EAAA4F,EAAET,EAAEE,sBAAJ,EAAArF,EAAqB9D,MAAM,KAAK,KAAM,YAAY0J,EAAET,EAAExI,aACjHoJ,cAAeH,EAAET,EAAEE,gBAAiBW,eAAgBJ,EAAET,EAAEc,kBAAmBC,eAAgBN,EAAET,EAAEvI,gBAC/FuG,SAAQiC,QAASQ,EAAER,QAASI,QAASI,EAAEJ,QACvCW,OAAQP,EAAE/E,MAAQ4E,EAAe,eAAkC,WAAjBG,EAAET,EAAEzI,SAAwB,iBAAmB,SAAW,GAChH"}
|
|
1
|
+
{"version":3,"file":"content.cjs","sources":["../src/content_mime.ts","../src/content.ts"],"sourcesContent":["export const TEXT_CODE_EXTENSIONS = [\n 'txt', 'text', 'log', 'ini', 'conf', 'cfg', 'env', 'csv', 'tsv',\n 'md', 'markdown', 'rst', 'adoc',\n 'json', 'jsonc', 'json5', 'xml', 'yaml', 'yml', 'toml',\n 'ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs', 'rs', 'py', 'go', 'c', 'h', 'cc', 'cpp', 'hpp',\n 'java', 'kt', 'swift', 'rb', 'php', 'sql', 'sh', 'bash', 'zsh', 'ps1', 'bat',\n 'css', 'scss', 'less', 'vue', 'svelte', 'lua', 'dart', 'r', 'scala', 'ex', 'exs',\n 'dockerfile', 'makefile', 'gitignore', 'editorconfig', 'lock',\n]\n\nconst MEDIA_TYPE_BY_EXTENSION: Record<string, string> = {\n png: 'image/png',\n apng: 'image/apng',\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n jfif: 'image/jpeg',\n gif: 'image/gif',\n webp: 'image/webp',\n bmp: 'image/bmp',\n ico: 'image/x-icon',\n avif: 'image/avif',\n heic: 'image/heic',\n heif: 'image/heif',\n tif: 'image/tiff',\n tiff: 'image/tiff',\n psd: 'image/vnd.adobe.photoshop',\n svg: 'image/svg+xml',\n mp4: 'video/mp4',\n m4v: 'video/mp4',\n webm: 'video/webm',\n mov: 'video/quicktime',\n mkv: 'video/x-matroska',\n avi: 'video/x-msvideo',\n ogv: 'video/ogg',\n mp3: 'audio/mpeg',\n wav: 'audio/wav',\n flac: 'audio/flac',\n ogg: 'audio/ogg',\n oga: 'audio/ogg',\n opus: 'audio/ogg',\n m4a: 'audio/mp4',\n aac: 'audio/aac',\n pdf: 'application/pdf',\n html: 'text/html',\n htm: 'text/html',\n xhtml: 'application/xhtml+xml',\n docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n doc: 'application/msword',\n xls: 'application/vnd.ms-excel',\n ppt: 'application/vnd.ms-powerpoint',\n odt: 'application/vnd.oasis.opendocument.text',\n zip: 'application/zip',\n tar: 'application/x-tar',\n gz: 'application/gzip',\n '7z': 'application/x-7z-compressed',\n rar: 'application/vnd.rar',\n epub: 'application/epub+zip',\n md: 'text/markdown',\n markdown: 'text/markdown',\n json: 'application/json',\n xml: 'application/xml',\n csv: 'text/csv',\n yaml: 'application/yaml',\n yml: 'application/yaml',\n toml: 'application/toml',\n js: 'text/javascript',\n mjs: 'text/javascript',\n cjs: 'text/javascript',\n css: 'text/css',\n}\n\nfor (const ext of TEXT_CODE_EXTENSIONS) {\n if (!MEDIA_TYPE_BY_EXTENSION[ext]) MEDIA_TYPE_BY_EXTENSION[ext] = `text/x-${ext}`\n}\n\n\nexport function extensionOf(name: string | undefined): string {\n if (!name) return ''\n const base = name.split('/').pop() ?? name\n const dot = base.lastIndexOf('.')\n if (dot <= 0) return ''\n return base.slice(dot + 1).toLowerCase()\n}\n\nexport function mediaTypeFromExtension(ext: string): string | undefined {\n return MEDIA_TYPE_BY_EXTENSION[ext.toLowerCase()]\n}\n","import { extensionOf, mediaTypeFromExtension } from './content_mime'\nexport { extensionOf, mediaTypeFromExtension, TEXT_CODE_EXTENSIONS } from './content_mime'\n\nexport type TransferableContentRef =\n | { kind: 'cyfs-path'; path: string; version?: string }\n | { kind: 'object-id'; objectId: string; version?: string }\nexport type TransferableSessionContext =\n | { kind: 'single' }\n | { kind: 'container'; container: TransferableContentRef; current: TransferableContentRef; sort?: unknown; navigation?: 'wrap' | 'bounded' }\n | { kind: 'list'; sessionId?: string; version?: string; items: Array<{ id?: string; source: TransferableContentRef; title?: string }>; currentIndex: number; navigation?: 'wrap' | 'bounded' }\nexport interface OpenRequest {\n requestId: string\n source: TransferableContentRef\n session?: TransferableSessionContext\n mode?: 'view' | 'edit'\n origin?: { appInstanceId?: string; windowId?: string; hostContext?: string }\n}\nexport type ContentOpenTarget = 'default' | 'preview' | 'chooser'\nexport interface ContentHints { name?: string; mime?: string; size?: number }\nexport function readContentHints(value: unknown): ContentHints {\n if (!value || typeof value !== 'object') return {}\n const v = value as Record<string, unknown>\n const hints: ContentHints = {}\n if (typeof v.name === 'string' && v.name && v.name.length <= 255 && !/[\\/\\\\\\0]/.test(v.name)) hints.name = v.name\n if (typeof v.mime === 'string' && /^[\\w.+-]+\\/[\\w.+-]+$/.test(v.mime)) hints.mime = v.mime.toLowerCase()\n const size = typeof v.size === 'string' ? Number(v.size) : v.size\n if (typeof size === 'number' && Number.isSafeInteger(size) && size >= 0) hints.size = size\n return hints\n}\nexport interface ContentSelector {\n objType?: string | string[]\n mime?: string | string[]\n schema?: string | string[]\n ext?: string[]\n maxSize?: number\n}\nexport interface ContentDescriptor {\n source: TransferableContentRef\n objType?: string\n mime?: string\n schema?: string\n ext?: string\n name?: string\n size?: number\n}\nexport interface OpenBinding {\n entry: { type: 'web'; path: string } | { type: 'builtin'; target: string }\n modes?: Array<'view' | 'edit'>\n fidelity?: 'full' | 'partial'\n window?: 'reuse' | 'new'\n multiSource?: boolean\n priority?: number\n}\nexport interface ContentHandlerEntry {\n provider: 'app' | 'system'\n app_instance_id?: string\n app_doc_object_id?: string\n app_version?: string\n handler_id: string\n handler_version: number\n selectors: ContentSelector[]\n intents: { open?: OpenBinding }\n permissions?: string[]\n enabled: boolean\n registered_at?: number\n}\nexport interface ContentRegistry { schema_version: 1; updated_at?: number; handlers: Record<string, ContentHandlerEntry> }\nexport interface ContentDefaults { schema_version: 1; defaults: { open?: Record<string, string> }; disabled: string[] }\nexport interface HandlerPlan {\n handlerKey: string\n handlerRef: string\n appInstanceId?: string\n appDocObjectId?: string\n handlerVersion: number\n intent: 'open'\n binding: OpenBinding\n matched: { selector: ContentSelector; specificity: number }\n reason: 'user-default' | 'system-default' | 'ranked'\n}\nexport const previewHandler: ContentHandlerEntry = {\n provider: 'system', handler_id: 'preview', handler_version: 1,\n selectors: [{ mime: '*/*' }], enabled: true,\n intents: { open: { entry: { type: 'builtin', target: 'preview' }, modes: ['view'], fidelity: 'partial', window: 'reuse', priority: 90 } },\n}\nexport const emptyDefaults = (): ContentDefaults => ({ schema_version: 1, defaults: {}, disabled: [] })\nexport const contentRefString = (ref: TransferableContentRef): string => ref.kind === 'cyfs-path' ? ref.path : `obj://${ref.objectId}`\nexport function isTransferableRef(value: unknown): value is TransferableContentRef {\n if (!value || typeof value !== 'object') return false\n const v = value as TransferableContentRef\n return (v.kind === 'cyfs-path' && typeof v.path === 'string' && /^cyfs:\\/\\/\\/[^\\0]*$/.test(v.path)) ||\n (v.kind === 'object-id' && typeof v.objectId === 'string' && /^[\\w.-]+:[\\w-]+$/.test(v.objectId))\n}\nexport function isOpenRequest(value: unknown): value is OpenRequest {\n if (!value || typeof value !== 'object') return false\n const v = value as OpenRequest\n return typeof v.requestId === 'string' && isTransferableRef(v.source) &&\n (v.mode === undefined || v.mode === 'view' || v.mode === 'edit') &&\n (v.session === undefined || isTransferableSession(v.session))\n}\nexport function isTransferableSession(value: unknown): value is TransferableSessionContext {\n if (!value || typeof value !== 'object') return false\n const v = value as TransferableSessionContext\n return v.kind === 'single' ||\n (v.kind === 'container' && isTransferableRef(v.container) && isTransferableRef(v.current)) ||\n (v.kind === 'list' && Array.isArray(v.items) && v.items.every(i => i && isTransferableRef(i.source)) &&\n Number.isInteger(v.currentIndex) && v.currentIndex >= 0 && v.currentIndex < v.items.length)\n}\nexport function contentDescriptor(source: TransferableContentRef, hints: { name?: string; mime?: string; size?: number } = {}): ContentDescriptor {\n const name = hints.name ?? contentRefString(source).split('/').pop() ?? ''\n const ext = extensionOf(name)\n return { source, name, size: hints.size, ext: ext ? `.${ext}` : undefined,\n objType: source.kind === 'cyfs-path' ? 'cyfile' : source.objectId.split(':')[0],\n mime: hints.mime || mediaTypeFromExtension(ext) || 'application/octet-stream' }\n}\nconst values = (v?: string | string[]) => v === undefined ? [] : Array.isArray(v) ? v : [v]\nexport function matchSelector(s: ContentSelector, d: ContentDescriptor): number {\n if (s.maxSize !== undefined && d.size !== undefined && d.size > s.maxSize) return 0\n if (s.objType && !values(s.objType).includes(d.objType ?? '')) return 0\n let score = s.objType ? 2 : 1\n if (s.schema) {\n const matches = values(s.schema).filter(v => v.endsWith('*') ? d.schema?.startsWith(v.slice(0, -1)) : d.schema === v)\n if (!matches.length) return 0\n score = matches.some(v => v === d.schema) ? 7 : 6\n }\n if (s.mime) {\n const mime = (d.mime ?? '').toLowerCase().split(';')[0].trim()\n const scores = values(s.mime).map(v => {\n v = v.toLowerCase()\n if (v === '*/*') return 1\n if (v.split(';')[0].trim() === mime) return s.objType ? 6 : 5\n if (v.includes('/*+') && mime.startsWith(v.split('/')[0] + '/') && mime.endsWith(v.slice(v.indexOf('+')))) return 4\n if (v.endsWith('/*') && mime.startsWith(v.slice(0, -1))) return 3\n return 0\n })\n const best = Math.max(...scores, 0)\n if (!best) return 0\n score = Math.max(score, best)\n }\n if (!s.mime && !s.objType && !s.schema && !s.ext?.includes(d.ext ?? '')) return 0\n return score\n}\nfunction compactSelector(value: string): ContentSelector {\n const out: ContentSelector = {}\n for (const part of value.split(';')) {\n const i = part.indexOf(':'); const key = part.slice(0, i); const v = part.slice(i + 1)\n if (key === 'obj') out.objType = v\n else if (key === 'mime') out.mime = v\n else if (key === 'schema') out.schema = v\n else if (key === 'ext') out.ext = [v]\n else return {}\n }\n return out\n}\nexport function resolveContentHandlers(registry: ContentRegistry, defaults: ContentDefaults, descriptor: ContentDescriptor,\n intent: 'open' = 'open', _host: unknown = {}, availableApps: Iterable<string> = []): HandlerPlan[] {\n const visible = new Set(availableApps)\n const handlers = { ...registry.handlers, 'system#preview': previewHandler }\n const preferred = Object.entries(defaults.defaults.open ?? {})\n .map(([s, key]) => ({ key, score: matchSelector(compactSelector(s), descriptor) }))\n .filter(v => v.score > 0).sort((a, b) => b.score - a.score || a.key.localeCompare(b.key))\n const matches = Object.entries(handlers).flatMap(([key, h]) => {\n const binding = h.intents[intent]\n if (!binding || !h.enabled || (key !== 'system#preview' && defaults.disabled.includes(key))) return []\n if (h.provider === 'app' && (!h.app_instance_id || !visible.has(h.app_instance_id) || binding.entry.type !== 'web')) return []\n const selectors = h.selectors.map(selector => ({ selector, specificity: matchSelector(selector, descriptor) }))\n .filter(s => s.specificity > 0).sort((a, b) => b.specificity - a.specificity)\n if (!selectors.length) return []\n return [{ key, h, binding, matched: selectors[0] }]\n })\n const preferredKey = preferred.find(p => matches.some(m => m.key === p.key))?.key\n matches.sort((a, b) => Number(b.key === preferredKey) - Number(a.key === preferredKey) ||\n Number(b.matched.specificity > 1 || b.h.provider === 'system') - Number(a.matched.specificity > 1 || a.h.provider === 'system') ||\n b.matched.specificity - a.matched.specificity || (b.binding.priority ?? 0) - (a.binding.priority ?? 0) ||\n Number(b.h.provider === 'system') - Number(a.h.provider === 'system') ||\n (a.h.registered_at ?? 0) - (b.h.registered_at ?? 0) || a.key.localeCompare(b.key))\n return matches.map(m => ({ handlerKey: m.key, handlerRef: `${m.h.app_instance_id?.split('@')[0] ?? 'system'}#${m.h.handler_id}`,\n appInstanceId: m.h.app_instance_id, appDocObjectId: m.h.app_doc_object_id, handlerVersion: m.h.handler_version,\n intent, binding: m.binding, matched: m.matched,\n reason: m.key === preferredKey ? 'user-default' : m.h.provider === 'system' ? 'system-default' : 'ranked' }))\n}\nexport function parentSource(source: TransferableContentRef): TransferableContentRef | undefined {\n if (source.kind !== 'cyfs-path') return undefined\n const i = source.path.lastIndexOf('/')\n return i >= 7 ? { kind: 'cyfs-path', path: source.path.slice(0, i) || 'cyfs:///' } : undefined\n}\nexport function encodeSession(session: TransferableSessionContext | undefined, source: TransferableContentRef): string {\n if (!session) return ''\n const encode = (v: TransferableSessionContext) => btoa(Array.from(new TextEncoder().encode(JSON.stringify(v)), b => String.fromCharCode(b)).join(''))\n .replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '')\n const encoded = encode(session)\n if (encoded.length <= 2048 || session.kind !== 'list') return encoded\n const parent = parentSource(source)\n if (parent && session.items.every(i => contentRefString(parentSource(i.source) ?? i.source) === contentRefString(parent))) {\n return encode({ kind: 'container', container: parent, current: source })\n }\n return ''\n}\nexport function expandOpenPath(path: string, request: OpenRequest, modes: Array<'view' | 'edit'> = ['view', 'edit']): string {\n if (!path.startsWith('/') || path.startsWith('//') || /(?:\\.\\.|\\\\|[\\r\\n])/.test(decodeURIComponent(path))) throw new Error('Invalid App entry path')\n const params: Record<string, string> = { source: contentRefString(request.source), mode: request.mode ?? (modes.includes('edit') ? 'edit' : 'view'), session: encodeSession(request.session, request.source) }\n const expanded = path.replace(/\\{(source|mode|session)\\}/g, (_, key: string) => encodeURIComponent(params[key]))\n return expanded + (expanded.includes('?') ? '&' : '?') + 'requestId=' + encodeURIComponent(request.requestId)\n}\nexport interface SystemOpenRequest {\n request: Omit<OpenRequest, 'requestId'>\n target: ContentOpenTarget\n hints: ContentHints\n /** AppId of the App asking the system to open this content; its own handlers are not offered back to it. */\n from?: string\n}\nexport function systemOpenUrl(systemOrigin: string, open: SystemOpenRequest): string {\n const url = new URL('/', systemOrigin)\n url.searchParams.set('open', contentRefString(open.request.source))\n url.searchParams.set('intent', open.target)\n const session = encodeSession(open.request.session, open.request.source)\n if (session) url.searchParams.set('session', session)\n if (open.request.mode) url.searchParams.set('mode', open.request.mode)\n for (const key of ['name', 'mime', 'size'] as const) if (open.hints[key] !== undefined) url.searchParams.set(key, String(open.hints[key]))\n if (open.from) url.searchParams.set('from', open.from)\n return url.href\n}\nexport function parseSystemOpen(params: URLSearchParams): SystemOpenRequest | undefined {\n const value = params.get('open')\n if (!value) return undefined\n const source: TransferableContentRef = value.startsWith('obj://') ? { kind: 'object-id', objectId: value.slice(6) } : { kind: 'cyfs-path', path: value }\n if (!isTransferableRef(source)) return undefined\n const intent = params.get('intent')\n const target: ContentOpenTarget = intent === 'preview' || intent === 'chooser' ? intent : 'default'\n const request: Omit<OpenRequest, 'requestId'> = { source }\n const mode = params.get('mode')\n if (mode === 'view' || mode === 'edit') request.mode = mode\n const encoded = params.get('session')\n if (encoded) {\n try {\n const session = JSON.parse(new TextDecoder().decode(Uint8Array.from(atob(encoded.replace(/-/g, '+').replace(/_/g, '/')), c => c.charCodeAt(0))))\n if (isTransferableSession(session)) request.session = session\n } catch {}\n }\n const from = params.get('from')\n return { request, target, hints: readContentHints({ name: params.get('name') ?? undefined, mime: params.get('mime') ?? undefined, size: params.get('size') ?? undefined }), from: from && /^[\\w.@-]+$/.test(from) ? from : undefined }\n}\n/** Whether a handler belongs to the App identified by `appId` (an AppId, or an AppInstanceId `<appId>@<owner>`). */\nexport const handlerOfApp = (plan: Pick<HandlerPlan, 'appInstanceId'>, appId: string): boolean =>\n !!plan.appInstanceId && plan.appInstanceId.split('@')[0] === appId.split('@')[0]\nexport class ContentRegistryClient {\n registry: ContentRegistry = { schema_version: 1, handlers: {} }\n defaults = emptyDefaults()\n updatedAt = 0\n private listeners = new Set<() => void>()\n constructor(private config: { get(key: string): Promise<{ value: string }>; set(key: string, value: string): Promise<unknown> }, private userId: string) {}\n async refresh(): Promise<void> {\n const [registry, defaults] = await Promise.all([this.config.get('system/content_registry'), this.config.get(`users/${this.userId}/content_defaults`).catch(error => { if (/not found|not_found/i.test(String(error))) return null; throw error })])\n this.registry = JSON.parse(registry.value)\n this.defaults = defaults ? JSON.parse(defaults.value) : emptyDefaults()\n this.updatedAt = Date.now()\n this.listeners.forEach(cb => cb())\n }\n async setDefault(intent: 'open', selector: string, handlerKey: string | null): Promise<void> {\n await this.refresh()\n const next = { ...this.defaults.defaults[intent] }\n if (handlerKey) next[selector] = handlerKey\n else delete next[selector]\n await this.persist({ ...this.defaults, defaults: { ...this.defaults.defaults, [intent]: next } })\n }\n async setEnabled(key: string, enabled: boolean): Promise<void> {\n await this.refresh()\n await this.persist({ ...this.defaults, disabled: [...new Set([...this.defaults.disabled.filter(k => k !== key), ...enabled ? [] : [key]])] })\n }\n onChanged(cb: () => void): () => void { this.listeners.add(cb); return () => this.listeners.delete(cb) }\n private async persist(next: ContentDefaults): Promise<void> {\n await this.config.set(`users/${this.userId}/content_defaults`, JSON.stringify(next))\n this.defaults = next\n this.listeners.forEach(cb => cb())\n }\n}\n"],"names":["TEXT_CODE_EXTENSIONS","MEDIA_TYPE_BY_EXTENSION","png","apng","jpg","jpeg","jfif","gif","webp","bmp","ico","avif","heic","heif","tif","tiff","psd","svg","mp4","m4v","webm","mov","mkv","avi","ogv","mp3","wav","flac","ogg","oga","opus","m4a","aac","pdf","html","htm","xhtml","docx","xlsx","pptx","doc","xls","ppt","odt","zip","tar","gz","rar","epub","md","markdown","json","xml","csv","yaml","yml","toml","js","mjs","cjs","css","ext","extensionOf","name","base","split","pop","dot","lastIndexOf","slice","toLowerCase","mediaTypeFromExtension","readContentHints","value","v","hints","length","test","mime","size","Number","isSafeInteger","previewHandler","provider","handler_id","handler_version","selectors","enabled","intents","open","entry","type","target","modes","fidelity","window","priority","emptyDefaults","schema_version","defaults","disabled","contentRefString","ref","kind","path","objectId","isTransferableRef","isTransferableSession","container","current","Array","isArray","items","every","i","source","isInteger","currentIndex","values","matchSelector","s","d","maxSize","objType","includes","score","schema","matches","filter","endsWith","_a","startsWith","some","trim","scores","map","indexOf","best","Math","max","compactSelector","out","part","key","parentSource","encodeSession","session","encode","btoa","from","TextEncoder","JSON","stringify","b","String","fromCharCode","join","replace","encoded","parent","constructor","config","userId","this","registry","handlers","updatedAt","listeners","Set","refresh","Promise","all","get","catch","error","parse","Date","now","forEach","cb","setDefault","intent","selector","handlerKey","next","persist","setEnabled","k","onChanged","add","delete","set","request","decodeURIComponent","Error","params","mode","expanded","_","encodeURIComponent","requestId","plan","appId","appInstanceId","TextDecoder","decode","Uint8Array","atob","c","charCodeAt","descriptor","_host","availableApps","visible","preferred","Object","entries","sort","a","localeCompare","flatMap","h","binding","app_instance_id","has","specificity","matched","preferredKey","find","p","m","registered_at","handlerRef","appDocObjectId","app_doc_object_id","handlerVersion","reason","systemOrigin","url","URL","searchParams","href"],"mappings":"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"}
|
package/dist/content.d.ts
CHANGED
|
@@ -39,6 +39,13 @@ export interface OpenRequest {
|
|
|
39
39
|
hostContext?: string;
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
+
export type ContentOpenTarget = 'default' | 'preview' | 'chooser';
|
|
43
|
+
export interface ContentHints {
|
|
44
|
+
name?: string;
|
|
45
|
+
mime?: string;
|
|
46
|
+
size?: number;
|
|
47
|
+
}
|
|
48
|
+
export declare function readContentHints(value: unknown): ContentHints;
|
|
42
49
|
export interface ContentSelector {
|
|
43
50
|
objType?: string | string[];
|
|
44
51
|
mime?: string | string[];
|
|
@@ -126,6 +133,17 @@ export declare function resolveContentHandlers(registry: ContentRegistry, defaul
|
|
|
126
133
|
export declare function parentSource(source: TransferableContentRef): TransferableContentRef | undefined;
|
|
127
134
|
export declare function encodeSession(session: TransferableSessionContext | undefined, source: TransferableContentRef): string;
|
|
128
135
|
export declare function expandOpenPath(path: string, request: OpenRequest, modes?: Array<'view' | 'edit'>): string;
|
|
136
|
+
export interface SystemOpenRequest {
|
|
137
|
+
request: Omit<OpenRequest, 'requestId'>;
|
|
138
|
+
target: ContentOpenTarget;
|
|
139
|
+
hints: ContentHints;
|
|
140
|
+
/** AppId of the App asking the system to open this content; its own handlers are not offered back to it. */
|
|
141
|
+
from?: string;
|
|
142
|
+
}
|
|
143
|
+
export declare function systemOpenUrl(systemOrigin: string, open: SystemOpenRequest): string;
|
|
144
|
+
export declare function parseSystemOpen(params: URLSearchParams): SystemOpenRequest | undefined;
|
|
145
|
+
/** Whether a handler belongs to the App identified by `appId` (an AppId, or an AppInstanceId `<appId>@<owner>`). */
|
|
146
|
+
export declare const handlerOfApp: (plan: Pick<HandlerPlan, 'appInstanceId'>, appId: string) => boolean;
|
|
129
147
|
export declare class ContentRegistryClient {
|
|
130
148
|
private config;
|
|
131
149
|
private userId;
|