@dxos/plugin-wnfs 0.8.2-main.12df754 → 0.8.2-main.30e4dbb

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/lib/browser/{FileContainer-5DFGZEJJ.mjs → FileContainer-D4GEWVR6.mjs} +5 -4
  2. package/dist/lib/browser/{FileContainer-5DFGZEJJ.mjs.map → FileContainer-D4GEWVR6.mjs.map} +3 -3
  3. package/dist/lib/browser/{blockstore-G47Q25U6.mjs → blockstore-CTEISOKD.mjs} +2 -2
  4. package/dist/lib/browser/chunk-4K6XXKUI.mjs +16 -0
  5. package/dist/lib/browser/{chunk-FKYLWLNM.mjs → chunk-I4YFQNT3.mjs} +19 -15
  6. package/dist/lib/browser/chunk-I4YFQNT3.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-SCQWJNHD.mjs → chunk-YYAW4U6J.mjs} +5 -3
  8. package/dist/lib/browser/{chunk-SCQWJNHD.mjs.map → chunk-YYAW4U6J.mjs.map} +3 -3
  9. package/dist/lib/browser/{file-uploader-L4TDVJBE.mjs → file-uploader-J7Y2T3ZT.mjs} +2 -2
  10. package/dist/lib/browser/index.mjs +2 -2
  11. package/dist/lib/browser/{intent-resolver-GXGRFY7Q.mjs → intent-resolver-LDV6U4RN.mjs} +3 -3
  12. package/dist/lib/browser/{markdown-MWMZVPEX.mjs → markdown-G6DTBWWO.mjs} +2 -2
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/{react-surface-X5B5EN6J.mjs → react-surface-DP33T53X.mjs} +3 -3
  15. package/dist/lib/browser/react-surface-DP33T53X.mjs.map +7 -0
  16. package/dist/lib/browser/types/index.mjs +1 -1
  17. package/dist/types/src/blockstore.d.ts.map +1 -1
  18. package/dist/types/src/capabilities/blockstore.d.ts.map +1 -1
  19. package/dist/types/src/capabilities/file-uploader.d.ts.map +1 -1
  20. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  21. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  22. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  23. package/dist/types/src/components/FileContainer.d.ts.map +1 -1
  24. package/dist/types/src/components/FileInput.d.ts +2 -2
  25. package/dist/types/src/components/FileInput.d.ts.map +1 -1
  26. package/dist/types/src/components/FilePreview.d.ts.map +1 -1
  27. package/dist/types/src/extensions/image.d.ts.map +1 -1
  28. package/dist/types/src/extensions/image.stories.d.ts.map +1 -1
  29. package/dist/types/src/helpers/common.d.ts.map +1 -1
  30. package/dist/types/src/helpers/load.d.ts.map +1 -1
  31. package/dist/types/src/helpers/upload.d.ts.map +1 -1
  32. package/dist/types/src/helpers/wnfs-url.d.ts +3 -2
  33. package/dist/types/src/helpers/wnfs-url.d.ts.map +1 -1
  34. package/dist/types/src/translations.d.ts +2 -10
  35. package/dist/types/src/translations.d.ts.map +1 -1
  36. package/dist/types/src/types/file.d.ts +10 -10
  37. package/dist/types/src/types/file.d.ts.map +1 -1
  38. package/dist/types/src/types/types.d.ts +15 -15
  39. package/dist/types/src/types/types.d.ts.map +1 -1
  40. package/dist/types/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +24 -23
  42. package/src/capabilities/react-surface.tsx +6 -3
  43. package/src/components/FileContainer.tsx +1 -1
  44. package/src/components/FileInput.tsx +2 -2
  45. package/src/extensions/image.stories.tsx +2 -2
  46. package/src/helpers/wnfs-url.ts +5 -3
  47. package/src/types/file.ts +7 -5
  48. package/src/types/types.ts +12 -10
  49. package/dist/lib/browser/chunk-FKYLWLNM.mjs.map +0 -7
  50. package/dist/lib/browser/chunk-HTHWDWTU.mjs +0 -16
  51. package/dist/lib/browser/react-surface-X5B5EN6J.mjs.map +0 -7
  52. /package/dist/lib/browser/{blockstore-G47Q25U6.mjs.map → blockstore-CTEISOKD.mjs.map} +0 -0
  53. /package/dist/lib/browser/{chunk-HTHWDWTU.mjs.map → chunk-4K6XXKUI.mjs.map} +0 -0
  54. /package/dist/lib/browser/{file-uploader-L4TDVJBE.mjs.map → file-uploader-J7Y2T3ZT.mjs.map} +0 -0
  55. /package/dist/lib/browser/{intent-resolver-GXGRFY7Q.mjs.map → intent-resolver-LDV6U4RN.mjs.map} +0 -0
  56. /package/dist/lib/browser/{markdown-MWMZVPEX.mjs.map → markdown-G6DTBWWO.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/FileInput.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Schema } from 'effect';\nimport React, { useCallback } from 'react';\n\nimport { contributes, Capabilities, createSurface } from '@dxos/app-framework';\nimport { isInstanceOf } from '@dxos/echo-schema';\nimport { findAnnotation } from '@dxos/effect';\nimport { type InputProps } from '@dxos/react-ui-form';\n\nimport { FileContainer, FileInput } from '../components';\nimport { WNFS_PLUGIN } from '../meta';\nimport { FileType, WnfsAction } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${WNFS_PLUGIN}/article`,\n role: ['article', 'section', 'slide'],\n filter: (data): data is { subject: FileType } => isInstanceOf(FileType, data.subject),\n component: ({ data, role }) => <FileContainer role={role} file={data.subject} />,\n }),\n createSurface({\n id: `${WNFS_PLUGIN}/create-form`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: Schema.Schema.Any } => {\n const annotation = findAnnotation<boolean>(\n (data.schema as Schema.Schema.All).ast,\n WnfsAction.UploadAnnotationId,\n );\n return !!annotation;\n },\n component: ({ data: { prop, schema }, ...props }) => {\n const inputProps = props as unknown as InputProps;\n const handleChange = useCallback(\n (file: File) => inputProps.onValueChange?.('object', file),\n [prop, inputProps.onValueChange],\n );\n\n return <FileInput schema={schema} onChange={handleChange} />;\n },\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const FileContainer = lazy(() => import('./FileContainer'));\n\nexport * from './FileInput';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Schema } from 'effect';\nimport React, { useCallback } from 'react';\nimport { useDropzone } from 'react-dropzone';\n\nimport { findAnnotation } from '@dxos/effect';\nimport { useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { WNFS_PLUGIN } from '../meta';\nimport { WnfsAction } from '../types';\n\nexport type FileInputProps = {\n schema: Schema.Schema.Any;\n onChange: (file: File) => void;\n};\n\nexport const FileInput = ({ schema, onChange }: FileInputProps) => {\n const { t } = useTranslation(WNFS_PLUGIN);\n const accept = findAnnotation<Record<string, string[]>>(schema.ast, WnfsAction.UploadAnnotationId);\n\n const onDropAccepted = useCallback((files: File[]) => onChange?.(files[0]), [onChange]);\n\n const { acceptedFiles, getRootProps, getInputProps, isFocused, isDragAccept, isDragReject } = useDropzone({\n multiple: false,\n accept,\n onDropAccepted,\n });\n\n return (\n <div\n {...getRootProps()}\n className={mx(\n 'flex flex-col items-center p-8 border border-separator',\n isFocused && 'focus-ring',\n isDragAccept && 'bg-attention',\n isDragReject && 'border-error',\n )}\n >\n <input {...getInputProps()} />\n {acceptedFiles[0] ? <p>{acceptedFiles[0].name}</p> : <p>{t('file input placeholder')}</p>}\n </div>\n );\n};\n"],
5
+ "mappings": ";;;;;;;;;AAKA,OAAOA,UAASC,eAAAA,oBAAmB;AAEnC,SAASC,aAAaC,cAAcC,qBAAqB;AACzD,SAASC,oBAAoB;AAC7B,SAASC,kBAAAA,uBAAsB;;;ACL/B,SAASC,YAAY;;;ACCrB,OAAOC,SAASC,mBAAmB;AACnC,SAASC,mBAAmB;AAE5B,SAASC,sBAAsB;AAC/B,SAASC,sBAAsB;AAC/B,SAASC,UAAU;AAUZ,IAAMC,YAAY,CAAC,EAAEC,QAAQC,SAAQ,MAAkB;AAC5D,QAAM,EAAEC,EAAC,IAAKC,eAAeC,WAAAA;AAC7B,QAAMC,SAASC,eAAyCN,OAAOO,KAAKC,WAAWC,kBAAkB;AAEjG,QAAMC,iBAAiBC,YAAY,CAACC,UAAkBX,WAAWW,MAAM,CAAA,CAAE,GAAG;IAACX;GAAS;AAEtF,QAAM,EAAEY,eAAeC,cAAcC,eAAeC,WAAWC,cAAcC,aAAY,IAAKC,YAAY;IACxGC,UAAU;IACVf;IACAK;EACF,CAAA;AAEA,SACE,sBAAA,cAACW,OAAAA;IACE,GAAGP,aAAAA;IACJQ,WAAWC,GACT,0DACAP,aAAa,cACbC,gBAAgB,gBAChBC,gBAAgB,cAAA;KAGlB,sBAAA,cAACM,SAAUT,cAAAA,CAAAA,GACVF,cAAc,CAAA,IAAK,sBAAA,cAACY,KAAAA,MAAGZ,cAAc,CAAA,EAAGa,IAAI,IAAQ,sBAAA,cAACD,KAAAA,MAAGvB,EAAE,wBAAA,CAAA,CAAA;AAGjE;;;ADxCO,IAAMyB,gBAAgBC,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ADU/C,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,WAAAA;IACPC,MAAM;MAAC;MAAW;MAAW;;IAC7BC,QAAQ,CAACC,SAAwCC,aAAaC,UAAUF,KAAKG,OAAO;IACpFC,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAO,gBAAAO,OAAA,cAACC,eAAAA;MAAcR;MAAYS,MAAMP,KAAKG;;EACvE,CAAA;EACAR,cAAc;IACZC,IAAI,GAAGC,WAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAAA;AACP,YAAMQ,aAAaC,gBAChBT,KAAKU,OAA6BC,KACnCC,WAAWC,kBAAkB;AAE/B,aAAO,CAAC,CAACL;IACX;IACAJ,WAAW,CAAC,EAAEJ,MAAM,EAAEc,MAAMJ,OAAM,GAAI,GAAGK,MAAAA,MAAO;AAC9C,YAAMC,aAAaD;AACnB,YAAME,eAAeC,aACnB,CAACX,SAAeS,WAAWG,gBAAgB,UAAUZ,IAAAA,GACrD;QAACO;QAAME,WAAWG;OAAc;AAGlC,aAAO,gBAAAd,OAAA,cAACe,WAAAA;QAAUV;QAAgBW,UAAUJ;;IAC9C;EACF,CAAA;CACD;",
6
+ "names": ["React", "useCallback", "contributes", "Capabilities", "createSurface", "isInstanceOf", "findAnnotation", "lazy", "React", "useCallback", "useDropzone", "findAnnotation", "useTranslation", "mx", "FileInput", "schema", "onChange", "t", "useTranslation", "WNFS_PLUGIN", "accept", "findAnnotation", "ast", "WnfsAction", "UploadAnnotationId", "onDropAccepted", "useCallback", "files", "acceptedFiles", "getRootProps", "getInputProps", "isFocused", "isDragAccept", "isDragReject", "useDropzone", "multiple", "div", "className", "mx", "input", "p", "name", "FileContainer", "lazy", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "WNFS_PLUGIN", "role", "filter", "data", "isInstanceOf", "FileType", "subject", "component", "React", "FileContainer", "file", "annotation", "findAnnotation", "schema", "ast", "WnfsAction", "UploadAnnotationId", "prop", "props", "inputProps", "handleChange", "useCallback", "onValueChange", "FileInput", "onChange"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  FileType,
3
3
  WnfsAction
4
- } from "../chunk-FKYLWLNM.mjs";
4
+ } from "../chunk-I4YFQNT3.mjs";
5
5
  import "../chunk-X54OT4V3.mjs";
6
6
  export {
7
7
  FileType,
@@ -1 +1 @@
1
- {"version":3,"file":"blockstore.d.ts","sourceRoot":"","sources":["../../../src/blockstore.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKjD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAKnC,eAAO,MAAM,MAAM,aAAc,MAAM,oBAEtC,CAAC;AAEF;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,cAAc;;gBAQrC,OAAO,CAAC,EAAE,MAAM;IAWtB,IAAI;IAcV,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG;IAOf,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/B,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBlC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAc/B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IASrD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU;IASnC,YAAY,CAAC,GAAG,EAAE,UAAU;IAclC,QAAQ,CAAC,cAAc,SAAgC;CAsExD"}
1
+ {"version":3,"file":"blockstore.d.ts","sourceRoot":"","sources":["../../../src/blockstore.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKjD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAKnC,eAAO,MAAM,MAAM,GAAI,UAAU,MAAM,oBAEtC,CAAC;AAEF;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,cAAc;;gBAQrC,OAAO,CAAC,EAAE,MAAM;IAWtB,IAAI;IAcV,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG;IAOf,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/B,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBlC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAc/B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IASrD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU;IASnC,YAAY,CAAC,GAAG,EAAE,UAAU;IAclC,QAAQ,CAAC,cAAc,SAAgC;CAsExD"}
@@ -1 +1 @@
1
- {"version":3,"file":"blockstore.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/blockstore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;kCAMxC,cAAc;AAA7C,wBAOE"}
1
+ {"version":3,"file":"blockstore.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/blockstore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;yBAMjD,SAAS,cAAc;AAA7C,wBAOE"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/file-uploader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAoC,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;kCAKjF,cAAc;AAAvC,wBAYE"}
1
+ {"version":3,"file":"file-uploader.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/file-uploader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAoC,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;yBAK1F,SAAS,cAAc;AAAvC,wBAYE"}
@@ -1 +1 @@
1
- {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,YAAY,EAAkB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;kCAO5E,cAAc;AAAvC,wBAoBK"}
1
+ {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/intent-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,YAAY,EAAkB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;yBAOrF,SAAS,cAAc;AAAvC,wBAoBK"}
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;kCAO9C,cAAc;AAAvC,wBAaK"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;yBAOvD,SAAS,cAAc;AAAvC,wBAaK"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAe,YAAY,EAAiB,MAAM,qBAAqB,CAAC;;AAU/E,wBAyBK"}
1
+ {"version":3,"file":"react-surface.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/react-surface.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAe,YAAY,EAAiB,MAAM,qBAAqB,CAAC;;AAS/E,wBA4BK"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/FileContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,QAAA,MAAM,aAAa,mBAAoB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,6BA2BtE,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"FileContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/FileContainer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,QAAA,MAAM,aAAa,GAAI,gBAAgB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,6BA2BtE,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,7 +1,7 @@
1
- import { type Schema as S } from 'effect';
1
+ import { type Schema } from 'effect';
2
2
  import React from 'react';
3
3
  export type FileInputProps = {
4
- schema: S.Schema.Any;
4
+ schema: Schema.Schema.Any;
5
5
  onChange: (file: File) => void;
6
6
  };
7
7
  export declare const FileInput: ({ schema, onChange }: FileInputProps) => React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"FileInput.d.ts","sourceRoot":"","sources":["../../../../src/components/FileInput.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAsB,MAAM,OAAO,CAAC;AAU3C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,SAAS,yBAA0B,cAAc,sBA0B7D,CAAC"}
1
+ {"version":3,"file":"FileInput.d.ts","sourceRoot":"","sources":["../../../../src/components/FileInput.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAsB,MAAM,OAAO,CAAC;AAU3C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,sBAAsB,cAAc,sBA0B7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilePreview.d.ts","sourceRoot":"","sources":["../../../../src/components/FilePreview.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,WAAW,8BAA+B,gBAAgB,sBAQtE,CAAC"}
1
+ {"version":3,"file":"FilePreview.d.ts","sourceRoot":"","sources":["../../../../src/components/FilePreview.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,2BAA2B,gBAAgB,sBAQtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../../src/extensions/image.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAoB,KAAK,SAAS,EAA0B,MAAM,mBAAmB,CAAC;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIvD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMrD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKxD,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,YAAa,YAAY,KAAG,SAAS,EAgDtD,CAAC"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../../src/extensions/image.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAoB,KAAK,SAAS,EAA0B,MAAM,mBAAmB,CAAC;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIvD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMrD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKxD,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC;IACtC,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,YAAY,KAAG,SAAS,EAgDtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"image.stories.d.ts","sourceRoot":"","sources":["../../../../src/extensions/image.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAGrB,OAAO,KAA8B,MAAM,OAAO,CAAC;;;;;;AAsFnD,wBAIE;AAEF,eAAO,MAAM,OAAO,IAAK,CAAC"}
1
+ {"version":3,"file":"image.stories.d.ts","sourceRoot":"","sources":["../../../../src/extensions/image.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAGrB,OAAO,KAAgD,MAAM,OAAO,CAAC;;;;;;AAsFrE,wBAIE;AAEF,eAAO,MAAM,OAAO,IAAK,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/helpers/common.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,KAAK,UAAU,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAGzD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMrD,eAAO,MAAM,QAAQ,aAAc,MAAM,SAAS,KAAK,aAEtD,CAAC;AAMF,qBAAa,GAAG;IACd,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;CAGvC;AAMD,eAAO,MAAM,KAAK,eAAgB,UAAU,KAAG,cAyB9C,CAAC;AAEF,eAAO,MAAM,SAAS,cAAoB,CAAC;AAM3C,eAAO,MAAM,QAAQ,SAAU,IAAI,KAAG,OAAO,CAAC,UAAU,CAgBvD,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/helpers/common.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,KAAK,UAAU,IAAI,cAAc,EAAE,MAAM,MAAM,CAAC;AAGzD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMrD,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,EAAE,OAAO,KAAK,aAEtD,CAAC;AAMF,qBAAa,GAAG;IACd,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;CAGvC;AAMD,eAAO,MAAM,KAAK,GAAI,YAAY,UAAU,KAAG,cAyB9C,CAAC;AAEF,eAAO,MAAM,SAAS,cAAoB,CAAC;AAM3C,eAAO,MAAM,QAAQ,GAAI,MAAM,IAAI,KAAG,OAAO,CAAC,UAAU,CAgBvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../src/helpers/load.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAa,aAAa,EAAE,gBAAgB,EAAe,MAAM,MAAM,CAAC;AAE/E,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMxD,eAAO,MAAM,QAAQ,sCAIlB;IACD,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC;CACxC;;;EAoBA,CAAC"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../src/helpers/load.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAa,aAAa,EAAE,gBAAgB,EAAe,MAAM,MAAM,CAAC;AAE/E,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMxD,eAAO,MAAM,QAAQ,GAAU,mCAI5B;IACD,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC;CACxC;;;EAoBA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../src/helpers/upload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAM/C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAO,MAAM,MAAM,4CAKhB;IACD,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC;CACd;;;;;EAgCA,CAAC"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../src/helpers/upload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAM/C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,eAAO,MAAM,MAAM,GAAU,yCAK1B;IACD,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC;CACd;;;;;EAgCA,CAAC"}
@@ -2,10 +2,11 @@ import type { Blockstore } from 'interface-blockstore';
2
2
  import { type PrivateDirectory, type PrivateForest } from 'wnfs';
3
3
  export declare const wnfsUrl: (filePath: string[]) => string;
4
4
  export declare const getPathFromUrl: (wnfsUrl: string) => string[];
5
- export declare const getBlobUrl: ({ wnfsUrl, blockstore, directory, forest, }: {
5
+ export declare const getBlobUrl: ({ wnfsUrl, blockstore, forest, directory, type, }: {
6
6
  wnfsUrl: string;
7
7
  blockstore: Blockstore;
8
- directory: PrivateDirectory;
9
8
  forest: PrivateForest;
9
+ directory: PrivateDirectory;
10
+ type?: string;
10
11
  }) => Promise<string>;
11
12
  //# sourceMappingURL=wnfs-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wnfs-url.d.ts","sourceRoot":"","sources":["../../../../src/helpers/wnfs-url.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAIjE,eAAO,MAAM,OAAO,aAAc,MAAM,EAAE,WAEzC,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,MAAM,aAIR,CAAC;AAEvC,eAAO,MAAM,UAAU,gDAKpB;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;CACvB,oBAMA,CAAC"}
1
+ {"version":3,"file":"wnfs-url.d.ts","sourceRoot":"","sources":["../../../../src/helpers/wnfs-url.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAIjE,eAAO,MAAM,OAAO,GAAI,UAAU,MAAM,EAAE,WAEzC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,aAIR,CAAC;AAEvC,eAAO,MAAM,UAAU,GAAU,mDAM9B;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,oBAMA,CAAC"}
@@ -1,17 +1,9 @@
1
+ import { FileType } from './types';
1
2
  declare const _default: {
2
3
  'en-US': {
3
- [x: string]: {
4
+ [FileType.typename]: {
4
5
  'typename label': string;
5
6
  'object name placeholder': string;
6
- 'plugin name'?: undefined;
7
- 'delete object label'?: undefined;
8
- 'file input placeholder'?: undefined;
9
- } | {
10
- 'plugin name': string;
11
- 'delete object label': string;
12
- 'file input placeholder': string;
13
- 'typename label'?: undefined;
14
- 'object name placeholder'?: undefined;
15
7
  };
16
8
  "dxos.org/plugin/wnfs": {
17
9
  'plugin name': string;
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAOA,wBAcE"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;;;QAK7B,CAAC,QAAQ,CAAC,QAAQ,CAAC;;;UAGlB;;;;;;;;AANP,wBAcE"}
@@ -1,14 +1,14 @@
1
- import { S } from '@dxos/echo-schema';
1
+ import { Schema } from 'effect';
2
2
  declare const FileType_base: import("@dxos/echo-schema").TypedObjectPrototype<import("@dxos/echo-schema").TypedObjectFields<{
3
- name: S.optional<typeof S.String>;
4
- type: typeof S.String;
5
- cid: typeof S.String;
6
- timestamp: S.optional<typeof S.String>;
7
- }, import("@dxos/echo-schema").TypedObjectOptions>, S.Struct.Encoded<{
8
- name: S.optional<typeof S.String>;
9
- type: typeof S.String;
10
- cid: typeof S.String;
11
- timestamp: S.optional<typeof S.String>;
3
+ name: Schema.optional<typeof Schema.String>;
4
+ type: typeof Schema.String;
5
+ cid: typeof Schema.String;
6
+ timestamp: Schema.optional<typeof Schema.String>;
7
+ }, import("@dxos/echo-schema").TypedObjectOptions>, Schema.Struct.Encoded<{
8
+ name: Schema.optional<typeof Schema.String>;
9
+ type: typeof Schema.String;
10
+ cid: typeof Schema.String;
11
+ timestamp: Schema.optional<typeof Schema.String>;
12
12
  }>>;
13
13
  export declare class FileType extends FileType_base {
14
14
  }
@@ -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;;;;;;;;;;;;AAEnD,qBAAa,QAAS,SAAQ,aAK5B;CAAG"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/types/file.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;;;;;;;AAIhC,qBAAa,QAAS,SAAQ,aAK5B;CAAG"}
@@ -1,10 +1,10 @@
1
- import { S } from '@dxos/echo-schema';
1
+ import { Schema } from 'effect';
2
2
  import { FileType } from './file';
3
3
  export declare namespace WnfsAction {
4
- const Create_base: S.TaggedClass<Create, "dxos.org/plugin/wnfs/action/create", {
5
- readonly _tag: S.tag<"dxos.org/plugin/wnfs/action/create">;
4
+ const Create_base: Schema.TaggedClass<Create, "dxos.org/plugin/wnfs/action/create", {
5
+ readonly _tag: Schema.tag<"dxos.org/plugin/wnfs/action/create">;
6
6
  } & {
7
- input: S.SchemaClass<{
7
+ input: Schema.SchemaClass<{
8
8
  readonly name: string;
9
9
  readonly type: string;
10
10
  readonly cid: string;
@@ -13,26 +13,26 @@ export declare namespace WnfsAction {
13
13
  readonly type: string;
14
14
  readonly cid: string;
15
15
  }, never>;
16
- output: S.Struct<{
16
+ output: Schema.Struct<{
17
17
  object: typeof FileType;
18
18
  }>;
19
19
  }>;
20
20
  export class Create extends Create_base {
21
21
  }
22
22
  export const UploadAnnotationId: unique symbol;
23
- export const UploadFileSchema: S.Struct<{
24
- file: S.instanceOf<File>;
23
+ export const UploadFileSchema: Schema.Struct<{
24
+ file: Schema.instanceOf<File>;
25
25
  }>;
26
- export type UploadFileForm = S.Schema.Type<typeof UploadFileSchema>;
27
- const Upload_base: S.TaggedClass<Upload, "dxos.org/plugin/wnfs/action/upload", {
28
- readonly _tag: S.tag<"dxos.org/plugin/wnfs/action/upload">;
26
+ export type UploadFileForm = Schema.Schema.Type<typeof UploadFileSchema>;
27
+ const Upload_base: Schema.TaggedClass<Upload, "dxos.org/plugin/wnfs/action/upload", {
28
+ readonly _tag: Schema.tag<"dxos.org/plugin/wnfs/action/upload">;
29
29
  } & {
30
- input: S.extend<S.Struct<{
31
- file: S.instanceOf<File>;
32
- }>, S.Struct<{
33
- space: S.Schema<import("@dxos/client-protocol").Space, import("@dxos/client-protocol").Space, never>;
30
+ input: Schema.extend<Schema.Struct<{
31
+ file: Schema.instanceOf<File>;
32
+ }>, Schema.Struct<{
33
+ space: Schema.Schema<import("@dxos/client-protocol").Space, import("@dxos/client-protocol").Space, never>;
34
34
  }>>;
35
- output: S.SchemaClass<{
35
+ output: Schema.SchemaClass<{
36
36
  readonly name: string;
37
37
  readonly type: string;
38
38
  readonly cid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,yBAAiB,UAAU,CAAC;;;;;;;;;;;;;;;;;IAC1B,MAAM,OAAO,MAAO,SAAQ,WAK1B;KAAG;IAEL,MAAM,CAAC,MAAM,kBAAkB,eAAiD,CAAC;IAEjF,MAAM,CAAC,MAAM,gBAAgB;;MAQ3B,CAAC;IAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;IAEpE,MAAM,OAAO,MAAO,SAAQ,WAG1B;KAAG;;CACN"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,yBAAiB,UAAU,CAAC;;;;;;;;;;;;;;;;;IAC1B,MAAM,OAAO,MAAO,SAAQ,WAK1B;KAAG;IAEL,MAAM,CAAC,MAAM,kBAAkB,eAAiD,CAAC;IAEjF,MAAM,CAAC,MAAM,gBAAgB;;MAS3B,CAAC;IAEH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;IAEzE,MAAM,OAAO,MAAO,SAAQ,WAG1B;KAAG;;CACN"}
@@ -1 +1 @@
1
- {"version":"5.7.3"}
1
+ {"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-wnfs",
3
- "version": "0.8.2-main.12df754",
3
+ "version": "0.8.2-main.30e4dbb",
4
4
  "description": "WNFS file management plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -37,7 +37,7 @@
37
37
  "blockstore-core": "^5.0.1",
38
38
  "blockstore-idb": "^2.0.0",
39
39
  "debounce": "^2.2.0",
40
- "effect": "3.13.3",
40
+ "effect": "3.14.21",
41
41
  "idb-keyval": "^6.2.1",
42
42
  "interface-blockstore": "^5.2.10",
43
43
  "it-all": "^3.0.6",
@@ -45,22 +45,22 @@
45
45
  "react-dropzone": "^14.2.3",
46
46
  "uint8arrays": "^5.1.0",
47
47
  "wnfs": "0.2.2",
48
- "@dxos/app-framework": "0.8.2-main.12df754",
49
- "@dxos/crypto": "0.8.2-main.12df754",
50
- "@dxos/effect": "0.8.2-main.12df754",
51
- "@dxos/local-storage": "0.8.2-main.12df754",
52
- "@dxos/invariant": "0.8.2-main.12df754",
53
- "@dxos/echo-schema": "0.8.2-main.12df754",
54
- "@dxos/plugin-client": "0.8.2-main.12df754",
55
- "@dxos/log": "0.8.2-main.12df754",
56
- "@dxos/plugin-markdown": "0.8.2-main.12df754",
57
- "@dxos/plugin-space": "0.8.2-main.12df754",
58
- "@dxos/react-ui-editor": "0.8.2-main.12df754",
59
- "@dxos/react-ui-form": "0.8.2-main.12df754",
60
- "@dxos/react-client": "0.8.2-main.12df754",
61
- "@dxos/react-ui": "0.8.2-main.12df754",
62
- "@dxos/react-ui-stack": "0.8.2-main.12df754",
63
- "@dxos/util": "0.8.2-main.12df754"
48
+ "@dxos/crypto": "0.8.2-main.30e4dbb",
49
+ "@dxos/app-framework": "0.8.2-main.30e4dbb",
50
+ "@dxos/echo-schema": "0.8.2-main.30e4dbb",
51
+ "@dxos/local-storage": "0.8.2-main.30e4dbb",
52
+ "@dxos/invariant": "0.8.2-main.30e4dbb",
53
+ "@dxos/effect": "0.8.2-main.30e4dbb",
54
+ "@dxos/log": "0.8.2-main.30e4dbb",
55
+ "@dxos/plugin-client": "0.8.2-main.30e4dbb",
56
+ "@dxos/plugin-markdown": "0.8.2-main.30e4dbb",
57
+ "@dxos/plugin-space": "0.8.2-main.30e4dbb",
58
+ "@dxos/react-client": "0.8.2-main.30e4dbb",
59
+ "@dxos/react-ui": "0.8.2-main.30e4dbb",
60
+ "@dxos/react-ui-editor": "0.8.2-main.30e4dbb",
61
+ "@dxos/util": "0.8.2-main.30e4dbb",
62
+ "@dxos/react-ui-stack": "0.8.2-main.30e4dbb",
63
+ "@dxos/react-ui-form": "0.8.2-main.30e4dbb"
64
64
  },
65
65
  "devDependencies": {
66
66
  "@phosphor-icons/react": "^2.1.5",
@@ -69,16 +69,17 @@
69
69
  "react": "~18.2.0",
70
70
  "react-dom": "~18.2.0",
71
71
  "vite": "5.4.7",
72
- "@dxos/react-ui-theme": "0.8.2-main.12df754",
73
- "@dxos/random": "0.8.2-main.12df754",
74
- "@dxos/storybook-utils": "0.8.2-main.12df754"
72
+ "@dxos/random": "0.8.2-main.30e4dbb",
73
+ "@dxos/react-ui-theme": "0.8.2-main.30e4dbb",
74
+ "@dxos/storybook-utils": "0.8.2-main.30e4dbb"
75
75
  },
76
76
  "peerDependencies": {
77
77
  "@phosphor-icons/react": "^2.0.5",
78
+ "effect": "^3.13.3",
78
79
  "react": "~18.2.0",
79
80
  "react-dom": "~18.2.0",
80
- "@dxos/react-ui": "0.8.2-main.12df754",
81
- "@dxos/react-ui-theme": "0.8.2-main.12df754"
81
+ "@dxos/react-ui": "0.8.2-main.30e4dbb",
82
+ "@dxos/react-ui-theme": "0.8.2-main.30e4dbb"
82
83
  },
83
84
  "publishConfig": {
84
85
  "access": "public"
@@ -2,11 +2,11 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { type Schema } from 'effect';
5
6
  import React, { useCallback } from 'react';
6
7
 
7
8
  import { contributes, Capabilities, createSurface } from '@dxos/app-framework';
8
9
  import { isInstanceOf } from '@dxos/echo-schema';
9
- import { type S } from '@dxos/echo-schema';
10
10
  import { findAnnotation } from '@dxos/effect';
11
11
  import { type InputProps } from '@dxos/react-ui-form';
12
12
 
@@ -25,8 +25,11 @@ export default () =>
25
25
  createSurface({
26
26
  id: `${WNFS_PLUGIN}/create-form`,
27
27
  role: 'form-input',
28
- filter: (data): data is { prop: string; schema: S.Schema.Any } => {
29
- const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, WnfsAction.UploadAnnotationId);
28
+ filter: (data): data is { prop: string; schema: Schema.Schema.Any } => {
29
+ const annotation = findAnnotation<boolean>(
30
+ (data.schema as Schema.Schema.All).ast,
31
+ WnfsAction.UploadAnnotationId,
32
+ );
30
33
  return !!annotation;
31
34
  },
32
35
  component: ({ data: { prop, schema }, ...props }) => {
@@ -25,7 +25,7 @@ const FileContainer = ({ file, role }: { file: FileType; role: string }) => {
25
25
  invariant(space);
26
26
  const { directory, forest } = await loadWnfs({ blockstore, instances, space });
27
27
  const path = filePath(file.cid.toString(), space);
28
- const url = await getBlobUrl({ wnfsUrl: wnfsUrl(path), blockstore, directory, forest });
28
+ const url = await getBlobUrl({ wnfsUrl: wnfsUrl(path), blockstore, directory, forest, type: file.type });
29
29
  setBlobUrl(url);
30
30
  });
31
31
 
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Schema as S } from 'effect';
5
+ import { type Schema } from 'effect';
6
6
  import React, { useCallback } from 'react';
7
7
  import { useDropzone } from 'react-dropzone';
8
8
 
@@ -14,7 +14,7 @@ import { WNFS_PLUGIN } from '../meta';
14
14
  import { WnfsAction } from '../types';
15
15
 
16
16
  export type FileInputProps = {
17
- schema: S.Schema.Any;
17
+ schema: Schema.Schema.Any;
18
18
  onChange: (file: File) => void;
19
19
  };
20
20
 
@@ -5,7 +5,7 @@
5
5
  import '@dxos-theme';
6
6
 
7
7
  import type { Blockstore } from 'interface-blockstore';
8
- import React, { useEffect, useState } from 'react';
8
+ import React, { type ChangeEvent, useEffect, useState } from 'react';
9
9
 
10
10
  import { faker } from '@dxos/random';
11
11
  import { useSpace } from '@dxos/react-client/echo';
@@ -63,7 +63,7 @@ const Story = () => {
63
63
  [themeMode, blockstore, space],
64
64
  );
65
65
 
66
- const onFileChange = async (event: React.ChangeEvent<HTMLInputElement>) => {
66
+ const onFileChange = async (event: ChangeEvent<HTMLInputElement>) => {
67
67
  const file = event.target.files?.[0];
68
68
  if (file) {
69
69
  if (blockstore) {
@@ -20,17 +20,19 @@ export const getPathFromUrl = (wnfsUrl: string) =>
20
20
  export const getBlobUrl = async ({
21
21
  wnfsUrl,
22
22
  blockstore,
23
- directory,
24
23
  forest,
24
+ directory,
25
+ type,
25
26
  }: {
26
27
  wnfsUrl: string;
27
28
  blockstore: Blockstore;
28
- directory: PrivateDirectory;
29
29
  forest: PrivateForest;
30
+ directory: PrivateDirectory;
31
+ type?: string;
30
32
  }) => {
31
33
  const path = getPathFromUrl(wnfsUrl);
32
34
  const wnfsStore = store(blockstore);
33
35
  const { result } = await directory.read(path, true, forest, wnfsStore);
34
- const blob = new Blob([result]);
36
+ const blob = new Blob([result], { type });
35
37
  return URL.createObjectURL(blob);
36
38
  };
package/src/types/file.ts CHANGED
@@ -2,11 +2,13 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { S, TypedObject } from '@dxos/echo-schema';
5
+ import { Schema } from 'effect';
6
+
7
+ import { TypedObject } from '@dxos/echo-schema';
6
8
 
7
9
  export class FileType extends TypedObject({ typename: 'dxos.org/type/File', version: '0.1.0' })({
8
- name: S.optional(S.String),
9
- type: S.String,
10
- cid: S.String,
11
- timestamp: S.optional(S.String),
10
+ name: Schema.optional(Schema.String),
11
+ type: Schema.String,
12
+ cid: Schema.String,
13
+ timestamp: Schema.optional(Schema.String),
12
14
  }) {}
@@ -2,37 +2,39 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { Schema } from 'effect';
6
+
5
7
  import { FileInfoSchema } from '@dxos/app-framework';
6
- import { S } from '@dxos/echo-schema';
7
8
  import { SpaceSchema } from '@dxos/react-client/echo';
8
9
 
9
10
  import { FileType } from './file';
10
11
  import { WNFS_PLUGIN } from '../meta';
11
12
 
12
13
  export namespace WnfsAction {
13
- export class Create extends S.TaggedClass<Create>()(`${WNFS_PLUGIN}/action/create`, {
14
- input: FileInfoSchema.pick('name', 'type', 'cid').pipe(S.required),
15
- output: S.Struct({
14
+ export class Create extends Schema.TaggedClass<Create>()(`${WNFS_PLUGIN}/action/create`, {
15
+ input: FileInfoSchema.pick('name', 'type', 'cid').pipe(Schema.required),
16
+ output: Schema.Struct({
16
17
  object: FileType,
17
18
  }),
18
19
  }) {}
19
20
 
20
21
  export const UploadAnnotationId = Symbol.for(`${WNFS_PLUGIN}/annotation/upload`);
21
22
 
22
- export const UploadFileSchema = S.Struct({
23
- file: S.instanceOf(File).annotations({
23
+ export const UploadFileSchema = Schema.Struct({
24
+ file: Schema.instanceOf(File).annotations({
24
25
  [UploadAnnotationId]: {
25
26
  // Accept file types.
26
27
  'image/*': ['.jpg', '.jpeg', '.png', '.gif'],
28
+ 'application/pdf': ['.pdf'],
27
29
  // TODO(wittjosiah): Add more file types.
28
30
  },
29
31
  }),
30
32
  });
31
33
 
32
- export type UploadFileForm = S.Schema.Type<typeof UploadFileSchema>;
34
+ export type UploadFileForm = Schema.Schema.Type<typeof UploadFileSchema>;
33
35
 
34
- export class Upload extends S.TaggedClass<Upload>()(`${WNFS_PLUGIN}/action/upload`, {
35
- input: S.extend(UploadFileSchema, S.Struct({ space: SpaceSchema })),
36
- output: S.required(FileInfoSchema),
36
+ export class Upload extends Schema.TaggedClass<Upload>()(`${WNFS_PLUGIN}/action/upload`, {
37
+ input: Schema.extend(UploadFileSchema, Schema.Struct({ space: SpaceSchema })),
38
+ output: Schema.required(FileInfoSchema),
37
39
  }) {}
38
40
  }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/file.ts", "../../../src/types/types.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { S, TypedObject } from '@dxos/echo-schema';\n\nexport class FileType extends TypedObject({ typename: 'dxos.org/type/File', version: '0.1.0' })({\n name: S.optional(S.String),\n type: S.String,\n cid: S.String,\n timestamp: S.optional(S.String),\n}) {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FileInfoSchema } from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { SpaceSchema } from '@dxos/react-client/echo';\n\nimport { FileType } from './file';\nimport { WNFS_PLUGIN } from '../meta';\n\nexport namespace WnfsAction {\n export class Create extends S.TaggedClass<Create>()(`${WNFS_PLUGIN}/action/create`, {\n input: FileInfoSchema.pick('name', 'type', 'cid').pipe(S.required),\n output: S.Struct({\n object: FileType,\n }),\n }) {}\n\n export const UploadAnnotationId = Symbol.for(`${WNFS_PLUGIN}/annotation/upload`);\n\n export const UploadFileSchema = S.Struct({\n file: S.instanceOf(File).annotations({\n [UploadAnnotationId]: {\n // Accept file types.\n 'image/*': ['.jpg', '.jpeg', '.png', '.gif'],\n // TODO(wittjosiah): Add more file types.\n },\n }),\n });\n\n export type UploadFileForm = S.Schema.Type<typeof UploadFileSchema>;\n\n export class Upload extends S.TaggedClass<Upload>()(`${WNFS_PLUGIN}/action/upload`, {\n input: S.extend(UploadFileSchema, S.Struct({ space: SpaceSchema })),\n output: S.required(FileInfoSchema),\n }) {}\n}\n"],
5
- "mappings": ";;;;;AAIA,SAASA,GAAGC,mBAAmB;AAExB,IAAMC,WAAN,cAAuBC,YAAY;EAAEC,UAAU;EAAsBC,SAAS;AAAQ,CAAA,EAAG;EAC9FC,MAAMC,EAAEC,SAASD,EAAEE,MAAM;EACzBC,MAAMH,EAAEE;EACRE,KAAKJ,EAAEE;EACPG,WAAWL,EAAEC,SAASD,EAAEE,MAAM;AAChC,CAAA,EAAA;AAAI;;;ACPJ,SAASI,sBAAsB;AAC/B,SAASC,KAAAA,UAAS;AAClB,SAASC,mBAAmB;;UAKXC,aAAAA;EACR,MAAMC,eAAeC,GAAEC,YAAW,EAAW,GAAGC,WAAAA,kBAA6B;IAClFC,OAAOC,eAAeC,KAAK,QAAQ,QAAQ,KAAA,EAAOC,KAAKN,GAAEO,QAAQ;IACjEC,QAAQR,GAAES,OAAO;MACfC,QAAQC;IACV,CAAA;EACF,CAAA,EAAA;EAAI;cALSZ,SAAAA;cAOAa,qBAAqBC,OAAOC,IAAI,GAAGZ,WAAAA,oBAA+B;cAElEa,mBAAmBf,GAAES,OAAO;IACvCO,MAAMhB,GAAEiB,WAAWC,IAAAA,EAAMC,YAAY;MACnC,CAAArB,YAACc,kBAAAA,GAAqB;;QAEpB,WAAW;UAAC;UAAQ;UAAS;UAAQ;;MAEvC;IACF,CAAA;EACF,CAAA;EAIO,MAAMQ,eAAepB,GAAEC,YAAW,EAAW,GAAGC,WAAAA,kBAA6B;IAClFC,OAAOH,GAAEqB,OAAMvB,YAACiB,kBAAkBf,GAAES,OAAO;MAAEa,OAAOC;IAAY,CAAA,CAAA;IAChEf,QAAQR,GAAEO,SAASH,cAAAA;EACrB,CAAA,EAAA;EAAI;cAHSgB,SAAAA;AAIf,GA1BiBtB,eAAAA,aAAAA,CAAAA,EAAAA;",
6
- "names": ["S", "TypedObject", "FileType", "TypedObject", "typename", "version", "name", "S", "optional", "String", "type", "cid", "timestamp", "FileInfoSchema", "S", "SpaceSchema", "WnfsAction", "Create", "S", "TaggedClass", "WNFS_PLUGIN", "input", "FileInfoSchema", "pick", "pipe", "required", "output", "Struct", "object", "FileType", "UploadAnnotationId", "Symbol", "for", "UploadFileSchema", "file", "instanceOf", "File", "annotations", "Upload", "extend", "space", "SpaceSchema"]
7
- }
@@ -1,16 +0,0 @@
1
- // packages/plugins/plugin-wnfs/src/capabilities/index.ts
2
- import { lazy } from "@dxos/app-framework";
3
- var Blockstore = lazy(() => import("./blockstore-G47Q25U6.mjs"));
4
- var FileUploader = lazy(() => import("./file-uploader-L4TDVJBE.mjs"));
5
- var IntentResolver = lazy(() => import("./intent-resolver-GXGRFY7Q.mjs"));
6
- var Markdown = lazy(() => import("./markdown-MWMZVPEX.mjs"));
7
- var ReactSurface = lazy(() => import("./react-surface-X5B5EN6J.mjs"));
8
-
9
- export {
10
- Blockstore,
11
- FileUploader,
12
- IntentResolver,
13
- Markdown,
14
- ReactSurface
15
- };
16
- //# sourceMappingURL=chunk-HTHWDWTU.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/index.ts", "../../../src/components/FileInput.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { contributes, Capabilities, createSurface } from '@dxos/app-framework';\nimport { isInstanceOf } from '@dxos/echo-schema';\nimport { type S } from '@dxos/echo-schema';\nimport { findAnnotation } from '@dxos/effect';\nimport { type InputProps } from '@dxos/react-ui-form';\n\nimport { FileContainer, FileInput } from '../components';\nimport { WNFS_PLUGIN } from '../meta';\nimport { FileType, WnfsAction } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${WNFS_PLUGIN}/article`,\n role: ['article', 'section', 'slide'],\n filter: (data): data is { subject: FileType } => isInstanceOf(FileType, data.subject),\n component: ({ data, role }) => <FileContainer role={role} file={data.subject} />,\n }),\n createSurface({\n id: `${WNFS_PLUGIN}/create-form`,\n role: 'form-input',\n filter: (data): data is { prop: string; schema: S.Schema.Any } => {\n const annotation = findAnnotation<boolean>((data.schema as S.Schema.All).ast, WnfsAction.UploadAnnotationId);\n return !!annotation;\n },\n component: ({ data: { prop, schema }, ...props }) => {\n const inputProps = props as unknown as InputProps;\n const handleChange = useCallback(\n (file: File) => inputProps.onValueChange?.('object', file),\n [prop, inputProps.onValueChange],\n );\n\n return <FileInput schema={schema} onChange={handleChange} />;\n },\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport const FileContainer = lazy(() => import('./FileContainer'));\n\nexport * from './FileInput';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Schema as S } from 'effect';\nimport React, { useCallback } from 'react';\nimport { useDropzone } from 'react-dropzone';\n\nimport { findAnnotation } from '@dxos/effect';\nimport { useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { WNFS_PLUGIN } from '../meta';\nimport { WnfsAction } from '../types';\n\nexport type FileInputProps = {\n schema: S.Schema.Any;\n onChange: (file: File) => void;\n};\n\nexport const FileInput = ({ schema, onChange }: FileInputProps) => {\n const { t } = useTranslation(WNFS_PLUGIN);\n const accept = findAnnotation<Record<string, string[]>>(schema.ast, WnfsAction.UploadAnnotationId);\n\n const onDropAccepted = useCallback((files: File[]) => onChange?.(files[0]), [onChange]);\n\n const { acceptedFiles, getRootProps, getInputProps, isFocused, isDragAccept, isDragReject } = useDropzone({\n multiple: false,\n accept,\n onDropAccepted,\n });\n\n return (\n <div\n {...getRootProps()}\n className={mx(\n 'flex flex-col items-center p-8 border border-separator',\n isFocused && 'focus-ring',\n isDragAccept && 'bg-attention',\n isDragReject && 'border-error',\n )}\n >\n <input {...getInputProps()} />\n {acceptedFiles[0] ? <p>{acceptedFiles[0].name}</p> : <p>{t('file input placeholder')}</p>}\n </div>\n );\n};\n"],
5
- "mappings": ";;;;;;;;;AAIA,OAAOA,UAASC,eAAAA,oBAAmB;AAEnC,SAASC,aAAaC,cAAcC,qBAAqB;AACzD,SAASC,oBAAoB;AAE7B,SAASC,kBAAAA,uBAAsB;;;ACL/B,SAASC,YAAY;;;ACCrB,OAAOC,SAASC,mBAAmB;AACnC,SAASC,mBAAmB;AAE5B,SAASC,sBAAsB;AAC/B,SAASC,sBAAsB;AAC/B,SAASC,UAAU;AAUZ,IAAMC,YAAY,CAAC,EAAEC,QAAQC,SAAQ,MAAkB;AAC5D,QAAM,EAAEC,EAAC,IAAKC,eAAeC,WAAAA;AAC7B,QAAMC,SAASC,eAAyCN,OAAOO,KAAKC,WAAWC,kBAAkB;AAEjG,QAAMC,iBAAiBC,YAAY,CAACC,UAAkBX,WAAWW,MAAM,CAAA,CAAE,GAAG;IAACX;GAAS;AAEtF,QAAM,EAAEY,eAAeC,cAAcC,eAAeC,WAAWC,cAAcC,aAAY,IAAKC,YAAY;IACxGC,UAAU;IACVf;IACAK;EACF,CAAA;AAEA,SACE,sBAAA,cAACW,OAAAA;IACE,GAAGP,aAAAA;IACJQ,WAAWC,GACT,0DACAP,aAAa,cACbC,gBAAgB,gBAChBC,gBAAgB,cAAA;KAGlB,sBAAA,cAACM,SAAUT,cAAAA,CAAAA,GACVF,cAAc,CAAA,IAAK,sBAAA,cAACY,KAAAA,MAAGZ,cAAc,CAAA,EAAGa,IAAI,IAAQ,sBAAA,cAACD,KAAAA,MAAGvB,EAAE,wBAAA,CAAA,CAAA;AAGjE;;;ADxCO,IAAMyB,gBAAgBC,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ADU/C,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,WAAAA;IACPC,MAAM;MAAC;MAAW;MAAW;;IAC7BC,QAAQ,CAACC,SAAwCC,aAAaC,UAAUF,KAAKG,OAAO;IACpFC,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAO,gBAAAO,OAAA,cAACC,eAAAA;MAAcR;MAAYS,MAAMP,KAAKG;;EACvE,CAAA;EACAR,cAAc;IACZC,IAAI,GAAGC,WAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAAA;AACP,YAAMQ,aAAaC,gBAAyBT,KAAKU,OAAwBC,KAAKC,WAAWC,kBAAkB;AAC3G,aAAO,CAAC,CAACL;IACX;IACAJ,WAAW,CAAC,EAAEJ,MAAM,EAAEc,MAAMJ,OAAM,GAAI,GAAGK,MAAAA,MAAO;AAC9C,YAAMC,aAAaD;AACnB,YAAME,eAAeC,aACnB,CAACX,SAAeS,WAAWG,gBAAgB,UAAUZ,IAAAA,GACrD;QAACO;QAAME,WAAWG;OAAc;AAGlC,aAAO,gBAAAd,OAAA,cAACe,WAAAA;QAAUV;QAAgBW,UAAUJ;;IAC9C;EACF,CAAA;CACD;",
6
- "names": ["React", "useCallback", "contributes", "Capabilities", "createSurface", "isInstanceOf", "findAnnotation", "lazy", "React", "useCallback", "useDropzone", "findAnnotation", "useTranslation", "mx", "FileInput", "schema", "onChange", "t", "useTranslation", "WNFS_PLUGIN", "accept", "findAnnotation", "ast", "WnfsAction", "UploadAnnotationId", "onDropAccepted", "useCallback", "files", "acceptedFiles", "getRootProps", "getInputProps", "isFocused", "isDragAccept", "isDragReject", "useDropzone", "multiple", "div", "className", "mx", "input", "p", "name", "FileContainer", "lazy", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "WNFS_PLUGIN", "role", "filter", "data", "isInstanceOf", "FileType", "subject", "component", "React", "FileContainer", "file", "annotation", "findAnnotation", "schema", "ast", "WnfsAction", "UploadAnnotationId", "prop", "props", "inputProps", "handleChange", "useCallback", "onValueChange", "FileInput", "onChange"]
7
- }