@ui5/webcomponents-tools 0.0.0-4738ea0dc → 0.0.0-47cc17a26

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 (125) hide show
  1. package/CHANGELOG.md +1912 -0
  2. package/LICENSE.txt +201 -0
  3. package/README.md +7 -9
  4. package/assets-meta.js +12 -11
  5. package/bin/dev.js +3 -2
  6. package/bin/ui5nps.js +265 -0
  7. package/components-package/eslint.js +51 -15
  8. package/components-package/nps.js +122 -77
  9. package/components-package/postcss.components.js +1 -21
  10. package/components-package/postcss.themes.js +1 -26
  11. package/components-package/vite.config.js +7 -10
  12. package/components-package/wdio.js +43 -15
  13. package/icons-collection/nps.js +31 -20
  14. package/lib/amd-to-es6/index.js +107 -0
  15. package/lib/amd-to-es6/no-remaining-require.js +33 -0
  16. package/lib/cem/cem.js +12 -0
  17. package/lib/cem/custom-elements-manifest.config.mjs +530 -0
  18. package/lib/cem/event.mjs +168 -0
  19. package/lib/cem/patch/@custom-elements-manifest/analyzer/cli.js +128 -0
  20. package/lib/cem/patch/@custom-elements-manifest/analyzer/package.json +59 -0
  21. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/browser-entrypoint.js +23 -0
  22. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/create.js +117 -0
  23. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/arrow-function.js +26 -0
  24. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/class-jsdoc.js +157 -0
  25. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/classes.js +20 -0
  26. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/creators/createArrowFunction.js +17 -0
  27. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/creators/createAttribute.js +24 -0
  28. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/creators/createClass.js +301 -0
  29. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/creators/createClassField.js +26 -0
  30. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/creators/createFunctionLike.js +73 -0
  31. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/creators/createMixin.js +33 -0
  32. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/creators/createVariable.js +22 -0
  33. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/creators/handlers.js +338 -0
  34. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/custom-elements-define-calls.js +90 -0
  35. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/exports.js +156 -0
  36. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/function-like.js +24 -0
  37. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/mixins.js +29 -0
  38. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/reexported-wrapped-mixin-exports.js +84 -0
  39. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/analyse-phase/variables.js +34 -0
  40. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/collect-phase/collect-imports.js +101 -0
  41. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/catalyst/catalyst.js +11 -0
  42. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/catalyst/controller.js +34 -0
  43. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/catalyst-major-2/catalyst.js +11 -0
  44. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/catalyst-major-2/controller.js +34 -0
  45. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/decorators/attr.js +53 -0
  46. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/decorators/custom-element-decorator.js +36 -0
  47. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/fast/fast.js +7 -0
  48. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/lit/lit.js +13 -0
  49. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/lit/member-denylist.js +21 -0
  50. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/lit/method-denylist.js +20 -0
  51. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/lit/property-decorator.js +94 -0
  52. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/lit/static-properties.js +121 -0
  53. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/lit/utils.js +66 -0
  54. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/framework-plugins/stencil/stencil.js +129 -0
  55. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/index.js +80 -0
  56. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/link-phase/cleanup-classes.js +25 -0
  57. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/link-phase/field-denylist.js +22 -0
  58. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/link-phase/method-denylist.js +25 -0
  59. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/post-processing/apply-inheritance.js +78 -0
  60. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/post-processing/is-custom-element.js +34 -0
  61. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/post-processing/link-class-to-tagname.js +27 -0
  62. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/post-processing/remove-unexported-declarations.js +23 -0
  63. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/features/post-processing/resolve-initializers.js +52 -0
  64. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/utils/ast-helpers.js +186 -0
  65. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/utils/cli-helpers.js +164 -0
  66. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/utils/exports.js +44 -0
  67. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/utils/find-external-manifests.js +67 -0
  68. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/utils/imports.js +25 -0
  69. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/utils/index.js +71 -0
  70. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/utils/jsdoc.js +19 -0
  71. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/utils/manifest-helpers.js +194 -0
  72. package/lib/cem/patch/@custom-elements-manifest/analyzer/src/utils/mixins.js +112 -0
  73. package/lib/cem/schema-internal.json +1422 -0
  74. package/lib/cem/schema.json +1098 -0
  75. package/lib/cem/types-internal.d.ts +808 -0
  76. package/lib/cem/types.d.ts +736 -0
  77. package/lib/cem/utils.mjs +423 -0
  78. package/lib/cem/validate.js +76 -0
  79. package/lib/copy-and-watch/index.js +105 -97
  80. package/lib/copy-list/index.js +16 -10
  81. package/lib/create-icons/index.js +32 -25
  82. package/lib/create-illustrations/index.js +88 -45
  83. package/lib/create-new-component/Component.js +74 -0
  84. package/lib/create-new-component/ComponentTemplate.js +12 -0
  85. package/lib/create-new-component/index.js +62 -101
  86. package/lib/css-processors/css-processor-components.mjs +92 -0
  87. package/lib/css-processors/css-processor-themes.mjs +102 -0
  88. package/lib/css-processors/scope-variables.mjs +49 -0
  89. package/lib/css-processors/shared.mjs +46 -0
  90. package/lib/dev-server/custom-hot-update-plugin.js +39 -0
  91. package/lib/dev-server/{dev-server.js → dev-server.mjs} +26 -14
  92. package/lib/dev-server/virtual-index-html-plugin.js +24 -21
  93. package/lib/generate-js-imports/illustrations.js +77 -64
  94. package/lib/generate-json-imports/i18n.js +62 -69
  95. package/lib/generate-json-imports/themes.js +34 -43
  96. package/lib/hbs2lit/src/compiler.js +9 -6
  97. package/lib/hbs2lit/src/litVisitor2.js +42 -17
  98. package/lib/hbs2lit/src/svgProcessor.js +12 -5
  99. package/lib/hbs2ui5/RenderTemplates/LitRenderer.js +39 -6
  100. package/lib/hbs2ui5/index.js +23 -6
  101. package/lib/i18n/defaults.js +15 -9
  102. package/lib/i18n/toJSON.js +15 -11
  103. package/lib/icons-hash/icons-hash.mjs +149 -0
  104. package/lib/postcss-combine-duplicated-selectors/index.js +12 -5
  105. package/lib/remove-dev-mode/remove-dev-mode.mjs +51 -0
  106. package/lib/rimraf/rimraf.js +31 -0
  107. package/lib/scoping/get-all-tags.js +10 -3
  108. package/lib/scoping/lint-src.js +8 -7
  109. package/lib/scoping/scope-test-pages.js +2 -1
  110. package/lib/test-runner/test-runner.js +10 -2
  111. package/package.json +36 -23
  112. package/tsconfig.json +18 -0
  113. package/components-package/wdio.sync.js +0 -360
  114. package/lib/esm-abs-to-rel/index.js +0 -58
  115. package/lib/generate-custom-elements-manifest/index.js +0 -327
  116. package/lib/jsdoc/config.json +0 -29
  117. package/lib/jsdoc/configTypescript.json +0 -29
  118. package/lib/jsdoc/plugin.js +0 -2468
  119. package/lib/jsdoc/preprocess.js +0 -146
  120. package/lib/jsdoc/template/publish.js +0 -4120
  121. package/lib/postcss-css-to-esm/index.js +0 -90
  122. package/lib/postcss-css-to-json/index.js +0 -47
  123. package/lib/postcss-new-files/index.js +0 -36
  124. package/lib/postcss-p/postcss-p.mjs +0 -14
  125. package/lib/replace-global-core/index.js +0 -25
@@ -1,327 +0,0 @@
1
- const fs = require("fs").promises;
2
- const path = require("path");
3
- // https://github.com/webcomponents/custom-elements-manifest/blob/main/schema.json
4
-
5
- const inputDir = process.argv[2];
6
- const outputDir = process.argv[3];
7
-
8
- const camelToKebabMap = new Map();
9
- const apiIndex = new Map();
10
- const forbiddenAttributeTypes = ["object", "array"];
11
-
12
- const camelToKebabCase = string => {
13
- if (!camelToKebabMap.has(string)) {
14
- const result = string.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
15
- camelToKebabMap.set(string, result);
16
- }
17
- return camelToKebabMap.get(string);
18
- };
19
-
20
- const generateJavaScriptExport = entity => {
21
- return {
22
- declaration: generateRefenrece(entity.name),
23
- deprecated: !!entity.deprecated,
24
- kind: "js",
25
- name: "default",
26
- };
27
- };
28
-
29
- const generateCustomElementExport = entity => {
30
- return {
31
- declaration: {
32
- name: entity.basename,
33
- module: `${entity.module}.js`,
34
- },
35
- deprecated: !!entity.deprecated,
36
- kind: "custom-element-definition",
37
- name: entity.tagname,
38
- };
39
- };
40
-
41
- const generateJavaScriptModule = entity => {
42
- return {
43
- kind: "javascript-module",
44
- path: `${entity.basename}.js`,
45
- declarations: [
46
- generateCustomElementDeclaration(entity),
47
- ],
48
- exports: [
49
- generateJavaScriptExport(entity),
50
- generateCustomElementExport(entity),
51
- ],
52
- };
53
- };
54
-
55
- const generateSingleClassField = classField => {
56
- let generatedClassField = {
57
- deprecated: !!classField.deprecated,
58
- kind: "field",
59
- name: classField.name,
60
- privacy: classField.visibility,
61
- static: !!classField.static,
62
- type: generateType(classField.type),
63
- };
64
-
65
- if (classField.defaultValue) {
66
- generatedClassField.default = classField.defaultValue;
67
- }
68
-
69
- if (classField.description) {
70
- generatedClassField.description = classField.description;
71
- }
72
-
73
- return generatedClassField;
74
- };
75
-
76
- const generateSingleParameter = parameter => {
77
- let generatedParameter = {
78
- deprecated: !!parameter.deprecated,
79
- name: parameter.name,
80
- type: generateType(parameter.type),
81
- };
82
-
83
- if (parameter.description) {
84
- generatedParameter.description = parameter.description;
85
- }
86
-
87
- if (parameter.optional) {
88
- generatedParameter.optional = parameter.optional;
89
- }
90
-
91
- return generatedParameter;
92
- };
93
-
94
- const generateParameters = (parameters) => {
95
- return parameters.reduce((newParametersArray, parameter) => {
96
- newParametersArray.push(generateSingleParameter(parameter));
97
-
98
- return newParametersArray;
99
- }, []);
100
- };
101
-
102
- const generateSingleClassMethod = classMethod => {
103
- let generatedClassMethod = {
104
- deprecated: !!classMethod.deprecated,
105
- kind: "method",
106
- name: classMethod.name,
107
- privacy: classMethod.visibility,
108
- static: classMethod.static,
109
- };
110
-
111
- if (classMethod.description) {
112
- generatedClassMethod.description = classMethod.description;
113
- }
114
-
115
- if (classMethod.parameters && classMethod.parameters.length) {
116
- generatedClassMethod.parameters = generateParameters(classMethod.parameters);
117
- }
118
-
119
- if (classMethod.returnValue) {
120
- generatedClassMethod.return = {
121
- type: generateType(classMethod.returnValue.type),
122
- };
123
-
124
- if (classMethod.returnValue.description) {
125
- generatedClassMethod.return.description = classMethod.returnValue.type;
126
- }
127
- }
128
-
129
- return generatedClassMethod;
130
- };
131
-
132
- const generateClassFields = classFields => {
133
- return classFields.reduce((newClassFieldsArray, classField) => {
134
- newClassFieldsArray.push(generateSingleClassField(classField));
135
-
136
- return newClassFieldsArray;
137
- }, []);
138
- };
139
-
140
- const generateClassMethods = classMethods => {
141
- return classMethods.reduce((newClassMethodsArray, classMethod) => {
142
- newClassMethodsArray.push(generateSingleClassMethod(classMethod));
143
-
144
- return newClassMethodsArray;
145
- }, []);
146
- };
147
-
148
- const generateMembers = (classFields, classMethods) => {
149
- return [...generateClassFields(classFields), ...generateClassMethods(classMethods)];
150
- };
151
-
152
- const generateType = type => {
153
- const dataType = apiIndex.get(type);
154
-
155
- return {
156
- text: dataType && dataType.name.includes(".types.") ?
157
- filterPublicApi(dataType.properties)
158
- .map(prop => `"${prop.name}"`)
159
- .join(" | ") : type,
160
- };
161
- };
162
-
163
- const generateSingleAttribute = attribute => {
164
- let generatedAttribute = {
165
- default: attribute.defaultValue,
166
- deprecated: !!attribute.deprecated,
167
- fieldName: attribute.name,
168
- name: camelToKebabCase(attribute.name),
169
- type: generateType(attribute.type),
170
- };
171
-
172
- if (attribute.description) {
173
- generatedAttribute.description = attribute.description;
174
- }
175
-
176
- return generatedAttribute;
177
- };
178
-
179
- const generateAttributes = attributes => {
180
- attributes = attributes.reduce((newAttributesArray, attribute) => {
181
- newAttributesArray.push(generateSingleAttribute(attribute));
182
-
183
- return newAttributesArray;
184
- }, []);
185
-
186
- return attributes;
187
- };
188
-
189
- const generateSingleEvent = event => {
190
- let generatedEvent = {
191
- deprecated: !!event.deprecated,
192
- name: event.name,
193
- type: event.native === "true" ? "NativeEvent" : "CustomEvent",
194
- };
195
-
196
- if (event.description) {
197
- generatedEvent.description = event.description;
198
- }
199
-
200
- return generatedEvent;
201
- };
202
-
203
- const generateEvents = events => {
204
- events = events.reduce((newEventsArray, event) => {
205
- newEventsArray.push(generateSingleEvent(event));
206
-
207
- return newEventsArray;
208
- }, []);
209
-
210
- return events;
211
- };
212
-
213
- const generateSingleSlot = slot => {
214
- return {
215
- deprecated: !!slot.deprecated,
216
- description: slot.description,
217
- name: slot.name,
218
- };
219
- };
220
-
221
- const generateSlots = slots => {
222
- slots = slots.reduce((newSlotsArray, event) => {
223
- newSlotsArray.push(generateSingleSlot(event));
224
-
225
- return newSlotsArray;
226
- }, []);
227
-
228
- return slots;
229
- };
230
-
231
- const generateCustomElementDeclaration = entity => {
232
- let generatedCustomElementDeclaration = {
233
- deprecated: !!entity.deprecated,
234
- customElement: true,
235
- kind: entity.basename,
236
- name: entity.basename,
237
- tagName: entity.tagname,
238
- };
239
-
240
- const slots = filterPublicApi(entity.slots);
241
- const events = filterPublicApi(entity.events);
242
- const classFields = filterPublicApi(entity.properties);
243
- const classMethods = filterPublicApi(entity.methods);
244
- const attributes = classFields.filter(property => {
245
- return property.noattribute !== "true" && property.readonly !== "true" && !forbiddenAttributeTypes.includes(property.type.toLowerCase());
246
- });
247
-
248
- if (slots.length) {
249
- generatedCustomElementDeclaration.slots = generateSlots(slots);
250
- }
251
-
252
- if (events.length) {
253
- generatedCustomElementDeclaration.events = generateEvents(events);
254
- }
255
-
256
- if (attributes.length) {
257
- generatedCustomElementDeclaration.attributes = generateAttributes(attributes);
258
- }
259
-
260
- if (entity.description) {
261
- generatedCustomElementDeclaration.description = entity.description;
262
- }
263
-
264
- if (classFields.length || classMethods.length) {
265
- generatedCustomElementDeclaration.members = generateMembers(classFields, classMethods);
266
- }
267
-
268
- if (entity.extends && entity.extends !== "HTMLElement") {
269
- generatedCustomElementDeclaration.superclass = generateRefenrece(entity.extends);
270
- }
271
-
272
- return generatedCustomElementDeclaration;
273
- };
274
-
275
- const generateRefenrece = (entityName) => {
276
- let packageName;
277
- let basename;
278
-
279
- if (!entityName) {
280
- throw new Error("JSDoc error: entity not found in api.json.");
281
- }
282
-
283
- if (entityName.includes(".")) {
284
- basename = entityName.split(".").pop();
285
- } else {
286
- basename = entityName
287
- }
288
-
289
- if (entityName.includes("sap.ui.webc.main")) {
290
- packageName = "@ui5/webcomponents";
291
- } else if (entityName.includes("sap.ui.webc.fiori")) {
292
- packageName = "@ui5/webcomponents-fiori";
293
- } else if (entityName.includes("sap.ui.webc.base")) {
294
- packageName = "@ui5/webcomponents-base";
295
- }
296
-
297
- return {
298
- module: `${basename}.js`,
299
- name: `${basename}`,
300
- package: packageName,
301
- };
302
- };
303
-
304
- const filterPublicApi = array => {
305
- return (array || []).filter(el => el.visibility === "public");
306
- };
307
-
308
- const generate = async () => {
309
- const file = JSON.parse(await fs.readFile(path.join(inputDir, "api.json")));
310
- let customElementsManifest = {
311
- schemaVersion: "1.0.0",
312
- readme: "",
313
- modules: [],
314
- };
315
-
316
- file.symbols.forEach(entity => {
317
- if (entity.tagname) {
318
- customElementsManifest.modules.push(generateJavaScriptModule(entity));
319
- }
320
- });
321
-
322
- await fs.writeFile(path.join(outputDir, "custom-elements.json"), JSON.stringify(customElementsManifest));
323
- };
324
-
325
- generate().then(() => {
326
- console.log("Custom elements manifest generated.");
327
- });
@@ -1,29 +0,0 @@
1
- {
2
- "source": {
3
- "include": "src",
4
- "excludePattern": "(/|\\\\)library-all\\.js|(/|\\\\).*-preload\\.js|^jquery-.*\\.js|^sap-.*\\.js|.+Renderer\\.lit\\.js|.*library\\.js|thirdparty"
5
- },
6
- "opts" : {
7
- "recurse": true,
8
- "template" : "template",
9
- "destination": ""
10
- },
11
- "plugins": [
12
- "./plugin.js"
13
- ],
14
- "templates" : {
15
- "ui5" : {
16
- "variants": [
17
- "apijson"
18
- ],
19
- "version": "1.62",
20
- "apiJsonFolder": "",
21
- "apiJsonFile": "dist/api.json",
22
- "includeSettingsInConstructor": false
23
- }
24
- },
25
- "tags": {
26
- "allowUnknownTags": true,
27
- "dictionaries": ["jsdoc"]
28
- }
29
- }
@@ -1,29 +0,0 @@
1
- {
2
- "source": {
3
- "include": "jsdoc-dist",
4
- "excludePattern": "(/|\\\\)library-all\\.js|(/|\\\\).*-preload\\.js|^jquery-.*\\.js|^sap-.*\\.js|.+Renderer\\.lit\\.js|.*library\\.js|thirdparty"
5
- },
6
- "opts" : {
7
- "recurse": true,
8
- "template" : "template",
9
- "destination": ""
10
- },
11
- "plugins": [
12
- "./plugin.js"
13
- ],
14
- "templates" : {
15
- "ui5" : {
16
- "variants": [
17
- "apijson"
18
- ],
19
- "version": "1.62",
20
- "apiJsonFolder": "",
21
- "apiJsonFile": "dist/api.json",
22
- "includeSettingsInConstructor": false
23
- }
24
- },
25
- "tags": {
26
- "allowUnknownTags": true,
27
- "dictionaries": ["jsdoc"]
28
- }
29
- }