@dxos/plugin-wnfs 0.7.4 → 0.7.5-main.499c70c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/index.mjs +31 -39
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/types/src/WnfsPlugin.d.ts.map +1 -1
- package/dist/types/src/types/file.d.ts +7 -9
- package/dist/types/src/types/file.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +19 -19
- package/src/WnfsPlugin.tsx +25 -31
|
@@ -9,11 +9,10 @@ import {
|
|
|
9
9
|
// packages/plugins/experimental/plugin-wnfs/src/WnfsPlugin.tsx
|
|
10
10
|
import { FileCloud } from "@phosphor-icons/react";
|
|
11
11
|
import React2 from "react";
|
|
12
|
-
import {
|
|
12
|
+
import { createSurface, resolvePlugin } from "@dxos/app-framework";
|
|
13
13
|
import { invariant } from "@dxos/invariant";
|
|
14
|
-
import { parseClientPlugin } from "@dxos/plugin-client";
|
|
14
|
+
import { parseClientPlugin } from "@dxos/plugin-client/types";
|
|
15
15
|
import { getSpace } from "@dxos/react-client/echo";
|
|
16
|
-
import { isTileComponentProps } from "@dxos/react-ui-mosaic";
|
|
17
16
|
|
|
18
17
|
// packages/plugins/experimental/plugin-wnfs/src/blockstore.ts
|
|
19
18
|
import { BaseBlockstore } from "blockstore-core";
|
|
@@ -403,11 +402,11 @@ var WnfsPlugin = () => {
|
|
|
403
402
|
let blockstore;
|
|
404
403
|
return {
|
|
405
404
|
meta: meta_default,
|
|
406
|
-
ready: async (plugins) => {
|
|
405
|
+
ready: async ({ plugins }) => {
|
|
407
406
|
const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;
|
|
408
407
|
invariant(client, void 0, {
|
|
409
408
|
F: __dxlog_file3,
|
|
410
|
-
L:
|
|
409
|
+
L: 30,
|
|
411
410
|
S: void 0,
|
|
412
411
|
A: [
|
|
413
412
|
"client",
|
|
@@ -469,40 +468,33 @@ var WnfsPlugin = () => {
|
|
|
469
468
|
}
|
|
470
469
|
},
|
|
471
470
|
surface: {
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
}) : null;
|
|
500
|
-
}
|
|
501
|
-
break;
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
return null;
|
|
505
|
-
}
|
|
471
|
+
definitions: () => [
|
|
472
|
+
createSurface({
|
|
473
|
+
id: `${WNFS_PLUGIN}/article`,
|
|
474
|
+
role: "article",
|
|
475
|
+
filter: (data) => data.subject instanceof FileType,
|
|
476
|
+
component: ({ data }) => /* @__PURE__ */ React2.createElement(FileMain, {
|
|
477
|
+
file: data.subject
|
|
478
|
+
})
|
|
479
|
+
}),
|
|
480
|
+
createSurface({
|
|
481
|
+
id: `${WNFS_PLUGIN}/section`,
|
|
482
|
+
role: "section",
|
|
483
|
+
filter: (data) => data.subject instanceof FileType,
|
|
484
|
+
component: ({ data }) => /* @__PURE__ */ React2.createElement(FileSection, {
|
|
485
|
+
file: data.subject
|
|
486
|
+
})
|
|
487
|
+
}),
|
|
488
|
+
createSurface({
|
|
489
|
+
id: `${WNFS_PLUGIN}/slide`,
|
|
490
|
+
role: "slide",
|
|
491
|
+
filter: (data) => data.subject instanceof FileType,
|
|
492
|
+
component: ({ data }) => /* @__PURE__ */ React2.createElement(FileSlide, {
|
|
493
|
+
file: data.subject,
|
|
494
|
+
cover: false
|
|
495
|
+
})
|
|
496
|
+
})
|
|
497
|
+
]
|
|
506
498
|
}
|
|
507
499
|
}
|
|
508
500
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/WnfsPlugin.tsx", "../../../src/blockstore.ts", "../../../src/common.ts", "../../../src/components/index.ts", "../../../src/extensions/image.ts", "../../../src/load.ts", "../../../src/translations.ts", "../../../src/upload.ts", "../../../src/wnfs-url.ts", "../../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { FileCloud, type IconProps } from '@phosphor-icons/react';\nimport React, { type Ref } from 'react';\n\nimport { type PluginDefinition, isObject, resolvePlugin } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { parseClientPlugin } from '@dxos/plugin-client';\nimport { type DocumentType } from '@dxos/plugin-markdown/types';\nimport { type Space, getSpace } from '@dxos/react-client/echo';\nimport { isTileComponentProps } from '@dxos/react-ui-mosaic';\n\nimport * as Blockstore from './blockstore';\nimport { FileCard, FileMain, FileSection, FileSlide } from './components';\nimport { image as imageExtension } from './extensions';\nimport meta, { WNFS_PLUGIN } from './meta';\nimport translations from './translations';\nimport { FileType } from './types';\nimport { type WnfsPluginProvides } from './types';\nimport { upload } from './upload';\n\nexport const WnfsPlugin = (): PluginDefinition<WnfsPluginProvides> => {\n let blockstore: Blockstore.MixedBlockstore | undefined;\n\n return {\n meta,\n ready: async (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n invariant(client);\n const apiHost = client.config.values.runtime?.services?.edge?.url || 'http://localhost:8787';\n blockstore = Blockstore.create(apiHost);\n await blockstore.open();\n },\n provides: {\n translations,\n metadata: {\n records: {\n [FileType.typename]: {\n placeholder: ['file title placeholder', { ns: WNFS_PLUGIN }],\n icon: (props: IconProps) => <FileCloud {...props} />,\n },\n },\n },\n echo: {\n system: [FileType],\n },\n // TODO(burdon): Add intent to upload file.\n file: {\n upload: async (file: File, space: Space) => {\n if (!blockstore) {\n throw new Error('Blockstore is not ready yet');\n }\n\n return await upload({ blockstore, file, space });\n },\n },\n markdown: {\n extensions: ({ document }: { document?: DocumentType }) => {\n if (!blockstore) {\n throw new Error('Blockstore is not ready yet');\n }\n\n if (document) {\n const space = getSpace(document);\n return space ? [imageExtension({ blockstore, space })] : [];\n }\n\n return [];\n },\n },\n surface: {\n component: ({ data, role, ...props }, forwardedRef) => {\n switch (role) {\n case 'main':\n return data.active instanceof FileType ? <FileMain file={data.active} /> : null;\n case 'slide':\n return data.slide instanceof FileType ? <FileSlide file={data.slide} cover={false} /> : null;\n case 'section':\n return data.object instanceof FileType ? <FileSection file={data.object} /> : null;\n case 'card': {\n if (\n isObject(data.content) &&\n typeof data.content.id === 'string' &&\n data.content.object instanceof FileType\n ) {\n const cardProps = { ...props, item: { id: data.content.id, object: data.content.object } };\n return isTileComponentProps(cardProps) ? (\n <FileCard {...cardProps} ref={forwardedRef as Ref<HTMLDivElement>} />\n ) : null;\n }\n break;\n }\n }\n\n return null;\n },\n },\n },\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { BaseBlockstore } from 'blockstore-core';\nimport { IDBBlockstore } from 'blockstore-idb';\nimport type { CID } from 'multiformats';\n\nimport { storeName } from './common';\n\nexport const create = (apiHost?: string) => {\n return new MixedBlockstore(apiHost);\n};\n\n/**\n * A blockstore that communicates with the DXOS blob service,\n * and which uses an indexedDB blockstore as a client cache.\n */\nexport class MixedBlockstore extends BaseBlockstore {\n readonly #apiHost: string | undefined;\n readonly #idbStore: IDBBlockstore;\n\n constructor(apiHost?: string) {\n super();\n\n this.#apiHost = apiHost;\n this.#idbStore = new IDBBlockstore(storeName());\n }\n\n async open() {\n await this.#idbStore.open();\n }\n\n url(apiHost: string, cid?: CID) {\n const path = cid ? cid.toString() : '';\n return `${apiHost}/api/file/${path}`;\n }\n\n // Blockstore implementation\n override async delete(key: CID): Promise<void> {\n await this.#idbStore.delete(key);\n\n if (this.#apiHost) {\n await fetch(this.url(this.#apiHost, key), {\n method: 'DELETE',\n });\n }\n }\n\n override async get(key: CID): Promise<Uint8Array> {\n if (await this.#idbStore.has(key)) {\n return await this.#idbStore.get(key);\n }\n\n if (this.#apiHost) {\n return await fetch(this.url(this.#apiHost, key), {\n method: 'GET',\n })\n .then((r) => r.arrayBuffer())\n .then((r) => new Uint8Array(r));\n }\n\n return await this.#idbStore.get(key);\n }\n\n override async has(key: CID): Promise<boolean> {\n if (await this.#idbStore.has(key)) {\n return true;\n }\n\n if (this.#apiHost) {\n return await fetch(this.url(this.#apiHost, key), {\n method: 'HEAD',\n }).then((r) => r.ok);\n }\n\n return false;\n }\n\n override async put(key: CID, val: Uint8Array): Promise<CID> {\n await this.#idbStore.put(key, val);\n\n if (this.#apiHost) {\n await fetch(this.url(this.#apiHost, key), {\n method: 'POST',\n body: val,\n });\n }\n\n return key;\n }\n\n async destroy(): Promise<void> {\n await this.#idbStore.destroy();\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Blockstore } from 'interface-blockstore';\nimport { CID } from 'multiformats/cid';\nimport { sha256 } from 'multiformats/hashes/sha2';\nimport { type BlockStore as WnfsBlockStore } from 'wnfs';\n\nimport * as crypto from '@dxos/crypto';\nimport { type Space } from '@dxos/react-client/echo';\n\n//\n// PATH\n//\n\nexport const filePath = (fileName: string, space: Space) => {\n return ['spaces', space.properties.id, 'files', fileName];\n};\n\n//\n// RNG\n//\n\nexport class Rng {\n randomBytes(count: number): Uint8Array {\n return new Uint8Array(crypto.randomBytes(count));\n }\n}\n\n//\n// STORE\n//\n\nexport const store = (blockstore: Blockstore): WnfsBlockStore => {\n const getBlock = async (cid: Uint8Array): Promise<Uint8Array | undefined> => {\n const decodedCid = CID.decode(cid);\n return await blockstore.get(decodedCid);\n };\n\n const hasBlock = async (cid: Uint8Array): Promise<boolean> => {\n const decodedCid = CID.decode(cid);\n return await blockstore.has(decodedCid);\n };\n\n const putBlockKeyed = async (cid: Uint8Array, bytes: Uint8Array): Promise<void> => {\n const decodedCid = CID.decode(cid);\n await blockstore.put(decodedCid, bytes);\n };\n\n // Don't hash blocks with the rs-wnfs default Blake 3, sha256 has better support.\n const putBlock = async (bytes: Uint8Array, codec: number): Promise<Uint8Array> => {\n const hash = await sha256.digest(bytes);\n const cid = CID.create(1, codec, hash);\n await blockstore.put(cid, bytes);\n return cid.bytes;\n };\n\n return { getBlock, hasBlock, putBlockKeyed, putBlock };\n};\n\nexport const storeName = () => 'dxos/wnfs';\n\n//\n// OTHER\n//\n\nexport const readFile = (file: File): Promise<Uint8Array> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event) => {\n const result = event.target?.result;\n if (result === null || result === undefined || typeof result === 'string') {\n reject(new Error('Expected an ArrayBuffer'));\n return;\n }\n resolve(new Uint8Array(result));\n };\n reader.onerror = (err) => {\n reject(err);\n };\n reader.readAsArrayBuffer(file);\n });\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\n// Lazily load components for content surfaces.\nexport const FileCard = React.lazy(() => import('./FileCard'));\nexport const FileMain = React.lazy(() => import('./FileMain'));\nexport const FileSection = React.lazy(() => import('./FileSection'));\nexport const FileSlide = React.lazy(() => import('./FileSlide'));\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { syntaxTree } from '@codemirror/language';\nimport { type EditorState, type Extension, StateField, type Range, StateEffect } from '@codemirror/state';\nimport { Decoration, EditorView, WidgetType, ViewPlugin, type ViewUpdate } from '@codemirror/view';\nimport type { Blockstore } from 'interface-blockstore';\nimport type { PrivateDirectory, PrivateForest } from 'wnfs';\n\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { store } from '../common';\nimport { loadWnfs } from '../load';\n\nexport type ImageOptions = {\n blockstore: Blockstore;\n space: Space;\n};\n\nexport const image = (options: ImageOptions): Extension[] => {\n return [stateField(options), viewPlugin(options)];\n};\n\n// GLOBAL STATE\n\n/** Indexed by space id */\nconst loadedWnfsInstances: Record<string, { directory: PrivateDirectory; forest: PrivateForest }> = {};\n\n// EFFECT + EXTENSIONS\n\nconst stateEffect = StateEffect.define<{\n decorations: Range<Decoration>[];\n from: number;\n to: number;\n}>({});\n\nconst stateField = (options: ImageOptions) =>\n StateField.define({\n create: () => {\n return Decoration.none;\n },\n update: (value, tr) => {\n for (const effect of tr.effects) {\n if (effect.is(stateEffect)) {\n return value.map(tr.changes).update({\n filterFrom: effect.value.from,\n filterTo: effect.value.to,\n filter: () => false,\n add: effect.value.decorations,\n });\n }\n }\n\n return value;\n },\n provide: (f) => {\n return EditorView.decorations.from(f);\n },\n });\n\nconst viewPlugin = (options: ImageOptions) =>\n ViewPlugin.define((view: EditorView) => {\n // Initial decoration set on document load\n buildDecorations({\n from: 0,\n to: view.state.doc.length,\n state: view.state,\n options,\n })\n .then((decorations) => {\n view.dispatch({\n effects: stateEffect.of({\n decorations,\n from: 0,\n to: view.state.doc.length,\n }),\n });\n })\n .catch((err) => {\n throw new Error(err);\n });\n\n const update = (update: ViewUpdate) => {\n if (!update.docChanged) {\n return;\n }\n\n const { from, to } = changedRange(update);\n buildDecorations({\n from,\n to,\n state: view.state,\n options,\n })\n .then((decorations) => {\n view.dispatch({\n effects: stateEffect.of({\n decorations,\n from,\n to,\n }),\n });\n })\n .catch((err) => {\n log.catch(err);\n });\n };\n\n return { update };\n });\n\n// 🛠️\n\nconst changedRange = (update: ViewUpdate) => {\n // Find range of changes and cursor changes.\n const cursor = update.state.selection.main.head;\n const oldCursor = update.changes.mapPos(update.startState.selection.main.head);\n\n let from = Math.min(cursor, oldCursor);\n let to = Math.max(cursor, oldCursor);\n\n update.changes.iterChangedRanges((fromA, toA, fromB, toB) => {\n from = Math.min(from, fromB);\n to = Math.max(to, toB);\n });\n\n // Expand to cover lines.\n from = update.state.doc.lineAt(from).from;\n to = update.state.doc.lineAt(to).to;\n\n // Fin\n return { from, to };\n};\n\nconst buildDecorations = async ({\n from,\n to,\n state,\n options,\n}: {\n from: number;\n to: number;\n state: EditorState;\n options: ImageOptions;\n}) => {\n const cursor = state.selection.main.head;\n let nodes: { from: number; hide: boolean; to: number; url: string }[] = [];\n\n syntaxTree(state).iterate({\n enter: (node) => {\n if (node.name === 'Image') {\n const urlNode = node.node.getChild('URL');\n if (urlNode) {\n const hide = state.readOnly || cursor < node.from || cursor > node.to;\n const url = state.sliceDoc(urlNode.from, urlNode.to);\n\n if (url.startsWith('wnfs://')) {\n nodes.push({\n from: node.from,\n to: node.to,\n hide,\n url,\n });\n }\n }\n }\n },\n from,\n to,\n });\n\n // Nodes must be sorted by `from`\n nodes = nodes.sort((a, b) => {\n return a.from - b.from;\n });\n\n const decorations = await nodes.reduce(\n async (acc, node) => {\n const array = await acc;\n const path = node.url\n .replace(/^wnfs:\\/\\//, '')\n .split('/')\n .map((p) => decodeURIComponent(p));\n\n // Cannot load images from other spaces\n const spaceIdFromUrl = path[1];\n if (spaceIdFromUrl !== options.space.properties.id) {\n return array;\n }\n\n const cacheKey = options.space.properties.wnfs_private_forest_cid;\n\n const { directory, forest } = loadedWnfsInstances[cacheKey]\n ? loadedWnfsInstances[cacheKey]\n : await loadWnfs(options.space, options.blockstore);\n\n loadedWnfsInstances[cacheKey] = {\n directory,\n forest,\n };\n\n const wnfsStore = store(options.blockstore);\n\n // Load image contents into memory blob\n const { result } = await directory.read(path, true, forest, wnfsStore);\n const blob = new Blob([result]);\n const blobUrl = URL.createObjectURL(blob);\n\n // Create decoration\n return [\n ...array,\n Decoration.replace({\n block: true, // Prevent cursor from entering.\n widget: new WnfsImageWidget(blobUrl),\n }).range(node.hide ? node.from : node.to, node.to),\n ];\n },\n Promise.resolve([] as Range<Decoration>[]),\n );\n\n return decorations;\n};\n\nclass WnfsImageWidget extends WidgetType {\n constructor(readonly _url: string) {\n super();\n }\n\n override eq(other: this) {\n return this._url === (other as any as WnfsImageWidget)._url;\n }\n\n override toDOM(view: EditorView) {\n const img = document.createElement('img');\n img.setAttribute('loading', 'lazy');\n img.setAttribute('src', this._url);\n img.setAttribute('class', 'cm-image');\n // Images are hidden until successfully loaded to avoid flickering effects.\n img.onload = () => img.classList.add('cm-loaded-image');\n return img;\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Blockstore } from 'interface-blockstore';\nimport { CID } from 'multiformats';\nimport * as Uint8Arrays from 'uint8arrays';\nimport { AccessKey, PrivateForest, PrivateDirectory, PrivateNode } from 'wnfs';\n\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { Rng, store } from './common';\n\n//\n// LOAD\n//\n\nexport const loadWnfs = async (space: Space, blockstore: Blockstore) => {\n const exists =\n space.properties.wnfs_access_key !== undefined && space.properties.wnfs_private_forest_cid !== undefined;\n\n return exists ? await loadWnfsDir(blockstore, space) : await createWnfsDir(blockstore, space);\n};\n\n//\n// PRIVATE\n//\n\nconst createWnfsDir = async (blockstore: Blockstore, space: Space) => {\n const wnfsStore = store(blockstore);\n const rng = new Rng();\n const forest = new PrivateForest(rng);\n\n const dirResult = await PrivateDirectory.newAndStore(forest.emptyName(), new Date(), forest, wnfsStore, rng);\n const dir = dirResult.rootDir as PrivateDirectory;\n\n const [accessKeyRaw, newForest]: [AccessKey, PrivateForest] = await dir\n .asNode()\n .store(dirResult.forest as PrivateForest, wnfsStore, rng);\n\n const cidBytes = await newForest.store(wnfsStore);\n\n space.properties.wnfs_access_key = Uint8Arrays.toString(accessKeyRaw.toBytes(), 'base64');\n space.properties.wnfs_private_forest_cid = CID.decode(cidBytes).toString();\n\n return {\n directory: dir,\n forest: newForest,\n };\n};\n\nconst loadWnfsDir = async (blockstore: Blockstore, space: Space) => {\n const wnfsStore = store(blockstore);\n\n const accessKey = AccessKey.fromBytes(Uint8Arrays.fromString(space.properties.wnfs_access_key, 'base64'));\n const forest = await PrivateForest.load(CID.parse(space.properties.wnfs_private_forest_cid).bytes, wnfsStore);\n const node: PrivateNode = await PrivateNode.load(accessKey, forest, wnfsStore);\n\n return {\n directory: node.asDir(),\n forest,\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { WNFS_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [WNFS_PLUGIN]: {\n 'plugin name': 'Files',\n 'file title placeholder': 'New file',\n 'delete object label': 'Delete',\n },\n },\n },\n];\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Blockstore } from 'interface-blockstore';\nimport { CID } from 'multiformats';\nimport * as Raw from 'multiformats/codecs/raw';\nimport { sha256 } from 'multiformats/hashes/sha2';\n\nimport type { Space } from '@dxos/client/echo';\nimport { log } from '@dxos/log';\n\nimport { Rng, filePath, store } from './common';\nimport { loadWnfs } from './load';\nimport { wnfsUrl } from './wnfs-url';\n\nexport const upload = async ({ blockstore, file, space }: { blockstore: Blockstore; file: File; space: Space }) => {\n const { directory, forest } = await loadWnfs(space, blockstore);\n const wnfsStore = store(blockstore);\n\n const bytes = new Uint8Array(await file.arrayBuffer());\n const hash = await sha256.digest(bytes);\n const cid = CID.create(1, Raw.code, hash);\n\n const path = filePath(cid.toString(), space);\n\n // Given the root directory of the private file system,\n // write the file contents to `path` in said directory.\n const result = await directory.write(path, true, bytes, new Date(), forest, wnfsStore, new Rng());\n\n // Given the new immutable instance of the root directory after writing to it,\n // **store** the changes in the \"dark forest\" and the associated (block) store.\n const [_, updatedForest] = await result.rootDir.store(result.forest, wnfsStore, new Rng());\n const cidBytes = await updatedForest.store(wnfsStore);\n\n // Update the forest pointer on the associated space.\n space.properties.wnfs_private_forest_cid = CID.decode(cidBytes).toString();\n\n // Generate `wnfs://` URL & return the info.\n const info = {\n url: wnfsUrl(path),\n };\n\n log('upload', { file, info });\n return info;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport const wnfsUrl = (filePath: string[]) => {\n return 'wnfs://' + filePath.map((f) => encodeURIComponent(f)).join('/');\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { WnfsPlugin } from './WnfsPlugin';\n\nexport default WnfsPlugin;\n\nexport * from './WnfsPlugin';\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["FileCloud", "React", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { FileCloud, type IconProps } from '@phosphor-icons/react';\nimport React from 'react';\n\nimport { type PluginDefinition, createSurface, resolvePlugin } from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { parseClientPlugin } from '@dxos/plugin-client/types';\nimport { type DocumentType } from '@dxos/plugin-markdown/types';\nimport { type Space, getSpace } from '@dxos/react-client/echo';\n\nimport * as Blockstore from './blockstore';\nimport { FileMain, FileSection, FileSlide } from './components';\nimport { image as imageExtension } from './extensions';\nimport meta, { WNFS_PLUGIN } from './meta';\nimport translations from './translations';\nimport { FileType } from './types';\nimport { type WnfsPluginProvides } from './types';\nimport { upload } from './upload';\n\nexport const WnfsPlugin = (): PluginDefinition<WnfsPluginProvides> => {\n let blockstore: Blockstore.MixedBlockstore | undefined;\n\n return {\n meta,\n ready: async ({ plugins }) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n invariant(client);\n const apiHost = client.config.values.runtime?.services?.edge?.url || 'http://localhost:8787';\n blockstore = Blockstore.create(apiHost);\n await blockstore.open();\n },\n provides: {\n translations,\n metadata: {\n records: {\n [FileType.typename]: {\n placeholder: ['file title placeholder', { ns: WNFS_PLUGIN }],\n icon: (props: IconProps) => <FileCloud {...props} />,\n },\n },\n },\n echo: {\n system: [FileType],\n },\n // TODO(burdon): Add intent to upload file.\n file: {\n upload: async (file: File, space: Space) => {\n if (!blockstore) {\n throw new Error('Blockstore is not ready yet');\n }\n\n return await upload({ blockstore, file, space });\n },\n },\n markdown: {\n extensions: ({ document }: { document?: DocumentType }) => {\n if (!blockstore) {\n throw new Error('Blockstore is not ready yet');\n }\n\n if (document) {\n const space = getSpace(document);\n return space ? [imageExtension({ blockstore, space })] : [];\n }\n\n return [];\n },\n },\n surface: {\n definitions: () => [\n createSurface({\n id: `${WNFS_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: FileType } => data.subject instanceof FileType,\n component: ({ data }) => <FileMain file={data.subject} />,\n }),\n createSurface({\n id: `${WNFS_PLUGIN}/section`,\n role: 'section',\n filter: (data): data is { subject: FileType } => data.subject instanceof FileType,\n component: ({ data }) => <FileSection file={data.subject} />,\n }),\n createSurface({\n id: `${WNFS_PLUGIN}/slide`,\n role: 'slide',\n filter: (data): data is { subject: FileType } => data.subject instanceof FileType,\n component: ({ data }) => <FileSlide file={data.subject} cover={false} />,\n }),\n ],\n },\n },\n };\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { BaseBlockstore } from 'blockstore-core';\nimport { IDBBlockstore } from 'blockstore-idb';\nimport type { CID } from 'multiformats';\n\nimport { storeName } from './common';\n\nexport const create = (apiHost?: string) => {\n return new MixedBlockstore(apiHost);\n};\n\n/**\n * A blockstore that communicates with the DXOS blob service,\n * and which uses an indexedDB blockstore as a client cache.\n */\nexport class MixedBlockstore extends BaseBlockstore {\n readonly #apiHost: string | undefined;\n readonly #idbStore: IDBBlockstore;\n\n constructor(apiHost?: string) {\n super();\n\n this.#apiHost = apiHost;\n this.#idbStore = new IDBBlockstore(storeName());\n }\n\n async open() {\n await this.#idbStore.open();\n }\n\n url(apiHost: string, cid?: CID) {\n const path = cid ? cid.toString() : '';\n return `${apiHost}/api/file/${path}`;\n }\n\n // Blockstore implementation\n override async delete(key: CID): Promise<void> {\n await this.#idbStore.delete(key);\n\n if (this.#apiHost) {\n await fetch(this.url(this.#apiHost, key), {\n method: 'DELETE',\n });\n }\n }\n\n override async get(key: CID): Promise<Uint8Array> {\n if (await this.#idbStore.has(key)) {\n return await this.#idbStore.get(key);\n }\n\n if (this.#apiHost) {\n return await fetch(this.url(this.#apiHost, key), {\n method: 'GET',\n })\n .then((r) => r.arrayBuffer())\n .then((r) => new Uint8Array(r));\n }\n\n return await this.#idbStore.get(key);\n }\n\n override async has(key: CID): Promise<boolean> {\n if (await this.#idbStore.has(key)) {\n return true;\n }\n\n if (this.#apiHost) {\n return await fetch(this.url(this.#apiHost, key), {\n method: 'HEAD',\n }).then((r) => r.ok);\n }\n\n return false;\n }\n\n override async put(key: CID, val: Uint8Array): Promise<CID> {\n await this.#idbStore.put(key, val);\n\n if (this.#apiHost) {\n await fetch(this.url(this.#apiHost, key), {\n method: 'POST',\n body: val,\n });\n }\n\n return key;\n }\n\n async destroy(): Promise<void> {\n await this.#idbStore.destroy();\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Blockstore } from 'interface-blockstore';\nimport { CID } from 'multiformats/cid';\nimport { sha256 } from 'multiformats/hashes/sha2';\nimport { type BlockStore as WnfsBlockStore } from 'wnfs';\n\nimport * as crypto from '@dxos/crypto';\nimport { type Space } from '@dxos/react-client/echo';\n\n//\n// PATH\n//\n\nexport const filePath = (fileName: string, space: Space) => {\n return ['spaces', space.properties.id, 'files', fileName];\n};\n\n//\n// RNG\n//\n\nexport class Rng {\n randomBytes(count: number): Uint8Array {\n return new Uint8Array(crypto.randomBytes(count));\n }\n}\n\n//\n// STORE\n//\n\nexport const store = (blockstore: Blockstore): WnfsBlockStore => {\n const getBlock = async (cid: Uint8Array): Promise<Uint8Array | undefined> => {\n const decodedCid = CID.decode(cid);\n return await blockstore.get(decodedCid);\n };\n\n const hasBlock = async (cid: Uint8Array): Promise<boolean> => {\n const decodedCid = CID.decode(cid);\n return await blockstore.has(decodedCid);\n };\n\n const putBlockKeyed = async (cid: Uint8Array, bytes: Uint8Array): Promise<void> => {\n const decodedCid = CID.decode(cid);\n await blockstore.put(decodedCid, bytes);\n };\n\n // Don't hash blocks with the rs-wnfs default Blake 3, sha256 has better support.\n const putBlock = async (bytes: Uint8Array, codec: number): Promise<Uint8Array> => {\n const hash = await sha256.digest(bytes);\n const cid = CID.create(1, codec, hash);\n await blockstore.put(cid, bytes);\n return cid.bytes;\n };\n\n return { getBlock, hasBlock, putBlockKeyed, putBlock };\n};\n\nexport const storeName = () => 'dxos/wnfs';\n\n//\n// OTHER\n//\n\nexport const readFile = (file: File): Promise<Uint8Array> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (event) => {\n const result = event.target?.result;\n if (result === null || result === undefined || typeof result === 'string') {\n reject(new Error('Expected an ArrayBuffer'));\n return;\n }\n resolve(new Uint8Array(result));\n };\n reader.onerror = (err) => {\n reject(err);\n };\n reader.readAsArrayBuffer(file);\n });\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\n// Lazily load components for content surfaces.\nexport const FileCard = React.lazy(() => import('./FileCard'));\nexport const FileMain = React.lazy(() => import('./FileMain'));\nexport const FileSection = React.lazy(() => import('./FileSection'));\nexport const FileSlide = React.lazy(() => import('./FileSlide'));\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { syntaxTree } from '@codemirror/language';\nimport { type EditorState, type Extension, StateField, type Range, StateEffect } from '@codemirror/state';\nimport { Decoration, EditorView, WidgetType, ViewPlugin, type ViewUpdate } from '@codemirror/view';\nimport type { Blockstore } from 'interface-blockstore';\nimport type { PrivateDirectory, PrivateForest } from 'wnfs';\n\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { store } from '../common';\nimport { loadWnfs } from '../load';\n\nexport type ImageOptions = {\n blockstore: Blockstore;\n space: Space;\n};\n\nexport const image = (options: ImageOptions): Extension[] => {\n return [stateField(options), viewPlugin(options)];\n};\n\n// GLOBAL STATE\n\n/** Indexed by space id */\nconst loadedWnfsInstances: Record<string, { directory: PrivateDirectory; forest: PrivateForest }> = {};\n\n// EFFECT + EXTENSIONS\n\nconst stateEffect = StateEffect.define<{\n decorations: Range<Decoration>[];\n from: number;\n to: number;\n}>({});\n\nconst stateField = (options: ImageOptions) =>\n StateField.define({\n create: () => {\n return Decoration.none;\n },\n update: (value, tr) => {\n for (const effect of tr.effects) {\n if (effect.is(stateEffect)) {\n return value.map(tr.changes).update({\n filterFrom: effect.value.from,\n filterTo: effect.value.to,\n filter: () => false,\n add: effect.value.decorations,\n });\n }\n }\n\n return value;\n },\n provide: (f) => {\n return EditorView.decorations.from(f);\n },\n });\n\nconst viewPlugin = (options: ImageOptions) =>\n ViewPlugin.define((view: EditorView) => {\n // Initial decoration set on document load\n buildDecorations({\n from: 0,\n to: view.state.doc.length,\n state: view.state,\n options,\n })\n .then((decorations) => {\n view.dispatch({\n effects: stateEffect.of({\n decorations,\n from: 0,\n to: view.state.doc.length,\n }),\n });\n })\n .catch((err) => {\n throw new Error(err);\n });\n\n const update = (update: ViewUpdate) => {\n if (!update.docChanged) {\n return;\n }\n\n const { from, to } = changedRange(update);\n buildDecorations({\n from,\n to,\n state: view.state,\n options,\n })\n .then((decorations) => {\n view.dispatch({\n effects: stateEffect.of({\n decorations,\n from,\n to,\n }),\n });\n })\n .catch((err) => {\n log.catch(err);\n });\n };\n\n return { update };\n });\n\n// 🛠️\n\nconst changedRange = (update: ViewUpdate) => {\n // Find range of changes and cursor changes.\n const cursor = update.state.selection.main.head;\n const oldCursor = update.changes.mapPos(update.startState.selection.main.head);\n\n let from = Math.min(cursor, oldCursor);\n let to = Math.max(cursor, oldCursor);\n\n update.changes.iterChangedRanges((fromA, toA, fromB, toB) => {\n from = Math.min(from, fromB);\n to = Math.max(to, toB);\n });\n\n // Expand to cover lines.\n from = update.state.doc.lineAt(from).from;\n to = update.state.doc.lineAt(to).to;\n\n // Fin\n return { from, to };\n};\n\nconst buildDecorations = async ({\n from,\n to,\n state,\n options,\n}: {\n from: number;\n to: number;\n state: EditorState;\n options: ImageOptions;\n}) => {\n const cursor = state.selection.main.head;\n let nodes: { from: number; hide: boolean; to: number; url: string }[] = [];\n\n syntaxTree(state).iterate({\n enter: (node) => {\n if (node.name === 'Image') {\n const urlNode = node.node.getChild('URL');\n if (urlNode) {\n const hide = state.readOnly || cursor < node.from || cursor > node.to;\n const url = state.sliceDoc(urlNode.from, urlNode.to);\n\n if (url.startsWith('wnfs://')) {\n nodes.push({\n from: node.from,\n to: node.to,\n hide,\n url,\n });\n }\n }\n }\n },\n from,\n to,\n });\n\n // Nodes must be sorted by `from`\n nodes = nodes.sort((a, b) => {\n return a.from - b.from;\n });\n\n const decorations = await nodes.reduce(\n async (acc, node) => {\n const array = await acc;\n const path = node.url\n .replace(/^wnfs:\\/\\//, '')\n .split('/')\n .map((p) => decodeURIComponent(p));\n\n // Cannot load images from other spaces\n const spaceIdFromUrl = path[1];\n if (spaceIdFromUrl !== options.space.properties.id) {\n return array;\n }\n\n const cacheKey = options.space.properties.wnfs_private_forest_cid;\n\n const { directory, forest } = loadedWnfsInstances[cacheKey]\n ? loadedWnfsInstances[cacheKey]\n : await loadWnfs(options.space, options.blockstore);\n\n loadedWnfsInstances[cacheKey] = {\n directory,\n forest,\n };\n\n const wnfsStore = store(options.blockstore);\n\n // Load image contents into memory blob\n const { result } = await directory.read(path, true, forest, wnfsStore);\n const blob = new Blob([result]);\n const blobUrl = URL.createObjectURL(blob);\n\n // Create decoration\n return [\n ...array,\n Decoration.replace({\n block: true, // Prevent cursor from entering.\n widget: new WnfsImageWidget(blobUrl),\n }).range(node.hide ? node.from : node.to, node.to),\n ];\n },\n Promise.resolve([] as Range<Decoration>[]),\n );\n\n return decorations;\n};\n\nclass WnfsImageWidget extends WidgetType {\n constructor(readonly _url: string) {\n super();\n }\n\n override eq(other: this) {\n return this._url === (other as any as WnfsImageWidget)._url;\n }\n\n override toDOM(view: EditorView) {\n const img = document.createElement('img');\n img.setAttribute('loading', 'lazy');\n img.setAttribute('src', this._url);\n img.setAttribute('class', 'cm-image');\n // Images are hidden until successfully loaded to avoid flickering effects.\n img.onload = () => img.classList.add('cm-loaded-image');\n return img;\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Blockstore } from 'interface-blockstore';\nimport { CID } from 'multiformats';\nimport * as Uint8Arrays from 'uint8arrays';\nimport { AccessKey, PrivateForest, PrivateDirectory, PrivateNode } from 'wnfs';\n\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { Rng, store } from './common';\n\n//\n// LOAD\n//\n\nexport const loadWnfs = async (space: Space, blockstore: Blockstore) => {\n const exists =\n space.properties.wnfs_access_key !== undefined && space.properties.wnfs_private_forest_cid !== undefined;\n\n return exists ? await loadWnfsDir(blockstore, space) : await createWnfsDir(blockstore, space);\n};\n\n//\n// PRIVATE\n//\n\nconst createWnfsDir = async (blockstore: Blockstore, space: Space) => {\n const wnfsStore = store(blockstore);\n const rng = new Rng();\n const forest = new PrivateForest(rng);\n\n const dirResult = await PrivateDirectory.newAndStore(forest.emptyName(), new Date(), forest, wnfsStore, rng);\n const dir = dirResult.rootDir as PrivateDirectory;\n\n const [accessKeyRaw, newForest]: [AccessKey, PrivateForest] = await dir\n .asNode()\n .store(dirResult.forest as PrivateForest, wnfsStore, rng);\n\n const cidBytes = await newForest.store(wnfsStore);\n\n space.properties.wnfs_access_key = Uint8Arrays.toString(accessKeyRaw.toBytes(), 'base64');\n space.properties.wnfs_private_forest_cid = CID.decode(cidBytes).toString();\n\n return {\n directory: dir,\n forest: newForest,\n };\n};\n\nconst loadWnfsDir = async (blockstore: Blockstore, space: Space) => {\n const wnfsStore = store(blockstore);\n\n const accessKey = AccessKey.fromBytes(Uint8Arrays.fromString(space.properties.wnfs_access_key, 'base64'));\n const forest = await PrivateForest.load(CID.parse(space.properties.wnfs_private_forest_cid).bytes, wnfsStore);\n const node: PrivateNode = await PrivateNode.load(accessKey, forest, wnfsStore);\n\n return {\n directory: node.asDir(),\n forest,\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { WNFS_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [WNFS_PLUGIN]: {\n 'plugin name': 'Files',\n 'file title placeholder': 'New file',\n 'delete object label': 'Delete',\n },\n },\n },\n];\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Blockstore } from 'interface-blockstore';\nimport { CID } from 'multiformats';\nimport * as Raw from 'multiformats/codecs/raw';\nimport { sha256 } from 'multiformats/hashes/sha2';\n\nimport type { Space } from '@dxos/client/echo';\nimport { log } from '@dxos/log';\n\nimport { Rng, filePath, store } from './common';\nimport { loadWnfs } from './load';\nimport { wnfsUrl } from './wnfs-url';\n\nexport const upload = async ({ blockstore, file, space }: { blockstore: Blockstore; file: File; space: Space }) => {\n const { directory, forest } = await loadWnfs(space, blockstore);\n const wnfsStore = store(blockstore);\n\n const bytes = new Uint8Array(await file.arrayBuffer());\n const hash = await sha256.digest(bytes);\n const cid = CID.create(1, Raw.code, hash);\n\n const path = filePath(cid.toString(), space);\n\n // Given the root directory of the private file system,\n // write the file contents to `path` in said directory.\n const result = await directory.write(path, true, bytes, new Date(), forest, wnfsStore, new Rng());\n\n // Given the new immutable instance of the root directory after writing to it,\n // **store** the changes in the \"dark forest\" and the associated (block) store.\n const [_, updatedForest] = await result.rootDir.store(result.forest, wnfsStore, new Rng());\n const cidBytes = await updatedForest.store(wnfsStore);\n\n // Update the forest pointer on the associated space.\n space.properties.wnfs_private_forest_cid = CID.decode(cidBytes).toString();\n\n // Generate `wnfs://` URL & return the info.\n const info = {\n url: wnfsUrl(path),\n };\n\n log('upload', { file, info });\n return info;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport const wnfsUrl = (filePath: string[]) => {\n return 'wnfs://' + filePath.map((f) => encodeURIComponent(f)).join('/');\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { WnfsPlugin } from './WnfsPlugin';\n\nexport default WnfsPlugin;\n\nexport * from './WnfsPlugin';\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["FileCloud", "React", "createSurface", "resolvePlugin", "invariant", "parseClientPlugin", "getSpace", "BaseBlockstore", "IDBBlockstore", "CID", "sha256", "crypto", "filePath", "fileName", "space", "properties", "id", "Rng", "randomBytes", "count", "Uint8Array", "store", "blockstore", "getBlock", "cid", "decodedCid", "CID", "decode", "get", "hasBlock", "has", "putBlockKeyed", "bytes", "put", "putBlock", "codec", "hash", "sha256", "digest", "create", "storeName", "create", "apiHost", "MixedBlockstore", "BaseBlockstore", "constructor", "IDBBlockstore", "storeName", "open", "url", "cid", "path", "toString", "delete", "key", "fetch", "method", "get", "has", "then", "r", "arrayBuffer", "Uint8Array", "ok", "put", "val", "body", "destroy", "React", "FileCard", "React", "lazy", "FileMain", "FileSection", "FileSlide", "syntaxTree", "StateField", "StateEffect", "Decoration", "EditorView", "WidgetType", "ViewPlugin", "log", "CID", "Uint8Arrays", "AccessKey", "PrivateForest", "PrivateDirectory", "PrivateNode", "loadWnfs", "space", "blockstore", "exists", "properties", "wnfs_access_key", "undefined", "wnfs_private_forest_cid", "loadWnfsDir", "createWnfsDir", "wnfsStore", "store", "rng", "Rng", "forest", "PrivateForest", "dirResult", "PrivateDirectory", "newAndStore", "emptyName", "Date", "dir", "rootDir", "accessKeyRaw", "newForest", "asNode", "cidBytes", "toString", "toBytes", "CID", "decode", "directory", "accessKey", "AccessKey", "fromBytes", "fromString", "load", "parse", "bytes", "node", "PrivateNode", "asDir", "image", "options", "stateField", "viewPlugin", "loadedWnfsInstances", "stateEffect", "StateEffect", "define", "StateField", "create", "Decoration", "none", "update", "value", "tr", "effect", "effects", "is", "map", "changes", "filterFrom", "from", "filterTo", "to", "filter", "add", "decorations", "provide", "f", "EditorView", "ViewPlugin", "view", "buildDecorations", "state", "doc", "length", "then", "dispatch", "of", "catch", "err", "Error", "docChanged", "changedRange", "log", "cursor", "selection", "main", "head", "oldCursor", "mapPos", "startState", "Math", "min", "max", "iterChangedRanges", "fromA", "toA", "fromB", "toB", "lineAt", "nodes", "syntaxTree", "iterate", "enter", "node", "name", "urlNode", "getChild", "hide", "readOnly", "url", "sliceDoc", "startsWith", "push", "sort", "a", "b", "reduce", "acc", "array", "path", "replace", "split", "p", "decodeURIComponent", "spaceIdFromUrl", "space", "properties", "id", "cacheKey", "wnfs_private_forest_cid", "directory", "forest", "loadWnfs", "blockstore", "wnfsStore", "store", "result", "read", "blob", "Blob", "blobUrl", "URL", "createObjectURL", "block", "widget", "WnfsImageWidget", "range", "Promise", "resolve", "WidgetType", "constructor", "_url", "eq", "other", "toDOM", "img", "document", "createElement", "setAttribute", "onload", "classList", "WNFS_PLUGIN", "CID", "Raw", "sha256", "log", "wnfsUrl", "filePath", "map", "f", "encodeURIComponent", "join", "upload", "blockstore", "file", "space", "directory", "forest", "loadWnfs", "wnfsStore", "store", "bytes", "Uint8Array", "arrayBuffer", "hash", "sha256", "digest", "cid", "CID", "create", "code", "path", "filePath", "toString", "result", "write", "Date", "Rng", "_", "updatedForest", "rootDir", "cidBytes", "properties", "wnfs_private_forest_cid", "decode", "info", "url", "wnfsUrl", "log", "WnfsPlugin", "blockstore", "meta", "ready", "plugins", "client", "resolvePlugin", "parseClientPlugin", "provides", "invariant", "apiHost", "config", "values", "runtime", "services", "edge", "url", "create", "open", "translations", "metadata", "records", "FileType", "typename", "placeholder", "ns", "WNFS_PLUGIN", "icon", "props", "React", "FileCloud", "echo", "system", "file", "upload", "space", "Error", "markdown", "extensions", "document", "getSpace", "imageExtension", "surface", "definitions", "createSurface", "id", "role", "filter", "data", "subject", "component", "FileMain", "FileSection", "FileSlide", "cover", "WnfsPlugin"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/experimental/plugin-wnfs/src/common.ts":{"bytes":7811,"imports":[{"path":"multiformats/cid","kind":"import-statement","external":true},{"path":"multiformats/hashes/sha2","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/blockstore.ts":{"bytes":8224,"imports":[{"path":"blockstore-core","kind":"import-statement","external":true},{"path":"blockstore-idb","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/FileCard.tsx":{"bytes":5241,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/FilePreview.tsx":{"bytes":2928,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/FileMain.tsx":{"bytes":2672,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FilePreview.tsx","kind":"import-statement","original":"./FilePreview"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/FileSection.tsx":{"bytes":2081,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FilePreview.tsx","kind":"import-statement","original":"./FilePreview"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/FileSlide.tsx":{"bytes":1990,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FilePreview.tsx","kind":"import-statement","original":"./FilePreview"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/index.ts":{"bytes":1687,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FileCard.tsx","kind":"dynamic-import","original":"./FileCard"},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FileMain.tsx","kind":"dynamic-import","original":"./FileMain"},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FileSection.tsx","kind":"dynamic-import","original":"./FileSection"},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FileSlide.tsx","kind":"dynamic-import","original":"./FileSlide"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/load.ts":{"bytes":7140,"imports":[{"path":"multiformats","kind":"import-statement","external":true},{"path":"uint8arrays","kind":"import-statement","external":true},{"path":"wnfs","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/extensions/image.ts":{"bytes":22790,"imports":[{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/common.ts","kind":"import-statement","original":"../common"},{"path":"packages/plugins/experimental/plugin-wnfs/src/load.ts","kind":"import-statement","original":"../load"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/extensions/index.ts":{"bytes":517,"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/src/extensions/image.ts","kind":"import-statement","original":"./image"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/meta.ts":{"bytes":1559,"imports":[],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/translations.ts":{"bytes":1280,"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/types/file.ts":{"bytes":1678,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/types/types.ts":{"bytes":1750,"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/types/index.ts":{"bytes":592,"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/src/types/file.ts","kind":"import-statement","original":"./file"},{"path":"packages/plugins/experimental/plugin-wnfs/src/types/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/wnfs-url.ts":{"bytes":943,"imports":[],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/upload.ts":{"bytes":6174,"imports":[{"path":"multiformats","kind":"import-statement","external":true},{"path":"multiformats/codecs/raw","kind":"import-statement","external":true},{"path":"multiformats/hashes/sha2","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/common.ts","kind":"import-statement","original":"./common"},{"path":"packages/plugins/experimental/plugin-wnfs/src/load.ts","kind":"import-statement","original":"./load"},{"path":"packages/plugins/experimental/plugin-wnfs/src/wnfs-url.ts","kind":"import-statement","original":"./wnfs-url"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/WnfsPlugin.tsx":{"bytes":14058,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/blockstore.ts","kind":"import-statement","original":"./blockstore"},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/experimental/plugin-wnfs/src/extensions/index.ts","kind":"import-statement","original":"./extensions"},{"path":"packages/plugins/experimental/plugin-wnfs/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/experimental/plugin-wnfs/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/experimental/plugin-wnfs/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/experimental/plugin-wnfs/src/upload.ts","kind":"import-statement","original":"./upload"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/index.ts":{"bytes":765,"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/src/WnfsPlugin.tsx","kind":"import-statement","original":"./WnfsPlugin"},{"path":"packages/plugins/experimental/plugin-wnfs/src/WnfsPlugin.tsx","kind":"import-statement","original":"./WnfsPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33984},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-JDSKIDDR.mjs","kind":"import-statement"},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"blockstore-core","kind":"import-statement","external":true},{"path":"blockstore-idb","kind":"import-statement","external":true},{"path":"multiformats/cid","kind":"import-statement","external":true},{"path":"multiformats/hashes/sha2","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileCard-HJIZDWJF.mjs","kind":"dynamic-import"},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileMain-WEWTX7QB.mjs","kind":"dynamic-import"},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSection-BEUGJ7EI.mjs","kind":"dynamic-import"},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSlide-NYBGZEZS.mjs","kind":"dynamic-import"},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"multiformats","kind":"import-statement","external":true},{"path":"uint8arrays","kind":"import-statement","external":true},{"path":"wnfs","kind":"import-statement","external":true},{"path":"multiformats","kind":"import-statement","external":true},{"path":"multiformats/codecs/raw","kind":"import-statement","external":true},{"path":"multiformats/hashes/sha2","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["WnfsPlugin","default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/index.ts","inputs":{"packages/plugins/experimental/plugin-wnfs/src/WnfsPlugin.tsx":{"bytesInOutput":3617},"packages/plugins/experimental/plugin-wnfs/src/blockstore.ts":{"bytesInOutput":1609},"packages/plugins/experimental/plugin-wnfs/src/common.ts":{"bytesInOutput":1088},"packages/plugins/experimental/plugin-wnfs/src/components/index.ts":{"bytesInOutput":307},"packages/plugins/experimental/plugin-wnfs/src/extensions/image.ts":{"bytesInOutput":4729},"packages/plugins/experimental/plugin-wnfs/src/load.ts":{"bytesInOutput":1569},"packages/plugins/experimental/plugin-wnfs/src/extensions/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-wnfs/src/translations.ts":{"bytesInOutput":210},"packages/plugins/experimental/plugin-wnfs/src/upload.ts":{"bytesInOutput":1192},"packages/plugins/experimental/plugin-wnfs/src/wnfs-url.ts":{"bytesInOutput":110},"packages/plugins/experimental/plugin-wnfs/src/index.ts":{"bytesInOutput":30}},"bytes":15561},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs","kind":"import-statement"}],"exports":["WNFS_PLUGIN","default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/meta.ts","inputs":{},"bytes":157},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/types/index.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-JDSKIDDR.mjs","kind":"import-statement"},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs","kind":"import-statement"}],"exports":["FileType","WnfsAction"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/types/index.ts","inputs":{},"bytes":170},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-JDSKIDDR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1723},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-JDSKIDDR.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["FileType","WnfsAction"],"inputs":{"packages/plugins/experimental/plugin-wnfs/src/types/file.ts":{"bytesInOutput":294},"packages/plugins/experimental/plugin-wnfs/src/types/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-wnfs/src/types/types.ts":{"bytesInOutput":196}},"bytes":755},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":734},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs":{"imports":[],"exports":["WNFS_PLUGIN","meta_default"],"inputs":{"packages/plugins/experimental/plugin-wnfs/src/meta.ts":{"bytesInOutput":312}},"bytes":456},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileCard-HJIZDWJF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2773},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileCard-HJIZDWJF.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/components/FileCard.tsx","inputs":{"packages/plugins/experimental/plugin-wnfs/src/components/FileCard.tsx":{"bytesInOutput":1299}},"bytes":1461},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileMain-WEWTX7QB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1372},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileMain-WEWTX7QB.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-2I63TM7M.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/components/FileMain.tsx","inputs":{"packages/plugins/experimental/plugin-wnfs/src/components/FileMain.tsx":{"bytesInOutput":566}},"bytes":783},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSection-BEUGJ7EI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1000},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSection-BEUGJ7EI.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-2I63TM7M.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/components/FileSection.tsx","inputs":{"packages/plugins/experimental/plugin-wnfs/src/components/FileSection.tsx":{"bytesInOutput":413}},"bytes":639},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSlide-NYBGZEZS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":964},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSlide-NYBGZEZS.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-2I63TM7M.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/components/FileSlide.tsx","inputs":{"packages/plugins/experimental/plugin-wnfs/src/components/FileSlide.tsx":{"bytesInOutput":388}},"bytes":608},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-2I63TM7M.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1430},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-2I63TM7M.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["FilePreview"],"inputs":{"packages/plugins/experimental/plugin-wnfs/src/components/FilePreview.tsx":{"bytesInOutput":674}},"bytes":821}}}
|
|
1
|
+
{"inputs":{"packages/plugins/experimental/plugin-wnfs/src/common.ts":{"bytes":7811,"imports":[{"path":"multiformats/cid","kind":"import-statement","external":true},{"path":"multiformats/hashes/sha2","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/blockstore.ts":{"bytes":8224,"imports":[{"path":"blockstore-core","kind":"import-statement","external":true},{"path":"blockstore-idb","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/FileCard.tsx":{"bytes":5241,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/FilePreview.tsx":{"bytes":2928,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/FileMain.tsx":{"bytes":2672,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FilePreview.tsx","kind":"import-statement","original":"./FilePreview"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/FileSection.tsx":{"bytes":2081,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FilePreview.tsx","kind":"import-statement","original":"./FilePreview"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/FileSlide.tsx":{"bytes":1990,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FilePreview.tsx","kind":"import-statement","original":"./FilePreview"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/components/index.ts":{"bytes":1687,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FileCard.tsx","kind":"dynamic-import","original":"./FileCard"},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FileMain.tsx","kind":"dynamic-import","original":"./FileMain"},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FileSection.tsx","kind":"dynamic-import","original":"./FileSection"},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/FileSlide.tsx","kind":"dynamic-import","original":"./FileSlide"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/load.ts":{"bytes":7140,"imports":[{"path":"multiformats","kind":"import-statement","external":true},{"path":"uint8arrays","kind":"import-statement","external":true},{"path":"wnfs","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/extensions/image.ts":{"bytes":22790,"imports":[{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/common.ts","kind":"import-statement","original":"../common"},{"path":"packages/plugins/experimental/plugin-wnfs/src/load.ts","kind":"import-statement","original":"../load"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/extensions/index.ts":{"bytes":517,"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/src/extensions/image.ts","kind":"import-statement","original":"./image"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/meta.ts":{"bytes":1559,"imports":[],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/translations.ts":{"bytes":1280,"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/types/file.ts":{"bytes":1678,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/types/types.ts":{"bytes":1750,"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/types/index.ts":{"bytes":592,"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/src/types/file.ts","kind":"import-statement","original":"./file"},{"path":"packages/plugins/experimental/plugin-wnfs/src/types/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/wnfs-url.ts":{"bytes":943,"imports":[],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/upload.ts":{"bytes":6174,"imports":[{"path":"multiformats","kind":"import-statement","external":true},{"path":"multiformats/codecs/raw","kind":"import-statement","external":true},{"path":"multiformats/hashes/sha2","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/common.ts","kind":"import-statement","original":"./common"},{"path":"packages/plugins/experimental/plugin-wnfs/src/load.ts","kind":"import-statement","original":"./load"},{"path":"packages/plugins/experimental/plugin-wnfs/src/wnfs-url.ts","kind":"import-statement","original":"./wnfs-url"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/WnfsPlugin.tsx":{"bytes":12858,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/src/blockstore.ts","kind":"import-statement","original":"./blockstore"},{"path":"packages/plugins/experimental/plugin-wnfs/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/experimental/plugin-wnfs/src/extensions/index.ts","kind":"import-statement","original":"./extensions"},{"path":"packages/plugins/experimental/plugin-wnfs/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/experimental/plugin-wnfs/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/experimental/plugin-wnfs/src/types/index.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/experimental/plugin-wnfs/src/upload.ts","kind":"import-statement","original":"./upload"}],"format":"esm"},"packages/plugins/experimental/plugin-wnfs/src/index.ts":{"bytes":765,"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/src/WnfsPlugin.tsx","kind":"import-statement","original":"./WnfsPlugin"},{"path":"packages/plugins/experimental/plugin-wnfs/src/WnfsPlugin.tsx","kind":"import-statement","original":"./WnfsPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33464},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-JDSKIDDR.mjs","kind":"import-statement"},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/plugin-client/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"blockstore-core","kind":"import-statement","external":true},{"path":"blockstore-idb","kind":"import-statement","external":true},{"path":"multiformats/cid","kind":"import-statement","external":true},{"path":"multiformats/hashes/sha2","kind":"import-statement","external":true},{"path":"@dxos/crypto","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileCard-HJIZDWJF.mjs","kind":"dynamic-import"},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileMain-WEWTX7QB.mjs","kind":"dynamic-import"},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSection-BEUGJ7EI.mjs","kind":"dynamic-import"},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSlide-NYBGZEZS.mjs","kind":"dynamic-import"},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@codemirror/state","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"multiformats","kind":"import-statement","external":true},{"path":"uint8arrays","kind":"import-statement","external":true},{"path":"wnfs","kind":"import-statement","external":true},{"path":"multiformats","kind":"import-statement","external":true},{"path":"multiformats/codecs/raw","kind":"import-statement","external":true},{"path":"multiformats/hashes/sha2","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["WnfsPlugin","default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/index.ts","inputs":{"packages/plugins/experimental/plugin-wnfs/src/WnfsPlugin.tsx":{"bytesInOutput":3204},"packages/plugins/experimental/plugin-wnfs/src/blockstore.ts":{"bytesInOutput":1609},"packages/plugins/experimental/plugin-wnfs/src/common.ts":{"bytesInOutput":1088},"packages/plugins/experimental/plugin-wnfs/src/components/index.ts":{"bytesInOutput":307},"packages/plugins/experimental/plugin-wnfs/src/extensions/image.ts":{"bytesInOutput":4729},"packages/plugins/experimental/plugin-wnfs/src/load.ts":{"bytesInOutput":1569},"packages/plugins/experimental/plugin-wnfs/src/extensions/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-wnfs/src/translations.ts":{"bytesInOutput":210},"packages/plugins/experimental/plugin-wnfs/src/upload.ts":{"bytesInOutput":1192},"packages/plugins/experimental/plugin-wnfs/src/wnfs-url.ts":{"bytesInOutput":110},"packages/plugins/experimental/plugin-wnfs/src/index.ts":{"bytesInOutput":30}},"bytes":15148},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs","kind":"import-statement"}],"exports":["WNFS_PLUGIN","default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/meta.ts","inputs":{},"bytes":157},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/types/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/types/index.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-JDSKIDDR.mjs","kind":"import-statement"},{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs","kind":"import-statement"}],"exports":["FileType","WnfsAction"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/types/index.ts","inputs":{},"bytes":170},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-JDSKIDDR.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1723},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-JDSKIDDR.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs","kind":"import-statement"},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["FileType","WnfsAction"],"inputs":{"packages/plugins/experimental/plugin-wnfs/src/types/file.ts":{"bytesInOutput":294},"packages/plugins/experimental/plugin-wnfs/src/types/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-wnfs/src/types/types.ts":{"bytesInOutput":196}},"bytes":755},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":734},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-VL3H7P4F.mjs":{"imports":[],"exports":["WNFS_PLUGIN","meta_default"],"inputs":{"packages/plugins/experimental/plugin-wnfs/src/meta.ts":{"bytesInOutput":312}},"bytes":456},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileCard-HJIZDWJF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2773},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileCard-HJIZDWJF.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/components/FileCard.tsx","inputs":{"packages/plugins/experimental/plugin-wnfs/src/components/FileCard.tsx":{"bytesInOutput":1299}},"bytes":1461},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileMain-WEWTX7QB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1372},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileMain-WEWTX7QB.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-2I63TM7M.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/components/FileMain.tsx","inputs":{"packages/plugins/experimental/plugin-wnfs/src/components/FileMain.tsx":{"bytesInOutput":566}},"bytes":783},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSection-BEUGJ7EI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1000},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSection-BEUGJ7EI.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-2I63TM7M.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/components/FileSection.tsx","inputs":{"packages/plugins/experimental/plugin-wnfs/src/components/FileSection.tsx":{"bytesInOutput":413}},"bytes":639},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSlide-NYBGZEZS.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":964},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/FileSlide-NYBGZEZS.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-2I63TM7M.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/experimental/plugin-wnfs/src/components/FileSlide.tsx","inputs":{"packages/plugins/experimental/plugin-wnfs/src/components/FileSlide.tsx":{"bytesInOutput":388}},"bytes":608},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-2I63TM7M.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1430},"packages/plugins/experimental/plugin-wnfs/dist/lib/browser/chunk-2I63TM7M.mjs":{"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["FilePreview"],"inputs":{"packages/plugins/experimental/plugin-wnfs/src/components/FilePreview.tsx":{"bytesInOutput":674}},"bytes":821}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WnfsPlugin.d.ts","sourceRoot":"","sources":["../../../src/WnfsPlugin.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"WnfsPlugin.d.ts","sourceRoot":"","sources":["../../../src/WnfsPlugin.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,gBAAgB,EAAgC,MAAM,qBAAqB,CAAC;AAY1F,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,eAAO,MAAM,UAAU,QAAO,gBAAgB,CAAC,kBAAkB,CAyEhE,CAAC"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { S } from '@dxos/echo-schema';
|
|
2
|
-
declare const FileType_base: import("@dxos/echo-schema").
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
cid
|
|
8
|
-
}
|
|
9
|
-
id: string;
|
|
10
|
-
}, S.Struct.Encoded<{
|
|
2
|
+
declare const FileType_base: import("@dxos/echo-schema").TypedObjectPrototype<import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectFields<{
|
|
3
|
+
filename: typeof S.String;
|
|
4
|
+
type: typeof S.String;
|
|
5
|
+
timestamp: S.optional<typeof S.String>;
|
|
6
|
+
name: S.optional<typeof S.String>;
|
|
7
|
+
cid: S.optional<typeof S.String>;
|
|
8
|
+
}, import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectOptions>, S.Struct.Encoded<{
|
|
11
9
|
filename: typeof S.String;
|
|
12
10
|
type: typeof S.String;
|
|
13
11
|
timestamp: S.optional<typeof S.String>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/types/file.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAe,MAAM,mBAAmB,CAAC
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/types/file.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAe,MAAM,mBAAmB,CAAC;;;;;;;;;;;;;;AAEnD,qBAAa,QAAS,SAAQ,aAM5B;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"5.7.2"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-wnfs",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.5-main.499c70c",
|
|
4
4
|
"description": "WNFS file management plugin",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -45,18 +45,18 @@
|
|
|
45
45
|
"multiformats": "^13.2.2",
|
|
46
46
|
"uint8arrays": "^5.1.0",
|
|
47
47
|
"wnfs": "0.2.2",
|
|
48
|
-
"@dxos/app-framework": "0.7.
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/log": "0.7.
|
|
54
|
-
"@dxos/plugin-
|
|
55
|
-
"@dxos/plugin-
|
|
56
|
-
"@dxos/
|
|
57
|
-
"@dxos/react-
|
|
58
|
-
"@dxos/
|
|
59
|
-
"@dxos/react-ui-card": "0.7.
|
|
48
|
+
"@dxos/app-framework": "0.7.5-main.499c70c",
|
|
49
|
+
"@dxos/invariant": "0.7.5-main.499c70c",
|
|
50
|
+
"@dxos/crypto": "0.7.5-main.499c70c",
|
|
51
|
+
"@dxos/echo-schema": "0.7.5-main.499c70c",
|
|
52
|
+
"@dxos/plugin-client": "0.7.5-main.499c70c",
|
|
53
|
+
"@dxos/log": "0.7.5-main.499c70c",
|
|
54
|
+
"@dxos/plugin-markdown": "0.7.5-main.499c70c",
|
|
55
|
+
"@dxos/plugin-space": "0.7.5-main.499c70c",
|
|
56
|
+
"@dxos/react-client": "0.7.5-main.499c70c",
|
|
57
|
+
"@dxos/react-ui-mosaic": "0.7.5-main.499c70c",
|
|
58
|
+
"@dxos/local-storage": "0.7.5-main.499c70c",
|
|
59
|
+
"@dxos/react-ui-card": "0.7.5-main.499c70c"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@phosphor-icons/react": "^2.1.5",
|
|
@@ -65,17 +65,17 @@
|
|
|
65
65
|
"react": "~18.2.0",
|
|
66
66
|
"react-dom": "~18.2.0",
|
|
67
67
|
"vite": "5.4.7",
|
|
68
|
-
"@dxos/react-ui": "0.7.
|
|
69
|
-
"@dxos/react-ui-editor": "0.7.
|
|
70
|
-
"@dxos/storybook-utils": "0.7.
|
|
71
|
-
"@dxos/react-ui-theme": "0.7.
|
|
68
|
+
"@dxos/react-ui": "0.7.5-main.499c70c",
|
|
69
|
+
"@dxos/react-ui-editor": "0.7.5-main.499c70c",
|
|
70
|
+
"@dxos/storybook-utils": "0.7.5-main.499c70c",
|
|
71
|
+
"@dxos/react-ui-theme": "0.7.5-main.499c70c"
|
|
72
72
|
},
|
|
73
73
|
"peerDependencies": {
|
|
74
74
|
"@phosphor-icons/react": "^2.0.5",
|
|
75
75
|
"react": "~18.2.0",
|
|
76
76
|
"react-dom": "~18.2.0",
|
|
77
|
-
"@dxos/react-ui": "0.7.
|
|
78
|
-
"@dxos/react-ui-theme": "0.7.
|
|
77
|
+
"@dxos/react-ui": "0.7.5-main.499c70c",
|
|
78
|
+
"@dxos/react-ui-theme": "0.7.5-main.499c70c"
|
|
79
79
|
},
|
|
80
80
|
"publishConfig": {
|
|
81
81
|
"access": "public"
|
package/src/WnfsPlugin.tsx
CHANGED
|
@@ -3,17 +3,16 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import { FileCloud, type IconProps } from '@phosphor-icons/react';
|
|
6
|
-
import React
|
|
6
|
+
import React from 'react';
|
|
7
7
|
|
|
8
|
-
import { type PluginDefinition,
|
|
8
|
+
import { type PluginDefinition, createSurface, resolvePlugin } from '@dxos/app-framework';
|
|
9
9
|
import { invariant } from '@dxos/invariant';
|
|
10
|
-
import { parseClientPlugin } from '@dxos/plugin-client';
|
|
10
|
+
import { parseClientPlugin } from '@dxos/plugin-client/types';
|
|
11
11
|
import { type DocumentType } from '@dxos/plugin-markdown/types';
|
|
12
12
|
import { type Space, getSpace } from '@dxos/react-client/echo';
|
|
13
|
-
import { isTileComponentProps } from '@dxos/react-ui-mosaic';
|
|
14
13
|
|
|
15
14
|
import * as Blockstore from './blockstore';
|
|
16
|
-
import {
|
|
15
|
+
import { FileMain, FileSection, FileSlide } from './components';
|
|
17
16
|
import { image as imageExtension } from './extensions';
|
|
18
17
|
import meta, { WNFS_PLUGIN } from './meta';
|
|
19
18
|
import translations from './translations';
|
|
@@ -26,7 +25,7 @@ export const WnfsPlugin = (): PluginDefinition<WnfsPluginProvides> => {
|
|
|
26
25
|
|
|
27
26
|
return {
|
|
28
27
|
meta,
|
|
29
|
-
ready: async (plugins) => {
|
|
28
|
+
ready: async ({ plugins }) => {
|
|
30
29
|
const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;
|
|
31
30
|
invariant(client);
|
|
32
31
|
const apiHost = client.config.values.runtime?.services?.edge?.url || 'http://localhost:8787';
|
|
@@ -71,31 +70,26 @@ export const WnfsPlugin = (): PluginDefinition<WnfsPluginProvides> => {
|
|
|
71
70
|
},
|
|
72
71
|
},
|
|
73
72
|
surface: {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return null;
|
|
98
|
-
},
|
|
73
|
+
definitions: () => [
|
|
74
|
+
createSurface({
|
|
75
|
+
id: `${WNFS_PLUGIN}/article`,
|
|
76
|
+
role: 'article',
|
|
77
|
+
filter: (data): data is { subject: FileType } => data.subject instanceof FileType,
|
|
78
|
+
component: ({ data }) => <FileMain file={data.subject} />,
|
|
79
|
+
}),
|
|
80
|
+
createSurface({
|
|
81
|
+
id: `${WNFS_PLUGIN}/section`,
|
|
82
|
+
role: 'section',
|
|
83
|
+
filter: (data): data is { subject: FileType } => data.subject instanceof FileType,
|
|
84
|
+
component: ({ data }) => <FileSection file={data.subject} />,
|
|
85
|
+
}),
|
|
86
|
+
createSurface({
|
|
87
|
+
id: `${WNFS_PLUGIN}/slide`,
|
|
88
|
+
role: 'slide',
|
|
89
|
+
filter: (data): data is { subject: FileType } => data.subject instanceof FileType,
|
|
90
|
+
component: ({ data }) => <FileSlide file={data.subject} cover={false} />,
|
|
91
|
+
}),
|
|
92
|
+
],
|
|
99
93
|
},
|
|
100
94
|
},
|
|
101
95
|
};
|