@ui5/builder 5.0.0-alpha.1 → 5.0.0-alpha.3

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/CHANGELOG.md CHANGED
@@ -4,6 +4,44 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html
4
4
 
5
5
  A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v4.0.11...HEAD).
6
6
 
7
+ ## [5.0.0-alpha.3](https://github.com/UI5/cli/compare/builder-v5.0.0-alpha.2...builder-v5.0.0-alpha.3) (2026-02-13)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * Change Markdown syntax to [@example](https://github.com/example) in one place ([f7e2e73](https://github.com/UI5/cli/commit/f7e2e732570e3948d87c200ed5d64f65891a866d))
13
+ * Fix gray code blocks in Markdown ([1cdd610](https://github.com/UI5/cli/commit/1cdd61060bd592b5c5f573635444d5ba37a8dc98))
14
+ * Remove unnecessary space ([892ebca](https://github.com/UI5/cli/commit/892ebcadbd9ac4a3c0db84c7fb12c8c1e5daa1b6))
15
+
16
+
17
+ ### Dependencies
18
+
19
+ * Bump escape-unicode from 0.2.0 to 0.3.0 ([#1160](https://github.com/UI5/cli/issues/1160)) ([90d07bd](https://github.com/UI5/cli/commit/90d07bdf9703e1072a8453a58302c00ac60ad83e))
20
+ * Bump workerpool from 9.3.4 to 10.0.1 ([#1171](https://github.com/UI5/cli/issues/1171)) ([1f659b4](https://github.com/UI5/cli/commit/1f659b405038f91f6aa62d0cc29c32376e4e24d3))
21
+ * The following workspace dependencies were updated
22
+ * dependencies
23
+ * @ui5/fs bumped from ^5.0.0-alpha.2 to ^5.0.0-alpha.3
24
+ * @ui5/logger bumped from ^5.0.0-alpha.2 to ^5.0.0-alpha.3
25
+ * devDependencies
26
+ * @ui5/project bumped from ^5.0.0-alpha.2 to ^5.0.0-alpha.3
27
+
28
+ ## [5.0.0-alpha.2](https://github.com/UI5/cli/compare/builder-v5.0.0-alpha.1...builder-v5.0.0-alpha.2) (2025-12-15)
29
+
30
+
31
+ ### chore
32
+
33
+ * **builder:** Synchronize ui5-cli-packages versions
34
+
35
+
36
+ ### Dependencies
37
+
38
+ * The following workspace dependencies were updated
39
+ * dependencies
40
+ * @ui5/fs bumped from ^5.0.0-alpha.1 to ^5.0.0-alpha.2
41
+ * @ui5/logger bumped from ^5.0.0-alpha.1 to ^5.0.0-alpha.2
42
+ * devDependencies
43
+ * @ui5/project bumped from ^5.0.0-alpha.1 to ^5.0.0-alpha.2
44
+
7
45
  <a name="5.0.0-alpha.1"></a>
8
46
  ## [5.0.0-alpha.1](https://github.com/UI5/cli/compare/builder-v5.0.0-alpha.0...builder-v5.0.0-alpha.1) (2025-12-10)
9
47
 
@@ -56,6 +56,7 @@ class BundleResolver {
56
56
  * in the resource pool.
57
57
  */
58
58
  const missingModules = Object.create(null);
59
+ const ignoreMissingModules = pool.getIgnoreMissingModules();
59
60
  /**
60
61
  * Names of modules that are included in non-decomposable bundles.
61
62
  * If they occur in the missingModules, then this is not an error.
@@ -123,7 +124,7 @@ class BundleResolver {
123
124
  done = pool.findResourceWithInfo(resourceName)
124
125
  .catch( (err) => {
125
126
  // if the caller provided an error message, log it
126
- if ( msg ) {
127
+ if ( msg && !ignoreMissingModules ) {
127
128
  missingModules[resourceName] ??= [];
128
129
  missingModules[resourceName].push(msg);
129
130
  }
@@ -84,9 +84,10 @@ class ModuleInfo {
84
84
  * global scope. If a module declares global variables, all of them will be exported
85
85
  * with additional code of the form:
86
86
  *
87
- * <pre>
88
- * this["name"] = name;
89
- * </pre>
87
+ * ```js
88
+ * this["name"] = name;
89
+ * ```
90
+ *
90
91
  *
91
92
  * To avoid this, developers can either add "name" to the <code>ignoreGlobals</code>
92
93
  * attribute of a raw-module or they can completely suppress embedding of the module
@@ -141,10 +141,11 @@ export default class ResourceFilterList {
141
141
  * and vice versa.
142
142
  *
143
143
  * Example:
144
- * <pre>
144
+ * ```
145
145
  * !sap/ui/core/
146
146
  * +sap/ui/core/utils/
147
- * </pre>
147
+ * ```
148
+ *
148
149
  * excludes everything from sap/ui/core, but includes everything from the subpackage sap/ui/core/utils/.
149
150
  *
150
151
  * Note that the filter operates on the full name of each resource. If a resource name
@@ -29,10 +29,11 @@
29
29
  *
30
30
  * Contains functions to consume tokens on an input string.
31
31
  *
32
- * @example
32
+ * ```js
33
33
  * sap.ui.require(["sap/base/util/JSTokenizer"], function(JSTokenizer){
34
34
  * JSTokenizer().parseJS("{test:'123'}"); // {test:'123'}
35
35
  * });
36
+ * ```
36
37
  *
37
38
  * @class sap/base/util/JSTokenizer
38
39
  * @since 1.58
@@ -57,7 +57,10 @@ const log = getLogger("builder:processors:bundlers:moduleBundler");
57
57
  * denote an arbitrary number of characters or folder names.
58
58
  * Excludes should be marked with a leading exclamation mark '!'. The order of filters is relevant; a later
59
59
  * exclusion overrides an earlier inclusion, and vice versa.
60
- * @example <caption>List of modules as glob patterns that should be in- or excluded</caption>
60
+ *
61
+ * <caption>List of modules as glob patterns that should be in- or excluded</caption>
62
+ *
63
+ * ```js
61
64
  * // Includes everything from "some/path/to/module/",
62
65
  * // but excludes the subfolder "some/path/to/module/to/be/excluded/"
63
66
  * const section = {
@@ -66,6 +69,7 @@ const log = getLogger("builder:processors:bundlers:moduleBundler");
66
69
  * "!some/path/to/module/to/be/excluded/"
67
70
  * ]
68
71
  * };
72
+ * ```
69
73
  *
70
74
  * @property {boolean} [resolve=false] Whether (transitive) dependencies of modules that match the given filters
71
75
  * should be resolved and added to the module set
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Node script to create cross-library API index files for use in the UI5 SDKs.
3
3
  *
4
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
5
5
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Node script to preprocess api.json files for use in the UI5 SDKs.
3
3
  *
4
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
5
5
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * JSDoc3 plugin for UI5 documentation generation.
3
3
  *
4
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
5
5
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * JSDoc3 template for UI5 documentation generation.
3
3
  *
4
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
5
5
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Node script to parse type strings.
3
3
  *
4
- * (c) Copyright 2025 SAP SE or an SAP affiliate company.
4
+ * (c) Copyright 2026 SAP SE or an SAP affiliate company.
5
5
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
6
6
  */
7
7
 
@@ -491,11 +491,18 @@ async function createManifest(
491
491
  }
492
492
  }
493
493
 
494
- return {
494
+ const libraryMetadata = {
495
495
  i18n: i18n(),
496
496
  css: css(),
497
497
  content: content()
498
498
  };
499
+
500
+ if (process.env.UI5_CLI_EXPERIMENTAL_BUNDLE_INFO_PRELOAD) {
501
+ // Add flag indicating that the (currently experimental) bundleVersion 2 preload bundling is used
502
+ libraryMetadata.bundleVersion = 2;
503
+ }
504
+
505
+ return libraryMetadata;
499
506
  }
500
507
 
501
508
  const sapUI5 = {
@@ -441,6 +441,12 @@ class ManifestEnhancer {
441
441
 
442
442
  if (this.manifest["sap.app"].type === "library") {
443
443
  await this.processSapUi5LibraryI18n();
444
+
445
+ if (process.env.UI5_CLI_EXPERIMENTAL_BUNDLE_INFO_PRELOAD) {
446
+ // Add flag indicating that the (currently experimental) bundleVersion 2 preload bundling is used
447
+ this.manifest["sap.ui5"].library ??= {};
448
+ this.manifest["sap.ui5"].library.bundleVersion = 2;
449
+ }
444
450
  } else {
445
451
  await Promise.all([
446
452
  this.processSapAppI18n(),
@@ -1,4 +1,4 @@
1
- import escapeUnicode from "escape-unicode";
1
+ import {escapeUnicode} from "escape-unicode";
2
2
 
3
3
  /**
4
4
  * @public
@@ -57,10 +57,10 @@ const escapeNonAscii = function(string) {
57
57
  /**
58
58
  * Escapes non ASCII characters with unicode escape sequences.
59
59
  *
60
- * @example
60
+ * ```js
61
61
  * const encoding = nonAsciiEscaper.getEncodingFromAlias("ISO-8859-1");
62
62
  * nonAsciiEscaper({resources, options: {encoding}});
63
- *
63
+ * ```
64
64
  *
65
65
  * @public
66
66
  * @function default
@@ -28,14 +28,14 @@ function getTimestamp() {
28
28
  * @typedef {Object<string, {lazy: boolean}>} ManifestLibraries
29
29
  *
30
30
  * sample:
31
- * <pre>
31
+ * ```json
32
32
  * {
33
33
  * "sap.chart": {
34
34
  * "lazy": true
35
35
  * },
36
36
  * "sap.f": { }
37
37
  * }
38
- * </pre>
38
+ * ```
39
39
  */
40
40
 
41
41
  /**
@@ -366,14 +366,16 @@ const processLibraryInfo = async (libraryInfo) => {
366
366
  * @param {string} parameters.options.rootProjectVersion Version of the root project
367
367
  * @param {module:@ui5/builder/processors/versionInfoGenerator~LibraryInfo[]} parameters.options.libraryInfos Array of
368
368
  * objects representing libraries,
369
- * e.g. <pre>
369
+ * e.g.
370
+ * ```json
370
371
  * {
371
372
  * name: "lib.x",
372
373
  * version: "1.0.0",
373
374
  * libraryManifest: @ui5/fs/Resource,
374
375
  * embeddedManifests: @ui5/fs/Resource[]
375
376
  * }
376
- * </pre>
377
+ * ```
378
+ *
377
379
  * @returns {Promise<@ui5/fs/Resource[]>} Promise resolving with an array containing the versionInfo resource
378
380
  */
379
381
 
@@ -1,3 +1,4 @@
1
+ import semver from "semver";
1
2
  import {getLogger} from "@ui5/logger";
2
3
  const log = getLogger("builder:tasks:bundlers:generateLibraryPreload");
3
4
  import moduleBundler from "../../processors/bundlers/moduleBundler.js";
@@ -32,6 +33,32 @@ function getDefaultLibraryPreloadFilters(namespace, excludes) {
32
33
  return filters;
33
34
  }
34
35
 
36
+ function getExperimentalDefaultLibraryPreloadFilters(namespace, excludes) {
37
+ const filters = [
38
+ `${namespace}/library.js`,
39
+ `!${namespace}/**/*-preload.js`, // exclude all bundles
40
+ `!${namespace}/designtime/`,
41
+ `!${namespace}/**/*.designtime.js`,
42
+ `!${namespace}/**/*.support.js`
43
+ ];
44
+
45
+ if (Array.isArray(excludes)) {
46
+ const allFilterExcludes = negateFilters(excludes);
47
+ // Add configured excludes at the end of filter list
48
+ allFilterExcludes.forEach((filterExclude) => {
49
+ // Allow all excludes (!) and limit re-includes (+) to the library namespace
50
+ if (filterExclude.startsWith("!") || filterExclude.startsWith(`+${namespace}/`)) {
51
+ filters.push(filterExclude);
52
+ } else {
53
+ log.warn(`Configured preload exclude contains invalid re-include: !${filterExclude.substr(1)}. ` +
54
+ `Re-includes must start with the library's namespace ${namespace}`);
55
+ }
56
+ });
57
+ }
58
+
59
+ return filters;
60
+ }
61
+
35
62
  function getBundleDefinition(namespace, excludes) {
36
63
  // Note: This configuration is only used when no bundle definition in ui5.yaml exists (see "skipBundles" parameter)
37
64
 
@@ -106,6 +133,69 @@ function getBundleDefinition(namespace, excludes) {
106
133
  };
107
134
  }
108
135
 
136
+ function getBundleInfoPreloadDefinition(namespace, excludes, coreVersion) {
137
+ const sections = [{
138
+ mode: "preload",
139
+ filters: getExperimentalDefaultLibraryPreloadFilters(namespace, excludes),
140
+ resolve: true
141
+ },
142
+ {
143
+ mode: "bundleInfo",
144
+ name: `${namespace}/_library-content.js`,
145
+ filters: getDefaultLibraryPreloadFilters(namespace, excludes),
146
+ resolve: false,
147
+ resolveConditional: false,
148
+ renderer: true
149
+ }];
150
+
151
+ if (coreVersion) {
152
+ const parsedVersion = semver.parse(coreVersion);
153
+ let targetUi5CoreVersionMajor = parsedVersion.major;
154
+
155
+ // legacy-free versions include changes of the upcoming major version
156
+ // so we should treat them the same as the next major version
157
+ if (
158
+ parsedVersion.prerelease.includes("legacy-free") ||
159
+ parsedVersion.prerelease.includes("legacy-free-SNAPSHOT") // Maven snapshot version
160
+ ) {
161
+ targetUi5CoreVersionMajor += 1;
162
+ }
163
+ if (parsedVersion) {
164
+ if (targetUi5CoreVersionMajor >= 2) {
165
+ // Do not include manifest.json in UI5 2.x and higher to allow for loading it upfront for all libraries
166
+ sections.unshift({
167
+ mode: "provided",
168
+ filters: [
169
+ `${namespace}/manifest.json`,
170
+ ]
171
+ });
172
+ }
173
+ }
174
+ }
175
+
176
+ return {
177
+ name: `${namespace}/library-preload.js`,
178
+ sections,
179
+ };
180
+ }
181
+
182
+ function getContentBundleDefinition(namespace, excludes) {
183
+ return {
184
+ name: `${namespace}/_library-content.js`,
185
+ sections: [{
186
+ mode: "provided",
187
+ filters: getExperimentalDefaultLibraryPreloadFilters(namespace, excludes),
188
+ resolve: true
189
+ }, {
190
+ mode: "preload",
191
+ filters: getDefaultLibraryPreloadFilters(namespace, excludes),
192
+ resolve: false,
193
+ resolveConditional: false,
194
+ renderer: true
195
+ }]
196
+ };
197
+ }
198
+
109
199
  function getDesigntimeBundleDefinition(namespace) {
110
200
  return {
111
201
  name: `${namespace}/designtime/library-preload.designtime.js`,
@@ -258,6 +348,7 @@ export default async function({workspace, taskUtil, options: {skipBundles = [],
258
348
  }
259
349
  const coreVersion = taskUtil?.getProject("sap.ui.core")?.getVersion();
260
350
  const allowStringBundling = taskUtil?.getProject().getSpecVersion().lt("4.0");
351
+ const createBundleInfoPreload = !!process.env.UI5_CLI_EXPERIMENTAL_BUNDLE_INFO_PRELOAD;
261
352
  const execModuleBundlerIfNeeded = ({options, resources}) => {
262
353
  if (skipBundles.includes(options.bundleDefinition.name)) {
263
354
  log.verbose(`Skipping generation of bundle ${options.bundleDefinition.name}`);
@@ -271,7 +362,9 @@ export default async function({workspace, taskUtil, options: {skipBundles = [],
271
362
  return moduleBundler({options, resources});
272
363
  };
273
364
 
274
- return nonDbgWorkspace.byGlob("/**/*.{js,json,xml,html,properties,library,js.map}").then(async (resources) => {
365
+ return nonDbgWorkspace.byGlob(
366
+ "/resources/**/*.{js,json,xml,html,properties,library,js.map}"
367
+ ).then(async (resources) => {
275
368
  // Find all libraries and create a library-preload.js bundle
276
369
 
277
370
  let p = Promise.resolve();
@@ -299,8 +392,8 @@ export default async function({workspace, taskUtil, options: {skipBundles = [],
299
392
  return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.HasDebugVariant);
300
393
  }
301
394
  });
302
- unoptimizedResources =
303
- await unoptimizedWorkspace.byGlob("/**/*.{js,json,xml,html,properties,library,js.map}");
395
+ unoptimizedResources = await unoptimizedWorkspace.byGlob(
396
+ "/resources/**/*.{js,json,xml,html,properties,library,js.map}");
304
397
 
305
398
  unoptimizedModuleNameMapping = createModuleNameMapping({
306
399
  resources: unoptimizedResources,
@@ -390,42 +483,117 @@ export default async function({workspace, taskUtil, options: {skipBundles = [],
390
483
  const libraryNamespaceMatch = libraryIndicatorPath.match(libraryNamespacePattern);
391
484
  if (libraryNamespaceMatch && libraryNamespaceMatch[1]) {
392
485
  const libraryNamespace = libraryNamespaceMatch[1];
393
- const results = await Promise.all([
394
- execModuleBundlerIfNeeded({
395
- options: {
396
- bundleDefinition: getBundleDefinition(libraryNamespace, excludes),
397
- bundleOptions: {
398
- optimize: true,
399
- ignoreMissingModules: true
400
- }
401
- },
402
- resources
403
- }),
404
- execModuleBundlerIfNeeded({
405
- options: {
406
- bundleDefinition: getDesigntimeBundleDefinition(libraryNamespace),
407
- bundleOptions: {
408
- optimize: true,
409
- ignoreMissingModules: true,
410
- skipIfEmpty: true
411
- }
412
- },
413
- resources
414
- }),
415
- execModuleBundlerIfNeeded({
416
- options: {
417
- bundleDefinition: getSupportFilesBundleDefinition(libraryNamespace),
418
- bundleOptions: {
419
- optimize: false,
420
- ignoreMissingModules: true,
421
- skipIfEmpty: true
422
- }
423
- // Note: Although the bundle uses optimize=false, there is
424
- // no moduleNameMapping needed, as support files are excluded from minification.
425
- },
426
- resources
427
- })
428
- ]);
486
+ let results;
487
+ if (!createBundleInfoPreload) {
488
+ // Regular bundling
489
+ results = await Promise.all([
490
+ execModuleBundlerIfNeeded({
491
+ options: {
492
+ bundleDefinition: getBundleDefinition(libraryNamespace, excludes),
493
+ bundleOptions: {
494
+ optimize: true,
495
+ ignoreMissingModules: true
496
+ }
497
+ },
498
+ resources
499
+ }),
500
+ execModuleBundlerIfNeeded({
501
+ options: {
502
+ bundleDefinition: getDesigntimeBundleDefinition(libraryNamespace),
503
+ bundleOptions: {
504
+ optimize: true,
505
+ ignoreMissingModules: true,
506
+ skipIfEmpty: true
507
+ }
508
+ },
509
+ resources
510
+ }),
511
+ execModuleBundlerIfNeeded({
512
+ options: {
513
+ bundleDefinition: getSupportFilesBundleDefinition(libraryNamespace),
514
+ bundleOptions: {
515
+ optimize: false,
516
+ ignoreMissingModules: true,
517
+ skipIfEmpty: true
518
+ }
519
+ // Note: Although the bundle uses optimize=false, there is
520
+ // no moduleNameMapping needed, as support files are excluded from minification.
521
+ },
522
+ resources
523
+ })
524
+ ]);
525
+ } else {
526
+ log.info(
527
+ `Using experimental bundling with bundle info preload ` +
528
+ `for library ${libraryNamespace} in project ${projectName}`);
529
+ log.info(`Detected sap.ui.core version is ${coreVersion || "unknown"}`);
530
+
531
+
532
+ if (skipBundles.includes(`${libraryNamespace}/library-preload.js`) &&
533
+ !skipBundles.includes(`${libraryNamespace}/_library-content.js`)) {
534
+ // If the standard preload bundle is skipped, ensure to also skip the content bundle,
535
+ // since they depend on each other
536
+ skipBundles.push(`${libraryNamespace}/_library-content.js`);
537
+ }
538
+
539
+ if (skipBundles.includes(`${libraryNamespace}/_library-content.js`) &&
540
+ !skipBundles.includes(`${libraryNamespace}/library-preload.js`)) {
541
+ // If the content bundle is skipped, the default preload bundle must be skipped as well
542
+ throw new Error(
543
+ `A custom bundle '${libraryNamespace}/_library-content.js' has been defined, ` +
544
+ `but it also requires a corresponding custom bundle definition for ` +
545
+ `'${libraryNamespace}/library-preload.js'`);
546
+ }
547
+
548
+ // Experimental bundling with bundle info preload
549
+ results = await Promise.all([
550
+ execModuleBundlerIfNeeded({
551
+ options: {
552
+ bundleDefinition:
553
+ getBundleInfoPreloadDefinition(libraryNamespace, excludes, coreVersion),
554
+ bundleOptions: {
555
+ optimize: true,
556
+ ignoreMissingModules: true
557
+ }
558
+ },
559
+ resources
560
+ }),
561
+ execModuleBundlerIfNeeded({
562
+ options: {
563
+ bundleDefinition: getContentBundleDefinition(libraryNamespace, excludes),
564
+ bundleOptions: {
565
+ optimize: true,
566
+ ignoreMissingModules: true
567
+ }
568
+ },
569
+ resources
570
+ }),
571
+ execModuleBundlerIfNeeded({
572
+ options: {
573
+ bundleDefinition: getDesigntimeBundleDefinition(libraryNamespace),
574
+ bundleOptions: {
575
+ optimize: true,
576
+ ignoreMissingModules: true,
577
+ skipIfEmpty: true
578
+ }
579
+ },
580
+ resources
581
+ }),
582
+ execModuleBundlerIfNeeded({
583
+ options: {
584
+ bundleDefinition: getSupportFilesBundleDefinition(libraryNamespace),
585
+ bundleOptions: {
586
+ optimize: false,
587
+ ignoreMissingModules: true,
588
+ skipIfEmpty: true
589
+ }
590
+ // Note: Although the bundle uses optimize=false, there is
591
+ // no moduleNameMapping needed, as support files are excluded from minification.
592
+ },
593
+ resources
594
+ })
595
+ ]);
596
+ }
429
597
  const bundles = Array.prototype.concat.apply([], results).filter(Boolean);
430
598
  return Promise.all(bundles.map(({bundle, sourceMap} = {}) => {
431
599
  if (bundle) {
@@ -55,7 +55,9 @@ function getCreatorOptions(projectName) {
55
55
  * Therefore it is also not supported in combination with self-contained build.
56
56
  * </p>
57
57
  *
58
- * @example <caption>sample resources.json</caption>
58
+ * <caption>sample resources.json</caption>
59
+ *
60
+ * ```js
59
61
  * const resourcesJson = {
60
62
  * "_version": "1.1.0",
61
63
  * "resources": [
@@ -95,6 +97,7 @@ function getCreatorOptions(projectName) {
95
97
  * }
96
98
  * ]
97
99
  * };
100
+ * ```
98
101
  *
99
102
  * @public
100
103
  * @function default
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/builder",
3
- "version": "5.0.0-alpha.1",
3
+ "version": "5.0.0-alpha.3",
4
4
  "description": "UI5 CLI - Builder",
5
5
  "author": {
6
6
  "name": "SAP SE",
@@ -33,39 +33,19 @@
33
33
  "npm": ">= 8"
34
34
  },
35
35
  "scripts": {
36
- "test": "npm run lint && npm run coverage && npm run depcheck",
36
+ "test": "npm run lint && npm run coverage",
37
37
  "lint": "eslint ./",
38
38
  "unit": "rimraf test/tmp && ava",
39
39
  "unit-verbose": "rimraf test/tmp && cross-env UI5_LOG_LVL=verbose ava --verbose --serial",
40
40
  "unit-watch": "rimraf test/tmp && ava --watch",
41
41
  "unit-inspect": "cross-env UI5_LOG_LVL=verbose ava debug --break",
42
- "coverage": "rimraf test/tmp && nyc ava --node-arguments=\"--experimental-loader=@istanbuljs/esm-loader-hook\"",
43
- "preversion": "npm test",
44
- "version": "git-chglog --sort semver --next-tag v$npm_package_version -o CHANGELOG.md v4.0.0.. && git add CHANGELOG.md",
45
- "prepublishOnly": "git push --follow-tags",
46
- "release-note": "git-chglog --sort semver -c .chglog/release-config.yml v$npm_package_version",
47
- "depcheck": "depcheck --ignores @ui5/builder,@istanbuljs/esm-loader-hook,catharsis,rimraf,jsdoc --parsers='**/*.js:es6,**/*.cjs:es6'"
42
+ "coverage": "rimraf test/tmp && nyc ava --node-arguments=\"--experimental-loader=@istanbuljs/esm-loader-hook\""
48
43
  },
49
44
  "files": [
50
45
  "CHANGELOG.md",
51
46
  "lib/**",
52
47
  "LICENSES/**"
53
48
  ],
54
- "ava": {
55
- "files": [
56
- "test/lib/**/*.js"
57
- ],
58
- "watchMode": {
59
- "ignoreChanges": [
60
- "test/tmp/**"
61
- ]
62
- },
63
- "nodeArguments": [
64
- "--loader=esmock",
65
- "--no-warnings"
66
- ],
67
- "workerThreads": false
68
- },
69
49
  "nyc": {
70
50
  "reporter": [
71
51
  "lcov",
@@ -111,10 +91,10 @@
111
91
  },
112
92
  "dependencies": {
113
93
  "@jridgewell/sourcemap-codec": "^1.5.5",
114
- "@ui5/fs": "^5.0.0-alpha.1",
115
- "@ui5/logger": "^5.0.0-alpha.1",
94
+ "@ui5/fs": "^5.0.0-alpha.3",
95
+ "@ui5/logger": "^5.0.0-alpha.3",
116
96
  "cheerio": "1.0.0",
117
- "escape-unicode": "^0.2.0",
97
+ "escape-unicode": "^0.3.0",
118
98
  "escope": "^4.0.0",
119
99
  "espree": "^10.4.0",
120
100
  "graceful-fs": "^4.2.11",
@@ -123,16 +103,15 @@
123
103
  "pretty-data": "^0.40.0",
124
104
  "semver": "^7.7.2",
125
105
  "terser": "^5.44.0",
126
- "workerpool": "^9.3.4",
106
+ "workerpool": "^10.0.1",
127
107
  "xml2js": "^0.6.2"
128
108
  },
129
109
  "devDependencies": {
130
110
  "@istanbuljs/esm-loader-hook": "^0.3.0",
131
111
  "@jridgewell/trace-mapping": "^0.3.31",
132
- "@ui5/project": "^5.0.0-alpha.1",
112
+ "@ui5/project": "^5.0.0-alpha.3",
133
113
  "ava": "^6.4.1",
134
114
  "cross-env": "^7.0.3",
135
- "depcheck": "^1.4.7",
136
115
  "eslint": "^9.36.0",
137
116
  "esmock": "^2.7.3",
138
117
  "line-column": "^1.0.2",