@richscripts/richtexteditor 2.7.0 → 2.7.1
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.md +66 -0
- package/README.md +22 -22
- package/package.json +146 -142
- package/richtexteditor/all_plugins.js +513 -14
- package/richtexteditor/all_plugins.min.js +58 -58
- package/richtexteditor/plugins/accessibilitychecker.js +283 -0
- package/richtexteditor/plugins/all_plugins.js +513 -14
- package/richtexteditor/plugins/all_plugins.min.js +58 -58
- package/richtexteditor/plugins/dialoga11y.js +50 -6
- package/richtexteditor/plugins/documentimport.js +34 -0
- package/richtexteditor/plugins/docxexport.js +26 -3
- package/richtexteditor/plugins/keyboarda11y.js +108 -0
- package/richtexteditor/plugins/pdfexport.js +12 -5
- package/richtexteditor/rte.js +41 -3
package/LICENSE.md
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Verbatim copy of the licence published at https://richtexteditor.com/license
|
|
3
|
+
That page is the authoritative version; this file exists so the terms are
|
|
4
|
+
visible in the repository and in the npm package. Do not edit the clauses
|
|
5
|
+
here - change the published page and re-copy.
|
|
6
|
+
-->
|
|
7
|
+
|
|
8
|
+
# RichTextEditor Licensing
|
|
9
|
+
|
|
10
|
+
This section describes our licensing policy. There maybe different licenses for each type of product.
|
|
11
|
+
By using or installing Richscripts product, you are agreeing to be bound by the terms and conditions of this License Agreement. As used in this License Agreement, "You" shall mean the individual using or installing the Software together with any individual or entity, including but not limited to your employer, on whose behalf you are acting in using or installing the Software.
|
|
12
|
+
|
|
13
|
+
## 1. License Grant
|
|
14
|
+
|
|
15
|
+
Richscripts grants to you only, the Licensee, the non-exclusive, nontransferable right to use the Software in accordance with the license you purchase. If you are using this product for your employer, this agreement also includes your employer. You may only use the Software on computers for which the Software is licensed. Software that is distributed as shareware or a demo may be used for testing and evaluation purposes only.
|
|
16
|
+
|
|
17
|
+
### Domain License
|
|
18
|
+
|
|
19
|
+
A domain license allows use of the Software for all users at a single site hosted on a single web server.
|
|
20
|
+
The license key will be generated based on your site domain name. If you will be using the components in an intranet environment, the license key will be generated based on server names.
|
|
21
|
+
You may also install and use the Software on an unlimited number of developer workstations (but not on a development server) for use in connection with the same single website host name when accessed by the
|
|
22
|
+
http://localhost/Webapplication
|
|
23
|
+
.
|
|
24
|
+
|
|
25
|
+
### Small Business License
|
|
26
|
+
|
|
27
|
+
A small business license allows use of the Software for all users at 10 sites within a single company.
|
|
28
|
+
The license key will be generated based on your site domain names. If you will be using the components in an intranet environment, the license key will be generated based on server names.
|
|
29
|
+
You may also install and use the Software on an unlimited number of developer workstations (but not on a development server) for use in connection with the same single website host name when accessed by the
|
|
30
|
+
http://localhost/Webapplication
|
|
31
|
+
A big benefit of the small business license is you can add additional sites to your license file at any time if you don't have 10 sites right now.
|
|
32
|
+
|
|
33
|
+
### Enterprise License
|
|
34
|
+
|
|
35
|
+
An enterprise License allows use of the Software on Unlimited servers and applications within a single organization. The Enterprise License includes Royalty FREE distribution rights.
|
|
36
|
+
|
|
37
|
+
### Source Code License
|
|
38
|
+
|
|
39
|
+
The Source code license includes the full source code of the control. It includes all of the benefits of the Enterprise license and is best for companies that plan to modify the control or simply wish to have access to the code for security reasons.
|
|
40
|
+
|
|
41
|
+
## 2. Copyright
|
|
42
|
+
|
|
43
|
+
NOTE: This Software and the accompanying materials are copyrighted and contain proprietary information. Unauthorized copying of the Software or accompanying materials even if modified, merged, or included with other software, or of the written materials, is expressly forbidden. You may be held legally responsible for any infringement of intellectual property rights that is caused or encouraged by your failure to abide by the terms of this Agreement. You may make copies of the Software solely for backup purposes provided the copyright and trademark notices are reproduced in their entirety on the backup copy. Richscripts reserves all rights not specifically granted to Licensee. Richscripts warrants to you that Richscripts is the sole owner of all patents, copyrights or other applicable intellectual property rights in and to the Software unless otherwise indicated in the documentation for Software. Richscripts shall defend and hold Licensee harmless from any third party claims for intellectual property infringement for properly licensed Software provided by Richscripts. The Software and documentation are licensed, not sold, to you. You may not rent, lease, display or distribute copies of the Software to others. You may not disassemble, decompose, reverse engineer, or alter the Software.
|
|
44
|
+
|
|
45
|
+
## 3. Warranty & Risks
|
|
46
|
+
|
|
47
|
+
Although efforts have been made to assure that the Software is date compliant, correct, reliable, and technically accurate, the Software is licensed to you as is and without warranties as to performance of merchantability, fitness for a particular purpose or use, or any other warranties whether expressed or implied. You, your organization and all users of the Software, assume all risks when using it. The manufacturers, distributors and resellers of the Software shall not be liable for any consequential, incidental, punitive or special damages arising out of the use of or inability to use the Software or the provision of or failure to provide support services, even if we have been advised of the possibility of such damages. In any case, the entire liability under any provision of this agreement shall be limited the amount actually paid by you for the.
|
|
48
|
+
|
|
49
|
+
## 4. Technical Support, Product Upgrades and Number of Developers
|
|
50
|
+
|
|
51
|
+
Richscripts offers free technical support for a period of 90 days from the date of purchase on all licensed Software products. Technical support is not provided to the end user unless each end user has a valid Single User License. Richscripts offers product free minor version upgrades. If you later upgrade the Software, this agreement will terminate, and all copies of the Software to which it applies must be destroyed.
|
|
52
|
+
|
|
53
|
+
## 5. Controlling Law
|
|
54
|
+
|
|
55
|
+
This License Agreement shall be governed by and construed in accordance with the laws of the Canada.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
RichTextEditor is commercial software. It is **not** open source, and no
|
|
60
|
+
open-source licence (MIT, Apache-2.0, GPL) applies to it. A licence must be
|
|
61
|
+
purchased for production use; see https://richtexteditor.com/pricing
|
|
62
|
+
|
|
63
|
+
The full and authoritative licence text is published at
|
|
64
|
+
https://richtexteditor.com/license
|
|
65
|
+
|
|
66
|
+
Copyright 2003-2026 Richscripts Inc. All rights reserved.
|
package/README.md
CHANGED
|
@@ -442,28 +442,28 @@ editor.restrictedEditing.markSelection({ block: true, label: "Custom notes" });
|
|
|
442
442
|
editor.restrictedEditing.enable();
|
|
443
443
|
```
|
|
444
444
|
|
|
445
|
-
In order to start using Rich Text Editor, configure or customize it further, please visit [the documentation](
|
|
445
|
+
In order to start using Rich Text Editor, configure or customize it further, please visit [the documentation](https://richtexteditor.com/docs).
|
|
446
|
+
|
|
447
|
+
## State inspector (developer tool)
|
|
448
|
+
|
|
449
|
+
A derived view of the document the editor is actually holding: a serializable
|
|
450
|
+
snapshot (node tree, selection, plugin initialization order) plus structural
|
|
451
|
+
checks for the faults that break documents downstream - zero-length text nodes,
|
|
452
|
+
empty inline wrappers, duplicate nested formatting, control characters that make
|
|
453
|
+
an exported .docx unreadable, unsafe URL schemes, `iframe[srcdoc]`, orphaned
|
|
454
|
+
list items, images with no alt text, and unprotected atomic content.
|
|
455
|
+
|
|
456
|
+
```js
|
|
457
|
+
editor.stateInspector.open(); // panel with Issues / Tree / Selection / Plugins / Log
|
|
458
|
+
editor.stateInspector.issues(); // [{ id, severity, message, detail }]
|
|
459
|
+
editor.stateInspector.snapshot(); // plain JSON - attach this to a bug report
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
It is **not** in any default toolbar. Add the button with
|
|
463
|
+
`stateInspectorToolbarButton: true`, open it from the API, or type `/inspect`.
|
|
464
|
+
Other options: `stateInspectorEnabled`, `stateInspectorAutoOpen`,
|
|
465
|
+
`stateInspectorMaxDepth`, `stateInspectorLogLimit`.
|
|
446
466
|
|
|
447
467
|
## License
|
|
448
468
|
|
|
449
|
-
For licensing information please read [Licensing Info](
|
|
450
|
-
|
|
451
|
-
### State inspector (developer tool)
|
|
452
|
-
|
|
453
|
-
A derived view of the document the editor is actually holding: a serializable
|
|
454
|
-
snapshot (node tree, selection, plugin initialization order) plus structural
|
|
455
|
-
checks for the faults that break documents downstream - zero-length text nodes,
|
|
456
|
-
empty inline wrappers, duplicate nested formatting, control characters that make
|
|
457
|
-
an exported .docx unreadable, unsafe URL schemes, `iframe[srcdoc]`, orphaned
|
|
458
|
-
list items, images with no alt text, and unprotected atomic content.
|
|
459
|
-
|
|
460
|
-
```js
|
|
461
|
-
editor.stateInspector.open(); // panel with Issues / Tree / Selection / Plugins / Log
|
|
462
|
-
editor.stateInspector.issues(); // [{ id, severity, message, detail }]
|
|
463
|
-
editor.stateInspector.snapshot(); // plain JSON - attach this to a bug report
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
It is **not** in any default toolbar. Add the button with
|
|
467
|
-
`stateInspectorToolbarButton: true`, open it from the API, or type `/inspect`.
|
|
468
|
-
Other options: `stateInspectorEnabled`, `stateInspectorAutoOpen`,
|
|
469
|
-
`stateInspectorMaxDepth`, `stateInspectorLogLimit`.
|
|
469
|
+
For licensing information please read [Licensing Info](https://richtexteditor.com/license).
|
package/package.json
CHANGED
|
@@ -1,142 +1,146 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@richscripts/richtexteditor",
|
|
3
|
-
"publishConfig": {
|
|
4
|
-
"access": "public"
|
|
5
|
-
},
|
|
6
|
-
"version": "2.7.
|
|
7
|
-
"description": "A full-featured JavaScript rich text editor (WYSIWYG) with toolbar, plugins, i18n support, a built-in AI Toolkit (Ask AI, AI Chat, AI Review drawer, BYOK resolver), structured content APIs (JSON/Markdown), and an optional collaboration / review stack: slash commands, @mentions, human-author Track Changes, threaded comments, revision history, and Yjs-backed presence. Ships first-class React, Vue, Angular and Svelte bindings, a headless \"bring your own UI\" core, and server-safe conversion helpers.",
|
|
8
|
-
"main": "./richtexteditor/rte.js",
|
|
9
|
-
"bin": {
|
|
10
|
-
"rte-migration-report": "./migration/cli.js"
|
|
11
|
-
},
|
|
12
|
-
"scripts": {
|
|
13
|
-
"test:server": "node tests/run-all.test.js",
|
|
14
|
-
"test:admin": "node tests/run-all.test.js",
|
|
15
|
-
"test": "node tests/run-all.test.js",
|
|
16
|
-
"smoke:pack": "node tests/smoke-pack.js",
|
|
17
|
-
"artifact:migration": "node scripts/build-migration-fidelity-artifact.js",
|
|
18
|
-
"artifact:migration:runtime": "npm --prefix vendor-runtime-tests ci && npm --prefix vendor-runtime-tests run generate && node scripts/build-migration-fidelity-artifact.js",
|
|
19
|
-
"guard:protected": "node tests/guard-protected-bundle.js",
|
|
20
|
-
"prepublishOnly": "node tests/guard-protected-bundle.js"
|
|
21
|
-
},
|
|
22
|
-
"types": "./index.d.ts",
|
|
23
|
-
"style": "./richtexteditor/rte_theme_default.css",
|
|
24
|
-
"exports": {
|
|
25
|
-
".": {
|
|
26
|
-
"types": "./index.d.ts",
|
|
27
|
-
"default": "./richtexteditor/rte.js"
|
|
28
|
-
},
|
|
29
|
-
"./angular": {
|
|
30
|
-
"types": "./angular/index.d.ts",
|
|
31
|
-
"default": "./angular/index.ts"
|
|
32
|
-
},
|
|
33
|
-
"./react": {
|
|
34
|
-
"types": "./react/index.d.ts",
|
|
35
|
-
"default": "./react/index.js"
|
|
36
|
-
},
|
|
37
|
-
"./vue": {
|
|
38
|
-
"types": "./vue/index.d.ts",
|
|
39
|
-
"default": "./vue/index.js"
|
|
40
|
-
},
|
|
41
|
-
"./svelte": {
|
|
42
|
-
"types": "./svelte/index.d.ts",
|
|
43
|
-
"default": "./svelte/index.js"
|
|
44
|
-
},
|
|
45
|
-
"./headless": {
|
|
46
|
-
"types": "./headless/index.d.ts",
|
|
47
|
-
"default": "./headless/index.js"
|
|
48
|
-
},
|
|
49
|
-
"./migration": {
|
|
50
|
-
"types": "./migration/index.d.ts",
|
|
51
|
-
"default": "./migration/index.js"
|
|
52
|
-
},
|
|
53
|
-
"./server": {
|
|
54
|
-
"types": "./server/index.d.ts",
|
|
55
|
-
"default": "./server/index.js"
|
|
56
|
-
},
|
|
57
|
-
"./admin": {
|
|
58
|
-
"types": "./admin/index.d.ts",
|
|
59
|
-
"default": "./admin/index.js"
|
|
60
|
-
},
|
|
61
|
-
"./integrations/shared": {
|
|
62
|
-
"types": "./integrations/shared.d.ts",
|
|
63
|
-
"default": "./integrations/shared.js"
|
|
64
|
-
},
|
|
65
|
-
"./richtexteditor/*": "./richtexteditor/*",
|
|
66
|
-
"./package.json": "./package.json"
|
|
67
|
-
},
|
|
68
|
-
"files": [
|
|
69
|
-
"angular",
|
|
70
|
-
"admin",
|
|
71
|
-
"headless",
|
|
72
|
-
"index.d.ts",
|
|
73
|
-
"integrations",
|
|
74
|
-
"migration",
|
|
75
|
-
"react",
|
|
76
|
-
"richtexteditor",
|
|
77
|
-
"server",
|
|
78
|
-
"svelte",
|
|
79
|
-
"vue"
|
|
80
|
-
],
|
|
81
|
-
"peerDependencies": {
|
|
82
|
-
"react": ">=18",
|
|
83
|
-
"svelte": ">=3",
|
|
84
|
-
"vue": ">=3"
|
|
85
|
-
},
|
|
86
|
-
"peerDependenciesMeta": {
|
|
87
|
-
"react": {
|
|
88
|
-
"optional": true
|
|
89
|
-
},
|
|
90
|
-
"svelte": {
|
|
91
|
-
"optional": true
|
|
92
|
-
},
|
|
93
|
-
"vue": {
|
|
94
|
-
"optional": true
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
"keywords": [
|
|
98
|
-
"rich-text-editor",
|
|
99
|
-
"wysiwyg",
|
|
100
|
-
"editor",
|
|
101
|
-
"html-editor",
|
|
102
|
-
"structured-content",
|
|
103
|
-
"json",
|
|
104
|
-
"markdown",
|
|
105
|
-
"react",
|
|
106
|
-
"vue",
|
|
107
|
-
"angular",
|
|
108
|
-
"svelte",
|
|
109
|
-
"headless",
|
|
110
|
-
"use-editor",
|
|
111
|
-
"ssr",
|
|
112
|
-
"server-rendering",
|
|
113
|
-
"text-editor",
|
|
114
|
-
"contenteditable",
|
|
115
|
-
"toolbar",
|
|
116
|
-
"formatting",
|
|
117
|
-
"image-editor",
|
|
118
|
-
"pdf-export",
|
|
119
|
-
"i18n",
|
|
120
|
-
"plugins",
|
|
121
|
-
"javascript",
|
|
122
|
-
"vanilla-js",
|
|
123
|
-
"no-dependencies",
|
|
124
|
-
"slash-commands",
|
|
125
|
-
"mentions",
|
|
126
|
-
"track-changes",
|
|
127
|
-
"comments",
|
|
128
|
-
"revision-history",
|
|
129
|
-
"collaboration",
|
|
130
|
-
"yjs",
|
|
131
|
-
"crdt",
|
|
132
|
-
"ai-toolkit",
|
|
133
|
-
"ai-editor"
|
|
134
|
-
],
|
|
135
|
-
"author": "CuteSoft Components Inc.",
|
|
136
|
-
"license": "SEE LICENSE IN https://richtexteditor.com/license",
|
|
137
|
-
"homepage": "https://richtexteditor.com",
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
"
|
|
141
|
-
}
|
|
142
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@richscripts/richtexteditor",
|
|
3
|
+
"publishConfig": {
|
|
4
|
+
"access": "public"
|
|
5
|
+
},
|
|
6
|
+
"version": "2.7.1",
|
|
7
|
+
"description": "A full-featured JavaScript rich text editor (WYSIWYG) with toolbar, plugins, i18n support, a built-in AI Toolkit (Ask AI, AI Chat, AI Review drawer, BYOK resolver), structured content APIs (JSON/Markdown), and an optional collaboration / review stack: slash commands, @mentions, human-author Track Changes, threaded comments, revision history, and Yjs-backed presence. Ships first-class React, Vue, Angular and Svelte bindings, a headless \"bring your own UI\" core, and server-safe conversion helpers.",
|
|
8
|
+
"main": "./richtexteditor/rte.js",
|
|
9
|
+
"bin": {
|
|
10
|
+
"rte-migration-report": "./migration/cli.js"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"test:server": "node tests/run-all.test.js",
|
|
14
|
+
"test:admin": "node tests/run-all.test.js",
|
|
15
|
+
"test": "node tests/run-all.test.js",
|
|
16
|
+
"smoke:pack": "node tests/smoke-pack.js",
|
|
17
|
+
"artifact:migration": "node scripts/build-migration-fidelity-artifact.js",
|
|
18
|
+
"artifact:migration:runtime": "npm --prefix vendor-runtime-tests ci && npm --prefix vendor-runtime-tests run generate && node scripts/build-migration-fidelity-artifact.js",
|
|
19
|
+
"guard:protected": "node tests/guard-protected-bundle.js",
|
|
20
|
+
"prepublishOnly": "node tests/guard-protected-bundle.js"
|
|
21
|
+
},
|
|
22
|
+
"types": "./index.d.ts",
|
|
23
|
+
"style": "./richtexteditor/rte_theme_default.css",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./index.d.ts",
|
|
27
|
+
"default": "./richtexteditor/rte.js"
|
|
28
|
+
},
|
|
29
|
+
"./angular": {
|
|
30
|
+
"types": "./angular/index.d.ts",
|
|
31
|
+
"default": "./angular/index.ts"
|
|
32
|
+
},
|
|
33
|
+
"./react": {
|
|
34
|
+
"types": "./react/index.d.ts",
|
|
35
|
+
"default": "./react/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./vue": {
|
|
38
|
+
"types": "./vue/index.d.ts",
|
|
39
|
+
"default": "./vue/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./svelte": {
|
|
42
|
+
"types": "./svelte/index.d.ts",
|
|
43
|
+
"default": "./svelte/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./headless": {
|
|
46
|
+
"types": "./headless/index.d.ts",
|
|
47
|
+
"default": "./headless/index.js"
|
|
48
|
+
},
|
|
49
|
+
"./migration": {
|
|
50
|
+
"types": "./migration/index.d.ts",
|
|
51
|
+
"default": "./migration/index.js"
|
|
52
|
+
},
|
|
53
|
+
"./server": {
|
|
54
|
+
"types": "./server/index.d.ts",
|
|
55
|
+
"default": "./server/index.js"
|
|
56
|
+
},
|
|
57
|
+
"./admin": {
|
|
58
|
+
"types": "./admin/index.d.ts",
|
|
59
|
+
"default": "./admin/index.js"
|
|
60
|
+
},
|
|
61
|
+
"./integrations/shared": {
|
|
62
|
+
"types": "./integrations/shared.d.ts",
|
|
63
|
+
"default": "./integrations/shared.js"
|
|
64
|
+
},
|
|
65
|
+
"./richtexteditor/*": "./richtexteditor/*",
|
|
66
|
+
"./package.json": "./package.json"
|
|
67
|
+
},
|
|
68
|
+
"files": [
|
|
69
|
+
"angular",
|
|
70
|
+
"admin",
|
|
71
|
+
"headless",
|
|
72
|
+
"index.d.ts",
|
|
73
|
+
"integrations",
|
|
74
|
+
"migration",
|
|
75
|
+
"react",
|
|
76
|
+
"richtexteditor",
|
|
77
|
+
"server",
|
|
78
|
+
"svelte",
|
|
79
|
+
"vue"
|
|
80
|
+
],
|
|
81
|
+
"peerDependencies": {
|
|
82
|
+
"react": ">=18",
|
|
83
|
+
"svelte": ">=3",
|
|
84
|
+
"vue": ">=3"
|
|
85
|
+
},
|
|
86
|
+
"peerDependenciesMeta": {
|
|
87
|
+
"react": {
|
|
88
|
+
"optional": true
|
|
89
|
+
},
|
|
90
|
+
"svelte": {
|
|
91
|
+
"optional": true
|
|
92
|
+
},
|
|
93
|
+
"vue": {
|
|
94
|
+
"optional": true
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"keywords": [
|
|
98
|
+
"rich-text-editor",
|
|
99
|
+
"wysiwyg",
|
|
100
|
+
"editor",
|
|
101
|
+
"html-editor",
|
|
102
|
+
"structured-content",
|
|
103
|
+
"json",
|
|
104
|
+
"markdown",
|
|
105
|
+
"react",
|
|
106
|
+
"vue",
|
|
107
|
+
"angular",
|
|
108
|
+
"svelte",
|
|
109
|
+
"headless",
|
|
110
|
+
"use-editor",
|
|
111
|
+
"ssr",
|
|
112
|
+
"server-rendering",
|
|
113
|
+
"text-editor",
|
|
114
|
+
"contenteditable",
|
|
115
|
+
"toolbar",
|
|
116
|
+
"formatting",
|
|
117
|
+
"image-editor",
|
|
118
|
+
"pdf-export",
|
|
119
|
+
"i18n",
|
|
120
|
+
"plugins",
|
|
121
|
+
"javascript",
|
|
122
|
+
"vanilla-js",
|
|
123
|
+
"no-dependencies",
|
|
124
|
+
"slash-commands",
|
|
125
|
+
"mentions",
|
|
126
|
+
"track-changes",
|
|
127
|
+
"comments",
|
|
128
|
+
"revision-history",
|
|
129
|
+
"collaboration",
|
|
130
|
+
"yjs",
|
|
131
|
+
"crdt",
|
|
132
|
+
"ai-toolkit",
|
|
133
|
+
"ai-editor"
|
|
134
|
+
],
|
|
135
|
+
"author": "CuteSoft Components Inc.",
|
|
136
|
+
"license": "SEE LICENSE IN https://richtexteditor.com/license",
|
|
137
|
+
"homepage": "https://richtexteditor.com",
|
|
138
|
+
"bugs": {
|
|
139
|
+
"url": "https://github.com/richtexteditor/richtexteditor/issues",
|
|
140
|
+
"email": "support@richtexteditor.com"
|
|
141
|
+
},
|
|
142
|
+
"repository": {
|
|
143
|
+
"type": "git",
|
|
144
|
+
"url": "git+https://github.com/richtexteditor/richtexteditor.git"
|
|
145
|
+
}
|
|
146
|
+
}
|