Skip to content

Commit 7ec0167

Browse files
feat(js-api-editor): add @liferay/js-api-editor package with word-count types
CKEditor5 v46 switched to an ESM-only distribution where types are declared under the package root but the actual entry point is dist/index.js. Consuming those types from inside js-toolkit is not feasible: js-toolkit's tsconfig is configured for CommonJS/moduleResolution:node, and its CI tooling (liferay-workspace-scripts) applies workspace-wide constraints that conflict with the moduleResolution:bundler and TypeScript 5 required by CKEditor5 v46. To avoid dragging js-toolkit into those requirements (and to avoid interfering with parallel work on js-api), the editor types are extracted to a new independent package, @liferay/js-api-editor, placed at projects/js-api-editor. This package has its own tsconfig (moduleResolution:bundler, TS5) and no dependency on js-toolkit's tooling.
1 parent 152c6ee commit 7ec0167

8 files changed

Lines changed: 190 additions & 18 deletions

File tree

projects/js-api-editor/.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*.d.ts
2+
*.js
3+
4+
/*.tgz
5+
/tsconfig.tsbuildinfo

projects/js-api-editor/.npmignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/.my.vim
2+
/tsconfig.json
3+
/tsconfig.tsbuildinfo
4+
5+
/*.tgz

projects/js-toolkit/packages/js-api/editor/index.ts renamed to projects/js-api-editor/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* SPDX-FileCopyrightText: © 2020 Liferay, Inc. <https://liferay.com>
3-
* SPDX-License-Identifier: LGPL-3.0-or-later
3+
* SPDX-License-Identifier: MIT
44
*/
55

66
/**
@@ -10,6 +10,8 @@
1010
* https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html
1111
*/
1212

13+
export {WordCount} from '@ckeditor/ckeditor5-word-count/dist/index.js';
14+
1315
export interface EditorConfigTransformer<T> {
1416
(args: T): T;
1517
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"author": "Liferay Frontend Infrastructure Team <pt-frontend-infrastructure@liferay.com>",
3+
"dependencies": {
4+
"@ckeditor/ckeditor5-word-count": "*"
5+
},
6+
"description": "Public Liferay DXP Editor API to be used from Client Extensions.",
7+
"devDependencies": {
8+
"typescript": "^5.0.4"
9+
},
10+
"exports": {
11+
".": {
12+
"default": "./index.js",
13+
"types": "./index.d.ts"
14+
}
15+
},
16+
"license": "LGPL-3.0",
17+
"main": "./index.js",
18+
"name": "@liferay/js-api-editor",
19+
"repository": {
20+
"type": "git",
21+
"url": "https://github.com/liferay/liferay-js-api-editor.git"
22+
},
23+
"scripts": {
24+
"build": "tsc"
25+
},
26+
"types": "./index.d.ts",
27+
"version": "0.1.0"
28+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"compilerOptions": {
3+
"declaration": true,
4+
"skipLibCheck": true,
5+
"lib": ["DOM", "ES2020"],
6+
"module": "ESNext",
7+
"moduleResolution": "bundler",
8+
"outDir": ".",
9+
"rootDir": ".",
10+
"target": "ES2020"
11+
},
12+
"exclude": ["node_modules"],
13+
"include": ["*.ts"]
14+
}

projects/js-toolkit/packages/js-api/package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@
88
"type": "git",
99
"url": "https://github.com/liferay/liferay-frontend-projects.git"
1010
},
11+
"devDependencies": {
12+
"typescript": "^5.0.0"
13+
},
1114
"scripts": {
12-
"build": "tsc",
15+
"build": "./node_modules/.bin/tsc",
1316
"ci": "liferay-workspace-scripts ci",
1417
"clean": "find . \\( -name '*.d.ts' -o -name '*.js' \\) -exec rm -v {} \\; && rm -v ./tsconfig.tsbuildinfo",
1518
"format": "liferay-workspace-scripts format",
@@ -21,5 +24,5 @@
2124
"preversion": "liferay-workspace-scripts ci",
2225
"test": "liferay-workspace-scripts test"
2326
},
24-
"version": "0.6.2"
27+
"version": "0.7.0"
2528
}

projects/js-toolkit/packages/js-api/tsconfig.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
"compilerOptions": {
44
"composite": true,
55
"lib": ["DOM", "ES2020"],
6+
"module": "ESNext",
7+
"moduleResolution": "node",
68
"outDir": ".",
79
"rootDir": ".",
810
"target": "ES2020"

yarn.lock

Lines changed: 128 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -998,6 +998,86 @@
998998
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
999999
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
10001000

1001+
"@ckeditor/ckeditor5-core@48.2.0":
1002+
version "48.2.0"
1003+
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-core/-/ckeditor5-core-48.2.0.tgz#3075df68b5d097471e27e59050422af64be9a34f"
1004+
integrity sha512-ooTO/BxSF2hx4MKcihq4zFWiNOGO8bVN8fE2I/El6qdnHaTV+brZwd5Ge0ykxEpy7uydmqGNeeoywMnY4j2I/A==
1005+
dependencies:
1006+
"@ckeditor/ckeditor5-engine" "48.2.0"
1007+
"@ckeditor/ckeditor5-ui" "48.2.0"
1008+
"@ckeditor/ckeditor5-utils" "48.2.0"
1009+
"@ckeditor/ckeditor5-watchdog" "48.2.0"
1010+
es-toolkit "1.45.1"
1011+
1012+
"@ckeditor/ckeditor5-editor-multi-root@48.2.0":
1013+
version "48.2.0"
1014+
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-editor-multi-root/-/ckeditor5-editor-multi-root-48.2.0.tgz#54634612f00db8f0378b2275e47317f8622cbd90"
1015+
integrity sha512-PkLK5OCanAZ3wjG5pR4bCfzH/UkKD0UTAOfgmOAt3+9ORXReiSQmt5p4npkDnpr60wQ/9dkAx+bCF5FhvM/RxA==
1016+
dependencies:
1017+
"@ckeditor/ckeditor5-core" "48.2.0"
1018+
"@ckeditor/ckeditor5-engine" "48.2.0"
1019+
"@ckeditor/ckeditor5-ui" "48.2.0"
1020+
"@ckeditor/ckeditor5-utils" "48.2.0"
1021+
es-toolkit "1.45.1"
1022+
1023+
"@ckeditor/ckeditor5-engine@48.2.0":
1024+
version "48.2.0"
1025+
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-engine/-/ckeditor5-engine-48.2.0.tgz#1966fe5168e292dcca8f129e189c3e5baebaec45"
1026+
integrity sha512-80ku17bnA+U8JHrTMPMSyDZY0B9RRogfGqEw8hYhOHj6N96sbMNXQyvnnSh/szwPyAIDo2cTgbOlKkqUNn+4rA==
1027+
dependencies:
1028+
"@ckeditor/ckeditor5-utils" "48.2.0"
1029+
es-toolkit "1.45.1"
1030+
1031+
"@ckeditor/ckeditor5-icons@48.2.0":
1032+
version "48.2.0"
1033+
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-icons/-/ckeditor5-icons-48.2.0.tgz#f3f1f28432ffd03b14b52edc2a77a9b0e5016301"
1034+
integrity sha512-w5WVrweq8iaXhf7msnZ9b9GtlGSM1jQe6jvezVs+X4OkZd+QMkkQ+ROPp1TZniXLUKx3+Q872KUPxsl9FBSMMg==
1035+
1036+
"@ckeditor/ckeditor5-ui@48.2.0":
1037+
version "48.2.0"
1038+
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-ui/-/ckeditor5-ui-48.2.0.tgz#76d7b6aa8537ba18022b4b96d17396fc42bf8618"
1039+
integrity sha512-J43uo8TPR5awC8fw7CBlgx+tXGiyD2kuomELEJeaeoOw26ADEpLfnYZKlB1mb+VKnXJ43IHuqv/6GFF1hPKhpg==
1040+
dependencies:
1041+
"@ckeditor/ckeditor5-core" "48.2.0"
1042+
"@ckeditor/ckeditor5-editor-multi-root" "48.2.0"
1043+
"@ckeditor/ckeditor5-engine" "48.2.0"
1044+
"@ckeditor/ckeditor5-icons" "48.2.0"
1045+
"@ckeditor/ckeditor5-utils" "48.2.0"
1046+
"@types/color-convert" "2.0.4"
1047+
color-convert "3.1.0"
1048+
color-parse "2.0.2"
1049+
es-toolkit "1.45.1"
1050+
vanilla-colorful "0.7.2"
1051+
1052+
"@ckeditor/ckeditor5-utils@48.2.0":
1053+
version "48.2.0"
1054+
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-utils/-/ckeditor5-utils-48.2.0.tgz#49be7348d74a3df8fdf9d6165a637b81e33dd25e"
1055+
integrity sha512-htCvovEGW2MCKnnX8T0jwoxGqsLiwBp8wg65sr5nXx8i+B9IUAHZlnIK1VNE8g1ZLl1qhoaQTpbQTL12W5sTTw==
1056+
dependencies:
1057+
"@ckeditor/ckeditor5-ui" "48.2.0"
1058+
es-toolkit "1.45.1"
1059+
1060+
"@ckeditor/ckeditor5-watchdog@48.2.0":
1061+
version "48.2.0"
1062+
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-watchdog/-/ckeditor5-watchdog-48.2.0.tgz#0e9958d86fef9222a8659bd14341d1e1af2c7a1a"
1063+
integrity sha512-o8i6a20WzgxGOqk2ZYgithtDyfVjNog7I/NECsDFyEU1u8hkrO/IdYblUOEFQgT8QySIcUBKiV+5fA8wZSv+XA==
1064+
dependencies:
1065+
"@ckeditor/ckeditor5-core" "48.2.0"
1066+
"@ckeditor/ckeditor5-engine" "48.2.0"
1067+
"@ckeditor/ckeditor5-utils" "48.2.0"
1068+
es-toolkit "1.45.1"
1069+
1070+
"@ckeditor/ckeditor5-word-count@*":
1071+
version "48.2.0"
1072+
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-word-count/-/ckeditor5-word-count-48.2.0.tgz#806cba7d99af92156eff94ce61ddfb3f27e5a0d4"
1073+
integrity sha512-CzXyNmkd2nqo9TR+JeQQWPXSh8sP3akqaKy5OUMlDee7l849heOn+q6mMesqzWxySdq51cy/YgfHOJnfWuv2eA==
1074+
dependencies:
1075+
"@ckeditor/ckeditor5-core" "48.2.0"
1076+
"@ckeditor/ckeditor5-engine" "48.2.0"
1077+
"@ckeditor/ckeditor5-ui" "48.2.0"
1078+
"@ckeditor/ckeditor5-utils" "48.2.0"
1079+
es-toolkit "1.45.1"
1080+
10011081
"@clayui/css@3.31.0":
10021082
version "3.31.0"
10031083
resolved "https://registry.yarnpkg.com/@clayui/css/-/css-3.31.0.tgz#fd0d47a6b051ec84c7d2fb99cec267930edcd93d"
@@ -1739,21 +1819,8 @@
17391819
dependencies:
17401820
defer-to-connect "^2.0.0"
17411821

1742-
"@testing-library/dom-8.11.1@npm:@testing-library/dom@8.11.1":
1743-
version "8.11.1"
1744-
resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.11.1.tgz#03fa2684aa09ade589b460db46b4c7be9fc69753"
1745-
integrity sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg==
1746-
dependencies:
1747-
"@babel/code-frame" "^7.10.4"
1748-
"@babel/runtime" "^7.12.5"
1749-
"@types/aria-query" "^4.2.0"
1750-
aria-query "^5.0.0"
1751-
chalk "^4.1.0"
1752-
dom-accessibility-api "^0.5.9"
1753-
lz-string "^1.4.4"
1754-
pretty-format "^27.0.2"
1755-
1756-
"@testing-library/dom@^8.0.0":
1822+
"@testing-library/dom-8.11.1@npm:@testing-library/dom@8.11.1", "@testing-library/dom@^8.0.0":
1823+
name "@testing-library/dom-8.11.1"
17571824
version "8.11.1"
17581825
resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.11.1.tgz#03fa2684aa09ade589b460db46b4c7be9fc69753"
17591826
integrity sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg==
@@ -1923,6 +1990,18 @@
19231990
"@types/node" "*"
19241991
"@types/responselike" "*"
19251992

1993+
"@types/color-convert@2.0.4":
1994+
version "2.0.4"
1995+
resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.4.tgz#843398ae71e951dc5415d202dfd5e43108823eeb"
1996+
integrity sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ==
1997+
dependencies:
1998+
"@types/color-name" "^1.1.0"
1999+
2000+
"@types/color-name@^1.1.0":
2001+
version "1.1.5"
2002+
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.5.tgz#3a3510c4e3661f7707c5ae9c67d726986e6e147d"
2003+
integrity sha512-j2K5UJqGTxeesj6oQuGpMgifpT5k9HprgQd8D1Y0lOFqKHl3PJu5GMeS4Y5EgjS55AE6OQxf8mPED9uaGbf4Cg==
2004+
19262005
"@types/connect-history-api-fallback@^1.3.5":
19272006
version "1.3.5"
19282007
resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae"
@@ -5113,6 +5192,13 @@ collection-visit@^1.0.0:
51135192
map-visit "^1.0.0"
51145193
object-visit "^1.0.0"
51155194

5195+
color-convert@3.1.0:
5196+
version "3.1.0"
5197+
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-3.1.0.tgz#ce16ebb832f9d7522649ed9e11bc0ccb9433a524"
5198+
integrity sha512-TVoqAq8ZDIpK5lsQY874DDnu65CSsc9vzq0wLpNQ6UMBq81GSZocVazPiBbYGzngzBOIRahpkTzCLVe2at4MfA==
5199+
dependencies:
5200+
color-name "^2.0.0"
5201+
51165202
color-convert@^1.9.0:
51175203
version "1.9.3"
51185204
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
@@ -5132,11 +5218,23 @@ color-name@1.1.3:
51325218
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
51335219
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
51345220

5221+
color-name@^2.0.0:
5222+
version "2.1.0"
5223+
resolved "https://registry.yarnpkg.com/color-name/-/color-name-2.1.0.tgz#0b677385c1c4b4edfdeaf77e38fa338e3a40b693"
5224+
integrity sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==
5225+
51355226
color-name@~1.1.4:
51365227
version "1.1.4"
51375228
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
51385229
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
51395230

5231+
color-parse@2.0.2:
5232+
version "2.0.2"
5233+
resolved "https://registry.yarnpkg.com/color-parse/-/color-parse-2.0.2.tgz#37b46930424924060988edf25b24e6ffb4a1dc3f"
5234+
integrity sha512-eCtOz5w5ttWIUcaKLiktF+DxZO1R9KLNY/xhbV6CkhM7sR3GhVghmt6X6yOnzeaM24po+Z9/S1apbXMwA3Iepw==
5235+
dependencies:
5236+
color-name "^2.0.0"
5237+
51405238
color-support@^1.1.3:
51415239
version "1.1.3"
51425240
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
@@ -6494,6 +6592,11 @@ es-to-primitive@^1.2.1:
64946592
is-date-object "^1.0.1"
64956593
is-symbol "^1.0.2"
64966594

6595+
es-toolkit@1.45.1:
6596+
version "1.45.1"
6597+
resolved "https://registry.yarnpkg.com/es-toolkit/-/es-toolkit-1.45.1.tgz#21b28b2bd43178fd4c9c937c445d5bcaccce907b"
6598+
integrity sha512-/jhoOj/Fx+A+IIyDNOvO3TItGmlMKhtX8ISAHKE90c4b/k1tqaqEZ+uUqfpU8DMnW5cgNJv606zS55jGvza0Xw==
6599+
64976600
es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50:
64986601
version "0.10.53"
64996602
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
@@ -17388,6 +17491,11 @@ typescript@4.4.2:
1738817491
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.2.tgz#6d618640d430e3569a1dfb44f7d7e600ced3ee86"
1738917492
integrity sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==
1739017493

17494+
typescript@^5.0.0, typescript@^5.0.4:
17495+
version "5.9.3"
17496+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f"
17497+
integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==
17498+
1739117499
typical@^5.0.0, typical@^5.2.0:
1739217500
version "5.2.0"
1739317501
resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066"
@@ -17797,6 +17905,11 @@ value-or-function@^3.0.0:
1779717905
resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813"
1779817906
integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=
1779917907

17908+
vanilla-colorful@0.7.2:
17909+
version "0.7.2"
17910+
resolved "https://registry.yarnpkg.com/vanilla-colorful/-/vanilla-colorful-0.7.2.tgz#3fb1f4b9f15b797e20fd1ce8e0364f33b073f4a2"
17911+
integrity sha512-z2YZusTFC6KnLERx1cgoIRX2CjPRP0W75N+3CC6gbvdX5Ch47rZkEMGO2Xnf+IEmi3RiFLxS18gayMA27iU7Kg==
17912+
1780017913
vary@0.1.0:
1780117914
version "0.1.0"
1780217915
resolved "https://registry.yarnpkg.com/vary/-/vary-0.1.0.tgz#df0945899e93c0cc5bd18cc8321d9d21e74f6176"

0 commit comments

Comments
 (0)