Skip to content

Commit af84547

Browse files
authored
Merge pull request #317 from ckeditor/remove-ckeditor5-premium-features-from-peer-dependencies
Fix: Improve ESM support by adding missing file extensions in imports. Other: Remove `ckeditor5-premium-features` from `peerDependencies`.
2 parents 2dadb48 + eb91b1b commit af84547

12 files changed

+54
-61
lines changed

.eslintrc.cjs

+6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ module.exports = {
2424
' * For licensing, see LICENSE.md.',
2525
' */'
2626
] } ],
27+
'ckeditor5-rules/require-file-extensions-in-imports': [
28+
'error',
29+
{
30+
extensions: [ '.ts', '.js', '.json' ]
31+
}
32+
],
2733
'ckeditor5-rules/prevent-license-key-leak': 'error',
2834
'vue/multi-word-component-names': 'off',
2935
'no-unused-vars': 'off',

demos/editor-cdn/App.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
<script setup lang="ts">
4040
import { ref, reactive, computed } from 'vue';
41-
import useCKEditorCloud from '../../src/useCKEditorCloud';
41+
import useCKEditorCloud from '../../src/useCKEditorCloud.js';
4242
import type { EventInfo, ClassicEditor } from 'https://cdn.ckeditor.com/typings/ckeditor5.d.ts';
4343
4444
// Load CKEditor from the CDN

package.json

+3-4
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,10 @@
3131
},
3232
"dependencies": {
3333
"lodash-es": "^4.17.21",
34-
"@ckeditor/ckeditor5-integrations-common": "^2.0.0"
34+
"@ckeditor/ckeditor5-integrations-common": "^2.1.0"
3535
},
3636
"peerDependencies": {
3737
"ckeditor5": ">=42.0.0 || ^0.0.0-nightly",
38-
"ckeditor5-premium-features": ">=42.0.0 || ^0.0.0-nightly",
3938
"vue": "^3.4.0"
4039
},
4140
"devDependencies": {
@@ -65,7 +64,7 @@
6564
"vitest": "^2.0.0",
6665
"vue": "^3.4.30",
6766
"vue-eslint-parser": "^9.1.0",
68-
"vue-tsc": "^2.0.22",
67+
"vue-tsc": "^2.1.6",
6968
"webdriverio": "^8.39.0"
7069
},
7170
"resolutions": {
@@ -79,7 +78,7 @@
7978
},
8079
"scripts": {
8180
"dev": "vite",
82-
"build": "vite build && vue-tsc --declaration --emitDeclarationOnly",
81+
"build": "tsc --noEmit && vite build && vue-tsc --emitDeclarationOnly",
8382
"test": "vitest run --coverage",
8483
"test:watch": "vitest --ui --watch",
8584
"test:check:types": "tsc --noEmit -p ./tests/tsconfig.json",

src/plugin.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export {
4242
* CDN related exports.
4343
*/
4444

45-
export { default as useCKEditorCloud } from './useCKEditorCloud';
45+
export { default as useCKEditorCloud } from './useCKEditorCloud.js';
4646

4747
export {
4848
loadCKEditorCloud,

src/shims-vue.d.ts

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3+
* For licensing, see LICENSE.md.
4+
*/
5+
6+
declare module '*.vue';

src/useCKEditorCloud.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55

66
import { toValue, type MaybeRefOrGetter } from 'vue';
7-
import { useAsync, type AsyncComposableResult } from './composables/useAsync';
7+
import { useAsync, type AsyncComposableResult } from './composables/useAsync.js';
88

99
import {
1010
loadCKEditorCloud,

tests/ckeditor.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
import { nextTick } from 'vue';
77
import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest';
88
import { mount } from '@vue/test-utils';
9-
import { Ckeditor } from '../src/plugin';
9+
import { Ckeditor } from '../src/plugin.js';
1010
import {
1111
MockEditor,
1212
ModelDocument,
1313
ViewDocument
14-
} from './_utils/mockeditor';
14+
} from './_utils/mockeditor.js';
1515

1616
describe( 'CKEditor component', () => {
1717
beforeEach( () => {

tests/composables/useAsync.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { ref } from 'vue';
88
import { flushPromises } from '@vue/test-utils';
99

1010
import { createDefer } from '@ckeditor/ckeditor5-integrations-common';
11-
import { useAsync } from '../../src/composables/useAsync';
11+
import { useAsync } from '../../src/composables/useAsync.js';
1212

1313
describe( 'useAsync', () => {
1414
it( 'should call async function and return the result in data ref', async () => {

tests/plugin/localcomponent.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { nextTick } from 'vue';
77
import { describe, it, expect } from 'vitest';
88
import { mount } from '@vue/test-utils';
99
import { Ckeditor } from '../../src/plugin.js';
10-
import { MockEditor } from '../_utils/mockeditor';
10+
import { MockEditor } from '../_utils/mockeditor.js';
1111

1212
class FooEditor extends MockEditor {}
1313

tests/useCKEditorCloud.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { ref } from 'vue';
1010
import { removeAllCkCdnResources } from '@ckeditor/ckeditor5-integrations-common/test-utils';
1111
import type { CKEditorCloudConfig } from '@ckeditor/ckeditor5-integrations-common';
1212

13-
import useCKEditorCloud from '../src/useCKEditorCloud';
13+
import useCKEditorCloud from '../src/useCKEditorCloud.js';
1414

1515
describe( 'useCKEditorCloud', () => {
1616
beforeEach( removeAllCkCdnResources );

tsconfig.json

-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
"noUnusedLocals": true,
2222
"noUnusedParameters": true,
2323
"noFallthroughCasesInSwitch": true,
24-
25-
"emitDeclarationOnly": true,
2624
"declaration": true,
2725
"declarationDir": "./dist"
2826
},

yarn.lock

+31-47
Original file line numberDiff line numberDiff line change
@@ -1196,10 +1196,10 @@
11961196
"@ckeditor/ckeditor5-utils" "43.1.0"
11971197
ckeditor5 "43.1.0"
11981198

1199-
"@ckeditor/ckeditor5-integrations-common@^2.0.0":
1200-
version "2.0.0"
1201-
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-integrations-common/-/ckeditor5-integrations-common-2.0.0.tgz#09ea8a6a6a3c01f601260a85d9af98ede78644cf"
1202-
integrity sha512-Gkt7tYVv168voQZFdN4PxVp6M5/ZgzIOrqI6uPRjuk73dYjdLCeotnEXYejE6cxyLi9m2UM2mvhXibOIKVcoPw==
1199+
"@ckeditor/ckeditor5-integrations-common@^2.1.0":
1200+
version "2.1.0"
1201+
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-integrations-common/-/ckeditor5-integrations-common-2.1.0.tgz#5e1423ff764c421d8181a35f73677610038f1fb8"
1202+
integrity sha512-vn6qMb36sl6eSCc27dvThk6xISif59MxnxZmRBC440TyP7S9ZcS0ai4yHd5QyaH70ZIe0lhS7DWdLaiKtBggVQ==
12031203

12041204
"@ckeditor/[email protected]":
12051205
version "43.1.0"
@@ -3155,24 +3155,24 @@
31553155
loupe "^3.1.1"
31563156
tinyrainbow "^1.2.0"
31573157

3158-
"@volar/[email protected].0-alpha.18", "@volar/language-core@~2.4.0-alpha.18":
3159-
version "2.4.0-alpha.18"
3160-
resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.4.0-alpha.18.tgz#dafffd68ac07c26d69de16741187fd4c06bfa345"
3161-
integrity sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==
3158+
"@volar/[email protected].5", "@volar/language-core@~2.4.1":
3159+
version "2.4.5"
3160+
resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.4.5.tgz#af8ba724b05fc4dce2339c49662e732e9c22c897"
3161+
integrity sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==
31623162
dependencies:
3163-
"@volar/source-map" "2.4.0-alpha.18"
3163+
"@volar/source-map" "2.4.5"
31643164

3165-
"@volar/[email protected].0-alpha.18":
3166-
version "2.4.0-alpha.18"
3167-
resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.4.0-alpha.18.tgz#a2413932ff6b1821ae8efcbd9249d4da3f99f223"
3168-
integrity sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==
3165+
"@volar/[email protected].5":
3166+
version "2.4.5"
3167+
resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.4.5.tgz#81223a06321aaa067b40619189b44a9f0b7ac2d8"
3168+
integrity sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==
31693169

3170-
"@volar/typescript@~2.4.0-alpha.18":
3171-
version "2.4.0-alpha.18"
3172-
resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.4.0-alpha.18.tgz#806aca9ce1bd7c48dc5fcd0fcf7f33bdd04e5b35"
3173-
integrity sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==
3170+
"@volar/typescript@~2.4.1":
3171+
version "2.4.5"
3172+
resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.4.5.tgz#1210c1e8561ac20af46348ceaf8e6e96c797063f"
3173+
integrity sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==
31743174
dependencies:
3175-
"@volar/language-core" "2.4.0-alpha.18"
3175+
"@volar/language-core" "2.4.5"
31763176
path-browserify "^1.0.1"
31773177
vscode-uri "^3.0.8"
31783178

@@ -3226,12 +3226,12 @@
32263226
de-indent "^1.0.2"
32273227
he "^1.2.0"
32283228

3229-
"@vue/language-core@2.0.29":
3230-
version "2.0.29"
3231-
resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.29.tgz#19462d786cd7a1c21dbe575b46970a57094e0357"
3232-
integrity sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==
3229+
"@vue/language-core@2.1.6":
3230+
version "2.1.6"
3231+
resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.1.6.tgz#b48186bdb9b3ef2b83e1f76d5b1ac357b3a7ed94"
3232+
integrity sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==
32333233
dependencies:
3234-
"@volar/language-core" "~2.4.0-alpha.18"
3234+
"@volar/language-core" "~2.4.1"
32353235
"@vue/compiler-dom" "^3.4.0"
32363236
"@vue/compiler-vue2" "^2.7.16"
32373237
"@vue/shared" "^3.4.0"
@@ -8115,7 +8115,7 @@ stringify-object@^3.3.0:
81158115
is-obj "^1.0.1"
81168116
is-regexp "^1.0.0"
81178117

8118-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
8118+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
81198119
version "6.0.1"
81208120
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
81218121
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -8129,13 +8129,6 @@ strip-ansi@^5.2.0:
81298129
dependencies:
81308130
ansi-regex "^4.1.0"
81318131

8132-
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
8133-
version "6.0.1"
8134-
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
8135-
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
8136-
dependencies:
8137-
ansi-regex "^5.0.1"
8138-
81398132
strip-ansi@^7.0.1, strip-ansi@^7.1.0:
81408133
version "7.1.0"
81418134
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -8736,13 +8729,13 @@ vue-eslint-parser@^9.1.0, vue-eslint-parser@^9.4.3:
87368729
lodash "^4.17.21"
87378730
semver "^7.3.6"
87388731

8739-
vue-tsc@^2.0.22:
8740-
version "2.0.29"
8741-
resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.29.tgz#bf7e9605af9fadec7fd6037d242217f5c6ad2c3b"
8742-
integrity sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q==
8732+
vue-tsc@^2.1.6:
8733+
version "2.1.6"
8734+
resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.1.6.tgz#d93fdc617da6546674301a746fd7089ea6d4543d"
8735+
integrity sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==
87438736
dependencies:
8744-
"@volar/typescript" "~2.4.0-alpha.18"
8745-
"@vue/language-core" "2.0.29"
8737+
"@volar/typescript" "~2.4.1"
8738+
"@vue/language-core" "2.1.6"
87468739
semver "^7.5.4"
87478740

87488741
vue@^3.4.30:
@@ -8879,16 +8872,7 @@ wordwrap@^1.0.0:
88798872
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
88808873
integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
88818874

8882-
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
8883-
version "7.0.0"
8884-
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
8885-
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
8886-
dependencies:
8887-
ansi-styles "^4.0.0"
8888-
string-width "^4.1.0"
8889-
strip-ansi "^6.0.0"
8890-
8891-
[email protected], wrap-ansi@^6.2.0, wrap-ansi@^7.0.0, wrap-ansi@^8.0.1, wrap-ansi@^8.1.0:
8875+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", [email protected], wrap-ansi@^6.2.0, wrap-ansi@^7.0.0, wrap-ansi@^8.0.1, wrap-ansi@^8.1.0:
88928876
version "7.0.0"
88938877
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
88948878
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==

0 commit comments

Comments
 (0)