@blendviewer/vision-scope 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +95 -0
  2. package/dist/index.js +187288 -0
  3. package/dist/nestcad-envmaps/citadella/negx.jpg +0 -0
  4. package/dist/nestcad-envmaps/citadella/negy.jpg +0 -0
  5. package/dist/nestcad-envmaps/citadella/negz.jpg +0 -0
  6. package/dist/nestcad-envmaps/citadella/posx.jpg +0 -0
  7. package/dist/nestcad-envmaps/citadella/posy.jpg +0 -0
  8. package/dist/nestcad-envmaps/citadella/posz.jpg +0 -0
  9. package/dist/nestcad-envmaps/citadella/readme.txt +13 -0
  10. package/dist/nestcad-envmaps/citadella.jpg +0 -0
  11. package/dist/nestcad-envmaps/fishermans_bastion/negx.jpg +0 -0
  12. package/dist/nestcad-envmaps/fishermans_bastion/negy.jpg +0 -0
  13. package/dist/nestcad-envmaps/fishermans_bastion/negz.jpg +0 -0
  14. package/dist/nestcad-envmaps/fishermans_bastion/posx.jpg +0 -0
  15. package/dist/nestcad-envmaps/fishermans_bastion/posy.jpg +0 -0
  16. package/dist/nestcad-envmaps/fishermans_bastion/posz.jpg +0 -0
  17. package/dist/nestcad-envmaps/fishermans_bastion/readme.txt +13 -0
  18. package/dist/nestcad-envmaps/fishermans_bastion.jpg +0 -0
  19. package/dist/nestcad-envmaps/ice_river/negx.jpg +0 -0
  20. package/dist/nestcad-envmaps/ice_river/negy.jpg +0 -0
  21. package/dist/nestcad-envmaps/ice_river/negz.jpg +0 -0
  22. package/dist/nestcad-envmaps/ice_river/posx.jpg +0 -0
  23. package/dist/nestcad-envmaps/ice_river/posy.jpg +0 -0
  24. package/dist/nestcad-envmaps/ice_river/posz.jpg +0 -0
  25. package/dist/nestcad-envmaps/ice_river/readme.txt +13 -0
  26. package/dist/nestcad-envmaps/ice_river.jpg +0 -0
  27. package/dist/nestcad-envmaps/maskonaive/negx.jpg +0 -0
  28. package/dist/nestcad-envmaps/maskonaive/negy.jpg +0 -0
  29. package/dist/nestcad-envmaps/maskonaive/negz.jpg +0 -0
  30. package/dist/nestcad-envmaps/maskonaive/posx.jpg +0 -0
  31. package/dist/nestcad-envmaps/maskonaive/posy.jpg +0 -0
  32. package/dist/nestcad-envmaps/maskonaive/posz.jpg +0 -0
  33. package/dist/nestcad-envmaps/maskonaive/readme.txt +13 -0
  34. package/dist/nestcad-envmaps/maskonaive.jpg +0 -0
  35. package/dist/nestcad-envmaps/noimage.jpg +0 -0
  36. package/dist/nestcad-envmaps/park/1.png +0 -0
  37. package/dist/nestcad-envmaps/park/2.png +0 -0
  38. package/dist/nestcad-envmaps/park/3.png +0 -0
  39. package/dist/nestcad-envmaps/park/4.png +0 -0
  40. package/dist/nestcad-envmaps/park/5.png +0 -0
  41. package/dist/nestcad-envmaps/park/6.png +0 -0
  42. package/dist/nestcad-envmaps/park/7.png +0 -0
  43. package/dist/nestcad-envmaps/park/negx.jpg +0 -0
  44. package/dist/nestcad-envmaps/park/negy.jpg +0 -0
  45. package/dist/nestcad-envmaps/park/negz.jpg +0 -0
  46. package/dist/nestcad-envmaps/park/posx.jpg +0 -0
  47. package/dist/nestcad-envmaps/park/posy.jpg +0 -0
  48. package/dist/nestcad-envmaps/park/posz.jpg +0 -0
  49. package/dist/nestcad-envmaps/park/readme.txt +13 -0
  50. package/dist/nestcad-envmaps/park.jpg +0 -0
  51. package/dist/nestcad-envmaps/teide/negx.jpg +0 -0
  52. package/dist/nestcad-envmaps/teide/negy.jpg +0 -0
  53. package/dist/nestcad-envmaps/teide/negz.jpg +0 -0
  54. package/dist/nestcad-envmaps/teide/posx.jpg +0 -0
  55. package/dist/nestcad-envmaps/teide/posy.jpg +0 -0
  56. package/dist/nestcad-envmaps/teide/posz.jpg +0 -0
  57. package/dist/nestcad-envmaps/teide/readme.txt +13 -0
  58. package/dist/nestcad-envmaps/teide.jpg +0 -0
  59. package/dist/nestcad-loaders/draco.license.md +252 -0
  60. package/dist/nestcad-loaders/draco_decoder.js +118 -0
  61. package/dist/nestcad-loaders/draco_decoder.wasm +0 -0
  62. package/dist/nestcad-loaders/occt-import-js-worker.js +15 -0
  63. package/dist/nestcad-loaders/occt-import-js.js +21 -0
  64. package/dist/nestcad-loaders/occt-import-js.license.md +504 -0
  65. package/dist/nestcad-loaders/occt-import-js.wasm +0 -0
  66. package/dist/nestcad-loaders/rhino3dm.license.md +21 -0
  67. package/dist/nestcad-loaders/rhino3dm.min.js +21 -0
  68. package/dist/nestcad-loaders/rhino3dm.wasm +0 -0
  69. package/dist/nestcad-loaders/web-ifc-api-browser.js +54925 -0
  70. package/dist/nestcad-loaders/web-ifc.license.md +375 -0
  71. package/dist/nestcad-loaders/web-ifc.wasm +0 -0
  72. package/dist/samples/.gitkeep +3 -0
  73. package/dist/samples/config-sample.json +6 -0
  74. package/dist/samples/logo-sample.svg +4 -0
  75. package/dist/samples/readme-sample.md +10 -0
  76. package/dist/styles/archive.css +431 -0
  77. package/dist/styles/code.css +119 -0
  78. package/dist/styles/document.css +1158 -0
  79. package/dist/styles/image.css +77 -0
  80. package/dist/styles/loading.css +124 -0
  81. package/dist/styles/media.css +99 -0
  82. package/dist/styles/native-three.css +54 -0
  83. package/dist/styles/spatial.css +39 -0
  84. package/dist/styles/tabular.css +157 -0
  85. package/dist/ui-styles/ui.css +1171 -0
  86. package/dist/vision-scope.css +1 -0
  87. package/package.json +80 -0
package/README.md ADDED
@@ -0,0 +1,95 @@
1
+ # @blendviewer/vision-scope
2
+
3
+ Universal file viewer SDK — detect file types and render images, media, code, documents, archives, textures, and 3D spatial assets.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @blendviewer/vision-scope
9
+ # or
10
+ yarn add @blendviewer/vision-scope
11
+ # or
12
+ pnpm add @blendviewer/vision-scope
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ### Basic Example
18
+
19
+ ```javascript
20
+ import { VisionScope } from '@blendviewer/vision-scope';
21
+ import '@blendviewer/vision-scope/styles.css'; // Required: CSS is not injected automatically
22
+
23
+ const scope = new VisionScope({
24
+ container: document.getElementById('viewer'), // or a selector like '#viewer'
25
+ ui: true,
26
+ });
27
+
28
+ // Load a file by URL or file
29
+ await scope.load('https://example.com/path/to/file.glb');
30
+ // await scope.load('/path/to/file.glb');
31
+ ```
32
+
33
+ ### Live Demo
34
+
35
+ Try the live playground: **[vision-scope.blendviewer.com](https://vision-scope.blendviewer.com)**
36
+
37
+ - [PDF Document](https://vision-scope.blendviewer.com/?file=https://oss.blendviewer.com/public/788d77d0-1d49-11ef-861a-b3174c760332/math/9912/9912227v2.pdf)
38
+ - [3D Model (GLB)](https://vision-scope.blendviewer.com/?file=https://oss.blendviewer.com/public/57f41350-1e82-11ef-b5e1-03b42f41a1d3/bee.glb)
39
+
40
+ Share links with `?file=` query parameters, for example:
41
+
42
+ - `https://your-domain.example/?file=./dist/samples/readme-sample.md`
43
+ - `https://your-domain.example/?file=https://oss.blendviewer.com/public/57f41350-1e82-11ef-b5e1-03b42f41a1d3/bee.glb`
44
+
45
+ _(Note: Ensure CORS is enabled on the target server if loading your own remote URLs)._
46
+
47
+ ## Supported File Types
48
+
49
+ Vision Scope comes with built-in renderers for a wide variety of file formats:
50
+
51
+ - **Images**: `jpg`, `jpeg`, `png`, `webp`, `gif`, `bmp`, `tif`, `tiff`, `svg`
52
+ - **3D Spatial / Models**: `glb`, `gltf`, `fbx`, `obj`, `stl`, `3ds`, `3dm`, `3mf`, `dae`, `amf`, `bvh`, `drc`, `gcode`, `ifc`, `kmz`, `lwo`, `md2`, `mdd`, `mmd`, `pmx`, `mpd`, `nrrd`, `pdb`, `tilt`, `ttf`, `usdz`, `vox`, `vrml`, `wrl`, `vtk`, `xyz`
53
+ - **CAD**: `dwg`, `dxf`
54
+ - **Point Cloud**: `pcd`, `ply`, `las`
55
+ - **GPU Textures**: `ktx2`, `basis`
56
+ - **Documents**: `pdf`, `docx`, `doc`, `pptx`, `ppt`, `txt`, `md`
57
+ - **Tabular / Spreadsheets**: `csv`, `tsv`, `xlsx`, `xls`, `ods`
58
+ - **Media (Video/Audio)**: `mp4`, `webm`, `avi`, `mov`, `mkv`, `mp3`, `wav`, `flac`, `aac`, `ogg`
59
+ - **Code & Text**: `js`, `ts`, `jsx`, `tsx`, `py`, `java`, `go`, `rs`, `c`, `cpp`, `html`, `css`, `json`, `yaml`, `xml`, `sql`, `sh`, `dockerfile`, and many more.
60
+ - **Archives**: `zip`, `rar`, `7z`, `tar`, `gz` (with inner file type detection, e.g., `model.glb.zip`)
61
+
62
+ ## Scope Extensions (Plugins)
63
+
64
+ Vision Hub plugins can extend file preview capabilities beyond built-in types. You can export an extension from your plugin module:
65
+
66
+ ```javascript
67
+ export const scopeExtension = {
68
+ id: 'com.example.my-viewer',
69
+ extensions: ['h5', 'hdf5'],
70
+ mountPreview(container, context) {
71
+ // context.url, context.filename, context.readOnly, etc.
72
+ // Initialize your custom viewer here
73
+
74
+ return {
75
+ destroy() {
76
+ // Cleanup resources when the viewer is unmounted
77
+ },
78
+ };
79
+ },
80
+ };
81
+ ```
82
+
83
+ Register the extension at runtime:
84
+
85
+ ```javascript
86
+ import { VisionScope } from '@blendviewer/vision-scope';
87
+
88
+ // Register a static extension object
89
+ VisionScope.registerExtension(scopeExtension);
90
+
91
+ // Or register via dynamic import
92
+ await VisionScope.registerExtensionModule(() => import('./path/to/plugin.js'));
93
+ ```
94
+
95
+ Built-in routing uses a file type detector first; unknown extensions fall through to the extension registry.