@lucky-office/js-docx 0.1.0 → 0.3.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.
- package/LICENSE +25 -25
- package/README.md +85 -79
- package/lib/README.md +85 -79
- package/lib/index.css +1 -1
- package/lib/index.d.ts +30 -30
- package/package.json +3 -2
package/LICENSE
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 zhangwenli
|
|
4
|
-
|
|
5
|
-
This project is a derivative work based on vue-office
|
|
6
|
-
(https://github.com/501351981/vue-office), Copyright (c) 2023 501351981
|
|
7
|
-
(微信: _hit757_), licensed under the MIT License.
|
|
8
|
-
|
|
9
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
-
in the Software without restriction, including without limitation the rights
|
|
12
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
-
furnished to do so, subject to the following conditions:
|
|
15
|
-
|
|
16
|
-
The above copyright notice and this permission notice shall be included in all
|
|
17
|
-
copies or substantial portions of the Software.
|
|
18
|
-
|
|
19
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
25
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 zhangwenli
|
|
4
|
+
|
|
5
|
+
This project is a derivative work based on vue-office
|
|
6
|
+
(https://github.com/501351981/vue-office), Copyright (c) 2023 501351981
|
|
7
|
+
(微信: _hit757_), licensed under the MIT License.
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in all
|
|
17
|
+
copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
25
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,79 +1,85 @@
|
|
|
1
|
-
# @lucky-office/js-docx
|
|
2
|
-
|
|
3
|
-
> 基于 [vue-office](https://github.com/501351981/vue-office) 二次开发:框架无关(vanilla JS / UMD)的 `.docx` 预览器,通过 `init(container, options)` 挂载到任意 DOM 节点上,底层基于 [docx-preview]。
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
##
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
|
58
|
-
|
|
59
|
-
| `
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
|
70
|
-
|
|
71
|
-
| `
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
1
|
+
# @lucky-office/js-docx
|
|
2
|
+
|
|
3
|
+
> 基于 [vue-office](https://github.com/501351981/vue-office) 二次开发:框架无关(vanilla JS / UMD)的 `.docx` 预览器,通过 `init(container, options)` 挂载到任意 DOM 节点上,底层基于 [docx-preview]。
|
|
4
|
+
|
|
5
|
+
## 🌐 在线 Demo
|
|
6
|
+
|
|
7
|
+
👉 [https://zero-wl.github.io/lucky-office/#/js-docx](https://zero-wl.github.io/lucky-office/#/js-docx)
|
|
8
|
+
|
|
9
|
+
> 也提供更简单的 CDN `<script>` 引用示例:[demo-cdn/docx.html](https://github.com/ZERO-WL/lucky-office/blob/main/demo-cdn/docx.html)
|
|
10
|
+
|
|
11
|
+
## 特性
|
|
12
|
+
|
|
13
|
+
- 不依赖 Vue / React,纯 JS 即可使用
|
|
14
|
+
- 提供 `preview / save / setOptions / setRequestOptions / destroy` 方法
|
|
15
|
+
- 支持远程 URL、`ArrayBuffer`、`Blob`
|
|
16
|
+
|
|
17
|
+
## 安装
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm add @lucky-office/js-docx
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 基本用法
|
|
24
|
+
|
|
25
|
+
```js
|
|
26
|
+
import jsPreviewDocx from '@lucky-office/js-docx';
|
|
27
|
+
import '@lucky-office/js-docx/lib/index.css';
|
|
28
|
+
|
|
29
|
+
const container = document.getElementById('preview');
|
|
30
|
+
|
|
31
|
+
const previewer = jsPreviewDocx.init(container, {
|
|
32
|
+
breakPages: true,
|
|
33
|
+
debug: false,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
previewer.preview('https://example.com/test.docx').then(() => {
|
|
37
|
+
console.log('渲染完成');
|
|
38
|
+
}).catch(err => {
|
|
39
|
+
console.error('渲染失败', err);
|
|
40
|
+
});
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## API
|
|
44
|
+
|
|
45
|
+
### `jsPreviewDocx.init(container, options?, requestOptions?)`
|
|
46
|
+
|
|
47
|
+
| 参数 | 类型 | 说明 |
|
|
48
|
+
|-------------------|---------------------------|------|
|
|
49
|
+
| `container` | `HTMLElement` | 挂载容器 |
|
|
50
|
+
| `options` | `Options` | docx-preview 选项(见下) |
|
|
51
|
+
| `requestOptions` | `Object` | 远程拉取时的请求选项 |
|
|
52
|
+
|
|
53
|
+
返回 `JsDocxPreview` 实例。
|
|
54
|
+
|
|
55
|
+
### `Options`(与 docx-preview 一致,常用项)
|
|
56
|
+
|
|
57
|
+
| 名称 | 类型 | 说明 |
|
|
58
|
+
|------------------------------|-----------|------|
|
|
59
|
+
| `inWrapper` | `Boolean` | 是否包裹外层容器 |
|
|
60
|
+
| `ignoreWidth` / `ignoreHeight`| `Boolean` | 忽略宽 / 高 |
|
|
61
|
+
| `ignoreFonts` | `Boolean` | 忽略字体 |
|
|
62
|
+
| `breakPages` | `Boolean` | 是否分页 |
|
|
63
|
+
| `debug` | `Boolean` | 调试模式 |
|
|
64
|
+
| `experimental` | `Boolean` | 启用实验特性 |
|
|
65
|
+
| `className` | `String` | 容器 className |
|
|
66
|
+
| `trimXmlDeclaration` | `Boolean` | 去掉 XML 声明 |
|
|
67
|
+
| `renderHeaders / Footers / Footnotes / Endnotes` | `Boolean` | 是否渲染对应区块 |
|
|
68
|
+
| `ignoreLastRenderedPageBreak` | `Boolean` | 忽略最后渲染分页 |
|
|
69
|
+
| `useBase64URL` | `Boolean` | 使用 base64 URL |
|
|
70
|
+
| `useMathMLPolyfill` | `Boolean` | 启用 MathML polyfill |
|
|
71
|
+
| `renderChanges` | `Boolean` | 渲染修订 |
|
|
72
|
+
|
|
73
|
+
### 实例方法
|
|
74
|
+
|
|
75
|
+
| 方法 | 说明 |
|
|
76
|
+
|-------------------------------|------|
|
|
77
|
+
| `preview(src)` | 加载并渲染文件,返回 `Promise` |
|
|
78
|
+
| `save(fileName?)` | 保存原始文件到本地 |
|
|
79
|
+
| `setOptions(options)` | 更新渲染选项 |
|
|
80
|
+
| `setRequestOptions(options)` | 更新请求选项 |
|
|
81
|
+
| `destroy()` | 销毁实例 |
|
|
82
|
+
|
|
83
|
+
## License
|
|
84
|
+
|
|
85
|
+
MIT
|
package/lib/README.md
CHANGED
|
@@ -1,79 +1,85 @@
|
|
|
1
|
-
# @lucky-office/js-docx
|
|
2
|
-
|
|
3
|
-
> 基于 [vue-office](https://github.com/501351981/vue-office) 二次开发:框架无关(vanilla JS / UMD)的 `.docx` 预览器,通过 `init(container, options)` 挂载到任意 DOM 节点上,底层基于 [docx-preview]。
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
##
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
|
58
|
-
|
|
59
|
-
| `
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
|
70
|
-
|
|
71
|
-
| `
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
1
|
+
# @lucky-office/js-docx
|
|
2
|
+
|
|
3
|
+
> 基于 [vue-office](https://github.com/501351981/vue-office) 二次开发:框架无关(vanilla JS / UMD)的 `.docx` 预览器,通过 `init(container, options)` 挂载到任意 DOM 节点上,底层基于 [docx-preview]。
|
|
4
|
+
|
|
5
|
+
## 🌐 在线 Demo
|
|
6
|
+
|
|
7
|
+
👉 [https://zero-wl.github.io/lucky-office/#/js-docx](https://zero-wl.github.io/lucky-office/#/js-docx)
|
|
8
|
+
|
|
9
|
+
> 也提供更简单的 CDN `<script>` 引用示例:[demo-cdn/docx.html](https://github.com/ZERO-WL/lucky-office/blob/main/demo-cdn/docx.html)
|
|
10
|
+
|
|
11
|
+
## 特性
|
|
12
|
+
|
|
13
|
+
- 不依赖 Vue / React,纯 JS 即可使用
|
|
14
|
+
- 提供 `preview / save / setOptions / setRequestOptions / destroy` 方法
|
|
15
|
+
- 支持远程 URL、`ArrayBuffer`、`Blob`
|
|
16
|
+
|
|
17
|
+
## 安装
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm add @lucky-office/js-docx
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 基本用法
|
|
24
|
+
|
|
25
|
+
```js
|
|
26
|
+
import jsPreviewDocx from '@lucky-office/js-docx';
|
|
27
|
+
import '@lucky-office/js-docx/lib/index.css';
|
|
28
|
+
|
|
29
|
+
const container = document.getElementById('preview');
|
|
30
|
+
|
|
31
|
+
const previewer = jsPreviewDocx.init(container, {
|
|
32
|
+
breakPages: true,
|
|
33
|
+
debug: false,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
previewer.preview('https://example.com/test.docx').then(() => {
|
|
37
|
+
console.log('渲染完成');
|
|
38
|
+
}).catch(err => {
|
|
39
|
+
console.error('渲染失败', err);
|
|
40
|
+
});
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## API
|
|
44
|
+
|
|
45
|
+
### `jsPreviewDocx.init(container, options?, requestOptions?)`
|
|
46
|
+
|
|
47
|
+
| 参数 | 类型 | 说明 |
|
|
48
|
+
|-------------------|---------------------------|------|
|
|
49
|
+
| `container` | `HTMLElement` | 挂载容器 |
|
|
50
|
+
| `options` | `Options` | docx-preview 选项(见下) |
|
|
51
|
+
| `requestOptions` | `Object` | 远程拉取时的请求选项 |
|
|
52
|
+
|
|
53
|
+
返回 `JsDocxPreview` 实例。
|
|
54
|
+
|
|
55
|
+
### `Options`(与 docx-preview 一致,常用项)
|
|
56
|
+
|
|
57
|
+
| 名称 | 类型 | 说明 |
|
|
58
|
+
|------------------------------|-----------|------|
|
|
59
|
+
| `inWrapper` | `Boolean` | 是否包裹外层容器 |
|
|
60
|
+
| `ignoreWidth` / `ignoreHeight`| `Boolean` | 忽略宽 / 高 |
|
|
61
|
+
| `ignoreFonts` | `Boolean` | 忽略字体 |
|
|
62
|
+
| `breakPages` | `Boolean` | 是否分页 |
|
|
63
|
+
| `debug` | `Boolean` | 调试模式 |
|
|
64
|
+
| `experimental` | `Boolean` | 启用实验特性 |
|
|
65
|
+
| `className` | `String` | 容器 className |
|
|
66
|
+
| `trimXmlDeclaration` | `Boolean` | 去掉 XML 声明 |
|
|
67
|
+
| `renderHeaders / Footers / Footnotes / Endnotes` | `Boolean` | 是否渲染对应区块 |
|
|
68
|
+
| `ignoreLastRenderedPageBreak` | `Boolean` | 忽略最后渲染分页 |
|
|
69
|
+
| `useBase64URL` | `Boolean` | 使用 base64 URL |
|
|
70
|
+
| `useMathMLPolyfill` | `Boolean` | 启用 MathML polyfill |
|
|
71
|
+
| `renderChanges` | `Boolean` | 渲染修订 |
|
|
72
|
+
|
|
73
|
+
### 实例方法
|
|
74
|
+
|
|
75
|
+
| 方法 | 说明 |
|
|
76
|
+
|-------------------------------|------|
|
|
77
|
+
| `preview(src)` | 加载并渲染文件,返回 `Promise` |
|
|
78
|
+
| `save(fileName?)` | 保存原始文件到本地 |
|
|
79
|
+
| `setOptions(options)` | 更新渲染选项 |
|
|
80
|
+
| `setRequestOptions(options)` | 更新请求选项 |
|
|
81
|
+
| `destroy()` | 销毁实例 |
|
|
82
|
+
|
|
83
|
+
## License
|
|
84
|
+
|
|
85
|
+
MIT
|
package/lib/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.vue-office-docx{height:100%;overflow-y:auto}.vue-office-docx .docx-wrapper>section.docx{margin-bottom:5px}@media screen and (max-width: 800px){.vue-office-docx .docx-wrapper{padding:10px}.vue-office-docx .docx-wrapper>section.docx{padding:10px!important;width:100%!important}}
|
|
1
|
+
.vue-office-docx{height:100%;overflow-y:auto}.vue-office-docx .docx-wrapper>section.docx{margin-bottom:5px}@media screen and (max-width: 800px){.vue-office-docx .docx-wrapper{padding:10px}.vue-office-docx .docx-wrapper>section.docx{padding:10px!important;width:100%!important}}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
export interface Options {
|
|
2
|
-
inWrapper?: boolean;
|
|
3
|
-
ignoreWidth?: boolean;
|
|
4
|
-
ignoreHeight?: boolean;
|
|
5
|
-
ignoreFonts?: boolean;
|
|
6
|
-
breakPages?: boolean;
|
|
7
|
-
debug?: boolean;
|
|
8
|
-
experimental?: boolean;
|
|
9
|
-
className?: string;
|
|
10
|
-
trimXmlDeclaration?: boolean;
|
|
11
|
-
renderHeaders?: boolean;
|
|
12
|
-
renderFooters?: boolean;
|
|
13
|
-
renderFootnotes?: boolean;
|
|
14
|
-
renderEndnotes?: boolean;
|
|
15
|
-
ignoreLastRenderedPageBreak?: boolean;
|
|
16
|
-
useBase64URL?: boolean;
|
|
17
|
-
useMathMLPolyfill?: boolean;
|
|
18
|
-
renderChanges?: boolean;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface JsDocxPreview {
|
|
22
|
-
preview: (src: string | ArrayBuffer | Blob) => Promise<any>;
|
|
23
|
-
save: (fileName?: string) => void;
|
|
24
|
-
setOptions: (options: Options) => void;
|
|
25
|
-
setRequestOptions: (requestOptions?: any) => void;
|
|
26
|
-
destroy: ()=> void;
|
|
27
|
-
}
|
|
28
|
-
declare const jsPreviewDocx: {
|
|
29
|
-
init: (container: HTMLElement, options?: Options, requestOptions?: any) => JsDocxPreview;
|
|
30
|
-
};
|
|
1
|
+
export interface Options {
|
|
2
|
+
inWrapper?: boolean;
|
|
3
|
+
ignoreWidth?: boolean;
|
|
4
|
+
ignoreHeight?: boolean;
|
|
5
|
+
ignoreFonts?: boolean;
|
|
6
|
+
breakPages?: boolean;
|
|
7
|
+
debug?: boolean;
|
|
8
|
+
experimental?: boolean;
|
|
9
|
+
className?: string;
|
|
10
|
+
trimXmlDeclaration?: boolean;
|
|
11
|
+
renderHeaders?: boolean;
|
|
12
|
+
renderFooters?: boolean;
|
|
13
|
+
renderFootnotes?: boolean;
|
|
14
|
+
renderEndnotes?: boolean;
|
|
15
|
+
ignoreLastRenderedPageBreak?: boolean;
|
|
16
|
+
useBase64URL?: boolean;
|
|
17
|
+
useMathMLPolyfill?: boolean;
|
|
18
|
+
renderChanges?: boolean;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface JsDocxPreview {
|
|
22
|
+
preview: (src: string | ArrayBuffer | Blob) => Promise<any>;
|
|
23
|
+
save: (fileName?: string) => void;
|
|
24
|
+
setOptions: (options: Options) => void;
|
|
25
|
+
setRequestOptions: (requestOptions?: any) => void;
|
|
26
|
+
destroy: ()=> void;
|
|
27
|
+
}
|
|
28
|
+
declare const jsPreviewDocx: {
|
|
29
|
+
init: (container: HTMLElement, options?: Options, requestOptions?: any) => JsDocxPreview;
|
|
30
|
+
};
|
|
31
31
|
export default jsPreviewDocx;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lucky-office/js-docx",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"description": "基于 vue-office 二次开发的框架无关 Word(.docx)预览库(vanilla JS / UMD)。",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
},
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
16
|
-
"url": "
|
|
16
|
+
"url": "https://github.com/ZERO-WL/lucky-office.git",
|
|
17
|
+
"directory": "core/packages/js-docx"
|
|
17
18
|
},
|
|
18
19
|
"homepage": "https://github.com/ZERO-WL/lucky-office#readme",
|
|
19
20
|
"bugs": {
|