From 80f963d4fd360d523d1a0f28d613b5b8a94c9665 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Tue, 23 Nov 2021 18:21:38 +0100 Subject: [PATCH 01/74] [INTERNAL] Enable CI for branches next, main --- .github/workflows/codeql-analysis.yml | 10 ++++++++-- .github/workflows/github-ci.yml | 10 ++++++++-- .github/workflows/reuse-compliance.yml | 10 ++++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 924b1cd65..221834124 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -2,9 +2,15 @@ name: "CodeQL" on: push: - branches: [ master ] + branches: + - master + - main + - next pull_request: - branches: [ master ] + branches: + - master + - main + - next # Execute at least once per week to get new findings without active development taking place schedule: diff --git a/.github/workflows/github-ci.yml b/.github/workflows/github-ci.yml index f467e7e3c..cbbf77c58 100644 --- a/.github/workflows/github-ci.yml +++ b/.github/workflows/github-ci.yml @@ -2,9 +2,15 @@ name: GitHub CI on: push: - branches: [ master ] + branches: + - master + - main + - next pull_request: - branches: [ master ] + branches: + - master + - main + - next jobs: test: diff --git a/.github/workflows/reuse-compliance.yml b/.github/workflows/reuse-compliance.yml index 1ecfdb5d0..a188fccc5 100644 --- a/.github/workflows/reuse-compliance.yml +++ b/.github/workflows/reuse-compliance.yml @@ -2,9 +2,15 @@ name: REUSE on: push: - branches: [ master ] + branches: + - master + - main + - next pull_request: - branches: [ master ] + branches: + - master + - main + - next jobs: compliance-check: From 7207baba29b146db709dcf2f6c4ad1337e3e62f7 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Mon, 29 Nov 2021 13:33:37 +0000 Subject: [PATCH 02/74] [INTERNAL] Bump @ui5/logger from 2.0.1 to 3.0.0-next.0 Changelog of this version: https://github.com/SAP/ui5-logger/blob/v3.0.0-next.0/CHANGELOG.md --- package-lock.json | 175 +++++++++++++++++++++++++++++++++++----------- package.json | 2 +- 2 files changed, 137 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index d9a52a045..4ee6fe4ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -589,14 +589,82 @@ "minimatch": "^3.0.3", "pretty-hrtime": "^1.0.3", "random-int": "^2.0.1" + }, + "dependencies": { + "@ui5/logger": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-2.0.1.tgz", + "integrity": "sha512-FU5moQF9HATZEIJVQxXWRsUKMveIRJNPSmH3Mptcuc05f6gKu1BWcamDaDHXmMSyoKRounY9Aok94NTQMi7eDw==", + "requires": { + "npmlog": "^4.1.2" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } } }, "@ui5/logger": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-2.0.1.tgz", - "integrity": "sha512-FU5moQF9HATZEIJVQxXWRsUKMveIRJNPSmH3Mptcuc05f6gKu1BWcamDaDHXmMSyoKRounY9Aok94NTQMi7eDw==", + "version": "3.0.0-next.0", + "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.0-next.0.tgz", + "integrity": "sha512-4c0GuaIpTJCnH+rYUvX8R7z57Xir4RgLGi7onYHFqv6Xcnhbgqkk3hTSSYDnOJ3SxG7Znuk5O4ViHvf4OFnhfQ==", "requires": { - "npmlog": "^4.1.2" + "npmlog": "^5.0.1" } }, "@vue/compiler-core": { @@ -786,9 +854,9 @@ } }, "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, "archy": { "version": "1.0.0", @@ -797,12 +865,24 @@ "dev": true }, "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "requires": { "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "argparse": { @@ -1680,6 +1760,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -2791,18 +2876,19 @@ "dev": true }, "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.1.tgz", + "integrity": "sha512-6STz6KdQgxO4S/ko+AbjlFGGdGcknluoqU+79GOFCDqqyYj5OanQf9AjxwN0jCidtT+ziPMmPSt9E4hfQ0CwIQ==", "requires": { - "aproba": "^1.0.3", + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "string-width": "^1.0.1 || ^2.0.0", + "strip-ansi": "^3.0.1 || ^4.0.0", + "wide-align": "^1.1.2" } }, "gensync": { @@ -3160,12 +3246,9 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { "version": "4.0.3", @@ -4010,14 +4093,14 @@ "dev": true }, "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" } }, "nth-check": { @@ -5225,13 +5308,27 @@ } }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } } }, "string_decoder": { diff --git a/package.json b/package.json index 6cda9843b..05772234e 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ }, "dependencies": { "@ui5/fs": "^2.0.6", - "@ui5/logger": "^2.0.1", + "@ui5/logger": "^3.0.0-next.0", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", "escope": "^3.6.0", From 0e11b6965a1d2e63a96e9b738e38975b5ac755bc Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Fri, 26 Nov 2021 11:54:17 +0100 Subject: [PATCH 03/74] [FIX] Bundler: Sort raw modules by default Unlike the documentation states, topological sorting of modules within 'raw' sections was not enabled by default. Sorting is based on dependencies only, so enabling it by default should only solve issues in case dependencies are declared but sort was not enabled. If no dependencies are defined, the order will not change. This could only break use cases where dependencies have been wrongly declared and a user relies on the current unsorted order. --- lib/lbt/bundle/Resolver.js | 2 +- test/lib/lbt/graph/topologicalSort.js | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/lbt/bundle/Resolver.js b/lib/lbt/bundle/Resolver.js index 37b180e4a..931355711 100644 --- a/lib/lbt/bundle/Resolver.js +++ b/lib/lbt/bundle/Resolver.js @@ -289,7 +289,7 @@ class BundleResolver { return collectModulesForSection(section). then( (modules) => { - if ( section.mode == SectionType.Raw && section.sort ) { + if ( section.mode == SectionType.Raw && section.sort !== false ) { // sort the modules in topological order return topologicalSort(pool, modules).then( (modules) => { log.verbose(" resolved modules (sorted): %s", modules); diff --git a/test/lib/lbt/graph/topologicalSort.js b/test/lib/lbt/graph/topologicalSort.js index 0cc6cf775..3b6cfd890 100644 --- a/test/lib/lbt/graph/topologicalSort.js +++ b/test/lib/lbt/graph/topologicalSort.js @@ -30,10 +30,17 @@ test("topologicalSort", async (t) => { t.deepEqual(topologicalSortResult, ["mydep", "myroot"]); }); - test("cyclic dependencies", async (t) => { const pool = createMockPool({"third": "mydep", "mydep": "third"}); const roots = ["myroot", "mydep", "third"]; const error = await t.throwsAsync(topologicalSort(pool, roots)); t.deepEqual(error.message, "failed to resolve cyclic dependencies: mydep,third"); }); + +test("no dependencies", async (t) => { + const pool = createMockPool({}); + const roots = ["module4", "module2", "module3", "module1"]; + const topologicalSortResult = await topologicalSort(pool, roots); + // Modules should not be sorted by any means as no dependencies are defined + t.deepEqual(topologicalSortResult, ["module4", "module2", "module3", "module1"]); +}); From ea1b022f6237a0c2e95755b24b7ce8661a5556aa Mon Sep 17 00:00:00 2001 From: Lars Kissel Date: Thu, 2 Dec 2021 13:54:28 +0100 Subject: [PATCH 04/74] [INTERNAL] Enhance replaceVersion task to handle ${project.version} pattern Ensures that the build task "replaceVersion" replaces the pattern ${project.version} equally to ${version}. JIRA: CPOUI5FOUNDATION-423 --- lib/tasks/replaceVersion.js | 2 +- test/lib/tasks/replaceVersion.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/tasks/replaceVersion.js b/lib/tasks/replaceVersion.js index 5bf16e697..a0bab9efb 100644 --- a/lib/tasks/replaceVersion.js +++ b/lib/tasks/replaceVersion.js @@ -18,7 +18,7 @@ module.exports = function({workspace, options: {pattern, version}}) { return stringReplacer({ resources: allResources, options: { - pattern: "${version}", + pattern: /\$\{(?:project\.)?version\}/g, replacement: version } }); diff --git a/test/lib/tasks/replaceVersion.js b/test/lib/tasks/replaceVersion.js index 72752f5f3..332879514 100644 --- a/test/lib/tasks/replaceVersion.js +++ b/test/lib/tasks/replaceVersion.js @@ -13,8 +13,8 @@ test("integration: replace version", (t) => { virBasePath: "/" }); - const content = "console.log('${version}');"; - const expected = "console.log('1.337.0');"; + const content = "console.log('${version} equals ${project.version}');"; + const expected = "console.log('1.337.0 equals 1.337.0');"; const resource = resourceFactory.createResource({ path: "/test.js", From 34f3c2e2df092e10ba3cfb5902df610acd53ee0a Mon Sep 17 00:00:00 2001 From: Lars Kissel Date: Mon, 29 Nov 2021 17:45:19 +0100 Subject: [PATCH 05/74] [INTERNAL] Enable buildThemes for libraries without .library Fixes that libraries using a "library.js" file but no ".library" file can also build theming files. --- lib/tasks/buildThemes.js | 8 ++++-- lib/types/library/LibraryBuilder.js | 2 +- lib/types/themeLibrary/ThemeLibraryBuilder.js | 2 +- test/lib/tasks/buildThemes.js | 28 ++++++++++++------- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/lib/tasks/buildThemes.js b/lib/tasks/buildThemes.js index 1df0bad8b..d799bf148 100644 --- a/lib/tasks/buildThemes.js +++ b/lib/tasks/buildThemes.js @@ -54,8 +54,12 @@ module.exports = async function({ */ let availableLibraries; if (pAvailableLibraries) { - availableLibraries = (await pAvailableLibraries).map((resource) => { - return resource.getPath().replace(/[^/]*\.library/i, ""); + availableLibraries = []; + (await pAvailableLibraries).forEach((resource) => { + const library = path.dirname(resource.getPath()); + if (!availableLibraries.includes(library)) { + availableLibraries.push(library); + } }); } let availableThemes; diff --git a/lib/types/library/LibraryBuilder.js b/lib/types/library/LibraryBuilder.js index 05dd66b3a..90149a18f 100644 --- a/lib/types/library/LibraryBuilder.js +++ b/lib/types/library/LibraryBuilder.js @@ -176,7 +176,7 @@ class LibraryBuilder extends AbstractBuilder { dependencies: resourceCollections.dependencies, options: { projectName: project.metadata.name, - librariesPattern: !taskUtil.isRootProject() ? "/resources/**/*.library" : undefined, + librariesPattern: !taskUtil.isRootProject() ? "/resources/**/(*.library|library.js)" : undefined, themesPattern: !taskUtil.isRootProject() ? "/resources/sap/ui/core/themes/*" : undefined, inputPattern } diff --git a/lib/types/themeLibrary/ThemeLibraryBuilder.js b/lib/types/themeLibrary/ThemeLibraryBuilder.js index 3090ed5f7..2f49912af 100644 --- a/lib/types/themeLibrary/ThemeLibraryBuilder.js +++ b/lib/types/themeLibrary/ThemeLibraryBuilder.js @@ -29,7 +29,7 @@ class ThemeLibraryBuilder extends AbstractBuilder { dependencies: resourceCollections.dependencies, options: { projectName: project.metadata.name, - librariesPattern: !taskUtil.isRootProject() ? "/resources/**/*.library" : undefined, + librariesPattern: !taskUtil.isRootProject() ? "/resources/**/(*.library|library.js)" : undefined, themesPattern: !taskUtil.isRootProject() ? "/resources/sap/ui/core/themes/*" : undefined, inputPattern: "/resources/**/themes/*/library.source.less" } diff --git a/test/lib/tasks/buildThemes.js b/test/lib/tasks/buildThemes.js index 3ebd10197..cfe6b20b4 100644 --- a/test/lib/tasks/buildThemes.js +++ b/test/lib/tasks/buildThemes.js @@ -233,8 +233,11 @@ test.serial("buildThemes (filtering libraries)", async (t) => { "sap/ui/lib1/.library": { getPath: sinon.stub().returns("/resources/sap/ui/lib1/.library") }, - "sap/ui/lib3/.library": { - getPath: sinon.stub().returns("/resources/sap/ui/lib3/.library") + "sap/ui/lib1/library.js": { + getPath: sinon.stub().returns("/resources/sap/ui/lib1/library.js") + }, + "sap/ui/lib3/library.js": { + getPath: sinon.stub().returns("/resources/sap/ui/lib3/library.js") } }; @@ -252,9 +255,10 @@ test.serial("buildThemes (filtering libraries)", async (t) => { ]); t.context.comboByGlob - .withArgs("/resources/**/*.library").resolves([ + .withArgs("/resources/**/(*.library|library.js)").resolves([ dotLibraryResources["sap/ui/lib1/.library"], - dotLibraryResources["sap/ui/lib3/.library"] + dotLibraryResources["sap/ui/lib1/library.js"], + dotLibraryResources["sap/ui/lib3/library.js"] ]); t.context.themeBuilderStub.returns([{}]); @@ -264,7 +268,7 @@ test.serial("buildThemes (filtering libraries)", async (t) => { options: { projectName: "sap.ui.test.lib1", inputPattern: "/resources/**/themes/*/library.source.less", - librariesPattern: "/resources/**/*.library" + librariesPattern: "/resources/**/(*.library|library.js)" } }); @@ -403,8 +407,11 @@ test.serial("buildThemes (filtering libraries + themes)", async (t) => { "sap/ui/lib1/.library": { getPath: sinon.stub().returns("/resources/sap/ui/lib1/.library") }, - "sap/ui/lib3/.library": { - getPath: sinon.stub().returns("/resources/sap/ui/lib3/.library") + "sap/ui/lib1/library.js": { + getPath: sinon.stub().returns("/resources/sap/ui/lib1/library.js") + }, + "sap/ui/lib3/library.js": { + getPath: sinon.stub().returns("/resources/sap/ui/lib3/library.js") } }; @@ -443,9 +450,10 @@ test.serial("buildThemes (filtering libraries + themes)", async (t) => { ]); t.context.comboByGlob - .withArgs("/resources/**/*.library").resolves([ + .withArgs("/resources/**/(*.library|library.js)").resolves([ dotLibraryResources["sap/ui/lib1/.library"], - dotLibraryResources["sap/ui/lib3/.library"] + dotLibraryResources["sap/ui/lib1/library.js"], + dotLibraryResources["sap/ui/lib3/library.js"] ]) .withArgs("/resources/sap/ui/core/themes/*", {nodir: false}).resolves([ baseThemes["sap/ui/core/themes/theme1/"], @@ -459,7 +467,7 @@ test.serial("buildThemes (filtering libraries + themes)", async (t) => { options: { projectName: "sap.ui.test.lib1", inputPattern: "/resources/**/themes/*/library.source.less", - librariesPattern: "/resources/**/*.library", + librariesPattern: "/resources/**/(*.library|library.js)", themesPattern: "/resources/sap/ui/core/themes/*" } }); From b84d26309c0fd5f6f68a7e5b66993e0f37bfd2bf Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Tue, 14 Dec 2021 10:14:32 +0000 Subject: [PATCH 06/74] In-range update of npm dependencies --- package-lock.json | 547 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 270 insertions(+), 281 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4ee6fe4ab..37d24e70e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,25 +14,25 @@ } }, "@babel/compat-data": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.0.tgz", - "integrity": "sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew==", + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", "dev": true }, "@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz", + "integrity": "sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==", "dev": true, "requires": { "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", + "@babel/generator": "^7.16.5", + "@babel/helper-compilation-targets": "^7.16.3", + "@babel/helper-module-transforms": "^7.16.5", + "@babel/helpers": "^7.16.5", + "@babel/parser": "^7.16.5", "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", + "@babel/traverse": "^7.16.5", "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", @@ -57,9 +57,9 @@ } }, "@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", - "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz", + "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==", "dev": true, "requires": { "@babel/types": "^7.16.0", @@ -95,6 +95,15 @@ } } }, + "@babel/helper-environment-visitor": { + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz", + "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, "@babel/helper-function-name": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", @@ -124,15 +133,6 @@ "@babel/types": "^7.16.0" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, "@babel/helper-module-imports": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", @@ -143,39 +143,18 @@ } }, "@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", - "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz", + "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==", "dev": true, "requires": { + "@babel/helper-environment-visitor": "^7.16.5", "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", "@babel/helper-simple-access": "^7.16.0", "@babel/helper-split-export-declaration": "^7.16.0", "@babel/helper-validator-identifier": "^7.15.7", "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", - "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", + "@babel/traverse": "^7.16.5", "@babel/types": "^7.16.0" } }, @@ -210,13 +189,13 @@ "dev": true }, "@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz", + "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==", "dev": true, "requires": { "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", + "@babel/traverse": "^7.16.5", "@babel/types": "^7.16.0" } }, @@ -290,9 +269,9 @@ } }, "@babel/parser": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.3.tgz", - "integrity": "sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw==" + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.5.tgz", + "integrity": "sha512-+Ce7T5iPNWzfu9C1aB5tN3Lyafs5xb3Ic7vBWyZL2KXT3QSdD1dD3CvgOzPmQKoNNRt6uauc0XwNJTQtXC2/Mw==" }, "@babel/template": { "version": "7.16.0", @@ -306,17 +285,18 @@ } }, "@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "version": "7.16.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz", + "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==", "dev": true, "requires": { "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", + "@babel/generator": "^7.16.5", + "@babel/helper-environment-visitor": "^7.16.5", "@babel/helper-function-name": "^7.16.0", "@babel/helper-hoist-variables": "^7.16.0", "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", + "@babel/parser": "^7.16.5", "@babel/types": "^7.16.0", "debug": "^4.1.0", "globals": "^11.1.0" @@ -350,12 +330,12 @@ } }, "@es-joy/jsdoccomment": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.12.0.tgz", - "integrity": "sha512-Gw4/j9v36IKY8ET+W0GoOzrRw17xjf21EIFFRL3zx21fF5MnqmeNpNi+PU/LKjqLpPb2Pw2XdlJbYM31VVo/PQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.13.0.tgz", + "integrity": "sha512-APVqbVPGOprb4BmjEnwbSzV+V2e/6DVIUnZG3zdW5uWXWkN0DKMCpiIy2TdBauoANKYO7RQpO8cTjIYNVSKwUA==", "dev": true, "requires": { - "comment-parser": "1.2.4", + "comment-parser": "1.3.0", "esquery": "^1.4.0", "jsdoc-type-pratt-parser": "2.0.0" } @@ -547,9 +527,9 @@ "dev": true }, "@types/node": { - "version": "16.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz", - "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==", + "version": "16.11.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz", + "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==", "dev": true, "optional": true }, @@ -598,109 +578,127 @@ "requires": { "npmlog": "^4.1.2" } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + } + } + }, + "@ui5/logger": { + "version": "3.0.0-next.0", + "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.0-next.0.tgz", + "integrity": "sha512-4c0GuaIpTJCnH+rYUvX8R7z57Xir4RgLGi7onYHFqv6Xcnhbgqkk3hTSSYDnOJ3SxG7Znuk5O4ViHvf4OFnhfQ==", + "requires": { + "npmlog": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "requires": { "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "readable-stream": "^3.6.0" } }, "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", "requires": { - "aproba": "^1.0.3", + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" } }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "requires": { - "number-is-nan": "^1.0.0" + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" } }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "ansi-regex": "^5.0.1" } } } }, - "@ui5/logger": { - "version": "3.0.0-next.0", - "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.0-next.0.tgz", - "integrity": "sha512-4c0GuaIpTJCnH+rYUvX8R7z57Xir4RgLGi7onYHFqv6Xcnhbgqkk3hTSSYDnOJ3SxG7Znuk5O4ViHvf4OFnhfQ==", - "requires": { - "npmlog": "^5.0.1" - } - }, "@vue/compiler-core": { - "version": "3.2.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.21.tgz", - "integrity": "sha512-NhhiQZNG71KNq1h5pMW/fAXdTF7lJRaSI7LDm2edhHXVz1ROMICo8SreUmQnSf4Fet0UPBVqJ988eF4+936iDQ==", + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz", + "integrity": "sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==", "dev": true, "requires": { - "@babel/parser": "^7.15.0", - "@vue/shared": "3.2.21", + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.26", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } }, "@vue/compiler-dom": { - "version": "3.2.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.21.tgz", - "integrity": "sha512-gsJD3DpYZSYquiA7UIPsMDSlAooYWDvHPq9VRsqzJEk2PZtFvLvHPb4aaMD8Ufd62xzYn32cnnkzsEOJhyGilA==", + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.26.tgz", + "integrity": "sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==", "dev": true, "requires": { - "@vue/compiler-core": "3.2.21", - "@vue/shared": "3.2.21" + "@vue/compiler-core": "3.2.26", + "@vue/shared": "3.2.26" } }, "@vue/compiler-sfc": { - "version": "3.2.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.21.tgz", - "integrity": "sha512-+yDlUSebKpz/ovxM2vLRRx7w/gVfY767pOfYTgbIhAs+ogvIV2BsIt4fpxlThnlCNChJ+yE0ERUNoROv2kEGEQ==", + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.26.tgz", + "integrity": "sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==", "dev": true, "requires": { - "@babel/parser": "^7.15.0", - "@vue/compiler-core": "3.2.21", - "@vue/compiler-dom": "3.2.21", - "@vue/compiler-ssr": "3.2.21", - "@vue/ref-transform": "3.2.21", - "@vue/shared": "3.2.21", + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.26", + "@vue/compiler-dom": "3.2.26", + "@vue/compiler-ssr": "3.2.26", + "@vue/reactivity-transform": "3.2.26", + "@vue/shared": "3.2.26", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -708,32 +706,32 @@ } }, "@vue/compiler-ssr": { - "version": "3.2.21", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.21.tgz", - "integrity": "sha512-eU+A0iWYy+1zAo2CRIJ0zSVlv1iuGAIbNRCnllSJ31pV1lX3jypJYzGbJlSRAbB7VP6E+tYveVT1Oq8JKewa3g==", + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.26.tgz", + "integrity": "sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==", "dev": true, "requires": { - "@vue/compiler-dom": "3.2.21", - "@vue/shared": "3.2.21" + "@vue/compiler-dom": "3.2.26", + "@vue/shared": "3.2.26" } }, - "@vue/ref-transform": { - "version": "3.2.21", - "resolved": "https://registry.npmjs.org/@vue/ref-transform/-/ref-transform-3.2.21.tgz", - "integrity": "sha512-uiEWWBsrGeun9O7dQExYWzXO3rHm/YdtFNXDVqCSoPypzOVxWxdiL+8hHeWzxMB58fVuV2sT80aUtIVyaBVZgQ==", + "@vue/reactivity-transform": { + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.26.tgz", + "integrity": "sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ==", "dev": true, "requires": { - "@babel/parser": "^7.15.0", - "@vue/compiler-core": "3.2.21", - "@vue/shared": "3.2.21", + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.26", + "@vue/shared": "3.2.26", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "@vue/shared": { - "version": "3.2.21", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.21.tgz", - "integrity": "sha512-5EQmIPK6gw4UVYUbM959B0uPsJ58+xoMESCZs3N89XyvJ9e+fX4pqEPrOGV8OroIk3SbEvJcC+eYc8BH9JQrHA==", + "version": "3.2.26", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz", + "integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==", "dev": true }, "acorn": { @@ -854,9 +852,9 @@ } }, "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "archy": { "version": "1.0.0", @@ -865,24 +863,12 @@ "dev": true }, "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", "requires": { "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "readable-stream": "^2.0.6" } }, "argparse": { @@ -1023,9 +1009,9 @@ }, "dependencies": { "acorn": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", "dev": true }, "ansi-regex": { @@ -1185,13 +1171,13 @@ } }, "browserslist": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.0.tgz", - "integrity": "sha512-ER2M0g5iAR84fS/zjBDqEgU6iO5fS9JI2EkHr5zxDxYEFk3LjhU9Vpp/INb6RMQphxko7PDV1FH38H/qVP5yCA==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.0.tgz", + "integrity": "sha512-JGHzm73ei2OnAcobcQ61GXNnN6vDCg5Oz5MayudL+FyzjoLnCzUWnuLtDLMIYw8aXgQzzdCZMVky+fftD5jbtA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", "escalade": "^3.1.1", "node-releases": "^2.0.1", "picocolors": "^1.0.0" @@ -1274,9 +1260,9 @@ "dev": true }, "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", + "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", "dev": true }, "camelcase-keys": { @@ -1299,9 +1285,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001280", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001280.tgz", - "integrity": "sha512-kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA==", + "version": "1.0.30001286", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz", + "integrity": "sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ==", "dev": true }, "catharsis": { @@ -1771,9 +1757,9 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "comment-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.2.4.tgz", - "integrity": "sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz", + "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==", "dev": true }, "common-path-prefix": { @@ -1956,9 +1942,9 @@ } }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -2174,9 +2160,9 @@ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" }, "domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "requires": { "domelementtype": "^2.2.0" } @@ -2222,9 +2208,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.896", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.896.tgz", - "integrity": "sha512-NcGkBVXePiuUrPLV8IxP43n1EOtdg+dudVjrfVEUd/bOqpQUFZ2diL5PPYzbgEhZFEltdXV3AcyKwGnEQ5lhMA==", + "version": "1.4.17", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.17.tgz", + "integrity": "sha512-zhk1MravPtq/KBhmGB7TLBILmXTgRG9TFSI3qS3DbgyfHzIl72iiTE37r/BHIbPCJJlWIo5rySyxiH4vWhu2ZA==", "dev": true }, "emittery": { @@ -2236,8 +2222,7 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "end-of-stream": { "version": "1.4.4", @@ -2531,20 +2516,28 @@ "dev": true }, "eslint-plugin-jsdoc": { - "version": "37.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.0.3.tgz", - "integrity": "sha512-Qg/gIZAfcrM4Qu/JzcnxPGD45Je6wPLFzMZQboeqit/CL4aY6wuzBTkgUMiWXfw/PaPl+sb0GF1XdBlV23ReDA==", + "version": "37.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.2.0.tgz", + "integrity": "sha512-ca7s/DD1mMObZQ2Y0n0DO/KnFV+FqCX6ztir8pcSuylg3GGCREIisn36P/0cRySuWW/7Y7MNCuUDqtKdgLPU7Q==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "0.12.0", - "comment-parser": "1.2.4", - "debug": "^4.3.2", + "@es-joy/jsdoccomment": "0.13.0", + "comment-parser": "1.3.0", + "debug": "^4.3.3", + "escape-string-regexp": "^4.0.0", "esquery": "^1.4.0", "jsdoc-type-pratt-parser": "^2.0.0", - "lodash": "^4.17.21", "regextras": "^0.8.0", "semver": "^7.3.5", "spdx-expression-parse": "^3.0.1" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + } } }, "eslint-scope": { @@ -2876,19 +2869,18 @@ "dev": true }, "gauge": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.1.tgz", - "integrity": "sha512-6STz6KdQgxO4S/ko+AbjlFGGdGcknluoqU+79GOFCDqqyYj5OanQf9AjxwN0jCidtT+ziPMmPSt9E4hfQ0CwIQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", + "aproba": "^1.0.3", "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", "signal-exit": "^3.0.0", - "string-width": "^1.0.1 || ^2.0.0", - "strip-ansi": "^3.0.1 || ^4.0.0", - "wide-align": "^1.1.2" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "gensync": { @@ -3114,6 +3106,12 @@ "integrity": "sha512-+mQSgMRiFD3L3AOxLYOCxjIq4OnAmo5CIuC+lj5ehCJcPtV++QacEV7FdpzvYxH6DaOySWzQU6RR0lPLy37ckA==", "dev": true }, + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -3246,9 +3244,12 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } }, "is-glob": { "version": "4.0.3", @@ -3455,9 +3456,9 @@ } }, "istanbul-reports": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz", - "integrity": "sha512-5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", + "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -3625,9 +3626,9 @@ } }, "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "linkify-it": { @@ -4093,14 +4094,14 @@ "dev": true }, "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "nth-check": { @@ -4652,14 +4653,14 @@ } }, "postcss": { - "version": "8.3.11", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz", - "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==", + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", "dev": true, "requires": { "nanoid": "^3.1.30", "picocolors": "^1.0.0", - "source-map-js": "^0.6.2" + "source-map-js": "^1.0.1" } }, "prelude-ls": { @@ -5064,12 +5065,14 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "sass": { - "version": "1.43.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz", - "integrity": "sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==", + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.0.tgz", + "integrity": "sha512-ONy5bjppoohtNkFJRqdz1gscXamMzN3wQy1YH9qO2FiNpgjLhpz/IPRGg0PpCjyz/pWfCOaNEaiEGCcjOFAjqw==", "dev": true, "requires": { - "chokidar": ">=3.0.0 <4.0.0" + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" } }, "sax": { @@ -5155,15 +5158,15 @@ "dev": true }, "sift": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/sift/-/sift-15.0.0.tgz", - "integrity": "sha512-FrKLXaUad4IYEpIzs9BAaXXNwcRnzg2vPfPTDgPRrKncMhgx9wftFzJrIRh9SCxxz0zHgvSKULQRRGA9JQWcZQ==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/sift/-/sift-15.1.0.tgz", + "integrity": "sha512-AYm2xyUOglfMUyBiwtwIqlsjx33C4BS2QaVwe1PwAxoSa8RI5LKCSnBgTEhPvR8WNGjzVNUFUCNKCPJwaRpCDQ==", "dev": true }, "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" }, "sinon": { "version": "11.1.2", @@ -5218,9 +5221,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", + "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", "dev": true }, "source-map-resolve": { @@ -5233,9 +5236,9 @@ } }, "source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -5288,9 +5291,9 @@ } }, "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "sprintf-js": { @@ -5308,27 +5311,13 @@ } }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -5417,9 +5406,9 @@ } }, "table": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.3.tgz", - "integrity": "sha512-5DkIxeA7XERBqMwJq0aHZOdMadBx4e6eDoFRuyT5VR82J0Ycg2DwM6GfA/EQAhJ+toRTaS1lIdSQCqgrmhPnlw==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", + "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -5430,9 +5419,9 @@ }, "dependencies": { "ajv": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.0.tgz", - "integrity": "sha512-L+cJ/+pkdICMueKR6wIx3VP2fjIx3yAhuvadUv/osv9yFD7OVZy442xFF+Oeu3ZvmhBGQzoF6mTSt+LUWBmGQg==", + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -5644,9 +5633,9 @@ } }, "terser": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.9.0.tgz", - "integrity": "sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", diff --git a/package.json b/package.json index 05772234e..03e5f81d6 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "replacestream": "^4.0.3", "rimraf": "^3.0.2", "semver": "^7.3.5", - "terser": "^5.9.0", + "terser": "^5.10.0", "xml2js": "^0.4.23", "yazl": "^2.5.1" }, @@ -134,7 +134,7 @@ "docdash": "^1.2.0", "eslint": "^7.32.0", "eslint-config-google": "^0.14.0", - "eslint-plugin-jsdoc": "^37.0.3", + "eslint-plugin-jsdoc": "^37.2.0", "extract-zip": "^2.0.1", "mock-require": "^3.0.3", "nyc": "^15.1.0", From a9992d0eb6247f06b5d29a504b9c1b9ad0298af4 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Tue, 14 Dec 2021 14:11:29 +0000 Subject: [PATCH 07/74] [INTERNAL] Bump @ui5/logger from 3.0.0-next.0 to 3.0.0-alpha.0 Changelog of this version: https://github.com/SAP/ui5-logger/blob/v3.0.0-alpha.0/CHANGELOG.md --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 37d24e70e..283a2a840 100644 --- a/package-lock.json +++ b/package-lock.json @@ -582,9 +582,9 @@ } }, "@ui5/logger": { - "version": "3.0.0-next.0", - "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.0-next.0.tgz", - "integrity": "sha512-4c0GuaIpTJCnH+rYUvX8R7z57Xir4RgLGi7onYHFqv6Xcnhbgqkk3hTSSYDnOJ3SxG7Znuk5O4ViHvf4OFnhfQ==", + "version": "3.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.0-alpha.0.tgz", + "integrity": "sha512-DVsbavz3cv66ih5Jxs0hHPn1tZf4jdOZ7cp3yI6aA2BSXOQ2ATeCcXPi2hTq1QtIG3CaCYLqwQweffuSL32t2g==", "requires": { "npmlog": "^5.0.1" }, diff --git a/package.json b/package.json index 03e5f81d6..6ea1748f4 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ }, "dependencies": { "@ui5/fs": "^2.0.6", - "@ui5/logger": "^3.0.0-next.0", + "@ui5/logger": "^3.0.0-alpha.0", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", "escope": "^3.6.0", From b0bce28e68a16479724f0dbb6880d6d7a9c7632e Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Tue, 14 Dec 2021 14:15:57 +0000 Subject: [PATCH 08/74] [INTERNAL] Bump @ui5/fs from 2.0.6 to 3.0.0-alpha.0 Changelog of this version: https://github.com/SAP/ui5-fs/blob/v3.0.0-alpha.0/CHANGELOG.md --- package-lock.json | 59 ++++++----------------------------------------- package.json | 2 +- 2 files changed, 8 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 283a2a840..802f96d12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -556,29 +556,19 @@ } }, "@ui5/fs": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-2.0.6.tgz", - "integrity": "sha512-dBugwsHP7F7IrfVAaqf7FSDhknK6RhrLOpgkp7FmL/WRA02Q3FQzroFJc7CZEP4bOnAvWC3TpghOfHV2/RqR3A==", + "version": "3.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.0.tgz", + "integrity": "sha512-Juo/QBjeFOrSZeOYUTSoL4tq9GF4/tLgzRE+9VrVz0svFdMkrGwtYQLaLg4nidbPg69HgLRxCKY9NeVytv4dmg==", "requires": { - "@ui5/logger": "^2.0.1", + "@ui5/logger": "^3.0.0-alpha.0", "clone": "^2.1.0", - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", + "globby": "^11.0.4", + "graceful-fs": "^4.2.8", "make-dir": "^3.1.0", - "micromatch": "^4.0.2", + "micromatch": "^4.0.4", "minimatch": "^3.0.3", "pretty-hrtime": "^1.0.3", "random-int": "^2.0.1" - }, - "dependencies": { - "@ui5/logger": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-2.0.1.tgz", - "integrity": "sha512-FU5moQF9HATZEIJVQxXWRsUKMveIRJNPSmH3Mptcuc05f6gKu1BWcamDaDHXmMSyoKRounY9Aok94NTQMi7eDw==", - "requires": { - "npmlog": "^4.1.2" - } - } } }, "@ui5/logger": { @@ -862,15 +852,6 @@ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -2868,21 +2849,6 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -4093,17 +4059,6 @@ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, "nth-check": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", diff --git a/package.json b/package.json index 6ea1748f4..b169b9b25 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "url": "git@github.com:SAP/ui5-builder.git" }, "dependencies": { - "@ui5/fs": "^2.0.6", + "@ui5/fs": "^3.0.0-alpha.0", "@ui5/logger": "^3.0.0-alpha.0", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", From 995587e486f4a37bb6f8f2e4d48c0faf690ac889 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Tue, 14 Dec 2021 14:20:13 +0000 Subject: [PATCH 09/74] Release 3.0.0-alpha.0 --- CHANGELOG.md | 9 ++++++++- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4ecc0bc7..09fe9dd8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,13 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v2.11.2...HEAD). +A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.0...HEAD). + + +## [v3.0.0-alpha.0] - 2021-12-14 +### Bug Fixes +- **Bundler:** Sort raw modules by default [`0e11b69`](https://github.com/SAP/ui5-builder/commit/0e11b6965a1d2e63a96e9b738e38975b5ac755bc) + ## [v2.11.2] - 2021-11-17 @@ -633,6 +639,7 @@ to load the custom bundle file instead. - Add ability to configure component preloads and custom bundles [`2241e5f`](https://github.com/SAP/ui5-builder/commit/2241e5ff98fd95f1f80cc74959655ae7a9c660e7) +[v3.0.0-alpha.0]: https://github.com/SAP/ui5-builder/compare/v2.11.2...v3.0.0-alpha.0 [v2.11.2]: https://github.com/SAP/ui5-builder/compare/v2.11.1...v2.11.2 [v2.11.1]: https://github.com/SAP/ui5-builder/compare/v2.11.0...v2.11.1 [v2.11.0]: https://github.com/SAP/ui5-builder/compare/v2.10.0...v2.11.0 diff --git a/package-lock.json b/package-lock.json index 802f96d12..3d5bb7fd5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@ui5/builder", - "version": "2.11.2", + "version": "3.0.0-alpha.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index b169b9b25..d9895318c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ui5/builder", - "version": "2.11.2", + "version": "3.0.0-alpha.0", "description": "UI5 Tooling - Builder", "author": { "name": "SAP SE", From 9a765418e4302109397fccd68d8e6c441aeac7a0 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Tue, 14 Dec 2021 15:54:40 +0000 Subject: [PATCH 10/74] [INTERNAL] Bump @ui5/logger from 3.0.0-alpha.0 to 3.0.1-alpha.0 Changelog of this version: https://github.com/SAP/ui5-logger/blob/v3.0.1-alpha.0/CHANGELOG.md --- package-lock.json | 211 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 107 insertions(+), 106 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3d5bb7fd5..14b4442db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -569,92 +569,26 @@ "minimatch": "^3.0.3", "pretty-hrtime": "^1.0.3", "random-int": "^2.0.1" - } - }, - "@ui5/logger": { - "version": "3.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.0-alpha.0.tgz", - "integrity": "sha512-DVsbavz3cv66ih5Jxs0hHPn1tZf4jdOZ7cp3yI6aA2BSXOQ2ATeCcXPi2hTq1QtIG3CaCYLqwQweffuSL32t2g==", - "requires": { - "npmlog": "^5.0.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "@ui5/logger": { + "version": "3.0.0-next.0", + "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.0-next.0.tgz", + "integrity": "sha512-4c0GuaIpTJCnH+rYUvX8R7z57Xir4RgLGi7onYHFqv6Xcnhbgqkk3hTSSYDnOJ3SxG7Znuk5O4ViHvf4OFnhfQ==", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" + "npmlog": "^5.0.1" } } } }, + "@ui5/logger": { + "version": "3.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.1-alpha.0.tgz", + "integrity": "sha512-6UQluslp7N/h9gWsMtyPq3OclE1wiAckkUbIVJZ1deRh/8ARzIKaBRg5jMky+15wQjSsYcWEr7xecBwrtPZQzw==", + "requires": { + "npmlog": "^5.0.1" + } + }, "@vue/compiler-core": { "version": "3.2.26", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz", @@ -814,7 +748,8 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "ansi-styles": { "version": "5.2.0", @@ -842,9 +777,9 @@ } }, "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, "archy": { "version": "1.0.0", @@ -852,6 +787,27 @@ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", "dev": true }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1707,11 +1663,6 @@ "convert-to-spaces": "^1.0.1" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2849,6 +2800,37 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3210,12 +3192,9 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "is-glob": { "version": "4.0.3", @@ -4059,6 +4038,17 @@ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, "nth-check": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", @@ -4067,11 +4057,6 @@ "boolbase": "^1.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, "nyc": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", @@ -5266,13 +5251,28 @@ } }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "string_decoder": { @@ -5287,6 +5287,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "^2.0.0" } diff --git a/package.json b/package.json index d9895318c..ed0dd58f0 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ }, "dependencies": { "@ui5/fs": "^3.0.0-alpha.0", - "@ui5/logger": "^3.0.0-alpha.0", + "@ui5/logger": "^3.0.1-alpha.0", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", "escope": "^3.6.0", From c110dbcdcdd0e5f7b0af4de03fcbfc93c7b0e1c7 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Thu, 13 Jan 2022 16:57:03 +0000 Subject: [PATCH 11/74] [INTERNAL] Bump @ui5/fs from 3.0.0-alpha.0 to 3.0.0-alpha.1 Changelog of this version: https://github.com/SAP/ui5-fs/blob/v3.0.0-alpha.1/CHANGELOG.md --- package-lock.json | 18 ++++-------------- package.json | 2 +- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14b4442db..402398ea9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -556,11 +556,11 @@ } }, "@ui5/fs": { - "version": "3.0.0-alpha.0", - "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.0.tgz", - "integrity": "sha512-Juo/QBjeFOrSZeOYUTSoL4tq9GF4/tLgzRE+9VrVz0svFdMkrGwtYQLaLg4nidbPg69HgLRxCKY9NeVytv4dmg==", + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.1.tgz", + "integrity": "sha512-j+8cJQpuM0aHLxzIzDNe7Kwr+X2n6tYeBptz/MSbvONB9u4dKVenaMpreR/Q4QUFi56UKEC0ztkpjxsU/+G5Cw==", "requires": { - "@ui5/logger": "^3.0.0-alpha.0", + "@ui5/logger": "^3.0.1-alpha.0", "clone": "^2.1.0", "globby": "^11.0.4", "graceful-fs": "^4.2.8", @@ -569,16 +569,6 @@ "minimatch": "^3.0.3", "pretty-hrtime": "^1.0.3", "random-int": "^2.0.1" - }, - "dependencies": { - "@ui5/logger": { - "version": "3.0.0-next.0", - "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.0-next.0.tgz", - "integrity": "sha512-4c0GuaIpTJCnH+rYUvX8R7z57Xir4RgLGi7onYHFqv6Xcnhbgqkk3hTSSYDnOJ3SxG7Znuk5O4ViHvf4OFnhfQ==", - "requires": { - "npmlog": "^5.0.1" - } - } } }, "@ui5/logger": { diff --git a/package.json b/package.json index ed0dd58f0..2423049ad 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "url": "git@github.com:SAP/ui5-builder.git" }, "dependencies": { - "@ui5/fs": "^3.0.0-alpha.0", + "@ui5/fs": "^3.0.0-alpha.1", "@ui5/logger": "^3.0.1-alpha.0", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", From a3af604ff0a12fb9241dcd105cf0aec8d718a299 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Mon, 17 Jan 2022 10:41:01 +0100 Subject: [PATCH 12/74] [FEATURE] Add minify task and processor (#666) Combines debug-file creation, source-map generation and minification. Replaces existing tasks/processors 'uglify' and 'createDebugFiles'. Also introduce new global tags `IsDebugVariant` and `HasDebugVariant`. BREAKING CHANGE: The following tasks have been removed: - createDebugFiles - uglify The following processors have been removed: - debugFileCreator - resourceCopier - uglifier As a replacement, the new 'minify' task and 'minifier' processor can be used. Note: The minify task is executed earlier, before the bundling process takes place. Existing 'beforeTask' and 'afterTask' configuration of custom tasks might need to be adapted to cater for this change. --- index.js | 20 +- lib/builder/BuildContext.js | 17 + lib/builder/ProjectBuildContext.js | 16 +- lib/builder/builder.js | 3 +- lib/lbt/bundle/Builder.js | 54 +-- lib/lbt/resources/LocatorResource.js | 2 - lib/lbt/resources/Resource.js | 7 + lib/processors/debugFileCreator.js | 52 --- lib/processors/minifier.js | 84 ++++ lib/processors/resourceCopier.js | 24 - lib/processors/uglifier.js | 45 -- lib/tasks/TaskUtil.js | 18 +- lib/tasks/bundlers/generateBundle.js | 28 +- .../bundlers/generateComponentPreload.js | 9 +- lib/tasks/bundlers/generateLibraryPreload.js | 37 +- .../bundlers/generateStandaloneAppBundle.js | 19 +- lib/tasks/createDebugFiles.js | 30 -- lib/tasks/minify.js | 30 ++ lib/tasks/taskRepository.js | 8 +- lib/tasks/uglify.js | 33 -- lib/types/application/ApplicationBuilder.js | 52 +-- lib/types/library/LibraryBuilder.js | 47 +- .../dest-clean/fileWithoutExtension | 1 + .../build/application.a/dest-clean/index.html | 11 + .../build/application.a/dest-clean/test.js | 9 + .../application.a/dest-deps-excl/test.js | 3 +- .../application.a/dest-deps-excl/test.js.map | 1 + .../dest-deps-incl/fileWithoutExtension | 1 + .../application.a/dest-deps-incl/index.html | 11 + .../resources/library/a/.library | 17 + .../library/a/themes/base/library-RTL.css | 3 + .../a/themes/base/library-parameters.json | 1 + .../library/a/themes/base/library.css | 3 + .../library/a/themes/base/library.source.less | 6 + .../resources/library/b/.library | 17 + .../resources/library/c/.library | 17 + .../resources/library/d/.library | 11 + .../resources/library/d/some-dbg.js | 7 + .../resources/library/d/some.js | 5 + .../resources/library/d/some.js.map | 1 + .../dest-deps-incl/resources/ui5loader-dbg.js | 1 + .../dest-deps-incl/resources/ui5loader.js | 2 + .../dest-deps-incl/resources/ui5loader.js.map | 1 + .../application.a/dest-deps-incl/test-dbg.js | 9 + .../test-resources/LibraryC/Test.html | 0 .../test-resources/library/a/Test.html | 0 .../test-resources/library/b/Test.html | 0 .../test-resources/library/d/Test.html | 0 .../application.a/dest-deps-incl/test.js | 2 + .../application.a/dest-deps-incl/test.js.map | 1 + .../dest-deps/resources/library/d/some.js | 3 +- .../dest-deps/resources/library/d/some.js.map | 1 + .../dest-deps/resources/ui5loader.js | 2 + .../dest-deps/resources/ui5loader.js.map | 1 + .../build/application.a/dest-deps/test.js | 3 +- .../build/application.a/dest-deps/test.js.map | 1 + .../dest-depself/resources/library/d/some.js | 3 +- .../resources/library/d/some.js.map | 1 + .../dest-depself/resources/sap-ui-custom.js | 2 + .../dest-depself/resources/ui5loader.js | 2 + .../dest-depself/resources/ui5loader.js.map | 1 + .../build/application.a/dest-depself/test.js | 3 +- .../application.a/dest-depself/test.js.map | 1 + .../dest-self/resources/sap-ui-custom.js | 6 +- .../build/application.a/dest-self/test.js | 3 +- .../build/application.a/dest-self/test.js.map | 1 + .../expected/build/application.a/dest/test.js | 3 +- .../build/application.a/dest/test.js.map | 1 + .../standalone/resources/sap-ui-custom-dbg.js | 5 + .../standalone/resources/sap-ui-custom.js | 16 +- .../cachebuster/Component-preload.js | 3 + .../application.g/cachebuster/Component.js | 3 +- .../cachebuster/Component.js.map | 1 + .../cachebuster/sap-ui-cachebuster-info.json | 25 +- .../cachebuster/subcomponentA/Component.js | 3 +- .../subcomponentA/Component.js.map | 1 + .../cachebuster/subcomponentB/Component.js | 3 +- .../subcomponentB/Component.js.map | 1 + .../cachebuster_hash/Component-dbg.js | 8 + .../cachebuster_hash/Component-preload.js | 17 + .../cachebuster_hash/Component.js | 2 + .../cachebuster_hash/Component.js.map | 1 + .../cachebuster_hash/manifest.json | 14 + .../sap-ui-cachebuster-info.json | 15 + .../subcomponentA/Component-dbg.js | 8 + .../subcomponentA/Component.js | 2 + .../subcomponentA/Component.js.map | 1 + .../subcomponentA/manifest.json | 13 + .../subcomponentB/Component-dbg.js | 8 + .../subcomponentB/Component.js | 2 + .../subcomponentB/Component.js.map | 1 + .../subcomponentB/manifest.json | 13 + .../application.g/dest/Component-preload.js | 1 + .../build/application.g/dest/Component.js | 3 +- .../build/application.g/dest/Component.js.map | 1 + .../dest/subcomponentA/Component-preload.js | 1 + .../dest/subcomponentA/Component.js | 3 +- .../dest/subcomponentA/Component.js.map | 1 + .../dest/subcomponentB/Component-preload.js | 1 + .../dest/subcomponentB/Component.js | 3 +- .../dest/subcomponentB/Component.js.map | 1 + .../application.g/dest2/Component-dbg.js | 8 + .../application.g/dest2/Component-preload.js | 9 + .../build/application.g/dest2/Component.js | 2 + .../application.g/dest2/Component.js.map | 1 + .../build/application.g/dest2/manifest.json | 14 + .../dest2/subcomponentA/Component-dbg.js | 8 + .../dest2/subcomponentA/Component-preload.js | 9 + .../dest2/subcomponentA/Component.js | 2 + .../dest2/subcomponentA/Component.js.map | 1 + .../dest2/subcomponentA/manifest.json | 13 + .../dest2/subcomponentB/Component-dbg.js | 8 + .../dest2/subcomponentB/Component-preload.js | 9 + .../dest2/subcomponentB/Component.js | 2 + .../dest2/subcomponentB/Component.js.map | 1 + .../dest2/subcomponentB/manifest.json | 13 + .../build/application.h/dest/Component-dbg.js | 8 + .../build/application.h/dest/Component.js | 3 +- .../build/application.h/dest/Component.js.map | 1 + .../dest/sectionsA/customBundle.js | 2 + .../dest/sectionsA/section1-dbg.js | 3 + .../application.h/dest/sectionsA/section1.js | 3 +- .../dest/sectionsA/section1.js.map | 1 + .../dest/sectionsA/section2-dbg.js | 3 + .../application.h/dest/sectionsA/section2.js | 3 +- .../dest/sectionsA/section2.js.map | 1 + .../dest/sectionsA/section3-dbg.js | 3 + .../application.h/dest/sectionsA/section3.js | 3 +- .../dest/sectionsA/section3.js.map | 1 + .../dest/sectionsB/customBundle.js | 12 +- .../dest/sectionsB/section1-dbg.js | 3 + .../application.h/dest/sectionsB/section1.js | 3 +- .../dest/sectionsB/section1.js.map | 1 + .../dest/sectionsB/section2-dbg.js | 3 + .../application.h/dest/sectionsB/section2.js | 3 +- .../dest/sectionsB/section2.js.map | 1 + .../dest/sectionsB/section3-dbg.js | 3 + .../application.h/dest/sectionsB/section3.js | 3 +- .../dest/sectionsB/section3.js.map | 1 + .../application.h/no-minify/Component.js | 8 + .../application.h/no-minify/manifest.json | 13 + .../no-minify/sectionsA/customBundle.js | 13 + .../no-minify/sectionsA/section1.js | 3 + .../no-minify/sectionsA/section2.js | 3 + .../no-minify/sectionsA/section3.js | 3 + .../no-minify/sectionsB/customBundle.js | 17 + .../no-minify/sectionsB/section1.js | 3 + .../no-minify/sectionsB/section2.js | 3 + .../no-minify/sectionsB/section3.js | 3 + .../build/application.i/dest/Component-dbg.js | 8 + .../application.i/dest/Component-preload.js | 2 + .../build/application.i/dest/Component.js | 3 +- .../build/application.i/dest/Component.js.map | 1 + .../dest/changes/coding/MyExtension-dbg.js | 3 + .../dest/changes/coding/MyExtension.js | 3 +- .../dest/changes/coding/MyExtension.js.map | 1 + .../dest-resources-json/Component-dbg.js | 8 + .../dest-resources-json/Component-preload.js | 2 + .../dest-resources-json/Component.js | 3 +- .../dest-resources-json/Component.js.map | 1 + .../changes/coding/MyExtension-dbg.js | 3 + .../changes/coding/MyExtension.js | 3 +- .../changes/coding/MyExtension.js.map | 1 + .../dest-resources-json/resources.json | 37 +- .../build/application.j/dest/Component-dbg.js | 8 + .../application.j/dest/Component-preload.js | 2 + .../build/application.j/dest/Component.js | 3 +- .../build/application.j/dest/Component.js.map | 1 + .../dest/changes/coding/MyExtension-dbg.js | 3 + .../dest/changes/coding/MyExtension.js | 3 +- .../dest/changes/coding/MyExtension.js.map | 1 + .../Component-preload.js | 27 +- .../application.k/dest/Component-preload.js | 9 +- .../dest/subcomponentA/Component-preload.js | 9 +- .../dest/subcomponentB/Component-preload.js | 9 +- .../build/application.l/dest/subdir/index.js | 3 +- .../application.l/dest/subdir/index.js.map | 1 + .../dest/subdir/thirdparty/File1.js | 3 +- .../dest/subdir/thirdparty/File1.js.map | 1 + .../expected/build/application.l/dest/test.js | 3 +- .../build/application.l/dest/test.js.map | 1 + .../dest/Component-preload.js" | 1 + .../application.\303\270/dest/Component.js" | 3 +- .../dest/Component.js.map" | 1 + .../expected/build/build/fileWithoutExtension | 1 + test/expected/build/build/index.html | 11 + test/expected/build/build/test.js | 9 + .../build/cleanup/fileWithoutExtension | 1 + test/expected/build/cleanup/index.html | 11 + test/expected/build/cleanup/test.js | 9 + .../dest/resources/sap-ui-core-dbg.js | 0 .../dest/resources/sap-ui-core.js | 2 + .../dest/resources/sap-ui-core.js.map | 1 + .../dest/resources/sap/ui/Global-dbg.js | 5 + .../dest/resources/sap/ui/Global.js | 5 + .../dest/resources/sap/ui/Global.js.map | 1 + .../dest/resources/sap/ui/core/.library | 20 + .../dest/resources/sap/ui/core/Core-dbg.js | 5 + .../dest/resources/sap/ui/core/Core.js | 5 + .../dest/resources/sap/ui/core/Core.js.map | 1 + .../dest/resources/library/d/some.js | 3 +- .../dest/resources/library/d/some.js.map | 1 + .../resources/library/d/library-preload.js | 5 +- .../dest/resources/library/e/library.js | 3 +- .../dest/resources/library/e/library.js.map | 1 + .../dest/resources/library/e/some.js | 3 +- .../dest/resources/library/e/some.js.map | 1 + .../library/h/components/Component-dbg.js | 5 + .../library/h/components/Component-preload.js | 2 + .../library/h/components/Component.js | 3 +- .../library/h/components/Component.js.map | 1 + .../library/h/components/TodoComponent-dbg.js | 4 + .../library/h/components/TodoComponent.js | 3 +- .../library/h/components/TodoComponent.js.map | 1 + .../library/h/components/resources.json | 88 +++- .../components/subcomponent1/Component-dbg.js | 5 + .../subcomponent1/Component-preload.js | 1 + .../h/components/subcomponent1/Component.js | 3 +- .../components/subcomponent1/Component.js.map | 1 + .../h/components/subcomponent1/resources.json | 20 +- .../components/subcomponent2/Component-dbg.js | 5 + .../subcomponent2/Component-preload.js | 1 + .../h/components/subcomponent2/Component.js | 3 +- .../components/subcomponent2/Component.js.map | 1 + .../h/components/subcomponent2/resources.json | 20 +- .../components/subcomponent3/Component-dbg.js | 5 + .../subcomponent3/Component-preload.js | 1 + .../h/components/subcomponent3/Component.js | 3 +- .../components/subcomponent3/Component.js.map | 1 + .../h/components/subcomponent3/resources.json | 20 +- .../resources/library/h/customBundle-dbg.js | 24 + .../resources/library/h/customBundle.js | 6 +- .../h/designtime/library-dbg.designtime.js | 14 + .../h/designtime/library.designtime.js | 3 +- .../h/designtime/library.designtime.js.map | 1 + .../resources/library/h/file-dbg.js | 4 + .../resources/library/h/file.js | 3 +- .../resources/library/h/file.js.map | 1 + .../resources/library/h/library-dbg.js | 4 + .../resources/library/h/library.js | 3 +- .../resources/library/h/library.js.map | 1 + .../resources/library/h/not-dbg.js | 4 + .../resources/library/h/not.js | 3 +- .../resources/library/h/not.js.map | 1 + .../resources/library/h/resources.json | 184 +++++++- .../resources/library/h/some-dbg.js | 5 + .../resources/library/h/some.js | 3 +- .../resources/library/h/some.js.map | 1 + .../library/h/components/Component-dbg.js | 5 + .../library/h/components/Component-preload.js | 2 + .../library/h/components/Component.js | 3 +- .../library/h/components/Component.js.map | 1 + .../library/h/components/TodoComponent-dbg.js | 4 + .../library/h/components/TodoComponent.js | 3 +- .../library/h/components/TodoComponent.js.map | 1 + .../components/subcomponent1/Component-dbg.js | 5 + .../subcomponent1/Component-preload.js | 1 + .../h/components/subcomponent1/Component.js | 3 +- .../components/subcomponent1/Component.js.map | 1 + .../components/subcomponent2/Component-dbg.js | 5 + .../subcomponent2/Component-preload.js | 1 + .../h/components/subcomponent2/Component.js | 3 +- .../components/subcomponent2/Component.js.map | 1 + .../components/subcomponent3/Component-dbg.js | 5 + .../subcomponent3/Component-preload.js | 1 + .../h/components/subcomponent3/Component.js | 3 +- .../components/subcomponent3/Component.js.map | 1 + .../resources/library/h/customBundle-dbg.js | 24 + .../dest/resources/library/h/customBundle.js | 6 +- .../h/designtime/library-dbg.designtime.js | 14 + .../h/designtime/library.designtime.js | 3 +- .../h/designtime/library.designtime.js.map | 1 + .../dest/resources/library/h/file-dbg.js | 4 + .../dest/resources/library/h/file.js | 3 +- .../dest/resources/library/h/file.js.map | 1 + .../dest/resources/library/h/library-dbg.js | 4 + .../dest/resources/library/h/library.js | 3 +- .../dest/resources/library/h/library.js.map | 1 + .../dest/resources/library/h/not-dbg.js | 4 + .../library.h/dest/resources/library/h/not.js | 3 +- .../dest/resources/library/h/not.js.map | 1 + .../dest/resources/library/h/some-dbg.js | 5 + .../dest/resources/library/h/some.js | 3 +- .../dest/resources/library/h/some.js.map | 1 + .../no-minify/resources/library/h/.library | 19 + .../library/h/components/Component-preload.js | 14 + .../library/h/components/Component.js | 5 + .../library/h/components/TodoComponent.js | 4 + .../subcomponent1/Component-preload.js | 9 + .../h/components/subcomponent1/Component.js | 5 + .../subcomponent2/Component-preload.js | 9 + .../h/components/subcomponent2/Component.js | 5 + .../subcomponent3/Component-preload.js | 9 + .../h/components/subcomponent3/Component.js | 5 + .../resources/library/h/customBundle-dbg.js | 24 + .../resources/library/h/customBundle.js | 24 + .../h/designtime/library.designtime.js | 14 + .../no-minify/resources/library/h/file.js | 4 + .../library/h/i18n/messagebundle.properties | 1 + .../h/i18n/messagebundle_en.properties | 1 + .../no-minify/resources/library/h/library.js | 4 + .../resources/library/h/manifest.json | 34 ++ .../no-minify/resources/library/h/not.js | 4 + .../no-minify/resources/library/h/some.js | 5 + .../test-resources/library/d/Test.html | 0 .../dest/resources/library/l/some.js | 3 +- .../dest/resources/library/l/some.js.map | 1 + .../dest/resources/library/l/subdir/index.js | 3 +- .../resources/library/l/subdir/index.js.map | 1 + .../library/l/subdir/thirdparty/File1.js | 3 +- .../library/l/subdir/thirdparty/File1.js.map | 1 + .../library/\303\270/library-preload.js" | 1 + .../\303\270/library-preload.support.js" | 37 ++ .../\303\270/rules/MyControl.support.js" | 36 ++ .../dest/resources/library/\303\270/some.js" | 3 +- .../resources/library/\303\270/some.js.map" | 1 + .../dest/resources/sap-ui-core.js | 2 + .../dest/resources/sap-ui-core.js.map | 1 + .../dest/resources/sap/ui/Global.js | 3 +- .../dest/resources/sap/ui/Global.js.map | 1 + .../dest/resources/sap/ui/core/Core.js | 3 +- .../dest/resources/sap/ui/core/Core.js.map | 1 + .../preload/resources/sap-ui-core-dbg.js | 5 + .../resources/sap-ui-core-nojQuery-dbg.js | 5 + .../preload/resources/sap-ui-core-nojQuery.js | 17 +- .../preload/resources/sap-ui-core.js | 17 +- .../preload/resources/sap-ui-core.js.map | 1 + .../preload/resources/sap/ui/core/Core-dbg.js | 4 + .../preload/resources/sap/ui/core/Core.js | 2 + .../preload/resources/sap/ui/core/Core.js.map | 1 + .../resources/sap/ui/core/library-preload.js | 11 +- .../preload/resources/sap/ui/core/one-dbg.js | 3 + .../preload/resources/sap/ui/core/one.js | 5 +- .../preload/resources/sap/ui/core/one.js.map | 1 + .../preload/resources/sap/ui/core/some-dbg.js | 14 + .../preload/resources/sap/ui/core/some.js | 13 +- .../preload/resources/sap/ui/core/some.js.map | 1 + .../resources/ui5loader-autoconfig-dbg.js | 4 + .../preload/resources/ui5loader-autoconfig.js | 2 + .../resources/ui5loader-autoconfig.js.map | 1 + .../preload/resources/ui5loader-dbg.js | 4 + .../preload/resources/ui5loader.js | 2 + .../preload/resources/ui5loader.js.map | 1 + .../\303\270/rules/MyControl.support.js" | 36 ++ .../sap.ui.core/main/src/sap-ui-core.js | 4 + .../sap.ui.core/main/src/sap/ui/core/Core.js | 4 + .../main/src/ui5loader-autoconfig.js | 4 + .../sap.ui.core/main/src/ui5loader.js | 4 + test/lib/builder/BuildContext.js | 31 +- test/lib/builder/ProjectBuildContext.js | 46 +- test/lib/builder/builder-composeTaskList.js | 18 +- test/lib/builder/builder.js | 93 +++- test/lib/index.js | 7 +- test/lib/lbt/bundle/Builder.js | 139 +++++- test/lib/lbt/resources/Resource.js | 24 +- test/lib/processors/minifier.js | 225 ++++++++++ .../generateLibraryPreload.integration.js | 4 +- ...generateStandaloneAppBundle.integration.js | 2 +- .../bundlers/generateStandaloneAppBundle.js | 35 +- test/lib/tasks/createDebugFiles.js | 419 ------------------ test/lib/tasks/minify.js | 77 ++++ test/lib/tasks/taskRepository.js | 18 + test/lib/tasks/uglify.js | 219 --------- test/lib/types/AbstractBuilder.js | 4 +- .../types/application/ApplicationBuilder.js | 20 +- test/lib/types/library/LibraryBuilder.js | 3 +- 366 files changed, 2730 insertions(+), 1219 deletions(-) delete mode 100644 lib/processors/debugFileCreator.js create mode 100644 lib/processors/minifier.js delete mode 100644 lib/processors/resourceCopier.js delete mode 100644 lib/processors/uglifier.js delete mode 100644 lib/tasks/createDebugFiles.js create mode 100644 lib/tasks/minify.js delete mode 100644 lib/tasks/uglify.js create mode 100644 test/expected/build/application.a/dest-clean/fileWithoutExtension create mode 100644 test/expected/build/application.a/dest-clean/index.html create mode 100644 test/expected/build/application.a/dest-clean/test.js create mode 100644 test/expected/build/application.a/dest-deps-excl/test.js.map create mode 100644 test/expected/build/application.a/dest-deps-incl/fileWithoutExtension create mode 100644 test/expected/build/application.a/dest-deps-incl/index.html create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/a/.library create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library-RTL.css create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library-parameters.json create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library.css create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library.source.less create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/b/.library create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/c/.library create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/d/.library create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/d/some-dbg.js create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js.map create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/ui5loader-dbg.js create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js create mode 100644 test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js.map create mode 100644 test/expected/build/application.a/dest-deps-incl/test-dbg.js create mode 100644 test/expected/build/application.a/dest-deps-incl/test-resources/LibraryC/Test.html create mode 100644 test/expected/build/application.a/dest-deps-incl/test-resources/library/a/Test.html create mode 100644 test/expected/build/application.a/dest-deps-incl/test-resources/library/b/Test.html create mode 100644 test/expected/build/application.a/dest-deps-incl/test-resources/library/d/Test.html create mode 100644 test/expected/build/application.a/dest-deps-incl/test.js create mode 100644 test/expected/build/application.a/dest-deps-incl/test.js.map create mode 100644 test/expected/build/application.a/dest-deps/resources/library/d/some.js.map create mode 100644 test/expected/build/application.a/dest-deps/resources/ui5loader.js.map create mode 100644 test/expected/build/application.a/dest-deps/test.js.map create mode 100644 test/expected/build/application.a/dest-depself/resources/library/d/some.js.map create mode 100644 test/expected/build/application.a/dest-depself/resources/ui5loader.js.map create mode 100644 test/expected/build/application.a/dest-depself/test.js.map create mode 100644 test/expected/build/application.a/dest-self/test.js.map create mode 100644 test/expected/build/application.a/dest/test.js.map create mode 100644 test/expected/build/application.g/cachebuster/Component.js.map create mode 100644 test/expected/build/application.g/cachebuster/subcomponentA/Component.js.map create mode 100644 test/expected/build/application.g/cachebuster/subcomponentB/Component.js.map create mode 100644 test/expected/build/application.g/cachebuster_hash/Component-dbg.js create mode 100644 test/expected/build/application.g/cachebuster_hash/Component-preload.js create mode 100644 test/expected/build/application.g/cachebuster_hash/Component.js create mode 100644 test/expected/build/application.g/cachebuster_hash/Component.js.map create mode 100644 test/expected/build/application.g/cachebuster_hash/manifest.json create mode 100644 test/expected/build/application.g/cachebuster_hash/sap-ui-cachebuster-info.json create mode 100644 test/expected/build/application.g/cachebuster_hash/subcomponentA/Component-dbg.js create mode 100644 test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js create mode 100644 test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js.map create mode 100644 test/expected/build/application.g/cachebuster_hash/subcomponentA/manifest.json create mode 100644 test/expected/build/application.g/cachebuster_hash/subcomponentB/Component-dbg.js create mode 100644 test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js create mode 100644 test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js.map create mode 100644 test/expected/build/application.g/cachebuster_hash/subcomponentB/manifest.json create mode 100644 test/expected/build/application.g/dest/Component.js.map create mode 100644 test/expected/build/application.g/dest/subcomponentA/Component.js.map create mode 100644 test/expected/build/application.g/dest/subcomponentB/Component.js.map create mode 100644 test/expected/build/application.g/dest2/Component-dbg.js create mode 100644 test/expected/build/application.g/dest2/Component-preload.js create mode 100644 test/expected/build/application.g/dest2/Component.js create mode 100644 test/expected/build/application.g/dest2/Component.js.map create mode 100644 test/expected/build/application.g/dest2/manifest.json create mode 100644 test/expected/build/application.g/dest2/subcomponentA/Component-dbg.js create mode 100644 test/expected/build/application.g/dest2/subcomponentA/Component-preload.js create mode 100644 test/expected/build/application.g/dest2/subcomponentA/Component.js create mode 100644 test/expected/build/application.g/dest2/subcomponentA/Component.js.map create mode 100644 test/expected/build/application.g/dest2/subcomponentA/manifest.json create mode 100644 test/expected/build/application.g/dest2/subcomponentB/Component-dbg.js create mode 100644 test/expected/build/application.g/dest2/subcomponentB/Component-preload.js create mode 100644 test/expected/build/application.g/dest2/subcomponentB/Component.js create mode 100644 test/expected/build/application.g/dest2/subcomponentB/Component.js.map create mode 100644 test/expected/build/application.g/dest2/subcomponentB/manifest.json create mode 100644 test/expected/build/application.h/dest/Component-dbg.js create mode 100644 test/expected/build/application.h/dest/Component.js.map create mode 100644 test/expected/build/application.h/dest/sectionsA/section1-dbg.js create mode 100644 test/expected/build/application.h/dest/sectionsA/section1.js.map create mode 100644 test/expected/build/application.h/dest/sectionsA/section2-dbg.js create mode 100644 test/expected/build/application.h/dest/sectionsA/section2.js.map create mode 100644 test/expected/build/application.h/dest/sectionsA/section3-dbg.js create mode 100644 test/expected/build/application.h/dest/sectionsA/section3.js.map create mode 100644 test/expected/build/application.h/dest/sectionsB/section1-dbg.js create mode 100644 test/expected/build/application.h/dest/sectionsB/section1.js.map create mode 100644 test/expected/build/application.h/dest/sectionsB/section2-dbg.js create mode 100644 test/expected/build/application.h/dest/sectionsB/section2.js.map create mode 100644 test/expected/build/application.h/dest/sectionsB/section3-dbg.js create mode 100644 test/expected/build/application.h/dest/sectionsB/section3.js.map create mode 100644 test/expected/build/application.h/no-minify/Component.js create mode 100644 test/expected/build/application.h/no-minify/manifest.json create mode 100644 test/expected/build/application.h/no-minify/sectionsA/customBundle.js create mode 100644 test/expected/build/application.h/no-minify/sectionsA/section1.js create mode 100644 test/expected/build/application.h/no-minify/sectionsA/section2.js create mode 100644 test/expected/build/application.h/no-minify/sectionsA/section3.js create mode 100644 test/expected/build/application.h/no-minify/sectionsB/customBundle.js create mode 100644 test/expected/build/application.h/no-minify/sectionsB/section1.js create mode 100644 test/expected/build/application.h/no-minify/sectionsB/section2.js create mode 100644 test/expected/build/application.h/no-minify/sectionsB/section3.js create mode 100644 test/expected/build/application.i/dest/Component-dbg.js create mode 100644 test/expected/build/application.i/dest/Component.js.map create mode 100644 test/expected/build/application.i/dest/changes/coding/MyExtension-dbg.js create mode 100644 test/expected/build/application.i/dest/changes/coding/MyExtension.js.map create mode 100644 test/expected/build/application.j/dest-resources-json/Component-dbg.js create mode 100644 test/expected/build/application.j/dest-resources-json/Component.js.map create mode 100644 test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension-dbg.js create mode 100644 test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js.map create mode 100644 test/expected/build/application.j/dest/Component-dbg.js create mode 100644 test/expected/build/application.j/dest/Component.js.map create mode 100644 test/expected/build/application.j/dest/changes/coding/MyExtension-dbg.js create mode 100644 test/expected/build/application.j/dest/changes/coding/MyExtension.js.map create mode 100644 test/expected/build/application.l/dest/subdir/index.js.map create mode 100644 test/expected/build/application.l/dest/subdir/thirdparty/File1.js.map create mode 100644 test/expected/build/application.l/dest/test.js.map create mode 100644 "test/expected/build/application.\303\270/dest/Component.js.map" create mode 100644 test/expected/build/build/fileWithoutExtension create mode 100644 test/expected/build/build/index.html create mode 100644 test/expected/build/build/test.js create mode 100644 test/expected/build/cleanup/fileWithoutExtension create mode 100644 test/expected/build/cleanup/index.html create mode 100644 test/expected/build/cleanup/test.js create mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core-dbg.js create mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js create mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js.map create mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global-dbg.js create mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js create mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js.map create mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/.library create mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core-dbg.js create mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js create mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js.map create mode 100644 test/expected/build/library.d/dest/resources/library/d/some.js.map create mode 100644 test/expected/build/library.e/dest/resources/library/e/library.js.map create mode 100644 test/expected/build/library.e/dest/resources/library/e/some.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-dbg.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent-dbg.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-dbg.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-dbg.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-dbg.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library-dbg.designtime.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/file-dbg.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/file.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/library-dbg.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/library.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/not-dbg.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/not.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/some-dbg.js create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/some.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/Component-dbg.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/Component.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/TodoComponent-dbg.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-dbg.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-dbg.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-dbg.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/designtime/library-dbg.designtime.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/file-dbg.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/file.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/library-dbg.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/library.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/not-dbg.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/not.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/some-dbg.js create mode 100644 test/expected/build/library.h/dest/resources/library/h/some.js.map create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/.library create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/Component.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/TodoComponent.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/customBundle.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/designtime/library.designtime.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/file.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/i18n/messagebundle.properties create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/i18n/messagebundle_en.properties create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/library.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/manifest.json create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/not.js create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/some.js create mode 100644 test/expected/build/library.h/no-minify/test-resources/library/d/Test.html create mode 100644 test/expected/build/library.l/dest/resources/library/l/some.js.map create mode 100644 test/expected/build/library.l/dest/resources/library/l/subdir/index.js.map create mode 100644 test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js.map create mode 100644 "test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js" create mode 100644 "test/expected/build/library.\303\270/dest/resources/library/\303\270/rules/MyControl.support.js" create mode 100644 "test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js.map" create mode 100644 test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js.map create mode 100644 test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js.map create mode 100644 test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js.map create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core-dbg.js create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js.map create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one-dbg.js create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js.map create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some-dbg.js create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js.map create mode 100644 test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig-dbg.js create mode 100644 test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js create mode 100644 test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js.map create mode 100644 test/expected/build/sap.ui.core/preload/resources/ui5loader-dbg.js create mode 100644 test/expected/build/sap.ui.core/preload/resources/ui5loader.js create mode 100644 test/expected/build/sap.ui.core/preload/resources/ui5loader.js.map create mode 100644 "test/fixtures/library.\303\270/m\303\241in/\303\237rc/library/\303\270/rules/MyControl.support.js" create mode 100644 test/fixtures/sap.ui.core/main/src/ui5loader-autoconfig.js create mode 100644 test/fixtures/sap.ui.core/main/src/ui5loader.js create mode 100644 test/lib/processors/minifier.js delete mode 100644 test/lib/tasks/createDebugFiles.js create mode 100644 test/lib/tasks/minify.js delete mode 100644 test/lib/tasks/uglify.js diff --git a/index.js b/index.js index a9f0c58fe..14341491d 100644 --- a/index.js +++ b/index.js @@ -42,9 +42,9 @@ module.exports = { */ bootstrapHtmlTransformer: "./lib/processors/bootstrapHtmlTransformer", /** - * @type {import('./lib/processors/debugFileCreator')} + * @type {import('./lib/processors/minifier')} */ - debugFileCreator: "./lib/processors/debugFileCreator", + minifier: "./lib/processors/minifier", /** * @type {import('./lib/processors/libraryLessGenerator')} */ @@ -53,10 +53,6 @@ module.exports = { * @type {import('./lib/processors/manifestCreator')} */ manifestCreator: "./lib/processors/manifestCreator", - /** - * @type {import('./lib/processors/resourceCopier')} - */ - resourceCopier: "./lib/processors/resourceCopier", /** * @type {import('./lib/processors/nonAsciiEscaper')} */ @@ -69,10 +65,6 @@ module.exports = { * @type {import('./lib/processors/themeBuilder')} */ themeBuilder: "./lib/processors/themeBuilder", - /** - * @type {import('./lib/processors/uglifier')} - */ - uglifier: "./lib/processors/uglifier", /** * @type {import('./lib/processors/versionInfoGenerator')} */ @@ -121,9 +113,9 @@ module.exports = { */ buildThemes: "./lib/tasks/buildThemes", /** - * @type {import('./lib/tasks/createDebugFiles')} + * @type {import('./lib/tasks/minify')} */ - createDebugFiles: "./lib/tasks/createDebugFiles", + minify: "./lib/tasks/minify", /** * @type {import('./lib/tasks/jsdoc/executeJsdocSdkTransformation')} */ @@ -160,10 +152,6 @@ module.exports = { * @type {import('./lib/tasks/transformBootstrapHtml')} */ transformBootstrapHtml: "./lib/tasks/transformBootstrapHtml", - /** - * @type {import('./lib/tasks/uglify')} - */ - uglify: "./lib/tasks/uglify", /** * @type {import('./lib/tasks/taskRepository')} */ diff --git a/lib/builder/BuildContext.js b/lib/builder/BuildContext.js index 0f61271a7..e445602dc 100644 --- a/lib/builder/BuildContext.js +++ b/lib/builder/BuildContext.js @@ -1,5 +1,13 @@ +const ResourceTagCollection = require("@ui5/fs").ResourceTagCollection; const ProjectBuildContext = require("./ProjectBuildContext"); +// Note: When adding standard tags, always update the public documentation in TaskUtil +// (Type "module:@ui5/builder.tasks.TaskUtil~StandardBuildTags") +const GLOBAL_TAGS = Object.freeze({ + IsDebugVariant: "ui5:IsDebugVariant", + HasDebugVariant: "ui5:HasDebugVariant", +}); + /** * Context of a build process * @@ -13,6 +21,10 @@ class BuildContext { } this.rootProject = rootProject; this.projectBuildContexts = []; + + this._resourceTagCollection = new ResourceTagCollection({ + allowedTags: Object.values(GLOBAL_TAGS) + }); } getRootProject() { @@ -22,6 +34,7 @@ class BuildContext { createProjectContext({project, resources}) { const projectBuildContext = new ProjectBuildContext({ buildContext: this, + globalTags: GLOBAL_TAGS, project, resources }); @@ -34,6 +47,10 @@ class BuildContext { return ctx.executeCleanupTasks(); })); } + + getResourceTagCollection() { + return this._resourceTagCollection; + } } module.exports = BuildContext; diff --git a/lib/builder/ProjectBuildContext.js b/lib/builder/ProjectBuildContext.js index a9dbf9c54..fc1a1c426 100644 --- a/lib/builder/ProjectBuildContext.js +++ b/lib/builder/ProjectBuildContext.js @@ -2,10 +2,10 @@ const ResourceTagCollection = require("@ui5/fs").ResourceTagCollection; // Note: When adding standard tags, always update the public documentation in TaskUtil // (Type "module:@ui5/builder.tasks.TaskUtil~StandardBuildTags") -const STANDARD_TAGS = Object.freeze({ +const STANDARD_TAGS = { OmitFromBuildResult: "ui5:OmitFromBuildResult", - IsBundle: "ui5:IsBundle" -}); + IsBundle: "ui5:IsBundle", +}; /** * Build context of a single project. Always part of an overall @@ -15,8 +15,8 @@ const STANDARD_TAGS = Object.freeze({ * @memberof module:@ui5/builder.builder */ class ProjectBuildContext { - constructor({buildContext, project, resources}) { - if (!buildContext || !project || !resources) { + constructor({buildContext, globalTags, project, resources}) { + if (!buildContext || !globalTags || !project || !resources) { throw new Error(`One or more mandatory parameters are missing`); } this._buildContext = buildContext; @@ -26,10 +26,12 @@ class ProjectBuildContext { cleanup: [] }; - this.STANDARD_TAGS = STANDARD_TAGS; + this.STANDARD_TAGS = Object.assign({}, STANDARD_TAGS, globalTags); + Object.freeze(this.STANDARD_TAGS); this._resourceTagCollection = new ResourceTagCollection({ - allowedTags: Object.values(this.STANDARD_TAGS) + allowedTags: Object.values(this.STANDARD_TAGS), + superCollection: this._buildContext.getResourceTagCollection() }); } diff --git a/lib/builder/builder.js b/lib/builder/builder.js index cb81de584..d48d9f527 100644 --- a/lib/builder/builder.js +++ b/lib/builder/builder.js @@ -94,8 +94,7 @@ function composeTaskList({dev, selfContained, jsdoc, includedTasks, excludedTask selectedTasks.generateComponentPreload = false; selectedTasks.generateLibraryPreload = false; selectedTasks.generateLibraryManifest = false; - selectedTasks.createDebugFiles = false; - selectedTasks.uglify = false; + selectedTasks.minify = false; selectedTasks.generateFlexChangesBundle = false; selectedTasks.generateManifestBundle = false; } diff --git a/lib/lbt/bundle/Builder.js b/lib/lbt/bundle/Builder.js index a89a62e58..01dc34ae3 100644 --- a/lib/lbt/bundle/Builder.js +++ b/lib/lbt/bundle/Builder.js @@ -3,7 +3,6 @@ "use strict"; const path = require("path"); -const terser = require("terser"); const {pd} = require("pretty-data"); const {parseJS, Syntax} = require("../utils/parseUtils"); // const MOZ_SourceMap = require("source-map"); @@ -19,7 +18,6 @@ const {SectionType} = require("./BundleDefinition"); const BundleWriter = require("./BundleWriter"); const log = require("@ui5/logger").getLogger("lbt:bundle:Builder"); -const copyrightCommentsPattern = /copyright|\(c\)(?:[0-9]+|\s+[0-9A-za-z])|released under|license|\u00a9|^@ui5-bundle-raw-include |^@ui5-bundle /i; const xmlHtmlPrePattern = /<(?:\w+:)?pre\b/; const strReplacements = { @@ -282,12 +280,9 @@ class BundleBuilder { } async writeRawModule(module, resource) { - let fileContent = await resource.buffer(); - if ( /\.js$/.test(module) ) { - fileContent = await this.compressJS( fileContent, resource ); - } + const fileContent = await resource.string(); this.outW.ensureNewLine(); - this.outW.write( fileContent ); + this.outW.write(fileContent); } async writePreloadFunction(section) { @@ -331,28 +326,6 @@ class BundleBuilder { // this.afterWriteFunctionPreloadSection(); } - async compressJS(fileContent, resource) { - if ( this.optimize ) { - const result = await terser.minify({ - [resource.name]: String(fileContent) - }, { - compress: false, // TODO configure? - output: { - comments: copyrightCommentsPattern, - wrap_func_args: false - } - // , outFileName: resource.name - // , outSourceMap: true - }); - // console.log(result.map); - // const map = new MOZ_SourceMap.SourceMapConsumer(result.map); - // map.eachMapping(function (m) { console.log(m); }); // console.log(map); - fileContent = result.code; - // throw new Error(); - } - return fileContent; - } - beforeWriteFunctionPreloadSection(sequence) { // simple version: just sort alphabetically sequence.sort(); @@ -367,13 +340,12 @@ class BundleBuilder { if ( /\.js$/.test(module) ) { // console.log("Processing " + module); const resource = await this.pool.findResourceWithInfo(module); - let code = await resource.buffer(); - code = rewriteDefine(this.targetBundleFormat, code, module); - if ( code ) { + let moduleContent = await resource.string(); + moduleContent = rewriteDefine(this.targetBundleFormat, moduleContent, module); + if ( moduleContent ) { outW.startSegment(module); outW.ensureNewLine(); - const fileContent = await this.compressJS(code, resource); - outW.write( fileContent ); + outW.write(moduleContent); outW.ensureNewLine(); const compressedSize = outW.endSegment(); log.verbose(" %s (%d,%d)", module, @@ -409,17 +381,17 @@ class BundleBuilder { const outW = this.outW; if ( /\.js$/.test(module) && (info == null || !info.requiresTopLevelScope) ) { - const compressedContent = await this.compressJS( await resource.buffer(), resource ); + const moduleContent = await resource.string(); outW.write(`function(){`); - outW.write( compressedContent ); + outW.write(moduleContent); this.exportGlobalNames(info); outW.ensureNewLine(); outW.write(`}`); } else if ( /\.js$/.test(module) /* implicitly: && info != null && info.requiresTopLevelScope */ ) { log.warn("**** warning: module %s requires top level scope" + " and can only be embedded as a string (requires 'eval')", module); - const compressedContent = await this.compressJS( await resource.buffer(), resource ); - outW.write( makeStringLiteral( compressedContent ) ); + const moduleContent = await resource.buffer(); + outW.write(makeStringLiteral(moduleContent)); } else if ( /\.html$/.test(module) ) { const fileContent = await resource.buffer(); outW.write( makeStringLiteral( fileContent ) ); @@ -435,13 +407,13 @@ class BundleBuilder { } outW.write(makeStringLiteral(fileContent)); } else if ( /\.xml$/.test(module) ) { - let fileContent = await resource.buffer(); + let fileContent = await resource.string(); if ( this.optimize ) { // For XML we use the pretty data // Do not minify if XML(View) contains an <*:pre> tag, // because whitespace of HTML
 should be preserved (should only happen rarely)
-				if (!xmlHtmlPrePattern.test(fileContent.toString())) {
-					fileContent = pd.xmlmin(fileContent.toString(), false);
+				if (!xmlHtmlPrePattern.test(fileContent)) {
+					fileContent = pd.xmlmin(fileContent, false);
 				}
 			}
 			outW.write( makeStringLiteral( fileContent ) );
diff --git a/lib/lbt/resources/LocatorResource.js b/lib/lbt/resources/LocatorResource.js
index 0724e6698..a5c029734 100644
--- a/lib/lbt/resources/LocatorResource.js
+++ b/lib/lbt/resources/LocatorResource.js
@@ -1,11 +1,9 @@
 const Resource = require("./Resource");
 
-
 function extractName(path) {
 	return path.slice( "/resources/".length);
 }
 
-
 class LocatorResource extends Resource {
 	constructor(pool, resource) {
 		super(pool, extractName(resource.getPath()), null, resource.getStatInfo());
diff --git a/lib/lbt/resources/Resource.js b/lib/lbt/resources/Resource.js
index 294379638..efd615fac 100644
--- a/lib/lbt/resources/Resource.js
+++ b/lib/lbt/resources/Resource.js
@@ -18,6 +18,13 @@ class Resource {
 	async buffer() {
 		return readFile(this.file);
 	}
+
+	/**
+	 * @returns {Promise} String of the file content
+	 */
+	async string() {
+		return (await this.buffer()).toString();
+	}
 }
 
 module.exports = Resource;
diff --git a/lib/processors/debugFileCreator.js b/lib/processors/debugFileCreator.js
deleted file mode 100644
index e47200743..000000000
--- a/lib/processors/debugFileCreator.js
+++ /dev/null
@@ -1,52 +0,0 @@
-const copier = require("./resourceCopier");
-const util = require("util");
-
-/**
- * Creates *-dbg.js files for all supplied resources.
- *
- * @public
- * @alias module:@ui5/builder.processors.debugFileCreator
- * @param {object} parameters Parameters
- * @param {module:@ui5/fs.Resource[]} parameters.resources List of resources to be processed
- * @param {fs|module:@ui5/fs.fsInterface} parameters.fs Node fs or
- *   custom [fs interface]{@link module:resources/module:@ui5/fs.fsInterface}
- * @returns {Promise} Promise resolving with debug resources
- */
-module.exports = function({resources, fs}) {
-	const options = {
-		pattern: /((?:\.view|\.fragment|\.controller|\.designtime|\.support)?\.js)$/,
-		replacement: "-dbg$1"
-	};
-
-	const stat = util.promisify(fs.stat);
-
-	return Promise.all(
-		resources.map((resource) => {
-			// check whether the debug resource path is already used in the
-			// previous tasks
-			return stat(resource.getPath().replace(options.pattern, options.replacement))
-				.then(
-					// if the file can be found, it should be filtered out from creating debug file
-					() => false,
-					(err) => {
-						if (err.code === "ENOENT") {
-							// if the file can't be found, it should be included in creating debug file
-							return resource;
-						}
-						// if it's other error, forward it
-						throw err;
-					}
-				);
-		})
-	).then((results) => {
-		// filter out the resouces whose debug source path is already used
-		return results.filter((result) => {
-			return !!result;
-		});
-	}).then((filteredResources) => {
-		return copier({
-			resources: filteredResources,
-			options: options
-		});
-	});
-};
diff --git a/lib/processors/minifier.js b/lib/processors/minifier.js
new file mode 100644
index 000000000..e2abe32d8
--- /dev/null
+++ b/lib/processors/minifier.js
@@ -0,0 +1,84 @@
+const path = require("path");
+const terser = require("terser");
+const Resource = require("@ui5/fs").Resource;
+/**
+ * Preserve comments which contain:
+ * 
    + *
  • copyright notice
  • + *
  • license terms
  • + *
  • "@ui5-bundle"
  • + *
  • "@ui5-bundle-raw-include"
  • + *
+ * + * @type {RegExp} + */ +const copyrightCommentsAndBundleCommentPattern = /copyright|\(c\)(?:[0-9]+|\s+[0-9A-za-z])|released under|license|\u00a9|^@ui5-bundle-raw-include |^@ui5-bundle /i; +const debugFileRegex = /((?:\.view|\.fragment|\.controller|\.designtime|\.support)?\.js)$/; + + +/** + * Result set + * + * @public + * @typedef {object} MinifierResult + * @property {module:@ui5/fs.Resource} resource Minified resource + * @property {module:@ui5/fs.Resource} dbgResource Debug (non-minified) variant + * @property {module:@ui5/fs.Resource} sourceMap Source Map + * @memberof module:@ui5/builder.processors + */ + +/** + * Minifies the supplied resources. + * + * @public + * @alias module:@ui5/builder.processors.minifier + * @param {object} parameters Parameters + * @param {module:@ui5/fs.Resource[]} parameters.resources List of resources to be processed + * @returns {Promise} + * Promise resolving with object of resource, dbgResource and sourceMap + */ +module.exports = async function({resources}) { + return Promise.all(resources.map(async (resource) => { + const dbgPath = resource.getPath().replace(debugFileRegex, "-dbg$1"); + const dbgResource = await resource.clone(); + dbgResource.setPath(dbgPath); + + const filename = path.posix.basename(resource.getPath()); + const code = await resource.getString(); + try { + const dbgFilename = path.posix.basename(dbgPath); + const result = await terser.minify({ + // Use debug-name since this will be referenced in the source map "sources" + [dbgFilename]: code + }, { + output: { + comments: copyrightCommentsAndBundleCommentPattern, + wrap_func_args: false + }, + compress: false, + mangle: { + reserved: [ + "jQuery", + "jquery", + "sap", + ] + }, + sourceMap: { + filename, + url: filename + ".map" + } + }); + resource.setString(result.code); + const sourceMapResource = new Resource({ + path: resource.getPath() + ".map", + string: result.map + }); + return {resource, dbgResource, sourceMapResource}; + } catch (err) { + // Note: err.filename contains the debug-name + throw new Error( + `Minification failed with error: ${err.message} in file ${filename} ` + + `(line ${err.line}, col ${err.col}, pos ${err.pos})`); + } + })); +}; diff --git a/lib/processors/resourceCopier.js b/lib/processors/resourceCopier.js deleted file mode 100644 index dd6247854..000000000 --- a/lib/processors/resourceCopier.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copy files to a different path. - * - * @public - * @alias module:@ui5/builder.processors.resourceCopier - * @param {object} parameters Parameters - * @param {module:@ui5/fs.Resource[]} parameters.resources List of resources to be processed - * @param {object} parameters.options Options - * @param {string} parameters.options.pattern Search pattern for path - * @param {string} parameters.options.replacement Replacement string for path - * @returns {Promise} Promise resolving with the cloned resources - */ -module.exports = function({resources, options: {pattern, replacement}}) { - if (!pattern || typeof replacement !== "string") { - return Promise.reject(new Error("[resourceCopier] Invalid options: Missing pattern or replacement.")); - } - - return Promise.all(resources.map((resource) => { - return resource.clone().then((newResource) => { - newResource.setPath(newResource.getPath().replace(pattern, replacement)); - return newResource; - }); - })); -}; diff --git a/lib/processors/uglifier.js b/lib/processors/uglifier.js deleted file mode 100644 index 7b6e1ebc9..000000000 --- a/lib/processors/uglifier.js +++ /dev/null @@ -1,45 +0,0 @@ -const terser = require("terser"); -/** - * Preserve comments which contain: - *
    - *
  • copyright notice
  • - *
  • license terms
  • - *
  • "@ui5-bundle"
  • - *
  • "@ui5-bundle-raw-include"
  • - *
- * - * @type {RegExp} - */ -const copyrightCommentsAndBundleCommentPattern = /copyright|\(c\)(?:[0-9]+|\s+[0-9A-za-z])|released under|license|\u00a9|^@ui5-bundle-raw-include |^@ui5-bundle /i; - -/** - * Minifies the supplied resources. - * - * @public - * @alias module:@ui5/builder.processors.uglifier - * @param {object} parameters Parameters - * @param {module:@ui5/fs.Resource[]} parameters.resources List of resources to be processed - * @returns {Promise} Promise resolving with uglified resources - */ -module.exports = function({resources}) { - return Promise.all(resources.map(async (resource) => { - const code = await resource.getString(); - try { - const result = await terser.minify({ - [resource.getPath()]: code - }, { - output: { - comments: copyrightCommentsAndBundleCommentPattern, - wrap_func_args: false - }, - compress: false - }); - resource.setString(result.code); - return resource; - } catch (err) { - throw new Error( - `Uglification failed with error: ${err.message} in file ${err.filename} ` + - `(line ${err.line}, col ${err.col}, pos ${err.pos})`); - } - })); -}; diff --git a/lib/tasks/TaskUtil.js b/lib/tasks/TaskUtil.js index 0420d1b39..9e397a62e 100644 --- a/lib/tasks/TaskUtil.js +++ b/lib/tasks/TaskUtil.js @@ -51,14 +51,14 @@ class TaskUtil { * This method is only available to custom task extensions defining * Specification Version 2.2 and above. * - * @param {module:@ui5/fs.Resource} resource The resource the tag should be stored for + * @param {string|module:@ui5/fs.Resource} resourcePath Path or resource-instance the tag should be stored for * @param {string} tag Name of the tag. * Currently only the [STANDARD_TAGS]{@link module:@ui5/builder.tasks.TaskUtil#STANDARD_TAGS} are allowed * @param {string|boolean|integer} [value=true] Tag value. Must be primitive * @public */ - setTag(resource, tag, value) { - return this._projectBuildContext.getResourceTagCollection().setTag(resource, tag, value); + setTag(resourcePath, tag, value) { + return this._projectBuildContext.getResourceTagCollection().setTag(resourcePath, tag, value); } /** @@ -68,14 +68,14 @@ class TaskUtil { * This method is only available to custom task extensions defining * Specification Version 2.2 and above. * - * @param {module:@ui5/fs.Resource} resource The resource the tag should be retrieved for + * @param {string|module:@ui5/fs.Resource} resourcePath Path or resource-instance the tag should be retrieved for * @param {string} tag Name of the tag * @returns {string|boolean|integer|undefined} Tag value for the given resource. * undefined if no value is available * @public */ - getTag(resource, tag) { - return this._projectBuildContext.getResourceTagCollection().getTag(resource, tag); + getTag(resourcePath, tag) { + return this._projectBuildContext.getResourceTagCollection().getTag(resourcePath, tag); } /** @@ -86,12 +86,12 @@ class TaskUtil { * This method is only available to custom task extensions defining * Specification Version 2.2 and above. * - * @param {module:@ui5/fs.Resource} resource The resource the tag should be cleared for + * @param {string|module:@ui5/fs.Resource} resourcePath Path or resource-instance the tag should be cleared for * @param {string} tag Tag * @public */ - clearTag(resource, tag) { - return this._projectBuildContext.getResourceTagCollection().clearTag(resource, tag); + clearTag(resourcePath, tag) { + return this._projectBuildContext.getResourceTagCollection().clearTag(resourcePath, tag); } /** diff --git a/lib/tasks/bundlers/generateBundle.js b/lib/tasks/bundlers/generateBundle.js index 49698e4ba..709f11417 100644 --- a/lib/tasks/bundlers/generateBundle.js +++ b/lib/tasks/bundlers/generateBundle.js @@ -1,4 +1,5 @@ const moduleBundler = require("../../processors/bundlers/moduleBundler"); +const ModuleName = require("../../lbt/utils/ModuleName"); const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritized; /** @@ -19,11 +20,36 @@ const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritiz module.exports = function({ workspace, dependencies, taskUtil, options: {projectName, bundleDefinition, bundleOptions} }) { - const combo = new ReaderCollectionPrioritized({ + let combo = new ReaderCollectionPrioritized({ name: `libraryBundler - prioritize workspace over dependencies: ${projectName}`, readers: [workspace, dependencies] }); + if (taskUtil) { + // Omit -dbg files for optimize bundles and vice versa + const filterTag = bundleOptions.optimize ? + taskUtil.STANDARD_TAGS.IsDebugVariant : taskUtil.STANDARD_TAGS.HasDebugVariant; + combo = combo.filter(function(resource) { + return !taskUtil.getTag(resource, filterTag); + }); + + if (!bundleOptions.optimize) { + // For "unoptimized" bundles, the non-debug files have already been filtered out + // Now rename the debug variants to the same name so that they appear like the original + // resource to the bundler + combo = combo.transformer(async function(resourcePath, getResource) { + if (taskUtil.getTag(resourcePath, taskUtil.STANDARD_TAGS.IsDebugVariant)) { + const resource = await getResource(); + const nonDbgPath = ModuleName.getNonDebugName(resource.getPath()); + if (!nonDbgPath) { + throw new Error(`Failed to resolve non-debug name for ${resource.getPath()}`); + } + resource.setPath(nonDbgPath); + } + }); + } + } + return combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library}").then((resources) => { return moduleBundler({ options: { diff --git a/lib/tasks/bundlers/generateComponentPreload.js b/lib/tasks/bundlers/generateComponentPreload.js index b9d8faaf5..4946624b0 100644 --- a/lib/tasks/bundlers/generateComponentPreload.js +++ b/lib/tasks/bundlers/generateComponentPreload.js @@ -28,11 +28,18 @@ const {negateFilters} = require("../../lbt/resources/ResourceFilterList"); module.exports = function({ workspace, dependencies, taskUtil, options: {projectName, paths, namespaces, excludes = []} }) { - const combo = new ReaderCollectionPrioritized({ + let combo = new ReaderCollectionPrioritized({ name: `generateComponentPreload - prioritize workspace over dependencies: ${projectName}`, readers: [workspace, dependencies] }); + if (taskUtil) { + combo = combo.filter(function(resource) { + // Remove any debug variants + return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.IsDebugVariant); + }); + } + // TODO 3.0: Limit to workspace resources? return combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library}") .then(async (resources) => { diff --git a/lib/tasks/bundlers/generateLibraryPreload.js b/lib/tasks/bundlers/generateLibraryPreload.js index 8b29b4491..5a6b5bba2 100644 --- a/lib/tasks/bundlers/generateLibraryPreload.js +++ b/lib/tasks/bundlers/generateLibraryPreload.js @@ -2,6 +2,7 @@ const log = require("@ui5/logger").getLogger("builder:tasks:bundlers:generateLib const moduleBundler = require("../../processors/bundlers/moduleBundler"); const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritized; const {negateFilters} = require("../../lbt/resources/ResourceFilterList"); +const ModuleName = require("../../lbt/utils/ModuleName"); function getDefaultLibraryPreloadFilters(namespace, excludes) { const filters = [ @@ -272,12 +273,19 @@ function getSapUiCoreBunDef(name, filters, preload) { * @returns {Promise} Promise resolving with undefined once data has been written */ module.exports = function({workspace, dependencies, taskUtil, options: {projectName, excludes = []}}) { - const combo = new ReaderCollectionPrioritized({ + let combo = new ReaderCollectionPrioritized({ name: `libraryBundler - prioritize workspace over dependencies: ${projectName}`, readers: [workspace, dependencies] }); - return combo.byGlob("/**/*.{js,json,xml,html,properties,library}").then((resources) => { + if (taskUtil) { + combo = combo.filter(function(resource) { + // Remove any debug variants + return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.IsDebugVariant); + }); + } + + return combo.byGlob("/**/*.{js,json,xml,html,properties,library}").then(async (resources) => { // Find all libraries and create a library-preload.js bundle let p = Promise.resolve(); @@ -296,6 +304,27 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN const isEvo = resources.find((resource) => { return resource.getPath() === "/resources/ui5loader.js"; }); + + let unoptimizedResources = resources; + if (taskUtil) { + unoptimizedResources = await new ReaderCollectionPrioritized({ + name: `libraryBundler - prioritize workspace over dependencies: ${projectName}`, + readers: [workspace, dependencies] + }).filter(function(resource) { + // Remove any non-debug variants + return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.HasDebugVariant); + }).transformer(async function(resourcePath, getResource) { + if (taskUtil.getTag(resourcePath, taskUtil.STANDARD_TAGS.IsDebugVariant)) { + const resource = await getResource(); + const nonDbgPath = ModuleName.getNonDebugName(resource.getPath()); + if (!nonDbgPath) { + throw new Error(`Failed to resolve non-debug name for ${resource.getPath()}`); + } + resource.setPath(nonDbgPath); + } + }).byGlob("/**/*.{js,json,xml,html,properties,library}"); + } + let filters; if (isEvo) { filters = ["ui5loader-autoconfig.js"]; @@ -309,7 +338,7 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN }), moduleBundler({ options: getModuleBundlerOptions({name: "sap-ui-core-dbg.js", filters, preload: false}), - resources + resources: unoptimizedResources }), moduleBundler({ options: getModuleBundlerOptions({ @@ -321,7 +350,7 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN options: getModuleBundlerOptions({ name: "sap-ui-core-nojQuery-dbg.js", filters, preload: false, provided: true }), - resources + resources: unoptimizedResources }), ]).then((results) => { const bundles = Array.prototype.concat.apply([], results); diff --git a/lib/tasks/bundlers/generateStandaloneAppBundle.js b/lib/tasks/bundlers/generateStandaloneAppBundle.js index ea6129b86..e843f0395 100644 --- a/lib/tasks/bundlers/generateStandaloneAppBundle.js +++ b/lib/tasks/bundlers/generateStandaloneAppBundle.js @@ -1,4 +1,5 @@ const log = require("@ui5/logger").getLogger("builder:tasks:bundlers:generateStandaloneAppBundle"); +const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritized; const moduleBundler = require("../../processors/bundlers/moduleBundler"); function getBundleDefinition(config) { @@ -76,12 +77,18 @@ module.exports = async function({workspace, dependencies, taskUtil, options: {pr `unable to generate complete bundles for such projects.`); } - // If an application does not have a namespace, its resources are located at the root. Otherwise in /resources - // For dependencies, we do not want to search in their test-resources - const results = await Promise.all([ - workspace.byGlob("/**/*.{js,json,xml,html,properties,library}"), - dependencies.byGlob("/resources/**/*.{js,json,xml,html,properties,library}") - ]); + let combo = new ReaderCollectionPrioritized({ + name: `generateStandaloneAppBundle - prioritize workspace over dependencies: ${projectName}`, + readers: [workspace, dependencies] + }); + + if (taskUtil) { + // Omit -dbg files + combo = combo.filter(function(resource) { + return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.IsDebugVariant); + }); + } + const results = await combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library}"); const resources = Array.prototype.concat.apply([], results); const isEvo = resources.find((resource) => { diff --git a/lib/tasks/createDebugFiles.js b/lib/tasks/createDebugFiles.js deleted file mode 100644 index 341e0d548..000000000 --- a/lib/tasks/createDebugFiles.js +++ /dev/null @@ -1,30 +0,0 @@ -const dbg = require("../processors/debugFileCreator"); -const fsInterface = require("@ui5/fs").fsInterface; - -/** - * Task to create dbg files. - * - * @public - * @alias module:@ui5/builder.tasks.createDebugFiles - * @param {object} parameters Parameters - * @param {module:@ui5/fs.DuplexCollection} parameters.workspace DuplexCollection to read and write files - * @param {object} parameters.options Options - * @param {string} parameters.options.pattern Pattern to locate the files to be processed - * @returns {Promise} Promise resolving with undefined once data has been written - */ -module.exports = async function({workspace, options: {pattern}}) { - let allResources; - if (workspace.byGlobSource) { // API only available on duplex collections - allResources = await workspace.byGlobSource(pattern); - } else { - allResources = await workspace.byGlob(pattern); - } - return dbg({ - fs: fsInterface(workspace), - resources: allResources - }).then((processedResources) => { - return Promise.all(processedResources.map((resource) => { - return workspace.write(resource); - })); - }); -}; diff --git a/lib/tasks/minify.js b/lib/tasks/minify.js new file mode 100644 index 000000000..ba508ca5a --- /dev/null +++ b/lib/tasks/minify.js @@ -0,0 +1,30 @@ +const minifier = require("../processors/minifier"); + +/** + * Task to minify resources. + * + * @public + * @alias module:@ui5/builder.tasks.minify + * @param {object} parameters Parameters + * @param {module:@ui5/fs.DuplexCollection} parameters.workspace DuplexCollection to read and write files + * @param {module:@ui5/builder.tasks.TaskUtil|object} [parameters.taskUtil] TaskUtil + * @param {object} parameters.options Options + * @param {string} parameters.options.pattern Pattern to locate the files to be processed + * @returns {Promise} Promise resolving with undefined once data has been written + */ +module.exports = async function({workspace, taskUtil, options: {pattern}}) { + const resources = await workspace.byGlob(pattern); + const processedResources = await minifier({resources}); + + return Promise.all(processedResources.map(async ({resource, dbgResource, sourceMapResource}) => { + if (taskUtil) { + taskUtil.setTag(resource, taskUtil.STANDARD_TAGS.HasDebugVariant); + taskUtil.setTag(dbgResource, taskUtil.STANDARD_TAGS.IsDebugVariant); + } + return Promise.all([ + workspace.write(resource), + workspace.write(dbgResource), + workspace.write(sourceMapResource) + ]); + })); +}; diff --git a/lib/tasks/taskRepository.js b/lib/tasks/taskRepository.js index 6e2ec351d..8e80e0e3f 100644 --- a/lib/tasks/taskRepository.js +++ b/lib/tasks/taskRepository.js @@ -2,12 +2,11 @@ const taskInfos = { replaceCopyright: {path: "./replaceCopyright"}, replaceVersion: {path: "./replaceVersion"}, replaceBuildtime: {path: "./replaceBuildtime"}, - createDebugFiles: {path: "./createDebugFiles"}, escapeNonAsciiCharacters: {path: "./escapeNonAsciiCharacters"}, executeJsdocSdkTransformation: {path: "./jsdoc/executeJsdocSdkTransformation"}, generateApiIndex: {path: "./jsdoc/generateApiIndex"}, generateJsdoc: {path: "./jsdoc/generateJsdoc"}, - uglify: {path: "./uglify"}, + minify: {path: "./minify"}, buildThemes: {path: "./buildThemes"}, transformBootstrapHtml: {path: "./transformBootstrapHtml"}, generateLibraryManifest: {path: "./generateLibraryManifest"}, @@ -27,6 +26,11 @@ function getTask(taskName) { const taskInfo = taskInfos[taskName]; if (!taskInfo) { + if (["createDebugFiles", "uglify"].includes(taskName)) { + throw new Error( + `Standard task ${taskName} has been removed in UI5 Tooling 3.0. ` + + `Please see the migration guide at https://sap.github.io/ui5-tooling/updates/migrate-v3/`); + } throw new Error(`taskRepository: Unknown Task ${taskName}`); } try { diff --git a/lib/tasks/uglify.js b/lib/tasks/uglify.js deleted file mode 100644 index 60884fda1..000000000 --- a/lib/tasks/uglify.js +++ /dev/null @@ -1,33 +0,0 @@ -const uglifyProcessor = require("../processors/uglifier"); - -/** - * Task to minify resources. - * - * @public - * @alias module:@ui5/builder.tasks.uglify - * @param {object} parameters Parameters - * @param {module:@ui5/fs.DuplexCollection} parameters.workspace DuplexCollection to read and write files - * @param {module:@ui5/builder.tasks.TaskUtil|object} [parameters.taskUtil] TaskUtil - * @param {object} parameters.options Options - * @param {string} parameters.options.pattern Pattern to locate the files to be processed - * @returns {Promise} Promise resolving with undefined once data has been written - */ -module.exports = function({workspace, taskUtil, options: {pattern}}) { - return workspace.byGlobSource(pattern) - .then((allResources) => { - let resources = allResources; - if (taskUtil) { - resources = allResources.filter((resource) => { - return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.IsBundle); - }); - } - return uglifyProcessor({ - resources - }); - }) - .then((processedResources) => { - return Promise.all(processedResources.map((resource) => { - return workspace.write(resource); - })); - }); -}; diff --git a/lib/types/application/ApplicationBuilder.js b/lib/types/application/ApplicationBuilder.js index a01219803..444ebce64 100644 --- a/lib/types/application/ApplicationBuilder.js +++ b/lib/types/application/ApplicationBuilder.js @@ -67,6 +67,27 @@ class ApplicationBuilder extends AbstractBuilder { }); } + // Support rules should not be minified to have readable code in the Support Assistant + const minificationPattern = ["/**/*.js", "!**/*.support.js"]; + if (["2.6"].includes(project.specVersion)) { + const minificationExcludes = project.builder && project.builder.minification && + project.builder.minification.excludes; + if (minificationExcludes) { + // TODO 3.0: namespaces should become mandatory, see existing check above + const patternPrefix = project.metadata.namespace ? "/resources/" : "/"; + this.enhancePatternWithExcludes(minificationPattern, minificationExcludes, patternPrefix); + } + } + this.addTask("minify", async () => { + return getTask("minify").task({ + workspace: resourceCollections.workspace, + taskUtil, + options: { + pattern: minificationPattern + } + }); + }); + const componentPreload = project.builder && project.builder.componentPreload; if (componentPreload && (componentPreload.namespaces || componentPreload.paths)) { this.addTask("generateComponentPreload", async () => { @@ -138,37 +159,6 @@ class ApplicationBuilder extends AbstractBuilder { }); } - const minificationPattern = ["/**/*.js"]; - if (["2.6"].includes(project.specVersion)) { - const minificationExcludes = project.builder && project.builder.minification && - project.builder.minification.excludes; - if (minificationExcludes) { - // TODO 3.0: namespaces should become mandatory, see existing check above - const patternPrefix = project.metadata.namespace ? "/resources/" : "/"; - this.enhancePatternWithExcludes(minificationPattern, minificationExcludes, patternPrefix); - } - } - this.addTask("createDebugFiles", async () => { - const createDebugFiles = getTask("createDebugFiles").task; - return createDebugFiles({ - workspace: resourceCollections.workspace, - options: { - pattern: minificationPattern - } - }); - }); - - this.addTask("uglify", async () => { - const uglify = getTask("uglify").task; - return uglify({ - workspace: resourceCollections.workspace, - taskUtil, - options: { - pattern: minificationPattern - } - }); - }); - this.addTask("generateVersionInfo", async () => { return getTask("generateVersionInfo").task({ workspace: resourceCollections.workspace, diff --git a/lib/types/library/LibraryBuilder.js b/lib/types/library/LibraryBuilder.js index 90149a18f..d31148e36 100644 --- a/lib/types/library/LibraryBuilder.js +++ b/lib/types/library/LibraryBuilder.js @@ -89,6 +89,26 @@ class LibraryBuilder extends AbstractBuilder { }); } + // Support rules should not be minified to have readable code in the Support Assistant + const minificationPattern = ["/resources/**/*.js", "!**/*.support.js"]; + if (["2.6"].includes(project.specVersion)) { + const minificationExcludes = project.builder && project.builder.minification && + project.builder.minification.excludes; + if (minificationExcludes) { + this.enhancePatternWithExcludes(minificationPattern, minificationExcludes, "/resources/"); + } + } + + this.addTask("minify", async () => { + return getTask("minify").task({ + workspace: resourceCollections.workspace, + taskUtil, + options: { + pattern: minificationPattern + } + }); + }); + const componentPreload = project.builder && project.builder.componentPreload; if (componentPreload) { this.addTask("generateComponentPreload", async () => { @@ -195,33 +215,6 @@ class LibraryBuilder extends AbstractBuilder { }); }); - const minificationPattern = ["/resources/**/*.js"]; - if (["2.6"].includes(project.specVersion)) { - const minificationExcludes = project.builder && project.builder.minification && - project.builder.minification.excludes; - if (minificationExcludes) { - this.enhancePatternWithExcludes(minificationPattern, minificationExcludes, "/resources/"); - } - } - this.addTask("createDebugFiles", async () => { - return getTask("createDebugFiles").task({ - workspace: resourceCollections.workspace, - options: { - pattern: minificationPattern - } - }); - }); - - this.addTask("uglify", async () => { - return getTask("uglify").task({ - workspace: resourceCollections.workspace, - taskUtil, - options: { - pattern: minificationPattern - } - }); - }); - this.addTask("generateResourcesJson", () => { return getTask("generateResourcesJson").task({ workspace: resourceCollections.workspace, diff --git a/test/expected/build/application.a/dest-clean/fileWithoutExtension b/test/expected/build/application.a/dest-clean/fileWithoutExtension new file mode 100644 index 000000000..1a39ca7a7 --- /dev/null +++ b/test/expected/build/application.a/dest-clean/fileWithoutExtension @@ -0,0 +1 @@ +A file without an extension \ No newline at end of file diff --git a/test/expected/build/application.a/dest-clean/index.html b/test/expected/build/application.a/dest-clean/index.html new file mode 100644 index 000000000..1523b1dc3 --- /dev/null +++ b/test/expected/build/application.a/dest-clean/index.html @@ -0,0 +1,11 @@ + + + + Application A + + + + + + \ No newline at end of file diff --git a/test/expected/build/application.a/dest-clean/test.js b/test/expected/build/application.a/dest-clean/test.js new file mode 100644 index 000000000..cb4595405 --- /dev/null +++ b/test/expected/build/application.a/dest-clean/test.js @@ -0,0 +1,9 @@ +sap.ui.define([ + "library/d/some" +], function(someObject) { + function test(paramA) { + var variableA = paramA; + console.log(variableA); + } + test(); +}); diff --git a/test/expected/build/application.a/dest-deps-excl/test.js b/test/expected/build/application.a/dest-deps-excl/test.js index fd8278c6e..24b3706c6 100644 --- a/test/expected/build/application.a/dest-deps-excl/test.js +++ b/test/expected/build/application.a/dest-deps-excl/test.js @@ -1 +1,2 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); +//# sourceMappingURL=test.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-excl/test.js.map b/test/expected/build/application.a/dest-deps-excl/test.js.map new file mode 100644 index 000000000..1d04a4e3e --- /dev/null +++ b/test/expected/build/application.a/dest-deps-excl/test.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/fileWithoutExtension b/test/expected/build/application.a/dest-deps-incl/fileWithoutExtension new file mode 100644 index 000000000..1a39ca7a7 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/fileWithoutExtension @@ -0,0 +1 @@ +A file without an extension \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/index.html b/test/expected/build/application.a/dest-deps-incl/index.html new file mode 100644 index 000000000..1523b1dc3 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/index.html @@ -0,0 +1,11 @@ + + + + Application A + + + + + + \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/a/.library b/test/expected/build/application.a/dest-deps-incl/resources/library/a/.library new file mode 100644 index 000000000..cddfadd9a --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/a/.library @@ -0,0 +1,17 @@ + + + + library.a + SAP SE + Some fancy copyright ${currentYear} + 1.0.0 + + Library A + + + + library.d + + + + diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library-RTL.css b/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library-RTL.css new file mode 100644 index 000000000..5398b3f08 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library-RTL.css @@ -0,0 +1,3 @@ +.library-a-foo{color:#fafad2;padding:1px 4px 3px 2px} +/* Inline theming parameters */ +#sap-ui-theme-library\.a{background-image:url('data:text/plain;utf-8,%7B%22libraryAColor1%22%3A%22%23fafad2%22%7D')} diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library-parameters.json b/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library-parameters.json new file mode 100644 index 000000000..da3b7a52f --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library-parameters.json @@ -0,0 +1 @@ +{"libraryAColor1":"#fafad2"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library.css b/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library.css new file mode 100644 index 000000000..ba056b3c0 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library.css @@ -0,0 +1,3 @@ +.library-a-foo{color:#fafad2;padding:1px 2px 3px 4px} +/* Inline theming parameters */ +#sap-ui-theme-library\.a{background-image:url('data:text/plain;utf-8,%7B%22libraryAColor1%22%3A%22%23fafad2%22%7D')} diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library.source.less b/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library.source.less new file mode 100644 index 000000000..ff0f1d5e3 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/a/themes/base/library.source.less @@ -0,0 +1,6 @@ +@libraryAColor1: lightgoldenrodyellow; + +.library-a-foo { + color: @libraryAColor1; + padding: 1px 2px 3px 4px; +} diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/b/.library b/test/expected/build/application.a/dest-deps-incl/resources/library/b/.library new file mode 100644 index 000000000..8cfb124a9 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/b/.library @@ -0,0 +1,17 @@ + + + + library.b + SAP SE + Some fancy copyright ${currentYear} + 1.0.0 + + Library B + + + + library.d + + + + diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/c/.library b/test/expected/build/application.a/dest-deps-incl/resources/library/c/.library new file mode 100644 index 000000000..3c011ecd6 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/c/.library @@ -0,0 +1,17 @@ + + + + library.c + SAP SE + ${copyright} + 1.0.0 + + Library C + + + + library.d + + + + diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/d/.library b/test/expected/build/application.a/dest-deps-incl/resources/library/d/.library new file mode 100644 index 000000000..d6a612a92 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/d/.library @@ -0,0 +1,11 @@ + + + + library.d + SAP SE + Some fancy copyright + 1.0.0 + + Library D + + diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/d/some-dbg.js b/test/expected/build/application.a/dest-deps-incl/resources/library/d/some-dbg.js new file mode 100644 index 000000000..1e8c6a2f9 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/d/some-dbg.js @@ -0,0 +1,7 @@ +/*! + * Some fancy copyright + */ +(function() { + var someNonUglifiedVariable = "World"; + console.log('Hello ' + someNonUglifiedVariable); +})(); diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js b/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js new file mode 100644 index 000000000..75aba1e23 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */ +(function(){var o="World";console.log("Hello "+o)})(); +//# sourceMappingURL=some.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js.map b/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js.map new file mode 100644 index 000000000..bc2b57a0a --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":";;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/resources/ui5loader-dbg.js b/test/expected/build/application.a/dest-deps-incl/resources/ui5loader-dbg.js new file mode 100644 index 000000000..0e76321fd --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/ui5loader-dbg.js @@ -0,0 +1 @@ +// this is just a marker file to enable the EVO bundle format diff --git a/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js b/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js new file mode 100644 index 000000000..9b62890d8 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=ui5loader.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js.map b/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js.map new file mode 100644 index 000000000..636d46591 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","file":"ui5loader.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/test-dbg.js b/test/expected/build/application.a/dest-deps-incl/test-dbg.js new file mode 100644 index 000000000..cb4595405 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/test-dbg.js @@ -0,0 +1,9 @@ +sap.ui.define([ + "library/d/some" +], function(someObject) { + function test(paramA) { + var variableA = paramA; + console.log(variableA); + } + test(); +}); diff --git a/test/expected/build/application.a/dest-deps-incl/test-resources/LibraryC/Test.html b/test/expected/build/application.a/dest-deps-incl/test-resources/LibraryC/Test.html new file mode 100644 index 000000000..e69de29bb diff --git a/test/expected/build/application.a/dest-deps-incl/test-resources/library/a/Test.html b/test/expected/build/application.a/dest-deps-incl/test-resources/library/a/Test.html new file mode 100644 index 000000000..e69de29bb diff --git a/test/expected/build/application.a/dest-deps-incl/test-resources/library/b/Test.html b/test/expected/build/application.a/dest-deps-incl/test-resources/library/b/Test.html new file mode 100644 index 000000000..e69de29bb diff --git a/test/expected/build/application.a/dest-deps-incl/test-resources/library/d/Test.html b/test/expected/build/application.a/dest-deps-incl/test-resources/library/d/Test.html new file mode 100644 index 000000000..e69de29bb diff --git a/test/expected/build/application.a/dest-deps-incl/test.js b/test/expected/build/application.a/dest-deps-incl/test.js new file mode 100644 index 000000000..24b3706c6 --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/test.js @@ -0,0 +1,2 @@ +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); +//# sourceMappingURL=test.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/test.js.map b/test/expected/build/application.a/dest-deps-incl/test.js.map new file mode 100644 index 000000000..1d04a4e3e --- /dev/null +++ b/test/expected/build/application.a/dest-deps-incl/test.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/resources/library/d/some.js b/test/expected/build/application.a/dest-deps/resources/library/d/some.js index c23f5f207..75aba1e23 100644 --- a/test/expected/build/application.a/dest-deps/resources/library/d/some.js +++ b/test/expected/build/application.a/dest-deps/resources/library/d/some.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -(function(){var o="World";console.log("Hello "+o)})(); \ No newline at end of file +(function(){var o="World";console.log("Hello "+o)})(); +//# sourceMappingURL=some.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/resources/library/d/some.js.map b/test/expected/build/application.a/dest-deps/resources/library/d/some.js.map new file mode 100644 index 000000000..bc2b57a0a --- /dev/null +++ b/test/expected/build/application.a/dest-deps/resources/library/d/some.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":";;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/resources/ui5loader.js b/test/expected/build/application.a/dest-deps/resources/ui5loader.js index e69de29bb..9b62890d8 100644 --- a/test/expected/build/application.a/dest-deps/resources/ui5loader.js +++ b/test/expected/build/application.a/dest-deps/resources/ui5loader.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=ui5loader.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/resources/ui5loader.js.map b/test/expected/build/application.a/dest-deps/resources/ui5loader.js.map new file mode 100644 index 000000000..636d46591 --- /dev/null +++ b/test/expected/build/application.a/dest-deps/resources/ui5loader.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","file":"ui5loader.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/test.js b/test/expected/build/application.a/dest-deps/test.js index fd8278c6e..24b3706c6 100644 --- a/test/expected/build/application.a/dest-deps/test.js +++ b/test/expected/build/application.a/dest-deps/test.js @@ -1 +1,2 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); +//# sourceMappingURL=test.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/test.js.map b/test/expected/build/application.a/dest-deps/test.js.map new file mode 100644 index 000000000..1d04a4e3e --- /dev/null +++ b/test/expected/build/application.a/dest-deps/test.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/resources/library/d/some.js b/test/expected/build/application.a/dest-depself/resources/library/d/some.js index c23f5f207..75aba1e23 100644 --- a/test/expected/build/application.a/dest-depself/resources/library/d/some.js +++ b/test/expected/build/application.a/dest-depself/resources/library/d/some.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -(function(){var o="World";console.log("Hello "+o)})(); \ No newline at end of file +(function(){var o="World";console.log("Hello "+o)})(); +//# sourceMappingURL=some.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/resources/library/d/some.js.map b/test/expected/build/application.a/dest-depself/resources/library/d/some.js.map new file mode 100644 index 000000000..bc2b57a0a --- /dev/null +++ b/test/expected/build/application.a/dest-depself/resources/library/d/some.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":";;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js b/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js index c1aee5600..b03a55c6e 100644 --- a/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js +++ b/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js @@ -1,10 +1,12 @@ //@ui5-bundle sap-ui-custom.js sap.ui.require.preload({ "application/a/test.js":function(){sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); +//# sourceMappingURL=test.js.map }, "library/d/some.js":function(){/*! * Some fancy copyright */ (function(){var o="World";console.log("Hello "+o)})(); +//# sourceMappingURL=some.js.map } }); diff --git a/test/expected/build/application.a/dest-depself/resources/ui5loader.js b/test/expected/build/application.a/dest-depself/resources/ui5loader.js index e69de29bb..9b62890d8 100644 --- a/test/expected/build/application.a/dest-depself/resources/ui5loader.js +++ b/test/expected/build/application.a/dest-depself/resources/ui5loader.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=ui5loader.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/resources/ui5loader.js.map b/test/expected/build/application.a/dest-depself/resources/ui5loader.js.map new file mode 100644 index 000000000..636d46591 --- /dev/null +++ b/test/expected/build/application.a/dest-depself/resources/ui5loader.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","file":"ui5loader.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/test.js b/test/expected/build/application.a/dest-depself/test.js index fd8278c6e..24b3706c6 100644 --- a/test/expected/build/application.a/dest-depself/test.js +++ b/test/expected/build/application.a/dest-depself/test.js @@ -1 +1,2 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); +//# sourceMappingURL=test.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/test.js.map b/test/expected/build/application.a/dest-depself/test.js.map new file mode 100644 index 000000000..1d04a4e3e --- /dev/null +++ b/test/expected/build/application.a/dest-depself/test.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js b/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js index 7728d6932..5016d451e 100644 --- a/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js +++ b/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js @@ -1,10 +1,14 @@ //@ui5-bundle sap-ui-custom.js sap.ui.require.preload({ "application/a/test.js":function(){sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); +//# sourceMappingURL=test.js.map }, "library/d/some.js":function(){/*! * ${copyright} */ -(function(){var o="World";console.log("Hello "+o)})(); +(function() { + var someNonUglifiedVariable = "World"; + console.log('Hello ' + someNonUglifiedVariable); +})(); } }); diff --git a/test/expected/build/application.a/dest-self/test.js b/test/expected/build/application.a/dest-self/test.js index fd8278c6e..24b3706c6 100644 --- a/test/expected/build/application.a/dest-self/test.js +++ b/test/expected/build/application.a/dest-self/test.js @@ -1 +1,2 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); +//# sourceMappingURL=test.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-self/test.js.map b/test/expected/build/application.a/dest-self/test.js.map new file mode 100644 index 000000000..1d04a4e3e --- /dev/null +++ b/test/expected/build/application.a/dest-self/test.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest/test.js b/test/expected/build/application.a/dest/test.js index fd8278c6e..24b3706c6 100644 --- a/test/expected/build/application.a/dest/test.js +++ b/test/expected/build/application.a/dest/test.js @@ -1 +1,2 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); +//# sourceMappingURL=test.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest/test.js.map b/test/expected/build/application.a/dest/test.js.map new file mode 100644 index 000000000..1d04a4e3e --- /dev/null +++ b/test/expected/build/application.a/dest/test.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js b/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js index 4c5f70cc4..be330319f 100644 --- a/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js +++ b/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js @@ -1,4 +1,9 @@ //@ui5-bundle sap-ui-custom-dbg.js +//@ui5-bundle-raw-include ui5loader-autoconfig.js +(function () { + var thisIsTheUi5LoaderAutoconfig = true; + console.log(thisIsTheUi5LoaderAutoconfig); +})() sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); diff --git a/test/expected/build/application.b/standalone/resources/sap-ui-custom.js b/test/expected/build/application.b/standalone/resources/sap-ui-custom.js index 08327d586..b68d6920b 100644 --- a/test/expected/build/application.b/standalone/resources/sap-ui-custom.js +++ b/test/expected/build/application.b/standalone/resources/sap-ui-custom.js @@ -1,7 +1,10 @@ //@ui5-bundle sap-ui-custom.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +//@ui5-bundle-raw-include ui5loader-autoconfig.js +(function () { + var thisIsTheUi5LoaderAutoconfig = true; + console.log(thisIsTheUi5LoaderAutoconfig); +})() +sap.ui.require.preload({ "id1/embedded/i18n/i18n.properties":'title=embedded-i18n', "id1/embedded/i18n/i18n_de.properties":'title=embedded-i18n_de', "id1/embedded/i18n_fr.properties":'title=embedded-i18n_fr-wrong', @@ -11,9 +14,12 @@ jQuery.sap.registerPreloadedModules({ "id1/i18n/i18n_de.properties":'title=app-i18n_de\nfame=Stra\\u00dfe', "id1/i18n/l10n.properties":'title=app-i18n-wrong\nfame=Stra\\u00dfe', "id1/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"id1","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', - "sap/ui/core/Core.js":function(){ + "sap/ui/core/Core.js":function(){(function () { + var core = true; + console.log(core); +})() } -}}); +}); sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); diff --git a/test/expected/build/application.g/cachebuster/Component-preload.js b/test/expected/build/application.g/cachebuster/Component-preload.js index 504dbcbe0..e42a2092a 100644 --- a/test/expected/build/application.g/cachebuster/Component-preload.js +++ b/test/expected/build/application.g/cachebuster/Component-preload.js @@ -3,12 +3,15 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ "application/g/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map }, "application/g/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g","type":"application","applicationVersion":{"version":"1.0.0"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"Some fancy copyright"}', "application/g/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map }, "application/g/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', "application/g/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map }, "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); diff --git a/test/expected/build/application.g/cachebuster/Component.js b/test/expected/build/application.g/cachebuster/Component.js index 6fdb761a9..6ad3cfb41 100644 --- a/test/expected/build/application.g/cachebuster/Component.js +++ b/test/expected/build/application.g/cachebuster/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/Component.js.map b/test/expected/build/application.g/cachebuster/Component.js.map new file mode 100644 index 000000000..97f5dc393 --- /dev/null +++ b/test/expected/build/application.g/cachebuster/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/sap-ui-cachebuster-info.json b/test/expected/build/application.g/cachebuster/sap-ui-cachebuster-info.json index b7b2814c7..a8cc8479d 100644 --- a/test/expected/build/application.g/cachebuster/sap-ui-cachebuster-info.json +++ b/test/expected/build/application.g/cachebuster/sap-ui-cachebuster-info.json @@ -1,12 +1,15 @@ { - "Component-dbg.js": 1540570258000, - "subcomponentA/manifest.json": 1540570258000, - "subcomponentB/manifest.json": 1540570258000, - "subcomponentB/Component.js": 1540570258000, - "subcomponentA/Component.js": 1540570258000, - "Component.js": 1540570258000, - "Component-preload.js": 1554823987259, - "subcomponentB/Component-dbg.js": 1540570258000, - "subcomponentA/Component-dbg.js": 1540570258000, - "manifest.json": 1540570258000 -} + "subcomponentB/Component-dbg.js": 1542320456755, + "subcomponentA/manifest.json": 1542320456755, + "manifest.json": 1603970570100, + "subcomponentA/Component.js": 1542320456755, + "subcomponentB/manifest.json": 1542320456755, + "Component.js": 1542320456754, + "Component-dbg.js": 1542320456754, + "Component.js.map": 1638483275870, + "subcomponentA/Component-dbg.js": 1542320456755, + "subcomponentA/Component.js.map": 1638483275870, + "subcomponentB/Component.js": 1542320456755, + "subcomponentB/Component.js.map": 1638483275871, + "Component-preload.js": 1638483275995 +} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/subcomponentA/Component.js b/test/expected/build/application.g/cachebuster/subcomponentA/Component.js index 0d3fd6ccc..b53909394 100644 --- a/test/expected/build/application.g/cachebuster/subcomponentA/Component.js +++ b/test/expected/build/application.g/cachebuster/subcomponentA/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/subcomponentA/Component.js.map b/test/expected/build/application.g/cachebuster/subcomponentA/Component.js.map new file mode 100644 index 000000000..5303aa4c7 --- /dev/null +++ b/test/expected/build/application.g/cachebuster/subcomponentA/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/subcomponentB/Component.js b/test/expected/build/application.g/cachebuster/subcomponentB/Component.js index c8af2ace9..c5cc2084d 100644 --- a/test/expected/build/application.g/cachebuster/subcomponentB/Component.js +++ b/test/expected/build/application.g/cachebuster/subcomponentB/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/subcomponentB/Component.js.map b/test/expected/build/application.g/cachebuster/subcomponentB/Component.js.map new file mode 100644 index 000000000..5303aa4c7 --- /dev/null +++ b/test/expected/build/application.g/cachebuster/subcomponentB/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/Component-dbg.js b/test/expected/build/application.g/cachebuster_hash/Component-dbg.js new file mode 100644 index 000000000..fd86d4bd8 --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/Component-dbg.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + metadata: { + manifest: "json" + } + }); +}); \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/Component-preload.js b/test/expected/build/application.g/cachebuster_hash/Component-preload.js new file mode 100644 index 000000000..e42a2092a --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/Component-preload.js @@ -0,0 +1,17 @@ +//@ui5-bundle application/g/Component-preload.js +jQuery.sap.registerPreloadedModules({ +"version":"2.0", +"modules":{ + "application/g/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map +}, + "application/g/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g","type":"application","applicationVersion":{"version":"1.0.0"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"Some fancy copyright"}', + "application/g/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map +}, + "application/g/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', + "application/g/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map +}, + "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' +}}); diff --git a/test/expected/build/application.g/cachebuster_hash/Component.js b/test/expected/build/application.g/cachebuster_hash/Component.js new file mode 100644 index 000000000..6ad3cfb41 --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/Component.js @@ -0,0 +1,2 @@ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/Component.js.map b/test/expected/build/application.g/cachebuster_hash/Component.js.map new file mode 100644 index 000000000..97f5dc393 --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/manifest.json b/test/expected/build/application.g/cachebuster_hash/manifest.json new file mode 100644 index 000000000..620705334 --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/manifest.json @@ -0,0 +1,14 @@ +{ + "_version": "1.1.0", + "sap.app": { + "_version": "1.1.0", + "id": "application.g", + "type": "application", + "applicationVersion": { + "version": "1.0.0" + }, + "embeds": ["embedded"], + "title": "{{title}}" + }, + "customCopyrightString": "Some fancy copyright" +} diff --git a/test/expected/build/application.g/cachebuster_hash/sap-ui-cachebuster-info.json b/test/expected/build/application.g/cachebuster_hash/sap-ui-cachebuster-info.json new file mode 100644 index 000000000..68f5436bc --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/sap-ui-cachebuster-info.json @@ -0,0 +1,15 @@ +{ + "Component.js": "174e92417f0fa7889c2bdb8a243c4d748d66a4da", + "subcomponentB/manifest.json": "3a08d0555e3e49fe683e01205090eed3182b4a9f", + "manifest.json": "a867583cff8c3a5135bfbdd97dcb7a9cad4948bd", + "subcomponentB/Component.js": "d2a467cc8d05c693b22dbef82c2bff4610611d81", + "subcomponentA/Component.js": "37e2d3c99ddf728313ceaddd087c6d547fcbdf8f", + "subcomponentA/manifest.json": "7dfcdf568dcfb47c74d309e2f00193688b112fb7", + "subcomponentB/Component-dbg.js": "c03da2c5ff162c1d9d5e5c4a3edc2cebcda6b0a1", + "subcomponentB/Component.js.map": "76cd9820f761dd43fe4b2a6f5397d09625603e0d", + "subcomponentA/Component-dbg.js": "fef3a5814776e5575302f814e96ae31a13df12b7", + "subcomponentA/Component.js.map": "76cd9820f761dd43fe4b2a6f5397d09625603e0d", + "Component-dbg.js": "874c35543ae850262d1552b6c2d00cecaae205a7", + "Component.js.map": "35e88e40f4933fe235a359361d7bd3459e6f5235", + "Component-preload.js": "d55d19cde640e716b1e03fe44d21436d5158db09" +} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component-dbg.js b/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component-dbg.js new file mode 100644 index 000000000..5f1b47a8a --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component-dbg.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.subcomponentA.Component', { + metadata: { + manifest: "json" + } + }); +}); \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js b/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js new file mode 100644 index 000000000..b53909394 --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js @@ -0,0 +1,2 @@ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js.map b/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js.map new file mode 100644 index 000000000..5303aa4c7 --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentA/manifest.json b/test/expected/build/application.g/cachebuster_hash/subcomponentA/manifest.json new file mode 100644 index 000000000..ac1f84ae8 --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/subcomponentA/manifest.json @@ -0,0 +1,13 @@ +{ + "_version": "1.1.0", + "sap.app": { + "_version": "1.1.0", + "id": "application.g.subcomponentA", + "type": "application", + "applicationVersion": { + "version": "1.2.2" + }, + "embeds": ["embedded"], + "title": "{{title}}" + } +} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component-dbg.js b/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component-dbg.js new file mode 100644 index 000000000..5fb07ed25 --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component-dbg.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.subcomponentB.Component', { + metadata: { + manifest: "json" + } + }); +}); \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js b/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js new file mode 100644 index 000000000..c5cc2084d --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js @@ -0,0 +1,2 @@ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js.map b/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js.map new file mode 100644 index 000000000..5303aa4c7 --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentB/manifest.json b/test/expected/build/application.g/cachebuster_hash/subcomponentB/manifest.json new file mode 100644 index 000000000..84cd1802f --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/subcomponentB/manifest.json @@ -0,0 +1,13 @@ +{ + "_version": "1.1.0", + "sap.app": { + "_version": "1.1.0", + "id": "application.g.subcomponentB", + "type": "application", + "applicationVersion": { + "version": "1.2.2" + }, + "embeds": ["embedded"], + "title": "{{title}}" + } +} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/Component-preload.js b/test/expected/build/application.g/dest/Component-preload.js index bb4d7436f..3754c4605 100644 --- a/test/expected/build/application.g/dest/Component-preload.js +++ b/test/expected/build/application.g/dest/Component-preload.js @@ -3,6 +3,7 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ "application/g/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map }, "application/g/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g","type":"application","applicationVersion":{"version":"1.0.0"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"Some fancy copyright"}' }}); diff --git a/test/expected/build/application.g/dest/Component.js b/test/expected/build/application.g/dest/Component.js index 6fdb761a9..6ad3cfb41 100644 --- a/test/expected/build/application.g/dest/Component.js +++ b/test/expected/build/application.g/dest/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/dest/Component.js.map b/test/expected/build/application.g/dest/Component.js.map new file mode 100644 index 000000000..97f5dc393 --- /dev/null +++ b/test/expected/build/application.g/dest/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentA/Component-preload.js b/test/expected/build/application.g/dest/subcomponentA/Component-preload.js index 4c103c261..47f678316 100644 --- a/test/expected/build/application.g/dest/subcomponentA/Component-preload.js +++ b/test/expected/build/application.g/dest/subcomponentA/Component-preload.js @@ -3,6 +3,7 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ "application/g/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map }, "application/g/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); diff --git a/test/expected/build/application.g/dest/subcomponentA/Component.js b/test/expected/build/application.g/dest/subcomponentA/Component.js index 0d3fd6ccc..b53909394 100644 --- a/test/expected/build/application.g/dest/subcomponentA/Component.js +++ b/test/expected/build/application.g/dest/subcomponentA/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentA/Component.js.map b/test/expected/build/application.g/dest/subcomponentA/Component.js.map new file mode 100644 index 000000000..5303aa4c7 --- /dev/null +++ b/test/expected/build/application.g/dest/subcomponentA/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentB/Component-preload.js b/test/expected/build/application.g/dest/subcomponentB/Component-preload.js index 14667fe94..f6815fb06 100644 --- a/test/expected/build/application.g/dest/subcomponentB/Component-preload.js +++ b/test/expected/build/application.g/dest/subcomponentB/Component-preload.js @@ -3,6 +3,7 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ "application/g/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map }, "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); diff --git a/test/expected/build/application.g/dest/subcomponentB/Component.js b/test/expected/build/application.g/dest/subcomponentB/Component.js index c8af2ace9..c5cc2084d 100644 --- a/test/expected/build/application.g/dest/subcomponentB/Component.js +++ b/test/expected/build/application.g/dest/subcomponentB/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentB/Component.js.map b/test/expected/build/application.g/dest/subcomponentB/Component.js.map new file mode 100644 index 000000000..5303aa4c7 --- /dev/null +++ b/test/expected/build/application.g/dest/subcomponentB/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/Component-dbg.js b/test/expected/build/application.g/dest2/Component-dbg.js new file mode 100644 index 000000000..fd86d4bd8 --- /dev/null +++ b/test/expected/build/application.g/dest2/Component-dbg.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + metadata: { + manifest: "json" + } + }); +}); \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/Component-preload.js b/test/expected/build/application.g/dest2/Component-preload.js new file mode 100644 index 000000000..3754c4605 --- /dev/null +++ b/test/expected/build/application.g/dest2/Component-preload.js @@ -0,0 +1,9 @@ +//@ui5-bundle application/g/Component-preload.js +jQuery.sap.registerPreloadedModules({ +"version":"2.0", +"modules":{ + "application/g/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map +}, + "application/g/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g","type":"application","applicationVersion":{"version":"1.0.0"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"Some fancy copyright"}' +}}); diff --git a/test/expected/build/application.g/dest2/Component.js b/test/expected/build/application.g/dest2/Component.js new file mode 100644 index 000000000..6ad3cfb41 --- /dev/null +++ b/test/expected/build/application.g/dest2/Component.js @@ -0,0 +1,2 @@ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/Component.js.map b/test/expected/build/application.g/dest2/Component.js.map new file mode 100644 index 000000000..97f5dc393 --- /dev/null +++ b/test/expected/build/application.g/dest2/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/manifest.json b/test/expected/build/application.g/dest2/manifest.json new file mode 100644 index 000000000..620705334 --- /dev/null +++ b/test/expected/build/application.g/dest2/manifest.json @@ -0,0 +1,14 @@ +{ + "_version": "1.1.0", + "sap.app": { + "_version": "1.1.0", + "id": "application.g", + "type": "application", + "applicationVersion": { + "version": "1.0.0" + }, + "embeds": ["embedded"], + "title": "{{title}}" + }, + "customCopyrightString": "Some fancy copyright" +} diff --git a/test/expected/build/application.g/dest2/subcomponentA/Component-dbg.js b/test/expected/build/application.g/dest2/subcomponentA/Component-dbg.js new file mode 100644 index 000000000..5f1b47a8a --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentA/Component-dbg.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.subcomponentA.Component', { + metadata: { + manifest: "json" + } + }); +}); \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js b/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js new file mode 100644 index 000000000..47f678316 --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js @@ -0,0 +1,9 @@ +//@ui5-bundle application/g/subcomponentA/Component-preload.js +jQuery.sap.registerPreloadedModules({ +"version":"2.0", +"modules":{ + "application/g/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map +}, + "application/g/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' +}}); diff --git a/test/expected/build/application.g/dest2/subcomponentA/Component.js b/test/expected/build/application.g/dest2/subcomponentA/Component.js new file mode 100644 index 000000000..b53909394 --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentA/Component.js @@ -0,0 +1,2 @@ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentA/Component.js.map b/test/expected/build/application.g/dest2/subcomponentA/Component.js.map new file mode 100644 index 000000000..5303aa4c7 --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentA/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentA/manifest.json b/test/expected/build/application.g/dest2/subcomponentA/manifest.json new file mode 100644 index 000000000..ac1f84ae8 --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentA/manifest.json @@ -0,0 +1,13 @@ +{ + "_version": "1.1.0", + "sap.app": { + "_version": "1.1.0", + "id": "application.g.subcomponentA", + "type": "application", + "applicationVersion": { + "version": "1.2.2" + }, + "embeds": ["embedded"], + "title": "{{title}}" + } +} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentB/Component-dbg.js b/test/expected/build/application.g/dest2/subcomponentB/Component-dbg.js new file mode 100644 index 000000000..5fb07ed25 --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentB/Component-dbg.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.subcomponentB.Component', { + metadata: { + manifest: "json" + } + }); +}); \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js b/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js new file mode 100644 index 000000000..f6815fb06 --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js @@ -0,0 +1,9 @@ +//@ui5-bundle application/g/subcomponentB/Component-preload.js +jQuery.sap.registerPreloadedModules({ +"version":"2.0", +"modules":{ + "application/g/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map +}, + "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' +}}); diff --git a/test/expected/build/application.g/dest2/subcomponentB/Component.js b/test/expected/build/application.g/dest2/subcomponentB/Component.js new file mode 100644 index 000000000..c5cc2084d --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentB/Component.js @@ -0,0 +1,2 @@ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentB/Component.js.map b/test/expected/build/application.g/dest2/subcomponentB/Component.js.map new file mode 100644 index 000000000..5303aa4c7 --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentB/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentB/manifest.json b/test/expected/build/application.g/dest2/subcomponentB/manifest.json new file mode 100644 index 000000000..84cd1802f --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentB/manifest.json @@ -0,0 +1,13 @@ +{ + "_version": "1.1.0", + "sap.app": { + "_version": "1.1.0", + "id": "application.g.subcomponentB", + "type": "application", + "applicationVersion": { + "version": "1.2.2" + }, + "embeds": ["embedded"], + "title": "{{title}}" + } +} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/Component-dbg.js b/test/expected/build/application.h/dest/Component-dbg.js new file mode 100644 index 000000000..cb9bd4068 --- /dev/null +++ b/test/expected/build/application.h/dest/Component-dbg.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.h.Component', { + metadata: { + manifest: "json" + } + }); +}); diff --git a/test/expected/build/application.h/dest/Component.js b/test/expected/build/application.h/dest/Component.js index acf57e86e..ccde11646 100644 --- a/test/expected/build/application.h/dest/Component.js +++ b/test/expected/build/application.h/dest/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.h.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.h.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.h/dest/Component.js.map b/test/expected/build/application.h/dest/Component.js.map new file mode 100644 index 000000000..97f5dc393 --- /dev/null +++ b/test/expected/build/application.h/dest/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/customBundle.js b/test/expected/build/application.h/dest/sectionsA/customBundle.js index 4acc4444d..4292cdd48 100644 --- a/test/expected/build/application.h/dest/sectionsA/customBundle.js +++ b/test/expected/build/application.h/dest/sectionsA/customBundle.js @@ -3,7 +3,9 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ "application/h/sectionsA/section1.js":function(){sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); +//# sourceMappingURL=section1.js.map }, "application/h/sectionsA/section3.js":function(){sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); +//# sourceMappingURL=section3.js.map } }}); diff --git a/test/expected/build/application.h/dest/sectionsA/section1-dbg.js b/test/expected/build/application.h/dest/sectionsA/section1-dbg.js new file mode 100644 index 000000000..ac4a81296 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsA/section1-dbg.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 1 included"); +}); diff --git a/test/expected/build/application.h/dest/sectionsA/section1.js b/test/expected/build/application.h/dest/sectionsA/section1.js index 1ec2e3184..740930367 100644 --- a/test/expected/build/application.h/dest/sectionsA/section1.js +++ b/test/expected/build/application.h/dest/sectionsA/section1.js @@ -1 +1,2 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); +//# sourceMappingURL=section1.js.map \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section1.js.map b/test/expected/build/application.h/dest/sectionsA/section1.js.map new file mode 100644 index 000000000..8b3202d17 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsA/section1.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["section1-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section1.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section2-dbg.js b/test/expected/build/application.h/dest/sectionsA/section2-dbg.js new file mode 100644 index 000000000..e009c8286 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsA/section2-dbg.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 2 included"); +}); diff --git a/test/expected/build/application.h/dest/sectionsA/section2.js b/test/expected/build/application.h/dest/sectionsA/section2.js index a446217a5..653acdb83 100644 --- a/test/expected/build/application.h/dest/sectionsA/section2.js +++ b/test/expected/build/application.h/dest/sectionsA/section2.js @@ -1 +1,2 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 2 included")}); \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 2 included")}); +//# sourceMappingURL=section2.js.map \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section2.js.map b/test/expected/build/application.h/dest/sectionsA/section2.js.map new file mode 100644 index 000000000..09d59d6ea --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsA/section2.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["section2-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section2.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section3-dbg.js b/test/expected/build/application.h/dest/sectionsA/section3-dbg.js new file mode 100644 index 000000000..5fd9349d4 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsA/section3-dbg.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 3 included"); +}); diff --git a/test/expected/build/application.h/dest/sectionsA/section3.js b/test/expected/build/application.h/dest/sectionsA/section3.js index 8358bbe01..70c1434ed 100644 --- a/test/expected/build/application.h/dest/sectionsA/section3.js +++ b/test/expected/build/application.h/dest/sectionsA/section3.js @@ -1 +1,2 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); +//# sourceMappingURL=section3.js.map \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section3.js.map b/test/expected/build/application.h/dest/sectionsA/section3.js.map new file mode 100644 index 000000000..d39b700b8 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsA/section3.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["section3-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section3.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/customBundle.js b/test/expected/build/application.h/dest/sectionsB/customBundle.js index 0e66f011b..2ee5ae456 100644 --- a/test/expected/build/application.h/dest/sectionsB/customBundle.js +++ b/test/expected/build/application.h/dest/sectionsB/customBundle.js @@ -2,10 +2,16 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/h/sectionsB/section1.js":function(){sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); + "application/h/sectionsB/section1.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 1 included"); +}); }, - "application/h/sectionsB/section2.js":function(){sap.ui.define(["sap/m/Button"],function(n){console.log("Section 2 included")}); + "application/h/sectionsB/section2.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 2 included"); +}); }, - "application/h/sectionsB/section3.js":function(){sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); + "application/h/sectionsB/section3.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 3 included"); +}); } }}); diff --git a/test/expected/build/application.h/dest/sectionsB/section1-dbg.js b/test/expected/build/application.h/dest/sectionsB/section1-dbg.js new file mode 100644 index 000000000..ac4a81296 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsB/section1-dbg.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 1 included"); +}); diff --git a/test/expected/build/application.h/dest/sectionsB/section1.js b/test/expected/build/application.h/dest/sectionsB/section1.js index 1ec2e3184..740930367 100644 --- a/test/expected/build/application.h/dest/sectionsB/section1.js +++ b/test/expected/build/application.h/dest/sectionsB/section1.js @@ -1 +1,2 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); +//# sourceMappingURL=section1.js.map \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section1.js.map b/test/expected/build/application.h/dest/sectionsB/section1.js.map new file mode 100644 index 000000000..8b3202d17 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsB/section1.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["section1-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section1.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section2-dbg.js b/test/expected/build/application.h/dest/sectionsB/section2-dbg.js new file mode 100644 index 000000000..e009c8286 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsB/section2-dbg.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 2 included"); +}); diff --git a/test/expected/build/application.h/dest/sectionsB/section2.js b/test/expected/build/application.h/dest/sectionsB/section2.js index a446217a5..653acdb83 100644 --- a/test/expected/build/application.h/dest/sectionsB/section2.js +++ b/test/expected/build/application.h/dest/sectionsB/section2.js @@ -1 +1,2 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 2 included")}); \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 2 included")}); +//# sourceMappingURL=section2.js.map \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section2.js.map b/test/expected/build/application.h/dest/sectionsB/section2.js.map new file mode 100644 index 000000000..09d59d6ea --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsB/section2.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["section2-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section2.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section3-dbg.js b/test/expected/build/application.h/dest/sectionsB/section3-dbg.js new file mode 100644 index 000000000..5fd9349d4 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsB/section3-dbg.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 3 included"); +}); diff --git a/test/expected/build/application.h/dest/sectionsB/section3.js b/test/expected/build/application.h/dest/sectionsB/section3.js index 8358bbe01..70c1434ed 100644 --- a/test/expected/build/application.h/dest/sectionsB/section3.js +++ b/test/expected/build/application.h/dest/sectionsB/section3.js @@ -1 +1,2 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); +//# sourceMappingURL=section3.js.map \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section3.js.map b/test/expected/build/application.h/dest/sectionsB/section3.js.map new file mode 100644 index 000000000..d39b700b8 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsB/section3.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["section3-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section3.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/no-minify/Component.js b/test/expected/build/application.h/no-minify/Component.js new file mode 100644 index 000000000..cb9bd4068 --- /dev/null +++ b/test/expected/build/application.h/no-minify/Component.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.h.Component', { + metadata: { + manifest: "json" + } + }); +}); diff --git a/test/expected/build/application.h/no-minify/manifest.json b/test/expected/build/application.h/no-minify/manifest.json new file mode 100644 index 000000000..32b7e4a84 --- /dev/null +++ b/test/expected/build/application.h/no-minify/manifest.json @@ -0,0 +1,13 @@ +{ + "_version": "1.1.0", + "sap.app": { + "_version": "1.1.0", + "id": "application.h", + "type": "application", + "applicationVersion": { + "version": "1.2.2" + }, + "embeds": ["embedded"], + "title": "{{title}}" + } +} diff --git a/test/expected/build/application.h/no-minify/sectionsA/customBundle.js b/test/expected/build/application.h/no-minify/sectionsA/customBundle.js new file mode 100644 index 000000000..3bd827332 --- /dev/null +++ b/test/expected/build/application.h/no-minify/sectionsA/customBundle.js @@ -0,0 +1,13 @@ +//@ui5-bundle application/h/sectionsA/customBundle.js +jQuery.sap.registerPreloadedModules({ +"version":"2.0", +"modules":{ + "application/h/sectionsA/section1.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 1 included"); +}); +}, + "application/h/sectionsA/section3.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 3 included"); +}); +} +}}); diff --git a/test/expected/build/application.h/no-minify/sectionsA/section1.js b/test/expected/build/application.h/no-minify/sectionsA/section1.js new file mode 100644 index 000000000..ac4a81296 --- /dev/null +++ b/test/expected/build/application.h/no-minify/sectionsA/section1.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 1 included"); +}); diff --git a/test/expected/build/application.h/no-minify/sectionsA/section2.js b/test/expected/build/application.h/no-minify/sectionsA/section2.js new file mode 100644 index 000000000..e009c8286 --- /dev/null +++ b/test/expected/build/application.h/no-minify/sectionsA/section2.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 2 included"); +}); diff --git a/test/expected/build/application.h/no-minify/sectionsA/section3.js b/test/expected/build/application.h/no-minify/sectionsA/section3.js new file mode 100644 index 000000000..5fd9349d4 --- /dev/null +++ b/test/expected/build/application.h/no-minify/sectionsA/section3.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 3 included"); +}); diff --git a/test/expected/build/application.h/no-minify/sectionsB/customBundle.js b/test/expected/build/application.h/no-minify/sectionsB/customBundle.js new file mode 100644 index 000000000..2ee5ae456 --- /dev/null +++ b/test/expected/build/application.h/no-minify/sectionsB/customBundle.js @@ -0,0 +1,17 @@ +//@ui5-bundle application/h/sectionsB/customBundle.js +jQuery.sap.registerPreloadedModules({ +"version":"2.0", +"modules":{ + "application/h/sectionsB/section1.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 1 included"); +}); +}, + "application/h/sectionsB/section2.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 2 included"); +}); +}, + "application/h/sectionsB/section3.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 3 included"); +}); +} +}}); diff --git a/test/expected/build/application.h/no-minify/sectionsB/section1.js b/test/expected/build/application.h/no-minify/sectionsB/section1.js new file mode 100644 index 000000000..ac4a81296 --- /dev/null +++ b/test/expected/build/application.h/no-minify/sectionsB/section1.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 1 included"); +}); diff --git a/test/expected/build/application.h/no-minify/sectionsB/section2.js b/test/expected/build/application.h/no-minify/sectionsB/section2.js new file mode 100644 index 000000000..e009c8286 --- /dev/null +++ b/test/expected/build/application.h/no-minify/sectionsB/section2.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 2 included"); +}); diff --git a/test/expected/build/application.h/no-minify/sectionsB/section3.js b/test/expected/build/application.h/no-minify/sectionsB/section3.js new file mode 100644 index 000000000..5fd9349d4 --- /dev/null +++ b/test/expected/build/application.h/no-minify/sectionsB/section3.js @@ -0,0 +1,3 @@ +sap.ui.define(["sap/m/Button"], function(Button) { + console.log("Section 3 included"); +}); diff --git a/test/expected/build/application.i/dest/Component-dbg.js b/test/expected/build/application.i/dest/Component-dbg.js new file mode 100644 index 000000000..f402cb140 --- /dev/null +++ b/test/expected/build/application.i/dest/Component-dbg.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.i.Component', { + metadata: { + manifest: "json" + } + }); +}); diff --git a/test/expected/build/application.i/dest/Component-preload.js b/test/expected/build/application.i/dest/Component-preload.js index 938149674..929f49213 100644 --- a/test/expected/build/application.i/dest/Component-preload.js +++ b/test/expected/build/application.i/dest/Component-preload.js @@ -3,9 +3,11 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ "application/i/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.i.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map }, "application/i/changes/changes-bundle.json":'[{"fileName":"id_456_addField","fileType":"change","changeType":"hideControl","component":"application.i.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.i.Component/changes","creation":"2023-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}},{"fileName":"id_123_addField","fileType":"change","changeType":"hideControl","component":"application.i.Component","content":{},"selector":{"id":"control1"},"layer":"CUSTOMER","texts":{},"namespace":"apps/application.i.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"Max Mustermann"}}]', "application/i/changes/coding/MyExtension.js":function(){sap.ui.define([],function(){return{}}); +//# sourceMappingURL=MyExtension.js.map }, "application/i/changes/fragments/MyFragment.fragment.xml":'', "application/i/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.i","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{}}}}}' diff --git a/test/expected/build/application.i/dest/Component.js b/test/expected/build/application.i/dest/Component.js index f172a1f15..5d50a2eff 100644 --- a/test/expected/build/application.i/dest/Component.js +++ b/test/expected/build/application.i/dest/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.i.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.i.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.i/dest/Component.js.map b/test/expected/build/application.i/dest/Component.js.map new file mode 100644 index 000000000..97f5dc393 --- /dev/null +++ b/test/expected/build/application.i/dest/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.i/dest/changes/coding/MyExtension-dbg.js b/test/expected/build/application.i/dest/changes/coding/MyExtension-dbg.js new file mode 100644 index 000000000..dfb3da014 --- /dev/null +++ b/test/expected/build/application.i/dest/changes/coding/MyExtension-dbg.js @@ -0,0 +1,3 @@ +sap.ui.define([],function () { + return {}; +}); diff --git a/test/expected/build/application.i/dest/changes/coding/MyExtension.js b/test/expected/build/application.i/dest/changes/coding/MyExtension.js index b9e475d8e..ce81ba310 100644 --- a/test/expected/build/application.i/dest/changes/coding/MyExtension.js +++ b/test/expected/build/application.i/dest/changes/coding/MyExtension.js @@ -1 +1,2 @@ -sap.ui.define([],function(){return{}}); \ No newline at end of file +sap.ui.define([],function(){return{}}); +//# sourceMappingURL=MyExtension.js.map \ No newline at end of file diff --git a/test/expected/build/application.i/dest/changes/coding/MyExtension.js.map b/test/expected/build/application.i/dest/changes/coding/MyExtension.js.map new file mode 100644 index 000000000..bff243492 --- /dev/null +++ b/test/expected/build/application.i/dest/changes/coding/MyExtension.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js"} \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/Component-dbg.js b/test/expected/build/application.j/dest-resources-json/Component-dbg.js new file mode 100644 index 000000000..e40d21d9a --- /dev/null +++ b/test/expected/build/application.j/dest-resources-json/Component-dbg.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.j.Component', { + metadata: { + manifest: "json" + } + }); +}); diff --git a/test/expected/build/application.j/dest-resources-json/Component-preload.js b/test/expected/build/application.j/dest-resources-json/Component-preload.js index 31e1ed1fe..b00969cfa 100644 --- a/test/expected/build/application.j/dest-resources-json/Component-preload.js +++ b/test/expected/build/application.j/dest-resources-json/Component-preload.js @@ -3,8 +3,10 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ "application/j/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map }, "application/j/changes/coding/MyExtension.js":function(){sap.ui.define([],function(){return{}}); +//# sourceMappingURL=MyExtension.js.map }, "application/j/changes/flexibility-bundle.json":'{"changes":[{"fileName":"id_456_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2023-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}},{"fileName":"id_123_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"CUSTOMER","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"Max Mustermann"}}],"compVariants":[{"fileName":"id_111_compVariants","fileType":"variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"appDescriptorChange":false}],"variants":[{"fileName":"id_111_test","fileType":"ctrl_variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantDependentControlChanges":[{"fileName":"id_111_variantDependentControlChange","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"variantReference":"someting here"}],"variantManagementChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_management_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}]}', "application/j/changes/fragments/MyFragment.fragment.xml":'', diff --git a/test/expected/build/application.j/dest-resources-json/Component.js b/test/expected/build/application.j/dest-resources-json/Component.js index 984f96eaf..f64b0734d 100644 --- a/test/expected/build/application.j/dest-resources-json/Component.js +++ b/test/expected/build/application.j/dest-resources-json/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/Component.js.map b/test/expected/build/application.j/dest-resources-json/Component.js.map new file mode 100644 index 000000000..97f5dc393 --- /dev/null +++ b/test/expected/build/application.j/dest-resources-json/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension-dbg.js b/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension-dbg.js new file mode 100644 index 000000000..dfb3da014 --- /dev/null +++ b/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension-dbg.js @@ -0,0 +1,3 @@ +sap.ui.define([],function () { + return {}; +}); diff --git a/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js b/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js index b9e475d8e..ce81ba310 100644 --- a/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js +++ b/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js @@ -1 +1,2 @@ -sap.ui.define([],function(){return{}}); \ No newline at end of file +sap.ui.define([],function(){return{}}); +//# sourceMappingURL=MyExtension.js.map \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js.map b/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js.map new file mode 100644 index 000000000..bff243492 --- /dev/null +++ b/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js"} \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/resources.json b/test/expected/build/application.j/dest-resources-json/resources.json index 93780b448..4aa4823f5 100644 --- a/test/expected/build/application.j/dest-resources-json/resources.json +++ b/test/expected/build/application.j/dest-resources-json/resources.json @@ -1,10 +1,23 @@ { "_version": "1.1.0", "resources": [ + { + "name": "Component-dbg.js", + "module": "application/j/Component.js", + "size": 184, + "isDebug": true, + "required": [ + "sap/m/library.js", + "sap/ui/core/UIComponent.js", + "sap/ui/core/library.js", + "sap/ui/fl/library.js", + "sap/ui/layout/library.js" + ] + }, { "name": "Component-preload.js", "module": "application/j/Component-preload.js", - "size": 3682, + "size": 3760, "merged": true, "required": [ "sap/m/library.js", @@ -24,7 +37,7 @@ { "name": "Component.js", "module": "application/j/Component.js", - "size": 141, + "size": 179, "required": [ "sap/m/library.js", "sap/ui/core/UIComponent.js", @@ -33,10 +46,26 @@ "sap/ui/layout/library.js" ] }, + { + "name": "Component.js.map", + "size": 253, + "isDebug": true + }, + { + "name": "changes/coding/MyExtension-dbg.js", + "module": "application/j/changes/coding/MyExtension.js", + "size": 47, + "isDebug": true + }, { "name": "changes/coding/MyExtension.js", "module": "application/j/changes/coding/MyExtension.js", - "size": 39 + "size": 79 + }, + { + "name": "changes/coding/MyExtension.js.map", + "size": 152, + "isDebug": true }, { "name": "changes/flexibility-bundle.json", @@ -91,7 +120,7 @@ }, { "name": "resources.json", - "size": 2098 + "size": 2704 } ] } \ No newline at end of file diff --git a/test/expected/build/application.j/dest/Component-dbg.js b/test/expected/build/application.j/dest/Component-dbg.js new file mode 100644 index 000000000..e40d21d9a --- /dev/null +++ b/test/expected/build/application.j/dest/Component-dbg.js @@ -0,0 +1,8 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.j.Component', { + metadata: { + manifest: "json" + } + }); +}); diff --git a/test/expected/build/application.j/dest/Component-preload.js b/test/expected/build/application.j/dest/Component-preload.js index 31e1ed1fe..b00969cfa 100644 --- a/test/expected/build/application.j/dest/Component-preload.js +++ b/test/expected/build/application.j/dest/Component-preload.js @@ -3,8 +3,10 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ "application/j/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map }, "application/j/changes/coding/MyExtension.js":function(){sap.ui.define([],function(){return{}}); +//# sourceMappingURL=MyExtension.js.map }, "application/j/changes/flexibility-bundle.json":'{"changes":[{"fileName":"id_456_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2023-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}},{"fileName":"id_123_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"CUSTOMER","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"Max Mustermann"}}],"compVariants":[{"fileName":"id_111_compVariants","fileType":"variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"appDescriptorChange":false}],"variants":[{"fileName":"id_111_test","fileType":"ctrl_variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantDependentControlChanges":[{"fileName":"id_111_variantDependentControlChange","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"variantReference":"someting here"}],"variantManagementChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_management_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}]}', "application/j/changes/fragments/MyFragment.fragment.xml":'', diff --git a/test/expected/build/application.j/dest/Component.js b/test/expected/build/application.j/dest/Component.js index 984f96eaf..f64b0734d 100644 --- a/test/expected/build/application.j/dest/Component.js +++ b/test/expected/build/application.j/dest/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/application.j/dest/Component.js.map b/test/expected/build/application.j/dest/Component.js.map new file mode 100644 index 000000000..97f5dc393 --- /dev/null +++ b/test/expected/build/application.j/dest/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.j/dest/changes/coding/MyExtension-dbg.js b/test/expected/build/application.j/dest/changes/coding/MyExtension-dbg.js new file mode 100644 index 000000000..dfb3da014 --- /dev/null +++ b/test/expected/build/application.j/dest/changes/coding/MyExtension-dbg.js @@ -0,0 +1,3 @@ +sap.ui.define([],function () { + return {}; +}); diff --git a/test/expected/build/application.j/dest/changes/coding/MyExtension.js b/test/expected/build/application.j/dest/changes/coding/MyExtension.js index b9e475d8e..ce81ba310 100644 --- a/test/expected/build/application.j/dest/changes/coding/MyExtension.js +++ b/test/expected/build/application.j/dest/changes/coding/MyExtension.js @@ -1 +1,2 @@ -sap.ui.define([],function(){return{}}); \ No newline at end of file +sap.ui.define([],function(){return{}}); +//# sourceMappingURL=MyExtension.js.map \ No newline at end of file diff --git a/test/expected/build/application.j/dest/changes/coding/MyExtension.js.map b/test/expected/build/application.j/dest/changes/coding/MyExtension.js.map new file mode 100644 index 000000000..bff243492 --- /dev/null +++ b/test/expected/build/application.j/dest/changes/coding/MyExtension.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js"} \ No newline at end of file diff --git a/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js b/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js index d7133abe9..ed8251c37 100644 --- a/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js +++ b/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js @@ -2,13 +2,34 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/k/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.k.Component",{metadata:{manifest:"json"}})}); + "application/k/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.k.Component', { + metadata: { + manifest: "json" + } + }); +}); }, "application/k/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k","type":"application","applicationVersion":{"version":"${version}"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"${copyright}"}', - "application/k/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.k.subcomponentA.Component",{metadata:{manifest:"json"}})}); + "application/k/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.k.subcomponentA.Component', { + metadata: { + manifest: "json" + } + }); +}); }, "application/k/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', - "application/k/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.k.subcomponentB.Component",{metadata:{manifest:"json"}})}); + "application/k/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.k.subcomponentB.Component', { + metadata: { + manifest: "json" + } + }); +}); }, "application/k/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', "application/k/subcomponentB/thirdparty/lib.js":function(){console.log("subcomponentB/thirdparty/lib.js"); diff --git a/test/expected/build/application.k/dest/Component-preload.js b/test/expected/build/application.k/dest/Component-preload.js index 67ee5854d..12b9506ec 100644 --- a/test/expected/build/application.k/dest/Component-preload.js +++ b/test/expected/build/application.k/dest/Component-preload.js @@ -2,7 +2,14 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/k/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.k.Component",{metadata:{manifest:"json"}})}); + "application/k/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.k.Component', { + metadata: { + manifest: "json" + } + }); +}); }, "application/k/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k","type":"application","applicationVersion":{"version":"${version}"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"${copyright}"}' }}); diff --git a/test/expected/build/application.k/dest/subcomponentA/Component-preload.js b/test/expected/build/application.k/dest/subcomponentA/Component-preload.js index 6ce44c11a..2e73aff3b 100644 --- a/test/expected/build/application.k/dest/subcomponentA/Component-preload.js +++ b/test/expected/build/application.k/dest/subcomponentA/Component-preload.js @@ -2,7 +2,14 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/k/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.k.subcomponentA.Component",{metadata:{manifest:"json"}})}); + "application/k/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.k.subcomponentA.Component', { + metadata: { + manifest: "json" + } + }); +}); }, "application/k/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); diff --git a/test/expected/build/application.k/dest/subcomponentB/Component-preload.js b/test/expected/build/application.k/dest/subcomponentB/Component-preload.js index e1c8f43cb..24bf462a5 100644 --- a/test/expected/build/application.k/dest/subcomponentB/Component-preload.js +++ b/test/expected/build/application.k/dest/subcomponentB/Component-preload.js @@ -2,7 +2,14 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/k/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.k.subcomponentB.Component",{metadata:{manifest:"json"}})}); + "application/k/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.k.subcomponentB.Component', { + metadata: { + manifest: "json" + } + }); +}); }, "application/k/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', "application/k/subcomponentB/thirdparty/lib.js":function(){console.log("subcomponentB/thirdparty/lib.js"); diff --git a/test/expected/build/application.l/dest/subdir/index.js b/test/expected/build/application.l/dest/subdir/index.js index 894e5374f..9661d7207 100644 --- a/test/expected/build/application.l/dest/subdir/index.js +++ b/test/expected/build/application.l/dest/subdir/index.js @@ -1 +1,2 @@ -function hello(l){console.log("hello "+l)}hello("world"); \ No newline at end of file +function hello(l){console.log("hello "+l)}hello("world"); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/test/expected/build/application.l/dest/subdir/index.js.map b/test/expected/build/application.l/dest/subdir/index.js.map new file mode 100644 index 000000000..9ebd8bf4e --- /dev/null +++ b/test/expected/build/application.l/dest/subdir/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["index-dbg.js"],"names":["hello","name","console","log"],"mappings":"AACA,SAASA,MAAMC,GACdC,QAAQC,IAAI,SAAWF,GAExBD,MAAM","file":"index.js"} \ No newline at end of file diff --git a/test/expected/build/application.l/dest/subdir/thirdparty/File1.js b/test/expected/build/application.l/dest/subdir/thirdparty/File1.js index 894e5374f..7b3311e4e 100644 --- a/test/expected/build/application.l/dest/subdir/thirdparty/File1.js +++ b/test/expected/build/application.l/dest/subdir/thirdparty/File1.js @@ -1 +1,2 @@ -function hello(l){console.log("hello "+l)}hello("world"); \ No newline at end of file +function hello(l){console.log("hello "+l)}hello("world"); +//# sourceMappingURL=File1.js.map \ No newline at end of file diff --git a/test/expected/build/application.l/dest/subdir/thirdparty/File1.js.map b/test/expected/build/application.l/dest/subdir/thirdparty/File1.js.map new file mode 100644 index 000000000..1c04d432d --- /dev/null +++ b/test/expected/build/application.l/dest/subdir/thirdparty/File1.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["File1-dbg.js"],"names":["hello","name","console","log"],"mappings":"AACA,SAASA,MAAMC,GACdC,QAAQC,IAAI,SAAWF,GAExBD,MAAM","file":"File1.js"} \ No newline at end of file diff --git a/test/expected/build/application.l/dest/test.js b/test/expected/build/application.l/dest/test.js index 49687cdc2..5a6672e9f 100644 --- a/test/expected/build/application.l/dest/test.js +++ b/test/expected/build/application.l/dest/test.js @@ -1 +1,2 @@ -sap.ui.define([],function(){function n(n){var o=n;console.log(o)}n()}); \ No newline at end of file +sap.ui.define([],function(){function n(n){var o=n;console.log(o)}n()}); +//# sourceMappingURL=test.js.map \ No newline at end of file diff --git a/test/expected/build/application.l/dest/test.js.map b/test/expected/build/application.l/dest/test.js.map new file mode 100644 index 000000000..99a31b097 --- /dev/null +++ b/test/expected/build/application.l/dest/test.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAI,WACjB,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git "a/test/expected/build/application.\303\270/dest/Component-preload.js" "b/test/expected/build/application.\303\270/dest/Component-preload.js" index cb92a7eef..7b95d4e8a 100644 --- "a/test/expected/build/application.\303\270/dest/Component-preload.js" +++ "b/test/expected/build/application.\303\270/dest/Component-preload.js" @@ -1,6 +1,7 @@ //@ui5-bundle application/ø/Component-preload.js sap.ui.require.preload({ "application/ø/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.ø.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map }, "application/ø/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.ø","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.73.2","libs":{"sap.ui.core":{}}}}}' }); diff --git "a/test/expected/build/application.\303\270/dest/Component.js" "b/test/expected/build/application.\303\270/dest/Component.js" index cc3bdb695..8c43e4752 100644 --- "a/test/expected/build/application.\303\270/dest/Component.js" +++ "b/test/expected/build/application.\303\270/dest/Component.js" @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.ø.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.ø.Component",{metadata:{manifest:"json"}})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git "a/test/expected/build/application.\303\270/dest/Component.js.map" "b/test/expected/build/application.\303\270/dest/Component.js.map" new file mode 100644 index 000000000..97f5dc393 --- /dev/null +++ "b/test/expected/build/application.\303\270/dest/Component.js.map" @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/build/fileWithoutExtension b/test/expected/build/build/fileWithoutExtension new file mode 100644 index 000000000..1a39ca7a7 --- /dev/null +++ b/test/expected/build/build/fileWithoutExtension @@ -0,0 +1 @@ +A file without an extension \ No newline at end of file diff --git a/test/expected/build/build/index.html b/test/expected/build/build/index.html new file mode 100644 index 000000000..1523b1dc3 --- /dev/null +++ b/test/expected/build/build/index.html @@ -0,0 +1,11 @@ + + + + Application A + + + + + + \ No newline at end of file diff --git a/test/expected/build/build/test.js b/test/expected/build/build/test.js new file mode 100644 index 000000000..cb4595405 --- /dev/null +++ b/test/expected/build/build/test.js @@ -0,0 +1,9 @@ +sap.ui.define([ + "library/d/some" +], function(someObject) { + function test(paramA) { + var variableA = paramA; + console.log(variableA); + } + test(); +}); diff --git a/test/expected/build/cleanup/fileWithoutExtension b/test/expected/build/cleanup/fileWithoutExtension new file mode 100644 index 000000000..1a39ca7a7 --- /dev/null +++ b/test/expected/build/cleanup/fileWithoutExtension @@ -0,0 +1 @@ +A file without an extension \ No newline at end of file diff --git a/test/expected/build/cleanup/index.html b/test/expected/build/cleanup/index.html new file mode 100644 index 000000000..1523b1dc3 --- /dev/null +++ b/test/expected/build/cleanup/index.html @@ -0,0 +1,11 @@ + + + + Application A + + + + + + \ No newline at end of file diff --git a/test/expected/build/cleanup/test.js b/test/expected/build/cleanup/test.js new file mode 100644 index 000000000..cb4595405 --- /dev/null +++ b/test/expected/build/cleanup/test.js @@ -0,0 +1,9 @@ +sap.ui.define([ + "library/d/some" +], function(someObject) { + function test(paramA) { + var variableA = paramA; + console.log(variableA); + } + test(); +}); diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core-dbg.js b/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core-dbg.js new file mode 100644 index 000000000..e69de29bb diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js b/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js new file mode 100644 index 000000000..a72d46525 --- /dev/null +++ b/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=sap-ui-core.js.map \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js.map b/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js.map new file mode 100644 index 000000000..e347f93df --- /dev/null +++ b/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","file":"sap-ui-core.js"} \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global-dbg.js b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global-dbg.js new file mode 100644 index 000000000..8a2077bdb --- /dev/null +++ b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global-dbg.js @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */ +// replacement of $\{buildtime\} is only made in sap/ui/Global.js and Global-dbg.js +console.log('20220620-1630'); diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js new file mode 100644 index 000000000..e0fe65e6f --- /dev/null +++ b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */ +console.log("20220620-1630"); +//# sourceMappingURL=Global.js.map \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js.map b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js.map new file mode 100644 index 000000000..694230468 --- /dev/null +++ b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Global-dbg.js"],"names":["console","log"],"mappings":";;;AAIAA,QAAQC,IAAI","file":"Global.js"} \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/.library b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/.library new file mode 100644 index 000000000..f975d6a4e --- /dev/null +++ b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/.library @@ -0,0 +1,20 @@ + + + + sap.ui.core + SAP SE + Some fancy copyright + 1.0.0 + + Core + + + + + + + + + + diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core-dbg.js b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core-dbg.js new file mode 100644 index 000000000..124b349b7 --- /dev/null +++ b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core-dbg.js @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */ +// replacement of $\{buildtime\} is only made in sap/ui/Global.js and Global-dbg.js +console.log('${buildtime}'); diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js new file mode 100644 index 000000000..e625a5c05 --- /dev/null +++ b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */ +console.log("${buildtime}"); +//# sourceMappingURL=Core.js.map \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js.map b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js.map new file mode 100644 index 000000000..75511857a --- /dev/null +++ b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Core-dbg.js"],"names":["console","log"],"mappings":";;;AAIAA,QAAQC,IAAI","file":"Core.js"} \ No newline at end of file diff --git a/test/expected/build/library.d/dest/resources/library/d/some.js b/test/expected/build/library.d/dest/resources/library/d/some.js index c23f5f207..75aba1e23 100644 --- a/test/expected/build/library.d/dest/resources/library/d/some.js +++ b/test/expected/build/library.d/dest/resources/library/d/some.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -(function(){var o="World";console.log("Hello "+o)})(); \ No newline at end of file +(function(){var o="World";console.log("Hello "+o)})(); +//# sourceMappingURL=some.js.map \ No newline at end of file diff --git a/test/expected/build/library.d/dest/resources/library/d/some.js.map b/test/expected/build/library.d/dest/resources/library/d/some.js.map new file mode 100644 index 000000000..bc2b57a0a --- /dev/null +++ b/test/expected/build/library.d/dest/resources/library/d/some.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":";;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/library.d/preload/resources/library/d/library-preload.js b/test/expected/build/library.d/preload/resources/library/d/library-preload.js index 3a8e66b86..68c443e80 100644 --- a/test/expected/build/library.d/preload/resources/library/d/library-preload.js +++ b/test/expected/build/library.d/preload/resources/library/d/library-preload.js @@ -5,6 +5,9 @@ jQuery.sap.registerPreloadedModules({ "library/d/some.js":function(){/*! * ${copyright} */ -(function(){var o="World";console.log("Hello "+o)})(); +(function() { + var someNonUglifiedVariable = "World"; + console.log('Hello ' + someNonUglifiedVariable); +})(); } }}); diff --git a/test/expected/build/library.e/dest/resources/library/e/library.js b/test/expected/build/library.e/dest/resources/library/e/library.js index 39e3277ce..648540278 100644 --- a/test/expected/build/library.e/dest/resources/library/e/library.js +++ b/test/expected/build/library.e/dest/resources/library/e/library.js @@ -3,4 +3,5 @@ * (c) Copyright 2009-xxx SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ -console.log("HelloWorld"); \ No newline at end of file +console.log("HelloWorld"); +//# sourceMappingURL=library.js.map \ No newline at end of file diff --git a/test/expected/build/library.e/dest/resources/library/e/library.js.map b/test/expected/build/library.e/dest/resources/library/e/library.js.map new file mode 100644 index 000000000..bd84007b6 --- /dev/null +++ b/test/expected/build/library.e/dest/resources/library/e/library.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["library-dbg.js"],"names":["console","log"],"mappings":";;;;;AAKAA,QAAQC,IAAI","file":"library.js"} \ No newline at end of file diff --git a/test/expected/build/library.e/dest/resources/library/e/some.js b/test/expected/build/library.e/dest/resources/library/e/some.js index 39e3277ce..36245f900 100644 --- a/test/expected/build/library.e/dest/resources/library/e/some.js +++ b/test/expected/build/library.e/dest/resources/library/e/some.js @@ -3,4 +3,5 @@ * (c) Copyright 2009-xxx SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ -console.log("HelloWorld"); \ No newline at end of file +console.log("HelloWorld"); +//# sourceMappingURL=some.js.map \ No newline at end of file diff --git a/test/expected/build/library.e/dest/resources/library/e/some.js.map b/test/expected/build/library.e/dest/resources/library/e/some.js.map new file mode 100644 index 000000000..bad3019d4 --- /dev/null +++ b/test/expected/build/library.e/dest/resources/library/e/some.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":";;;;;AAKAA,QAAQC,IAAI","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-dbg.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-dbg.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js index f66daec7d..58530f541 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js @@ -1,10 +1,12 @@ //@ui5-bundle library/h/components/Component-preload.js sap.ui.require.preload({ "library/h/components/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map }, "library/h/components/TodoComponent.js":function(){/*! * Some fancy copyright */ console.log(" File "); +//# sourceMappingURL=TodoComponent.js.map } }); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js index 422a97071..04d854984 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js.map new file mode 100644 index 000000000..96488949b --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent-dbg.js new file mode 100644 index 000000000..ab9d806f6 --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent-dbg.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' File '); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js index bcf866e67..f58e632b3 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -console.log(" File "); \ No newline at end of file +console.log(" File "); +//# sourceMappingURL=TodoComponent.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js.map new file mode 100644 index 000000000..178f39969 --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["TodoComponent-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"TodoComponent.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json index ab073db99..bdea7f3d7 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json @@ -1,10 +1,19 @@ { "_version": "1.1.0", "resources": [ + { + "name": "Component-dbg.js", + "module": "library/h/components/Component.js", + "size": 146, + "isDebug": true, + "required": [ + "sap/ui/core/UIComponent.js" + ] + }, { "name": "Component-preload.js", "module": "library/h/components/Component-preload.js", - "size": 361, + "size": 441, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -17,25 +26,51 @@ { "name": "Component.js", "module": "library/h/components/Component.js", - "size": 115, + "size": 153, "required": [ "sap/ui/core/UIComponent.js" ] }, + { + "name": "Component.js.map", + "size": 208, + "isDebug": true + }, + { + "name": "TodoComponent-dbg.js", + "module": "library/h/components/TodoComponent.js", + "size": 55, + "format": "raw", + "isDebug": true + }, { "name": "TodoComponent.js", "module": "library/h/components/TodoComponent.js", - "size": 54, + "size": 96, "format": "raw" }, + { + "name": "TodoComponent.js.map", + "size": 133, + "isDebug": true + }, { "name": "resources.json", - "size": 2128 + "size": 3509 + }, + { + "name": "subcomponent1/Component-dbg.js", + "module": "library/h/components/subcomponent1/Component.js", + "size": 146, + "isDebug": true, + "required": [ + "sap/ui/core/UIComponent.js" + ] }, { "name": "subcomponent1/Component-preload.js", "module": "library/h/components/subcomponent1/Component-preload.js", - "size": 279, + "size": 317, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -47,7 +82,21 @@ { "name": "subcomponent1/Component.js", "module": "library/h/components/subcomponent1/Component.js", - "size": 115, + "size": 153, + "required": [ + "sap/ui/core/UIComponent.js" + ] + }, + { + "name": "subcomponent1/Component.js.map", + "size": 208, + "isDebug": true + }, + { + "name": "subcomponent2/Component-dbg.js", + "module": "library/h/components/subcomponent2/Component.js", + "size": 146, + "isDebug": true, "required": [ "sap/ui/core/UIComponent.js" ] @@ -55,7 +104,7 @@ { "name": "subcomponent2/Component-preload.js", "module": "library/h/components/subcomponent2/Component-preload.js", - "size": 279, + "size": 317, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -67,7 +116,21 @@ { "name": "subcomponent2/Component.js", "module": "library/h/components/subcomponent2/Component.js", - "size": 115, + "size": 153, + "required": [ + "sap/ui/core/UIComponent.js" + ] + }, + { + "name": "subcomponent2/Component.js.map", + "size": 208, + "isDebug": true + }, + { + "name": "subcomponent3/Component-dbg.js", + "module": "library/h/components/subcomponent3/Component.js", + "size": 146, + "isDebug": true, "required": [ "sap/ui/core/UIComponent.js" ] @@ -75,7 +138,7 @@ { "name": "subcomponent3/Component-preload.js", "module": "library/h/components/subcomponent3/Component-preload.js", - "size": 279, + "size": 317, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -87,10 +150,15 @@ { "name": "subcomponent3/Component.js", "module": "library/h/components/subcomponent3/Component.js", - "size": 115, + "size": 153, "required": [ "sap/ui/core/UIComponent.js" ] + }, + { + "name": "subcomponent3/Component.js.map", + "size": 208, + "isDebug": true } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-dbg.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-dbg.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js index d2309dcdf..464e003a7 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js @@ -1,5 +1,6 @@ //@ui5-bundle library/h/components/subcomponent1/Component-preload.js sap.ui.require.preload({ "library/h/components/subcomponent1/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map } }); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js index 422a97071..04d854984 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js.map new file mode 100644 index 000000000..96488949b --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json index 7ca30f3d7..e610cb752 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json @@ -1,10 +1,19 @@ { "_version": "1.1.0", "resources": [ + { + "name": "Component-dbg.js", + "module": "library/h/components/subcomponent1/Component.js", + "size": 146, + "isDebug": true, + "required": [ + "sap/ui/core/UIComponent.js" + ] + }, { "name": "Component-preload.js", "module": "library/h/components/subcomponent1/Component-preload.js", - "size": 279, + "size": 317, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -16,14 +25,19 @@ { "name": "Component.js", "module": "library/h/components/subcomponent1/Component.js", - "size": 115, + "size": 153, "required": [ "sap/ui/core/UIComponent.js" ] }, + { + "name": "Component.js.map", + "size": 208, + "isDebug": true + }, { "name": "resources.json", - "size": 550 + "size": 820 } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-dbg.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-dbg.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js index ce88226b9..ef751b6d7 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js @@ -1,5 +1,6 @@ //@ui5-bundle library/h/components/subcomponent2/Component-preload.js sap.ui.require.preload({ "library/h/components/subcomponent2/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map } }); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js index 422a97071..04d854984 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js.map new file mode 100644 index 000000000..96488949b --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json index 7037628ac..3a981a492 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json @@ -1,10 +1,19 @@ { "_version": "1.1.0", "resources": [ + { + "name": "Component-dbg.js", + "module": "library/h/components/subcomponent2/Component.js", + "size": 146, + "isDebug": true, + "required": [ + "sap/ui/core/UIComponent.js" + ] + }, { "name": "Component-preload.js", "module": "library/h/components/subcomponent2/Component-preload.js", - "size": 279, + "size": 317, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -16,14 +25,19 @@ { "name": "Component.js", "module": "library/h/components/subcomponent2/Component.js", - "size": 115, + "size": 153, "required": [ "sap/ui/core/UIComponent.js" ] }, + { + "name": "Component.js.map", + "size": 208, + "isDebug": true + }, { "name": "resources.json", - "size": 550 + "size": 820 } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-dbg.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-dbg.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js index 4b88fc476..55db04d3d 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js @@ -1,5 +1,6 @@ //@ui5-bundle library/h/components/subcomponent3/Component-preload.js sap.ui.require.preload({ "library/h/components/subcomponent3/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map } }); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js index 422a97071..04d854984 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js.map new file mode 100644 index 000000000..96488949b --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json index 92de203ca..bcf8ccf95 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json @@ -1,10 +1,19 @@ { "_version": "1.1.0", "resources": [ + { + "name": "Component-dbg.js", + "module": "library/h/components/subcomponent3/Component.js", + "size": 146, + "isDebug": true, + "required": [ + "sap/ui/core/UIComponent.js" + ] + }, { "name": "Component-preload.js", "module": "library/h/components/subcomponent3/Component-preload.js", - "size": 279, + "size": 317, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -16,14 +25,19 @@ { "name": "Component.js", "module": "library/h/components/subcomponent3/Component.js", - "size": 115, + "size": 153, "required": [ "sap/ui/core/UIComponent.js" ] }, + { + "name": "Component.js.map", + "size": 208, + "isDebug": true + }, { "name": "resources.json", - "size": 550 + "size": 820 } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js new file mode 100644 index 000000000..1746a7a97 --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js @@ -0,0 +1,24 @@ +//@ui5-bundle library/h/customBundle-dbg.js +sap.ui.require.preload({ + "library/h/file.js":function(){/*! + * Some fancy copyright + */ +console.log(' File '); +}, + "library/h/library.js":function(){/*! + * Some fancy copyright + */ +console.log(' Library '); +}, + "library/h/some.js":function(){/*! + * Some fancy copyright + */ +//@ui5-bundle-raw-include library/h/other.js +console.log(' Some '); +} +}); +//@ui5-bundle-raw-include library/h/not.js +/*! + * Some fancy copyright + */ +console.log(' Not including '); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js index e9e0e00ed..40bf0e991 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js @@ -4,21 +4,25 @@ sap.ui.require.preload({ * Some fancy copyright */ console.log(" File "); +//# sourceMappingURL=file.js.map }, "library/h/library.js":function(){/*! * Some fancy copyright */ console.log(" Library "); +//# sourceMappingURL=library.js.map }, "library/h/some.js":function(){/*! * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js console.log(" Some "); +//# sourceMappingURL=some.js.map } }); //@ui5-bundle-raw-include library/h/not.js /*! * Some fancy copyright */ -console.log(" Not including "); \ No newline at end of file +console.log(" Not including "); +//# sourceMappingURL=not.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library-dbg.designtime.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library-dbg.designtime.js new file mode 100644 index 000000000..34069d6ac --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library-dbg.designtime.js @@ -0,0 +1,14 @@ +/*! + * Some fancy copyright + */ + +/** + * designtime and global export + */ +var myexport = (function() { + + "use strict"; + + String("asd"); + +}()); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js index 9b135171d..530ba01e1 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -var myexport=function(){"use strict";String("asd")}(); \ No newline at end of file +var myexport=function(){"use strict";String("asd")}(); +//# sourceMappingURL=library.designtime.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js.map new file mode 100644 index 000000000..eed1a2f12 --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["library-dbg.designtime.js"],"names":["myexport","String"],"mappings":";;;AAOA,IAAIA,SAAY,WAEf,aAEAC,OAAO,OAJO","file":"library.designtime.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/file-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/file-dbg.js new file mode 100644 index 000000000..ab9d806f6 --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/file-dbg.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' File '); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js index bcf866e67..2fe4c2aae 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -console.log(" File "); \ No newline at end of file +console.log(" File "); +//# sourceMappingURL=file.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js.map new file mode 100644 index 000000000..0e96bde9b --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["file-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"file.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/library-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/library-dbg.js new file mode 100644 index 000000000..c9d3cbc0c --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/library-dbg.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' Library '); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js index 6900e2218..ce760e5cb 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -console.log(" Library "); \ No newline at end of file +console.log(" Library "); +//# sourceMappingURL=library.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js.map new file mode 100644 index 000000000..fc4ea2654 --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["library-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"library.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/not-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/not-dbg.js new file mode 100644 index 000000000..d61495954 --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/not-dbg.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' Not including '); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js index c249a10c8..75a862b14 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -console.log(" Not including "); \ No newline at end of file +console.log(" Not including "); +//# sourceMappingURL=not.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js.map new file mode 100644 index 000000000..d696f9d1e --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["not-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"not.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json index bf55e5d3c..b7eff7d8b 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json @@ -5,10 +5,19 @@ "name": ".library", "size": 473 }, + { + "name": "components/Component-dbg.js", + "module": "library/h/components/Component.js", + "size": 146, + "isDebug": true, + "required": [ + "sap/ui/core/UIComponent.js" + ] + }, { "name": "components/Component-preload.js", "module": "library/h/components/Component-preload.js", - "size": 361, + "size": 441, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -21,21 +30,47 @@ { "name": "components/Component.js", "module": "library/h/components/Component.js", - "size": 115, + "size": 153, "required": [ "sap/ui/core/UIComponent.js" ] }, + { + "name": "components/Component.js.map", + "size": 208, + "isDebug": true + }, + { + "name": "components/TodoComponent-dbg.js", + "module": "library/h/components/TodoComponent.js", + "size": 55, + "format": "raw", + "isDebug": true + }, { "name": "components/TodoComponent.js", "module": "library/h/components/TodoComponent.js", - "size": 54, + "size": 96, "format": "raw" }, + { + "name": "components/TodoComponent.js.map", + "size": 133, + "isDebug": true + }, + { + "name": "components/subcomponent1/Component-dbg.js", + "module": "library/h/components/subcomponent1/Component.js", + "size": 146, + "isDebug": true, + "required": [ + "sap/ui/core/UIComponent.js" + ] + }, { "name": "components/subcomponent1/Component-preload.js", "module": "library/h/components/subcomponent1/Component-preload.js", - "size": 279, + "size": 317, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -47,7 +82,21 @@ { "name": "components/subcomponent1/Component.js", "module": "library/h/components/subcomponent1/Component.js", - "size": 115, + "size": 153, + "required": [ + "sap/ui/core/UIComponent.js" + ] + }, + { + "name": "components/subcomponent1/Component.js.map", + "size": 208, + "isDebug": true + }, + { + "name": "components/subcomponent2/Component-dbg.js", + "module": "library/h/components/subcomponent2/Component.js", + "size": 146, + "isDebug": true, "required": [ "sap/ui/core/UIComponent.js" ] @@ -55,7 +104,7 @@ { "name": "components/subcomponent2/Component-preload.js", "module": "library/h/components/subcomponent2/Component-preload.js", - "size": 279, + "size": 317, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -67,7 +116,21 @@ { "name": "components/subcomponent2/Component.js", "module": "library/h/components/subcomponent2/Component.js", - "size": 115, + "size": 153, + "required": [ + "sap/ui/core/UIComponent.js" + ] + }, + { + "name": "components/subcomponent2/Component.js.map", + "size": 208, + "isDebug": true + }, + { + "name": "components/subcomponent3/Component-dbg.js", + "module": "library/h/components/subcomponent3/Component.js", + "size": 146, + "isDebug": true, "required": [ "sap/ui/core/UIComponent.js" ] @@ -75,7 +138,7 @@ { "name": "components/subcomponent3/Component-preload.js", "module": "library/h/components/subcomponent3/Component-preload.js", - "size": 279, + "size": 317, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -87,15 +150,34 @@ { "name": "components/subcomponent3/Component.js", "module": "library/h/components/subcomponent3/Component.js", - "size": 115, + "size": 153, "required": [ "sap/ui/core/UIComponent.js" ] }, + { + "name": "components/subcomponent3/Component.js.map", + "size": 208, + "isDebug": true + }, + { + "name": "customBundle-dbg.js", + "module": "library/h/customBundle.js", + "size": 500, + "isDebug": true, + "merged": true, + "included": [ + "library/h/file.js", + "library/h/library.js", + "library/h/some.js", + "library/h/other.js", + "library/h/not.js" + ] + }, { "name": "customBundle.js", "module": "library/h/customBundle.js", - "size": 495, + "size": 629, "merged": true, "included": [ "library/h/file.js", @@ -105,10 +187,22 @@ "library/h/not.js" ] }, + { + "name": "designtime/library-dbg.designtime.js", + "module": "library/h/designtime/library.designtime.js", + "size": 142, + "requiresTopLevelScope": true, + "exposedGlobalNames": [ + "myexport" + ], + "format": "raw", + "isDebug": true, + "designtime": true + }, { "name": "designtime/library.designtime.js", "module": "library/h/designtime/library.designtime.js", - "size": 86, + "size": 133, "requiresTopLevelScope": true, "exposedGlobalNames": [ "myexport" @@ -116,12 +210,30 @@ "format": "raw", "designtime": true }, + { + "name": "designtime/library.designtime.js.map", + "size": 167, + "isDebug": true, + "designtime": true + }, + { + "name": "file-dbg.js", + "module": "library/h/file.js", + "size": 55, + "format": "raw", + "isDebug": true + }, { "name": "file.js", "module": "library/h/file.js", - "size": 54, + "size": 87, "format": "raw" }, + { + "name": "file.js.map", + "size": 115, + "isDebug": true + }, { "name": "i18n/messagebundle.properties", "module": "library/h/i18n/messagebundle.properties", @@ -136,36 +248,76 @@ "locale": "en", "raw": "i18n/messagebundle.properties" }, + { + "name": "library-dbg.js", + "module": "library/h/library.js", + "size": 58, + "format": "raw", + "isDebug": true + }, { "name": "library.js", "module": "library/h/library.js", - "size": 57, + "size": 93, "format": "raw" }, + { + "name": "library.js.map", + "size": 121, + "isDebug": true + }, { "name": "manifest.json", "module": "library/h/manifest.json", "size": 614 }, + { + "name": "not-dbg.js", + "module": "library/h/not.js", + "size": 64, + "format": "raw", + "isDebug": true + }, { "name": "not.js", "module": "library/h/not.js", - "size": 63, + "size": 95, "format": "raw" }, + { + "name": "not.js.map", + "size": 113, + "isDebug": true + }, { "name": "resources.json", - "size": 3724 + "size": 6749 + }, + { + "name": "some-dbg.js", + "module": "library/h/some.js", + "size": 100, + "format": "raw", + "isDebug": true, + "merged": true, + "included": [ + "library/h/other.js" + ] }, { "name": "some.js", "module": "library/h/some.js", - "size": 99, + "size": 132, "format": "raw", "merged": true, "included": [ "library/h/other.js" ] + }, + { + "name": "some.js.map", + "size": 116, + "isDebug": true } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/some-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/some-dbg.js new file mode 100644 index 000000000..e03abda4d --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/some-dbg.js @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */ +//@ui5-bundle-raw-include library/h/other.js +console.log(' Some '); diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js index 1e86f9afc..0c5f5d3e3 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js @@ -2,4 +2,5 @@ * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js -console.log(" Some "); \ No newline at end of file +console.log(" Some "); +//# sourceMappingURL=some.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js.map new file mode 100644 index 000000000..d62492183 --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":";;;;AAIAA,QAAQC,IAAI","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/Component-dbg.js b/test/expected/build/library.h/dest/resources/library/h/components/Component-dbg.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/Component-dbg.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js b/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js index f66daec7d..58530f541 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js @@ -1,10 +1,12 @@ //@ui5-bundle library/h/components/Component-preload.js sap.ui.require.preload({ "library/h/components/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map }, "library/h/components/TodoComponent.js":function(){/*! * Some fancy copyright */ console.log(" File "); +//# sourceMappingURL=TodoComponent.js.map } }); diff --git a/test/expected/build/library.h/dest/resources/library/h/components/Component.js b/test/expected/build/library.h/dest/resources/library/h/components/Component.js index 422a97071..04d854984 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/Component.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/Component.js.map b/test/expected/build/library.h/dest/resources/library/h/components/Component.js.map new file mode 100644 index 000000000..96488949b --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent-dbg.js b/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent-dbg.js new file mode 100644 index 000000000..ab9d806f6 --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent-dbg.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' File '); diff --git a/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js b/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js index bcf866e67..f58e632b3 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -console.log(" File "); \ No newline at end of file +console.log(" File "); +//# sourceMappingURL=TodoComponent.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js.map b/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js.map new file mode 100644 index 000000000..178f39969 --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["TodoComponent-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"TodoComponent.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-dbg.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-dbg.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-dbg.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js index d2309dcdf..464e003a7 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js @@ -1,5 +1,6 @@ //@ui5-bundle library/h/components/subcomponent1/Component-preload.js sap.ui.require.preload({ "library/h/components/subcomponent1/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map } }); diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js index 422a97071..04d854984 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js.map b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js.map new file mode 100644 index 000000000..96488949b --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-dbg.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-dbg.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-dbg.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js index ce88226b9..ef751b6d7 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js @@ -1,5 +1,6 @@ //@ui5-bundle library/h/components/subcomponent2/Component-preload.js sap.ui.require.preload({ "library/h/components/subcomponent2/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map } }); diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js index 422a97071..04d854984 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js.map b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js.map new file mode 100644 index 000000000..96488949b --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-dbg.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-dbg.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-dbg.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js index 4b88fc476..55db04d3d 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js @@ -1,5 +1,6 @@ //@ui5-bundle library/h/components/subcomponent3/Component-preload.js sap.ui.require.preload({ "library/h/components/subcomponent3/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map } }); diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js index 422a97071..04d854984 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js @@ -1 +1,2 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); +//# sourceMappingURL=Component.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js.map b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js.map new file mode 100644 index 000000000..96488949b --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js b/test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js new file mode 100644 index 000000000..1746a7a97 --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js @@ -0,0 +1,24 @@ +//@ui5-bundle library/h/customBundle-dbg.js +sap.ui.require.preload({ + "library/h/file.js":function(){/*! + * Some fancy copyright + */ +console.log(' File '); +}, + "library/h/library.js":function(){/*! + * Some fancy copyright + */ +console.log(' Library '); +}, + "library/h/some.js":function(){/*! + * Some fancy copyright + */ +//@ui5-bundle-raw-include library/h/other.js +console.log(' Some '); +} +}); +//@ui5-bundle-raw-include library/h/not.js +/*! + * Some fancy copyright + */ +console.log(' Not including '); diff --git a/test/expected/build/library.h/dest/resources/library/h/customBundle.js b/test/expected/build/library.h/dest/resources/library/h/customBundle.js index e9e0e00ed..40bf0e991 100644 --- a/test/expected/build/library.h/dest/resources/library/h/customBundle.js +++ b/test/expected/build/library.h/dest/resources/library/h/customBundle.js @@ -4,21 +4,25 @@ sap.ui.require.preload({ * Some fancy copyright */ console.log(" File "); +//# sourceMappingURL=file.js.map }, "library/h/library.js":function(){/*! * Some fancy copyright */ console.log(" Library "); +//# sourceMappingURL=library.js.map }, "library/h/some.js":function(){/*! * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js console.log(" Some "); +//# sourceMappingURL=some.js.map } }); //@ui5-bundle-raw-include library/h/not.js /*! * Some fancy copyright */ -console.log(" Not including "); \ No newline at end of file +console.log(" Not including "); +//# sourceMappingURL=not.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/designtime/library-dbg.designtime.js b/test/expected/build/library.h/dest/resources/library/h/designtime/library-dbg.designtime.js new file mode 100644 index 000000000..34069d6ac --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/designtime/library-dbg.designtime.js @@ -0,0 +1,14 @@ +/*! + * Some fancy copyright + */ + +/** + * designtime and global export + */ +var myexport = (function() { + + "use strict"; + + String("asd"); + +}()); diff --git a/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js b/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js index 9b135171d..530ba01e1 100644 --- a/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js +++ b/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -var myexport=function(){"use strict";String("asd")}(); \ No newline at end of file +var myexport=function(){"use strict";String("asd")}(); +//# sourceMappingURL=library.designtime.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js.map b/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js.map new file mode 100644 index 000000000..eed1a2f12 --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["library-dbg.designtime.js"],"names":["myexport","String"],"mappings":";;;AAOA,IAAIA,SAAY,WAEf,aAEAC,OAAO,OAJO","file":"library.designtime.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/file-dbg.js b/test/expected/build/library.h/dest/resources/library/h/file-dbg.js new file mode 100644 index 000000000..ab9d806f6 --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/file-dbg.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' File '); diff --git a/test/expected/build/library.h/dest/resources/library/h/file.js b/test/expected/build/library.h/dest/resources/library/h/file.js index bcf866e67..2fe4c2aae 100644 --- a/test/expected/build/library.h/dest/resources/library/h/file.js +++ b/test/expected/build/library.h/dest/resources/library/h/file.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -console.log(" File "); \ No newline at end of file +console.log(" File "); +//# sourceMappingURL=file.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/file.js.map b/test/expected/build/library.h/dest/resources/library/h/file.js.map new file mode 100644 index 000000000..0e96bde9b --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/file.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["file-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"file.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/library-dbg.js b/test/expected/build/library.h/dest/resources/library/h/library-dbg.js new file mode 100644 index 000000000..c9d3cbc0c --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/library-dbg.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' Library '); diff --git a/test/expected/build/library.h/dest/resources/library/h/library.js b/test/expected/build/library.h/dest/resources/library/h/library.js index 6900e2218..ce760e5cb 100644 --- a/test/expected/build/library.h/dest/resources/library/h/library.js +++ b/test/expected/build/library.h/dest/resources/library/h/library.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -console.log(" Library "); \ No newline at end of file +console.log(" Library "); +//# sourceMappingURL=library.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/library.js.map b/test/expected/build/library.h/dest/resources/library/h/library.js.map new file mode 100644 index 000000000..fc4ea2654 --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/library.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["library-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"library.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/not-dbg.js b/test/expected/build/library.h/dest/resources/library/h/not-dbg.js new file mode 100644 index 000000000..d61495954 --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/not-dbg.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' Not including '); diff --git a/test/expected/build/library.h/dest/resources/library/h/not.js b/test/expected/build/library.h/dest/resources/library/h/not.js index c249a10c8..75a862b14 100644 --- a/test/expected/build/library.h/dest/resources/library/h/not.js +++ b/test/expected/build/library.h/dest/resources/library/h/not.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -console.log(" Not including "); \ No newline at end of file +console.log(" Not including "); +//# sourceMappingURL=not.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/not.js.map b/test/expected/build/library.h/dest/resources/library/h/not.js.map new file mode 100644 index 000000000..d696f9d1e --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/not.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["not-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"not.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/some-dbg.js b/test/expected/build/library.h/dest/resources/library/h/some-dbg.js new file mode 100644 index 000000000..e03abda4d --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/some-dbg.js @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */ +//@ui5-bundle-raw-include library/h/other.js +console.log(' Some '); diff --git a/test/expected/build/library.h/dest/resources/library/h/some.js b/test/expected/build/library.h/dest/resources/library/h/some.js index 1e86f9afc..0c5f5d3e3 100644 --- a/test/expected/build/library.h/dest/resources/library/h/some.js +++ b/test/expected/build/library.h/dest/resources/library/h/some.js @@ -2,4 +2,5 @@ * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js -console.log(" Some "); \ No newline at end of file +console.log(" Some "); +//# sourceMappingURL=some.js.map \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/some.js.map b/test/expected/build/library.h/dest/resources/library/h/some.js.map new file mode 100644 index 000000000..d62492183 --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/some.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":";;;;AAIAA,QAAQC,IAAI","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/no-minify/resources/library/h/.library b/test/expected/build/library.h/no-minify/resources/library/h/.library new file mode 100644 index 000000000..9084728e8 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/.library @@ -0,0 +1,19 @@ + + + + library.h + SAP SE + Some fancy copyright + 1.0.0 + + Library H + + + + + + + + + + diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js b/test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js new file mode 100644 index 000000000..1ca867689 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js @@ -0,0 +1,14 @@ +//@ui5-bundle library/h/components/Component-preload.js +sap.ui.require.preload({ + "library/h/components/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); +}, + "library/h/components/TodoComponent.js":function(){/*! + * Some fancy copyright + */ +console.log(' File '); +} +}); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/Component.js b/test/expected/build/library.h/no-minify/resources/library/h/components/Component.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/Component.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/TodoComponent.js b/test/expected/build/library.h/no-minify/resources/library/h/components/TodoComponent.js new file mode 100644 index 000000000..ab9d806f6 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/TodoComponent.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' File '); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js new file mode 100644 index 000000000..40b2828bc --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js @@ -0,0 +1,9 @@ +//@ui5-bundle library/h/components/subcomponent1/Component-preload.js +sap.ui.require.preload({ + "library/h/components/subcomponent1/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); +} +}); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component.js b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js new file mode 100644 index 000000000..0e338e1ba --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js @@ -0,0 +1,9 @@ +//@ui5-bundle library/h/components/subcomponent2/Component-preload.js +sap.ui.require.preload({ + "library/h/components/subcomponent2/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); +} +}); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component.js b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js new file mode 100644 index 000000000..42cadcd83 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js @@ -0,0 +1,9 @@ +//@ui5-bundle library/h/components/subcomponent3/Component-preload.js +sap.ui.require.preload({ + "library/h/components/subcomponent3/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); +} +}); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component.js b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component.js new file mode 100644 index 000000000..998e27dce --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component.js @@ -0,0 +1,5 @@ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "use strict"; + return UIComponent.extend('application.g.Component', { + }); +}); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js b/test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js new file mode 100644 index 000000000..1746a7a97 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js @@ -0,0 +1,24 @@ +//@ui5-bundle library/h/customBundle-dbg.js +sap.ui.require.preload({ + "library/h/file.js":function(){/*! + * Some fancy copyright + */ +console.log(' File '); +}, + "library/h/library.js":function(){/*! + * Some fancy copyright + */ +console.log(' Library '); +}, + "library/h/some.js":function(){/*! + * Some fancy copyright + */ +//@ui5-bundle-raw-include library/h/other.js +console.log(' Some '); +} +}); +//@ui5-bundle-raw-include library/h/not.js +/*! + * Some fancy copyright + */ +console.log(' Not including '); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/customBundle.js b/test/expected/build/library.h/no-minify/resources/library/h/customBundle.js new file mode 100644 index 000000000..8c6d93a0b --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/customBundle.js @@ -0,0 +1,24 @@ +//@ui5-bundle library/h/customBundle.js +sap.ui.require.preload({ + "library/h/file.js":function(){/*! + * Some fancy copyright + */ +console.log(' File '); +}, + "library/h/library.js":function(){/*! + * Some fancy copyright + */ +console.log(' Library '); +}, + "library/h/some.js":function(){/*! + * Some fancy copyright + */ +//@ui5-bundle-raw-include library/h/other.js +console.log(' Some '); +} +}); +//@ui5-bundle-raw-include library/h/not.js +/*! + * Some fancy copyright + */ +console.log(' Not including '); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/designtime/library.designtime.js b/test/expected/build/library.h/no-minify/resources/library/h/designtime/library.designtime.js new file mode 100644 index 000000000..34069d6ac --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/designtime/library.designtime.js @@ -0,0 +1,14 @@ +/*! + * Some fancy copyright + */ + +/** + * designtime and global export + */ +var myexport = (function() { + + "use strict"; + + String("asd"); + +}()); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/file.js b/test/expected/build/library.h/no-minify/resources/library/h/file.js new file mode 100644 index 000000000..ab9d806f6 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/file.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' File '); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/i18n/messagebundle.properties b/test/expected/build/library.h/no-minify/resources/library/h/i18n/messagebundle.properties new file mode 100644 index 000000000..1c6a1a9e8 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/i18n/messagebundle.properties @@ -0,0 +1 @@ +a=b \ No newline at end of file diff --git a/test/expected/build/library.h/no-minify/resources/library/h/i18n/messagebundle_en.properties b/test/expected/build/library.h/no-minify/resources/library/h/i18n/messagebundle_en.properties new file mode 100644 index 000000000..1c6a1a9e8 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/i18n/messagebundle_en.properties @@ -0,0 +1 @@ +a=b \ No newline at end of file diff --git a/test/expected/build/library.h/no-minify/resources/library/h/library.js b/test/expected/build/library.h/no-minify/resources/library/h/library.js new file mode 100644 index 000000000..c9d3cbc0c --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/library.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' Library '); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/manifest.json b/test/expected/build/library.h/no-minify/resources/library/h/manifest.json new file mode 100644 index 000000000..808d3df90 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/manifest.json @@ -0,0 +1,34 @@ +{ + "_version": "1.21.0", + "sap.app": { + "id": "library.h", + "type": "library", + "embeds": [], + "applicationVersion": { + "version": "1.0.0" + }, + "title": "Library H", + "description": "Library H", + "resources": "resources.json", + "offline": true + }, + "sap.ui": { + "technology": "UI5", + "supportedThemes": [] + }, + "sap.ui5": { + "dependencies": { + "minUI5Version": "1.0", + "libs": {} + }, + "library": { + "i18n": false, + "content": { + "controls": [], + "elements": [], + "types": [], + "interfaces": [] + } + } + } +} \ No newline at end of file diff --git a/test/expected/build/library.h/no-minify/resources/library/h/not.js b/test/expected/build/library.h/no-minify/resources/library/h/not.js new file mode 100644 index 000000000..d61495954 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/not.js @@ -0,0 +1,4 @@ +/*! + * Some fancy copyright + */ +console.log(' Not including '); diff --git a/test/expected/build/library.h/no-minify/resources/library/h/some.js b/test/expected/build/library.h/no-minify/resources/library/h/some.js new file mode 100644 index 000000000..e03abda4d --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/some.js @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */ +//@ui5-bundle-raw-include library/h/other.js +console.log(' Some '); diff --git a/test/expected/build/library.h/no-minify/test-resources/library/d/Test.html b/test/expected/build/library.h/no-minify/test-resources/library/d/Test.html new file mode 100644 index 000000000..e69de29bb diff --git a/test/expected/build/library.l/dest/resources/library/l/some.js b/test/expected/build/library.l/dest/resources/library/l/some.js index 82357c2d4..bf4a8a469 100644 --- a/test/expected/build/library.l/dest/resources/library/l/some.js +++ b/test/expected/build/library.l/dest/resources/library/l/some.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -sap.ui.define([],function(){"use strict";var i=function(){}},true); \ No newline at end of file +sap.ui.define([],function(){"use strict";var i=function(){}},true); +//# sourceMappingURL=some.js.map \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/some.js.map b/test/expected/build/library.l/dest/resources/library/l/some.js.map new file mode 100644 index 000000000..a7bf0ac2b --- /dev/null +++ b/test/expected/build/library.l/dest/resources/library/l/some.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["some-dbg.js"],"names":["sap","ui","define","SomeFunction"],"mappings":";;;AAIAA,IAAIC,GAAGC,OAAO,GACb,WACA,aAOA,IAAIC,EAAe,cAEF","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/subdir/index.js b/test/expected/build/library.l/dest/resources/library/l/subdir/index.js index 894e5374f..9661d7207 100644 --- a/test/expected/build/library.l/dest/resources/library/l/subdir/index.js +++ b/test/expected/build/library.l/dest/resources/library/l/subdir/index.js @@ -1 +1,2 @@ -function hello(l){console.log("hello "+l)}hello("world"); \ No newline at end of file +function hello(l){console.log("hello "+l)}hello("world"); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/subdir/index.js.map b/test/expected/build/library.l/dest/resources/library/l/subdir/index.js.map new file mode 100644 index 000000000..9ebd8bf4e --- /dev/null +++ b/test/expected/build/library.l/dest/resources/library/l/subdir/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["index-dbg.js"],"names":["hello","name","console","log"],"mappings":"AACA,SAASA,MAAMC,GACdC,QAAQC,IAAI,SAAWF,GAExBD,MAAM","file":"index.js"} \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js b/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js index 894e5374f..7b3311e4e 100644 --- a/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js +++ b/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js @@ -1 +1,2 @@ -function hello(l){console.log("hello "+l)}hello("world"); \ No newline at end of file +function hello(l){console.log("hello "+l)}hello("world"); +//# sourceMappingURL=File1.js.map \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js.map b/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js.map new file mode 100644 index 000000000..1c04d432d --- /dev/null +++ b/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["File1-dbg.js"],"names":["hello","name","console","log"],"mappings":"AACA,SAASA,MAAMC,GACdC,QAAQC,IAAI,SAAWF,GAExBD,MAAM","file":"File1.js"} \ No newline at end of file diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js" index b25d5ac7a..7b9c787c6 100644 --- "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js" +++ "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js" @@ -5,5 +5,6 @@ sap.ui.require.preload({ * Some fancy copyright */ (function(){var o="World";console.log("Hello "+o)})(); +//# sourceMappingURL=some.js.map } }); diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js" new file mode 100644 index 000000000..9dd152223 --- /dev/null +++ "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js" @@ -0,0 +1,37 @@ +//@ui5-bundle library/ø/library-preload.support.js +/*! + * Some fancy copyright + */ +/** + * Defines support rules + */ + sap.ui.predefine("library/ø/rules/MyControl.support", ['sap/ui/support/library', 'sap/base/Log'], + function(SupportLib, Log) { + 'use strict'; + + //********************************************************** + // Rule Definitions + //********************************************************** + + var oRule = { + id: "oRule", + audiences: [Audiences.Application], + categories: [Categories.Usage], + enabled: true, + minversion: '1.71', + title: 'Title', + description: 'description', + resolution: 'resolution', + check: function(oIssueManager, oCoreFacade, oScope) { + oIssueManager.addIssue({ + severity: Severity.High, + details: 'Looking good today!' + }); + } + }; + + return [ + oRule + ]; + + }, true); diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/rules/MyControl.support.js" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/rules/MyControl.support.js" new file mode 100644 index 000000000..6f084d6ef --- /dev/null +++ "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/rules/MyControl.support.js" @@ -0,0 +1,36 @@ +/*! + * Some fancy copyright + */ +/** + * Defines support rules + */ + sap.ui.define(['sap/ui/support/library', 'sap/base/Log'], + function(SupportLib, Log) { + 'use strict'; + + //********************************************************** + // Rule Definitions + //********************************************************** + + var oRule = { + id: "oRule", + audiences: [Audiences.Application], + categories: [Categories.Usage], + enabled: true, + minversion: '1.71', + title: 'Title', + description: 'description', + resolution: 'resolution', + check: function(oIssueManager, oCoreFacade, oScope) { + oIssueManager.addIssue({ + severity: Severity.High, + details: 'Looking good today!' + }); + } + }; + + return [ + oRule + ]; + + }, true); diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js" index c23f5f207..75aba1e23 100644 --- "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js" +++ "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js" @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -(function(){var o="World";console.log("Hello "+o)})(); \ No newline at end of file +(function(){var o="World";console.log("Hello "+o)})(); +//# sourceMappingURL=some.js.map \ No newline at end of file diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js.map" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js.map" new file mode 100644 index 000000000..bc2b57a0a --- /dev/null +++ "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js.map" @@ -0,0 +1 @@ +{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":";;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js index e69de29bb..a72d46525 100644 --- a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js +++ b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js @@ -0,0 +1,2 @@ + +//# sourceMappingURL=sap-ui-core.js.map \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js.map b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js.map new file mode 100644 index 000000000..e347f93df --- /dev/null +++ b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","file":"sap-ui-core.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js index b37fec15d..e0fe65e6f 100644 --- a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js +++ b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -console.log("20220620-1630"); \ No newline at end of file +console.log("20220620-1630"); +//# sourceMappingURL=Global.js.map \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js.map b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js.map new file mode 100644 index 000000000..694230468 --- /dev/null +++ b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Global-dbg.js"],"names":["console","log"],"mappings":";;;AAIAA,QAAQC,IAAI","file":"Global.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js index 607c2f2f2..e625a5c05 100644 --- a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js +++ b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js @@ -1,4 +1,5 @@ /*! * Some fancy copyright */ -console.log("${buildtime}"); \ No newline at end of file +console.log("${buildtime}"); +//# sourceMappingURL=Core.js.map \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js.map b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js.map new file mode 100644 index 000000000..75511857a --- /dev/null +++ b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Core-dbg.js"],"names":["console","log"],"mappings":";;;AAIAA,QAAQC,IAAI","file":"Core.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js index ad90626c5..032851a0c 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js @@ -1,4 +1,9 @@ //@ui5-bundle sap-ui-core-dbg.js +//@ui5-bundle-raw-include ui5loader-autoconfig.js +(function () { + var thisIsTheUi5LoaderAutoconfig = true; + console.log(thisIsTheUi5LoaderAutoconfig); +})() sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js index 59acdf55a..0586fc05a 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js @@ -1,4 +1,9 @@ //@ui5-bundle sap-ui-core-nojQuery-dbg.js +//@ui5-bundle-raw-include ui5loader-autoconfig.js +(function () { + var thisIsTheUi5LoaderAutoconfig = true; + console.log(thisIsTheUi5LoaderAutoconfig); +})() sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js index e01a57ec5..f5f9001c0 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js @@ -1,10 +1,17 @@ //@ui5-bundle sap-ui-core-nojQuery.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ - "sap/ui/core/Core.js":function(){ +window["sap-ui-optimized"] = true; +try { +//@ui5-bundle-raw-include ui5loader-autoconfig.js +(function(){var o=true;console.log(o)})(); +//# sourceMappingURL=ui5loader-autoconfig.js.map +sap.ui.require.preload({ + "sap/ui/core/Core.js":function(){(function(){var o=true;console.log(o)})(); +//# sourceMappingURL=Core.js.map } -}}); +}); sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); +} catch(oError) { +if (oError.name != "Restart") { throw oError; } +} diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js index 71e97011c..d3a111a16 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js @@ -1,10 +1,17 @@ //@ui5-bundle sap-ui-core.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ - "sap/ui/core/Core.js":function(){ +window["sap-ui-optimized"] = true; +try { +//@ui5-bundle-raw-include ui5loader-autoconfig.js +(function(){var o=true;console.log(o)})(); +//# sourceMappingURL=ui5loader-autoconfig.js.map +sap.ui.require.preload({ + "sap/ui/core/Core.js":function(){(function(){var o=true;console.log(o)})(); +//# sourceMappingURL=Core.js.map } -}}); +}); sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); +} catch(oError) { +if (oError.name != "Restart") { throw oError; } +} diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map new file mode 100644 index 000000000..a9b380967 --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["sap-ui-core-dbg.js"],"names":["thisShouldBeOverwritten","console","log"],"mappings":"CAAA,WACC,IAAIA,EAA0B,KAC9BC,QAAQC,IAAIF,IAFb","file":"sap-ui-core.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core-dbg.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core-dbg.js new file mode 100644 index 000000000..66bd2c43f --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core-dbg.js @@ -0,0 +1,4 @@ +(function () { + var core = true; + console.log(core); +})() diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js index e69de29bb..29a53cc7e 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js @@ -0,0 +1,2 @@ +(function(){var o=true;console.log(o)})(); +//# sourceMappingURL=Core.js.map \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js.map b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js.map new file mode 100644 index 000000000..d83752ade --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["Core-dbg.js"],"names":["core","console","log"],"mappings":"CAAA,WACC,IAAIA,EAAO,KACXC,QAAQC,IAAIF,IAFb","file":"Core.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js index 5f9e0796e..19e93a36a 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js @@ -1,13 +1,16 @@ //@ui5-bundle sap/ui/core/library-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "sap/ui/core/one.js":function(){function One(){return 1} +//# sourceMappingURL=one.js.map this.One=One; }, "sap/ui/core/some.js":function(){/*! * ${copyright} */ console.log("HelloWorld"); +//# sourceMappingURL=some.js.map +}, + "ui5loader.js":function(){(function(){var o=true;console.log(o)})(); +//# sourceMappingURL=ui5loader.js.map } -}}); +}); diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one-dbg.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one-dbg.js new file mode 100644 index 000000000..753bd0523 --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one-dbg.js @@ -0,0 +1,3 @@ +function One(){ + return 1; +} diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js index 753bd0523..7a53557c1 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js @@ -1,3 +1,2 @@ -function One(){ - return 1; -} +function One(){return 1} +//# sourceMappingURL=one.js.map \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js.map b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js.map new file mode 100644 index 000000000..a4b534c3a --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["one-dbg.js"],"names":["One"],"mappings":"AAAA,SAASA,MACR,OAAO","file":"one.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some-dbg.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some-dbg.js new file mode 100644 index 000000000..f39184874 --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some-dbg.js @@ -0,0 +1,14 @@ +/*! + * ${copyright} + */ +console.log('HelloWorld'); + +/* + * function add(c) - this is still not implemented. + * @private + * @param {Component} c + * @name add + * This comment should be removed in the preload bundle although it contains the magic + * sequence "opening parenthesis - letter c - closing parenthesis" which usually indicates + * a c o p y r i g h t comment. + */ diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js index f39184874..66f0541d6 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js @@ -1,14 +1,5 @@ /*! * ${copyright} */ -console.log('HelloWorld'); - -/* - * function add(c) - this is still not implemented. - * @private - * @param {Component} c - * @name add - * This comment should be removed in the preload bundle although it contains the magic - * sequence "opening parenthesis - letter c - closing parenthesis" which usually indicates - * a c o p y r i g h t comment. - */ +console.log("HelloWorld"); +//# sourceMappingURL=some.js.map \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js.map b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js.map new file mode 100644 index 000000000..c8712c5c9 --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig-dbg.js b/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig-dbg.js new file mode 100644 index 000000000..783bce8ec --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig-dbg.js @@ -0,0 +1,4 @@ +(function () { + var thisIsTheUi5LoaderAutoconfig = true; + console.log(thisIsTheUi5LoaderAutoconfig); +})() diff --git a/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js b/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js new file mode 100644 index 000000000..3cedd755e --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js @@ -0,0 +1,2 @@ +(function(){var o=true;console.log(o)})(); +//# sourceMappingURL=ui5loader-autoconfig.js.map \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js.map b/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js.map new file mode 100644 index 000000000..17ebf5849 --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["ui5loader-autoconfig-dbg.js"],"names":["thisIsTheUi5LoaderAutoconfig","console","log"],"mappings":"CAAA,WACC,IAAIA,EAA+B,KACnCC,QAAQC,IAAIF,IAFb","file":"ui5loader-autoconfig.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/ui5loader-dbg.js b/test/expected/build/sap.ui.core/preload/resources/ui5loader-dbg.js new file mode 100644 index 000000000..5e44b1dd6 --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/ui5loader-dbg.js @@ -0,0 +1,4 @@ +(function () { + var thisIsTheUi5Loader = true; + console.log(thisIsTheUi5Loader); +})() diff --git a/test/expected/build/sap.ui.core/preload/resources/ui5loader.js b/test/expected/build/sap.ui.core/preload/resources/ui5loader.js new file mode 100644 index 000000000..863578d3d --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/ui5loader.js @@ -0,0 +1,2 @@ +(function(){var o=true;console.log(o)})(); +//# sourceMappingURL=ui5loader.js.map \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/ui5loader.js.map b/test/expected/build/sap.ui.core/preload/resources/ui5loader.js.map new file mode 100644 index 000000000..6c94ed09e --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/ui5loader.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["ui5loader-dbg.js"],"names":["thisIsTheUi5Loader","console","log"],"mappings":"CAAA,WACC,IAAIA,EAAqB,KACzBC,QAAQC,IAAIF,IAFb","file":"ui5loader.js"} \ No newline at end of file diff --git "a/test/fixtures/library.\303\270/m\303\241in/\303\237rc/library/\303\270/rules/MyControl.support.js" "b/test/fixtures/library.\303\270/m\303\241in/\303\237rc/library/\303\270/rules/MyControl.support.js" new file mode 100644 index 000000000..105f08ef0 --- /dev/null +++ "b/test/fixtures/library.\303\270/m\303\241in/\303\237rc/library/\303\270/rules/MyControl.support.js" @@ -0,0 +1,36 @@ +/*! + * ${copyright} + */ +/** + * Defines support rules + */ + sap.ui.define(['sap/ui/support/library', 'sap/base/Log'], + function(SupportLib, Log) { + 'use strict'; + + //********************************************************** + // Rule Definitions + //********************************************************** + + var oRule = { + id: "oRule", + audiences: [Audiences.Application], + categories: [Categories.Usage], + enabled: true, + minversion: '1.71', + title: 'Title', + description: 'description', + resolution: 'resolution', + check: function(oIssueManager, oCoreFacade, oScope) { + oIssueManager.addIssue({ + severity: Severity.High, + details: 'Looking good today!' + }); + } + }; + + return [ + oRule + ]; + + }, true); diff --git a/test/fixtures/sap.ui.core/main/src/sap-ui-core.js b/test/fixtures/sap.ui.core/main/src/sap-ui-core.js index e69de29bb..bd9958b6e 100644 --- a/test/fixtures/sap.ui.core/main/src/sap-ui-core.js +++ b/test/fixtures/sap.ui.core/main/src/sap-ui-core.js @@ -0,0 +1,4 @@ +(function () { + var thisShouldBeOverwritten = true; + console.log(thisShouldBeOverwritten); +})() diff --git a/test/fixtures/sap.ui.core/main/src/sap/ui/core/Core.js b/test/fixtures/sap.ui.core/main/src/sap/ui/core/Core.js index e69de29bb..66bd2c43f 100644 --- a/test/fixtures/sap.ui.core/main/src/sap/ui/core/Core.js +++ b/test/fixtures/sap.ui.core/main/src/sap/ui/core/Core.js @@ -0,0 +1,4 @@ +(function () { + var core = true; + console.log(core); +})() diff --git a/test/fixtures/sap.ui.core/main/src/ui5loader-autoconfig.js b/test/fixtures/sap.ui.core/main/src/ui5loader-autoconfig.js new file mode 100644 index 000000000..783bce8ec --- /dev/null +++ b/test/fixtures/sap.ui.core/main/src/ui5loader-autoconfig.js @@ -0,0 +1,4 @@ +(function () { + var thisIsTheUi5LoaderAutoconfig = true; + console.log(thisIsTheUi5LoaderAutoconfig); +})() diff --git a/test/fixtures/sap.ui.core/main/src/ui5loader.js b/test/fixtures/sap.ui.core/main/src/ui5loader.js new file mode 100644 index 000000000..5e44b1dd6 --- /dev/null +++ b/test/fixtures/sap.ui.core/main/src/ui5loader.js @@ -0,0 +1,4 @@ +(function () { + var thisIsTheUi5Loader = true; + console.log(thisIsTheUi5Loader); +})() diff --git a/test/lib/builder/BuildContext.js b/test/lib/builder/BuildContext.js index 1021fce32..7b6af6aea 100644 --- a/test/lib/builder/BuildContext.js +++ b/test/lib/builder/BuildContext.js @@ -27,10 +27,14 @@ test("getRootProject", (t) => { test.serial("createProjectContext", (t) => { class DummyProjectContext { - constructor({buildContext, project, resources}) { + constructor({buildContext, project, resources, globalTags}) { t.is(buildContext, testBuildContext, "Correct buildContext parameter"); t.is(project, "project", "Correct project parameter"); t.is(resources, "resources", "Correct resources parameter"); + t.deepEqual(globalTags, { + IsDebugVariant: "ui5:IsDebugVariant", + HasDebugVariant: "ui5:HasDebugVariant", + }, "Correct globalTags parameter"); } } mock("../../../lib/builder/ProjectBuildContext", DummyProjectContext); @@ -70,3 +74,28 @@ test("executeCleanupTasks", async (t) => { t.is(executeCleanupTasks.callCount, 2, "Project context executeCleanupTasks got called twice"); }); + +test.serial("getResourceTagCollection", (t) => { + class DummyResourceTagCollection { + constructor({allowedTags, superCollection}) { + t.deepEqual(allowedTags, [ + "ui5:IsDebugVariant", + "ui5:HasDebugVariant", + ], + "Correct allowedTags parameter supplied"); + } + } + mock("@ui5/fs", { + ResourceTagCollection: DummyResourceTagCollection + }); + + const BuildContext = mock.reRequire("../../../lib/builder/BuildContext"); + const buildContext = new BuildContext({ + rootProject: "pony" + }); + + const collection = buildContext.getResourceTagCollection(); + + t.true(collection instanceof DummyResourceTagCollection, + "Returned an instance of mocked DummyResourceTagCollection"); +}); diff --git a/test/lib/builder/ProjectBuildContext.js b/test/lib/builder/ProjectBuildContext.js index d14b3072c..911ef92a0 100644 --- a/test/lib/builder/ProjectBuildContext.js +++ b/test/lib/builder/ProjectBuildContext.js @@ -1,7 +1,13 @@ const test = require("ava"); const sinon = require("sinon"); const mock = require("mock-require"); +const ResourceTagCollection = require("@ui5/fs").ResourceTagCollection; +test.beforeEach((t) => { + t.context.resourceTagCollection = new ResourceTagCollection({ + allowedTags: ["me:MyTag"] + }); +}); test.afterEach.always((t) => { sinon.restore(); mock.stopAll(); @@ -11,7 +17,12 @@ const ProjectBuildContext = require("../../../lib/builder/ProjectBuildContext"); test("Missing parameters", (t) => { const error = t.throws(() => { - new ProjectBuildContext({}); + new ProjectBuildContext({ + buildContext: { + getResourceTagCollection: () => t.context.resourceTagCollection + }, + globalTags: {MyTag: "me:MyTag"}, + }); }); t.is(error.message, `One or more mandatory parameters are missing`, "Threw with expected error message"); @@ -20,8 +31,10 @@ test("Missing parameters", (t) => { test("isRootProject: true", (t) => { const projectBuildContext = new ProjectBuildContext({ buildContext: { - getRootProject: () => "root project" + getRootProject: () => "root project", + getResourceTagCollection: () => t.context.resourceTagCollection }, + globalTags: {MyTag: "me:MyTag"}, project: "root project", resources: "resources" }); @@ -32,8 +45,10 @@ test("isRootProject: true", (t) => { test("isRootProject: false", (t) => { const projectBuildContext = new ProjectBuildContext({ buildContext: { - getRootProject: () => "root project" + getRootProject: () => "root project", + getResourceTagCollection: () => t.context.resourceTagCollection }, + globalTags: {MyTag: "me:MyTag"}, project: "no root project", resources: "resources" }); @@ -44,8 +59,10 @@ test("isRootProject: false", (t) => { test("registerCleanupTask", (t) => { const projectBuildContext = new ProjectBuildContext({ buildContext: { - getRootProject: () => "root project" + getRootProject: () => "root project", + getResourceTagCollection: () => t.context.resourceTagCollection }, + globalTags: {MyTag: "me:MyTag"}, project: "no root project", resources: "resources" }); @@ -59,8 +76,10 @@ test("registerCleanupTask", (t) => { test("executeCleanupTasks", (t) => { const projectBuildContext = new ProjectBuildContext({ buildContext: { - getRootProject: () => "root project" + getRootProject: () => "root project", + getResourceTagCollection: () => t.context.resourceTagCollection }, + globalTags: {MyTag: "me:MyTag"}, project: "no root project", resources: "resources" }); @@ -78,26 +97,33 @@ test("executeCleanupTasks", (t) => { test("STANDARD_TAGS constant", (t) => { const projectBuildContext = new ProjectBuildContext({ buildContext: { - getRootProject: () => "root project" + getRootProject: () => "root project", + getResourceTagCollection: () => t.context.resourceTagCollection }, + globalTags: {MyTag: "me:MyTag"}, project: "no root project", resources: "resources" }); t.deepEqual(projectBuildContext.STANDARD_TAGS, { OmitFromBuildResult: "ui5:OmitFromBuildResult", + MyTag: "me:MyTag", IsBundle: "ui5:IsBundle" }, "Exposes correct STANDARD_TAGS constant"); }); test.serial("getResourceTagCollection", (t) => { class DummyResourceTagCollection { - constructor({allowedTags}) { + constructor({allowedTags, superCollection}) { t.deepEqual(allowedTags, [ "ui5:OmitFromBuildResult", - "ui5:IsBundle" + "ui5:IsBundle", + "me:MyTag", ], "Correct allowedTags parameter supplied"); + + t.is(superCollection, "build context's tag collection", + "Correct superCollection parameter supplied"); } } mock("@ui5/fs", { @@ -107,8 +133,10 @@ test.serial("getResourceTagCollection", (t) => { const ProjectBuildContext = mock.reRequire("../../../lib/builder/ProjectBuildContext"); const projectBuildContext = new ProjectBuildContext({ buildContext: { - getRootProject: () => "root project" + getRootProject: () => "root project", + getResourceTagCollection: () => "build context's tag collection", }, + globalTags: {MyTag: "me:MyTag"}, project: "no root project", resources: "resources" }); diff --git a/test/lib/builder/builder-composeTaskList.js b/test/lib/builder/builder-composeTaskList.js index 3f4c94470..3c7780947 100644 --- a/test/lib/builder/builder-composeTaskList.js +++ b/test/lib/builder/builder-composeTaskList.js @@ -31,9 +31,8 @@ test.afterEach.always(() => { "replaceCopyright", "replaceVersion", "replaceBuildtime", - "createDebugFiles", "escapeNonAsciiCharacters", - "uglify", + "minify", "buildThemes", "generateLibraryManifest", "generateVersionInfo", @@ -67,9 +66,8 @@ test.afterEach.always(() => { "replaceCopyright", "replaceVersion", "replaceBuildtime", - "createDebugFiles", "escapeNonAsciiCharacters", - "uglify", + "minify", "buildThemes", "transformBootstrapHtml", "generateLibraryManifest", @@ -106,9 +104,8 @@ test.afterEach.always(() => { }, [ "replaceVersion", "replaceBuildtime", - "createDebugFiles", "escapeNonAsciiCharacters", - "uglify", + "minify", "buildThemes", "generateLibraryManifest", "generateVersionInfo", @@ -130,12 +127,11 @@ test.afterEach.always(() => { "replaceCopyright", "replaceVersion", "replaceBuildtime", - "createDebugFiles", "escapeNonAsciiCharacters", "executeJsdocSdkTransformation", "generateApiIndex", "generateJsdoc", - "uglify", + "minify", "buildThemes", "transformBootstrapHtml", "generateLibraryManifest", @@ -171,9 +167,8 @@ test.afterEach.always(() => { "replaceCopyright", "replaceVersion", "replaceBuildtime", - "createDebugFiles", "escapeNonAsciiCharacters", - "uglify", + "minify", "buildThemes", "generateLibraryManifest", "generateVersionInfo", @@ -203,9 +198,8 @@ test.afterEach.always(() => { "replaceCopyright", "replaceVersion", "replaceBuildtime", - "createDebugFiles", "escapeNonAsciiCharacters", - "uglify", + "minify", "buildThemes", "generateLibraryManifest", "generateVersionInfo", diff --git a/test/lib/builder/builder.js b/test/lib/builder/builder.js index b40fa6d45..e19f78766 100644 --- a/test/lib/builder/builder.js +++ b/test/lib/builder/builder.js @@ -162,9 +162,8 @@ test.serial("Build", async (t) => { "replaceCopyright", "replaceVersion", "replaceBuildtime", - "createDebugFiles", "escapeNonAsciiCharacters", - "uglify", + "minify", "buildThemes", "generateLibraryManifest", "generateVersionInfo", @@ -448,7 +447,28 @@ test.serial("Build application.h", (t) => { return builder.build({ tree: applicationHTree, destPath, - excludedTasks: ["createDebugFiles", "generateComponentPreload", + excludedTasks: ["generateComponentPreload", + "generateStandaloneAppBundle", "generateVersionInfo"] + }).then(() => { + return findFiles(expectedPath); + }).then((expectedFiles) => { + // Check for all directories and files + assert.directoryDeepEqual(destPath, expectedPath); + // Check for all file contents + return checkFileContentsIgnoreLineFeeds(t, expectedFiles, expectedPath, destPath); + }).then(() => { + t.pass(); + }); +}); + +test.serial("Build application.h (no minify)", (t) => { + const destPath = "./test/tmp/build/application.h/no-minify"; + const expectedPath = path.join("test", "expected", "build", "application.h", "no-minify"); + + return builder.build({ + tree: applicationHTree, + destPath, + excludedTasks: ["minify", "generateComponentPreload", "generateStandaloneAppBundle", "generateVersionInfo"] }).then(() => { return findFiles(expectedPath); @@ -469,7 +489,7 @@ test.serial("Build application.i", (t) => { return builder.build({ tree: applicationITree, destPath, - excludedTasks: ["createDebugFiles", "generateStandaloneAppBundle", "generateVersionInfo"] + excludedTasks: ["generateStandaloneAppBundle", "generateVersionInfo"] }).then(() => { return findFiles(expectedPath); }).then((expectedFiles) => { @@ -489,7 +509,7 @@ test.serial("Build application.j", (t) => { return builder.build({ tree: applicationJTree, destPath, - excludedTasks: ["createDebugFiles", "generateStandaloneAppBundle", "generateVersionInfo"] + excludedTasks: ["generateStandaloneAppBundle", "generateVersionInfo"] }).then(() => { return findFiles(expectedPath); }).then((expectedFiles) => { @@ -534,7 +554,7 @@ test.serial("Build application.j with resources.json and version info", (t) => { ], tree: applicationJTree, destPath, - excludedTasks: ["createDebugFiles", "generateStandaloneAppBundle"] + excludedTasks: ["generateStandaloneAppBundle"] }).then(() => { return findFiles(expectedPath); }).then((expectedFiles) => { @@ -698,7 +718,29 @@ test.serial("Build library.h with custom bundles and component-preloads", (t) => return builder.build({ tree: libraryHTree, destPath, - excludedTasks: ["createDebugFiles", "generateLibraryPreload"] + excludedTasks: ["generateLibraryPreload"] + }).then(() => { + return findFiles(expectedPath); + }).then((expectedFiles) => { + // Check for all directories and files + assert.directoryDeepEqual(destPath, expectedPath); + + // Check for all file contents + return checkFileContentsIgnoreLineFeeds(t, expectedFiles, expectedPath, destPath); + }).then(() => { + t.pass(); + }); +}); + + +test.serial("Build library.h with custom bundles and component-preloads (no minify)", (t) => { + const destPath = path.join("test", "tmp", "build", "library.h", "no-minify"); + const expectedPath = path.join("test", "expected", "build", "library.h", "no-minify"); + + return builder.build({ + tree: libraryHTree, + destPath, + excludedTasks: ["minify", "generateLibraryPreload"] }).then(() => { return findFiles(expectedPath); }).then((expectedFiles) => { @@ -722,7 +764,7 @@ test.serial("Build library.h with custom bundles and component-preloads with res ], tree: libraryHTree, destPath, - excludedTasks: ["createDebugFiles", "generateLibraryPreload"] + excludedTasks: ["generateLibraryPreload"] }).then(() => { return findFiles(expectedPath); }).then((expectedFiles) => { @@ -743,7 +785,7 @@ test.serial("Build library.i with manifest info taken from .library and library. return builder.build({ tree: libraryITree, destPath, - excludedTasks: ["createDebugFiles", "generateLibraryPreload", "uglify"] + excludedTasks: ["generateLibraryPreload", "minify"] }).then(() => { return findFiles(expectedPath); }).then((expectedFiles) => { @@ -1289,7 +1331,7 @@ const applicationHTree = { }] }, "bundleOptions": { - "optimize": true, + "optimize": false, "usePredefinedCalls": true } }] @@ -1613,7 +1655,7 @@ const libraryHTree = { "filters": [ "library/h/some.js", "library/h/library.js", - "library/h/file.js", + "library/h/fi*.js", "!library/h/components/" ], "resolve": false, @@ -1633,6 +1675,35 @@ const libraryHTree = { "optimize": true, "usePredefinedCalls": true } + }, { + "bundleDefinition": { + "name": "library/h/customBundle-dbg.js", + "defaultFileTypes": [".js"], + "sections": [{ + "mode": "preload", + "filters": [ + "library/h/some.js", + "library/h/library.js", + "library/h/fi*.js", + "!library/h/components/" + ], + "resolve": false, + "renderer": false + }, { + "mode": "raw", + "filters": [ + "library/h/not.js" + ], + "resolve": true, + "declareModules": false, + "sort": true, + "renderer": false + }] + }, + "bundleOptions": { + "optimize": false, + "usePredefinedCalls": true + } }], "componentPreload": { "namespaces": [ diff --git a/test/lib/index.js b/test/lib/index.js index b9d5ea003..c79476f60 100644 --- a/test/lib/index.js +++ b/test/lib/index.js @@ -11,12 +11,10 @@ test("index.js exports all expected modules", (t) => { t.truthy(index.processors.jsdocGenerator, "Module exported"); t.truthy(index.processors.sdkTransformer, "Module exported"); t.truthy(index.processors.bootstrapHtmlTransformer, "Module exported"); - t.truthy(index.processors.debugFileCreator, "Module exported"); - t.truthy(index.processors.resourceCopier, "Module exported"); + t.truthy(index.processors.minifier, "Module exported"); t.truthy(index.processors.nonAsciiEscaper, "Module exported"); t.truthy(index.processors.stringReplacer, "Module exported"); t.truthy(index.processors.themeBuilder, "Module exported"); - t.truthy(index.processors.uglifier, "Module exported"); t.truthy(index.processors.versionInfoGenerator, "Module exported"); t.truthy(index.tasks.generateComponentPreload, "Module exported"); @@ -28,7 +26,7 @@ test("index.js exports all expected modules", (t) => { t.truthy(index.tasks.generateBundle, "Module exported"); t.truthy(index.tasks.generateCachebusterInfo, "Module exported"); t.truthy(index.tasks.buildThemes, "Module exported"); - t.truthy(index.tasks.createDebugFiles, "Module exported"); + t.truthy(index.tasks.minify, "Module exported"); t.truthy(index.tasks.executeJsdocSdkTransformation, "Module exported"); t.truthy(index.tasks.generateApiIndex, "Module exported"); t.truthy(index.tasks.generateJsdoc, "Module exported"); @@ -38,7 +36,6 @@ test("index.js exports all expected modules", (t) => { t.truthy(index.tasks.replaceVersion, "Module exported"); t.truthy(index.tasks.replaceBuildtime, "Module exported"); t.truthy(index.tasks.transformBootstrapHtml, "Module exported"); - t.truthy(index.tasks.uglify, "Module exported"); t.truthy(index.tasks.taskRepository, "Module exported"); t.truthy(index.types.AbstractBuilder, "Module exported"); diff --git a/test/lib/lbt/bundle/Builder.js b/test/lib/lbt/bundle/Builder.js index f76295a33..c6146a75d 100644 --- a/test/lib/lbt/bundle/Builder.js +++ b/test/lib/lbt/bundle/Builder.js @@ -30,6 +30,9 @@ test.serial("writePreloadModule: with invalid json content", async (t) => { write: writeStub }; const invalidJsonResource = { + string: function() { + return this.buffer(); + }, buffer: async () => { return invalidJsonContent; } @@ -52,14 +55,23 @@ test("integration: createBundle with exposedGlobals", async (t) => { const pool = new ResourcePool(); pool.addResource({ name: "a.js", + string: function() { + return this.buffer(); + }, buffer: async () => "function One(){return 1;}" }); pool.addResource({ name: "ui5loader.js", + string: function() { + return this.buffer(); + }, buffer: async () => "" }); pool.addResource({ name: "a.library", + string: function() { + return this.buffer(); + }, buffer: async () => ` @@ -111,14 +123,23 @@ test("integration: createBundle EVOBundleFormat (ui5loader.js)", async (t) => { const pool = new ResourcePool(); pool.addResource({ name: "ui5loader.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(__global) {sap.ui.require = function(){};}(window));" }); pool.addResource({ name: "jquery.sap.global-dbg.js", + string: function() { + return this.buffer(); + }, buffer: async () => "sap.ui.define([], function(){return {};});" }); pool.addResource({ name: "myModule.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(){window.mine = {};}());" }); @@ -153,7 +174,7 @@ sap.ui.require.preload({ (function(){window.mine = {};}()); sap.ui.requireSync("ui5loader"); `; - t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optomization and " + + t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optimization and " + "should contain:" + " preload part from jquery.sap.global-dbg.js" + " raw part from myModule.js" + @@ -168,22 +189,37 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( const pool = new ResourcePool(); pool.addResource({ name: "ui5loader.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(__global) {sap.ui.require = function(){};}(window));" }); pool.addResource({ // the pool must contain this to activate optimization markers name: "jquery.sap.global-dbg.js", + string: function() { + return this.buffer(); + }, buffer: async () => "sap.ui.define([], function(){return {};});" }); pool.addResource({ name: "jquery.sap.global.js", + string: function() { + return this.buffer(); + }, buffer: async () => "sap.ui.define([], function(){return {};});" }); pool.addResource({ name: "jquery.sap.pony1.js", + string: function() { + return this.buffer(); + }, buffer: async () => "sap.ui.define(); // hello" }); pool.addResource({ name: "jquery.sap.pony2.js", + string: function() { + return this.buffer(); + }, buffer: async () => `sap. ui.define /*hello*/ @@ -191,10 +227,16 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( }); pool.addResource({ name: "myRawModule.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(){window.mine = {};}());" }); pool.addResource({ name: "myModuleUsingGlobalScope.js", + string: function() { + return this.buffer(); + }, buffer: async () => "var magic = {};" }); @@ -231,17 +273,20 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( t.deepEqual(oResult.name, "Component-preload.js"); const expectedContent = `//@ui5-bundle Component-preload.js window["sap-ui-optimized"] = true; -sap.ui.predefine("jquery.sap.global",[],function(){return{}}); -sap.ui.predefine("jquery.sap.pony1"); -sap.ui.predefine("jquery.sap.pony2"); +sap.ui.predefine("jquery.sap.global", [], function(){return {};}); +sap.ui.predefine("jquery.sap.pony1"); // hello +sap. + ui.predefine + /*hello*/ + ("jquery.sap.pony2"); sap.ui.require.preload({ - "myModuleUsingGlobalScope.js":'var magic={};' + "myModuleUsingGlobalScope.js":'var magic = {};' },"preload-section"); //@ui5-bundle-raw-include myRawModule.js -(function(){window.mine={}})(); +(function(){window.mine = {};}()); sap.ui.requireSync("ui5loader"); `; - t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optomization and " + + t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optimization and " + "should contain:" + " preload part from jquery.sap.global-dbg.js" + " raw part from myModule.js" + @@ -262,22 +307,37 @@ test("integration: createBundle EVOBundleFormat, using predefine calls, no optim const pool = new ResourcePool(); pool.addResource({ name: "ui5loader.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(__global) {sap.ui.require = function(){};}(window));" }); pool.addResource({ // the pool must contain this to activate optimization markers name: "jquery.sap.global-dbg.js", + string: function() { + return this.buffer(); + }, buffer: async () => "sap.ui.define([], function(){return {};});" }); pool.addResource({ name: "jquery.sap.global.js", + string: function() { + return this.buffer(); + }, buffer: async () => "sap.ui.define([], function(){return {};});" }); pool.addResource({ name: "jquery.sap.pony1.js", + string: function() { + return this.buffer(); + }, buffer: async () => "sap.ui.define(); // hello" }); pool.addResource({ name: "jquery.sap.pony2.js", + string: function() { + return this.buffer(); + }, buffer: async () => `sap. ui.define /*hello*/ @@ -285,10 +345,16 @@ test("integration: createBundle EVOBundleFormat, using predefine calls, no optim }); pool.addResource({ name: "myRawModule.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(){window.mine = {};}());" }); pool.addResource({ name: "myModuleUsingGlobalScope.js", + string: function() { + return this.buffer(); + }, buffer: async () => "var magic = {};" }); @@ -338,7 +404,7 @@ sap.ui.require.preload({ (function(){window.mine = {};}()); sap.ui.requireSync("ui5loader"); `; - t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optomization and " + + t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optimization and " + "should contain:" + " preload part from jquery.sap.global-dbg.js" + " raw part from myModule.js" + @@ -359,10 +425,16 @@ test("integration: createBundle (bootstrap bundle)", async (t) => { const pool = new ResourcePool(); pool.addResource({ name: "ui5loader.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(__global) {sap.ui.require = function(){};}(window));" }); pool.addResource({ name: "sap/ui/core/Core.js", + string: function() { + return this.buffer(); + }, buffer: async () => "sap.ui.define([],function(){return {};});" }); @@ -397,8 +469,8 @@ test("integration: createBundle (bootstrap bundle)", async (t) => { window["sap-ui-optimized"] = true; try { //@ui5-bundle-raw-include ui5loader.js -(function(i){sap.ui.require=function(){}})(window); -sap.ui.predefine("sap/ui/core/Core",[],function(){return{}}); +(function(__global) {sap.ui.require = function(){};}(window)); +sap.ui.predefine("sap/ui/core/Core", [],function(){return {};}); sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); @@ -406,7 +478,7 @@ sap.ui.getCore().boot && sap.ui.getCore().boot(); if (oError.name != "Restart") { throw oError; } } `; - t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optomization and " + + t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optimization and " + "should contain:" + " preload part from jquery.sap.global-dbg.js" + " raw part from myModule.js" + @@ -421,14 +493,23 @@ test("integration: createBundle UI5BundleFormat (non ui5loader.js)", async (t) = const pool = new ResourcePool(); pool.addResource({ name: "sap-ui-core.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(__global) {sap.ui.require = function(){};}(window));" }); pool.addResource({ name: "jquery.sap.global-dbg.js", + string: function() { + return this.buffer(); + }, buffer: async () => "sap.ui.define([], function(){/* comment */ return {};});" }); pool.addResource({ name: "myModule.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(){window.mine = {};}());" }); @@ -480,18 +561,23 @@ test("integration: createBundle (bootstrap bundle, UI5BundleFormat)", async (t) const pool = new ResourcePool(); pool.addResource({ name: "jquery.sap.global.js", - buffer: async () => "(function(__global) {sap.ui.require = function(){};}(window));" - }); - pool.addResource({ - name: "jquery.sap.global-dbg.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(__global) {sap.ui.require = function(){};}(window));" }); pool.addResource({ name: "myRawModule.js", + string: function() { + return this.buffer(); + }, buffer: async () => "(function(){window.mine = {};}());" }); pool.addResource({ name: "sap/ui/core/Core.js", + string: function() { + return this.buffer(); + }, buffer: async () => "sap.ui.define([],function(){return {};});" }); @@ -526,12 +612,12 @@ test("integration: createBundle (bootstrap bundle, UI5BundleFormat)", async (t) window["sap-ui-optimized"] = true; try { //@ui5-bundle-raw-include jquery.sap.global.js -(function(i){sap.ui.require=function(){}})(window); +(function(__global) {sap.ui.require = function(){};}(window)); //@ui5-bundle-raw-include myRawModule.js -(function(){window.mine={}})(); +(function(){window.mine = {};}()); jQuery.sap.declare('jquery.sap.global', false); jQuery.sap.declare('myRawModule', false); -sap.ui.predefine("sap/ui/core/Core",[],function(){return{}}); +sap.ui.predefine("sap/ui/core/Core", [],function(){return {};}); sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); @@ -539,7 +625,7 @@ sap.ui.getCore().boot && sap.ui.getCore().boot(); if (oError.name != "Restart") { throw oError; } } `; - t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optomization and " + + t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optimization and " + "should contain:" + " preload part from jquery.sap.global-dbg.js" + " raw part from myModule.js" + @@ -564,22 +650,37 @@ test("integration: createBundle with bundleInfo", async (t) => { const pool = new ResourcePool(); pool.addResource({ name: "a.js", + string: function() { + return this.buffer(); + }, buffer: async () => "function One(){return 1;}" }); pool.addResource({ name: "b.js", + string: function() { + return this.buffer(); + }, buffer: async () => "function Two(){return 2;}" }); pool.addResource({ name: "c.js", + string: function() { + return this.buffer(); + }, buffer: async () => "function Three(){return 3;}" }); pool.addResource({ name: "ui5loader.js", + string: function() { + return this.buffer(); + }, buffer: async () => "" }); pool.addResource({ name: "a.library", + string: function() { + return this.buffer(); + }, buffer: async () => ` diff --git a/test/lib/lbt/resources/Resource.js b/test/lib/lbt/resources/Resource.js index b6e0670ce..85a0e767b 100644 --- a/test/lib/lbt/resources/Resource.js +++ b/test/lib/lbt/resources/Resource.js @@ -5,7 +5,7 @@ const mock = require("mock-require"); let Resource = require("../../../../lib/lbt/resources/Resource"); test.serial("Resource: buffer", async (t) => { - const readFileStub = sinon.stub().callsArg(1); + const readFileStub = sinon.stub().callsArgWith(1, null, Buffer.from("content")); mock("graceful-fs", { readFile: readFileStub }); @@ -14,12 +14,32 @@ test.serial("Resource: buffer", async (t) => { // Re-require tested module Resource = mock.reRequire("../../../../lib/lbt/resources/Resource"); const resource = new Resource({}, "name", "file"); - await resource.buffer(); + const res = await resource.buffer(); mock.stop("graceful-fs"); t.is(readFileStub.callCount, 1, "called once"); t.is(readFileStub.getCall(0).args[0], "file", "called with file parameter"); + t.is(res.toString(), "content", "File content returned correctly"); +}); + +test.serial("Resource: string", async (t) => { + const readFileStub = sinon.stub().callsArgWith(1, null, Buffer.from("content")); + mock("graceful-fs", { + readFile: readFileStub + }); + mock.reRequire("graceful-fs"); + + // Re-require tested module + Resource = mock.reRequire("../../../../lib/lbt/resources/Resource"); + const resource = new Resource({}, "name", "file"); + const res = await resource.string(); + + mock.stop("graceful-fs"); + + t.is(readFileStub.callCount, 1, "called once"); + t.is(readFileStub.getCall(0).args[0], "file", "called with file parameter"); + t.is(res, "content", "File content returned correctly"); }); test.serial("Resource: constructor", async (t) => { diff --git a/test/lib/processors/minifier.js b/test/lib/processors/minifier.js new file mode 100644 index 000000000..e204ca268 --- /dev/null +++ b/test/lib/processors/minifier.js @@ -0,0 +1,225 @@ +const test = require("ava"); + +const minifier = require("../../../lib/processors/minifier"); +const ui5Fs = require("@ui5/fs"); +const resourceFactory = ui5Fs.resourceFactory; + +test("Basic minifier", async (t) => { + const content = `/*! + * \${copyright} + */ + function myFunc(myArg) { + jQuery.sap.require("something"); + console.log("Something required") + } +myFun(); +`; + const testResource = resourceFactory.createResource({ + path: "/test.controller.js", + string: content + }); + const [{resource, dbgResource, sourceMapResource}] = await minifier({ + resources: [testResource] + }); + + const expected = `/*! + * \${copyright} + */ +function myFunc(e){jQuery.sap.require("something");console.log("Something required")}myFun(); +//# sourceMappingURL=test.controller.js.map`; + t.deepEqual(await resource.getString(), expected, "Correct minified content"); + t.deepEqual(await dbgResource.getString(), content, "Correct debug content"); + const expectedSourceMap = `{"version":3,"sources":["test-dbg.controller.js"],` + + `"names":["myFunc","myArg","jQuery","sap","require","console","log","myFun"],` + + `"mappings":";;;AAGC,SAASA,OAAOC,GACfC,OAAOC,IAAIC,QAAQ,aACnBC,QAAQC,IAAI,sBAEdC",` + + `"file":"test.controller.js"}`; + t.deepEqual(await sourceMapResource.getString(), expectedSourceMap, "Correct source map content"); +}); + +test("Multiple resources", async (t) => { + const content1 = ` +function test1(paramA) { + var variableA = paramA; + console.log(variableA); +} +test1();`; + const content2 = ` +function test2(paramA) { + var variableA = paramA; + console.log(variableA); +} +test2();`; + const content3 = ` +function test3(paramA) { + var variableA = paramA; + console.log(variableA); +} +test3();`; + + const testResources = [ + resourceFactory.createResource({ + path: "/test1.controller.js", + string: content1 + }), + resourceFactory.createResource({ + path: "/test2.fragment.js", + string: content2 + }), + resourceFactory.createResource({ + path: "/test3.designtime.js", + string: content3 + }) + ]; + + const resources = await minifier({ + resources: testResources + }); + + const expectedMinified1 = `function test1(t){var o=t;console.log(o)}test1(); +//# sourceMappingURL=test1.controller.js.map`; + const expectedMinified2 = `function test2(t){var o=t;console.log(o)}test2(); +//# sourceMappingURL=test2.fragment.js.map`; + const expectedMinified3 = `function test3(t){var o=t;console.log(o)}test3(); +//# sourceMappingURL=test3.designtime.js.map`; + + const expectedSourceMap1 = + `{"version":3,"sources":["test1-dbg.controller.js"],"names":["test1","paramA","variableA","console","log"],` + + `"mappings":"AACA,SAASA,MAAMC,GACd,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test1.controller.js"}`; + const expectedSourceMap2 = + `{"version":3,"sources":["test2-dbg.fragment.js"],"names":["test2","paramA","variableA","console","log"],` + + `"mappings":"AACA,SAASA,MAAMC,GACd,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test2.fragment.js"}`; + const expectedSourceMap3 = + `{"version":3,"sources":["test3-dbg.designtime.js"],"names":["test3","paramA","variableA","console","log"],` + + `"mappings":"AACA,SAASA,MAAMC,GACd,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test3.designtime.js"}`; + + t.deepEqual(resources[0].resource.getPath(), "/test1.controller.js", + "Correct resource path for minified content of resource 1"); + t.deepEqual(await resources[0].resource.getString(), expectedMinified1, "Correct minified content for resource 1"); + t.deepEqual(resources[0].dbgResource.getPath(), "/test1-dbg.controller.js", + "Correct resource path for debug content of resource 1"); + t.deepEqual(await resources[0].dbgResource.getString(), content1, "Correct debug content for resource 1"); + t.deepEqual(resources[0].sourceMapResource.getPath(), "/test1.controller.js.map", + "Correct resource path for source map content of resource 1"); + t.deepEqual(await resources[0].sourceMapResource.getString(), expectedSourceMap1, + "Correct source map content for resource 1"); + + t.deepEqual(resources[1].resource.getPath(), "/test2.fragment.js", + "Correct resource path for minified content of resource 2"); + t.deepEqual(await resources[1].resource.getString(), expectedMinified2, "Correct minified content for resource 2"); + t.deepEqual(resources[1].dbgResource.getPath(), "/test2-dbg.fragment.js", + "Correct resource path for debug content of resource 2"); + t.deepEqual(await resources[1].dbgResource.getString(), content2, "Correct debug content for resource 2"); + t.deepEqual(resources[1].sourceMapResource.getPath(), "/test2.fragment.js.map", + "Correct resource path for source map content of resource 2"); + t.deepEqual(await resources[1].sourceMapResource.getString(), expectedSourceMap2, + "Correct source map content for resource 2"); + + t.deepEqual(resources[2].resource.getPath(), "/test3.designtime.js", + "Correct resource path for minified content of resource 3"); + t.deepEqual(await resources[2].resource.getString(), expectedMinified3, "Correct minified content for resource 3"); + t.deepEqual(resources[2].dbgResource.getPath(), "/test3-dbg.designtime.js", + "Correct resource path for debug content of resource 3"); + t.deepEqual(await resources[2].dbgResource.getString(), content3, "Correct debug content for resource 3"); + t.deepEqual(resources[2].sourceMapResource.getPath(), "/test3.designtime.js.map", + "Correct resource path for source map content of resource 3"); + t.deepEqual(await resources[2].sourceMapResource.getString(), expectedSourceMap3, + "Correct source map content for resource 3"); +}); + +test("Different copyright", async (t) => { + const content = ` +/* + * Copyright SAPUI5 Developers and other contributors + */ +function test(paramA) { + var variableA = paramA; + console.log(variableA); +} +test(); +`; + const testResource = resourceFactory.createResource({ + path: "/test.view.js", + string: content + }); + const [{resource, dbgResource, sourceMapResource}] = await minifier({ + resources: [testResource] + }); + + const expected = `/* + * Copyright SAPUI5 Developers and other contributors + */ +function test(t){var o=t;console.log(o)}test(); +//# sourceMappingURL=test.view.js.map`; + t.deepEqual(await resource.getString(), expected, "Correct minified content"); + t.deepEqual(await dbgResource.getString(), content, "Correct debug content"); + const expectedSourceMap = + `{"version":3,"sources":["test-dbg.view.js"],"names":["test","paramA","variableA","console","log"],` + + `"mappings":";;;AAIA,SAASA,KAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.view.js"}`; + t.deepEqual(await sourceMapResource.getString(), expectedSourceMap, "Correct source map content"); +}); + +test("minify raw module (@ui5-bundle-raw-include)", async (t) => { + const content = ` +//@ui5-bundle-raw-include sap/ui/my/module.js +function test(paramA) { + var variableA = paramA; + console.log(variableA); +} +test();`; + + const testResource = resourceFactory.createResource({ + path: "/test.js", + string: content + }); + const [{resource}] = await minifier({ + resources: [testResource] + }); + + const expected = `//@ui5-bundle-raw-include sap/ui/my/module.js +function test(t){var o=t;console.log(o)}test(); +//# sourceMappingURL=test.js.map`; + t.deepEqual(await resource.getString(), expected, "Correct minified content"); +}); + +test("minify raw module (@ui5-bundle)", async (t) => { + const content = ` +//@ui5-bundle sap/ui/my/module.js +function test(paramA) { + var variableA = paramA; + console.log(variableA); +} +test();`; + + const testResource = resourceFactory.createResource({ + path: "/test.js", + string: content + }); + const [{resource}] = await minifier({ + resources: [testResource] + }); + + const expected = `//@ui5-bundle sap/ui/my/module.js +function test(t){var o=t;console.log(o)}test(); +//# sourceMappingURL=test.js.map`; + t.deepEqual(await resource.getString(), expected, "Correct minified content"); +}); + + +test("minification error", async (t) => { + const content = ` +this code can't be parsed!`; + + const testResource = resourceFactory.createResource({ + path: "/test.js", + string: content + }); + const error = await t.throwsAsync(minifier({ + resources: [testResource] + })); + + t.regex(error.message, /Minification failed with error/, "Error should contain expected message"); + t.regex(error.message, /test\.js/, "Error should contain filename"); + t.regex(error.message, /col/, "Error should contain col"); + t.regex(error.message, /pos/, "Error should contain pos"); + t.regex(error.message, /line/, "Error should contain line"); +}); diff --git a/test/lib/tasks/bundlers/generateLibraryPreload.integration.js b/test/lib/tasks/bundlers/generateLibraryPreload.integration.js index 6fc816ac0..d5e99f08e 100644 --- a/test/lib/tasks/bundlers/generateLibraryPreload.integration.js +++ b/test/lib/tasks/bundlers/generateLibraryPreload.integration.js @@ -85,7 +85,7 @@ test("integration: build sap.ui.core with library preload", async (t) => { const destPath = "./test/tmp/build/sap.ui.core/preload"; const expectedPath = "./test/expected/build/sap.ui.core/preload"; const excludedTasks = ["*"]; - const includedTasks = ["generateLibraryPreload"]; + const includedTasks = ["minify", "generateLibraryPreload"]; return t.notThrowsAsync(builder.build({ tree: sapUiCoreTree, @@ -99,7 +99,7 @@ test("integration: build sap.ui.core with library preload", async (t) => { assert.directoryDeepEqual(destPath, expectedPath); // Check for all file contents - t.deepEqual(expectedFiles.length, 10, "10 files are expected"); + t.deepEqual(expectedFiles.length, 23, "23 files are expected"); expectedFiles.forEach((expectedFile) => { const relativeFile = path.relative(expectedPath, expectedFile); const destFile = path.join(destPath, relativeFile); diff --git a/test/lib/tasks/bundlers/generateStandaloneAppBundle.integration.js b/test/lib/tasks/bundlers/generateStandaloneAppBundle.integration.js index 7b57bb565..141886858 100644 --- a/test/lib/tasks/bundlers/generateStandaloneAppBundle.integration.js +++ b/test/lib/tasks/bundlers/generateStandaloneAppBundle.integration.js @@ -34,7 +34,7 @@ test("integration: build application.b standalone", async (t) => { const destPath = "./test/tmp/build/application.b/standalone"; const expectedPath = "./test/expected/build/application.b/standalone"; const excludedTasks = ["*"]; - const includedTasks = ["generateStandaloneAppBundle"]; + const includedTasks = ["minify", "generateStandaloneAppBundle"]; return builder.build({ tree: applicationBTree, diff --git a/test/lib/tasks/bundlers/generateStandaloneAppBundle.js b/test/lib/tasks/bundlers/generateStandaloneAppBundle.js index 774092cdf..b7a4e9766 100644 --- a/test/lib/tasks/bundlers/generateStandaloneAppBundle.js +++ b/test/lib/tasks/bundlers/generateStandaloneAppBundle.js @@ -21,15 +21,19 @@ test.afterEach.always((t) => { sinon.restore(); }); -test.serial("execute module bundler and write results", async (t) => { - const dummyResource = { +function createDummyResource(id) { + return { getPath: function() { - return "ponyPath"; + return "ponyPath" + id; } }; +} + +test.serial("execute module bundler and write results", async (t) => { + let dummyResourceId = 0; const dummyReaderWriter = { - byGlob: async function() { - return [dummyResource, dummyResource]; + _byGlob: async function() { + return [createDummyResource(dummyResourceId++), createDummyResource(dummyResourceId++)]; }, write: function() {} }; @@ -73,14 +77,10 @@ test.serial("execute module bundler and write results", async (t) => { }); test.serial("execute module bundler and write results without namespace", async (t) => { - const dummyResource = { - getPath: function() { - return "ponyPath"; - } - }; + let dummyResourceId = 0; const dummyReaderWriter = { - byGlob: async function() { - return [dummyResource, dummyResource]; + _byGlob: async function() { + return [createDummyResource(dummyResourceId++), createDummyResource(dummyResourceId++)]; }, write: function() {} }; @@ -113,14 +113,19 @@ test.serial("execute module bundler and write results without namespace", async test.serial("execute module bundler and write results in evo mode", async (t) => { - const dummyResource = { + let dummyResourceId = 0; + + const ui5LoaderDummyResource = { getPath: function() { return "/resources/ui5loader.js"; // Triggers evo mode } }; const dummyReaderWriter = { - byGlob: async function() { - return [dummyResource, dummyResource]; + _byGlob: async function() { + if (dummyResourceId === 0) { + return [ui5LoaderDummyResource, createDummyResource(dummyResourceId++)]; + } + return [createDummyResource(dummyResourceId++), createDummyResource(dummyResourceId++)]; }, write: function() {} }; diff --git a/test/lib/tasks/createDebugFiles.js b/test/lib/tasks/createDebugFiles.js deleted file mode 100644 index 0f49d7fdf..000000000 --- a/test/lib/tasks/createDebugFiles.js +++ /dev/null @@ -1,419 +0,0 @@ -const test = require("ava"); - -const createDebugFiles = require("../../../lib/tasks/createDebugFiles"); -const ui5Fs = require("@ui5/fs"); -const resourceFactory = ui5Fs.resourceFactory; - -test("integration: test.js: dbg file creation", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = "console.log('Hello World');"; - - const resource = resourceFactory.createResource({ - path: "/test.js", - string: content - }); - - return sourceAdapter.write(resource).then(() => { - return createDebugFiles({ - workspace: sourceAdapter, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return sourceAdapter.byPath("/test-dbg.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test-dbg.js in target"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - t.deepEqual(buffer.toString(), content, "Correct content"); - }); - }); -}); - -test("integration: test.view.js: dbg file creation", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = "console.log('Hello World');"; - - const resource = resourceFactory.createResource({ - path: "/test.view.js", - string: content - }); - - return sourceAdapter.write(resource).then(() => { - return createDebugFiles({ - workspace: sourceAdapter, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return sourceAdapter.byPath("/test-dbg.view.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test-dbg.view.js in target"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - t.deepEqual(buffer.toString(), content, "Correct content"); - }); - }); -}); - -test("integration: test.controller.js: dbg file creation", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = "console.log('Hello World');"; - - const resource = resourceFactory.createResource({ - path: "/test.controller.js", - string: content - }); - - return sourceAdapter.write(resource).then(() => { - return createDebugFiles({ - workspace: sourceAdapter, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return sourceAdapter.byPath("/test-dbg.controller.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test-dbg.controller.js in target"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - t.deepEqual(buffer.toString(), content, "Correct content"); - }); - }); -}); - -test("integration: test.designtime.js: dbg file creation", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = "sap.ui.define([],function(){return {};});"; - - const resource = resourceFactory.createResource({ - path: "/test.designtime.js", - string: content - }); - - return sourceAdapter.write(resource).then(() => { - return createDebugFiles({ - workspace: sourceAdapter, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return sourceAdapter.byPath("/test-dbg.designtime.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test-dbg.designtime.js in target"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - t.deepEqual(buffer.toString(), content, "Correct content"); - }); - }); -}); - -test("integration: test.fragment.js: dbg file creation", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = "console.log('Hello World');"; - - const resource = resourceFactory.createResource({ - path: "/test.fragment.js", - string: content - }); - - return sourceAdapter.write(resource).then(() => { - return createDebugFiles({ - workspace: sourceAdapter, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return sourceAdapter.byPath("/test-dbg.fragment.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test-dbg.fragment.js in target locator"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - t.deepEqual(buffer.toString(), content, "Correct content"); - }); - }); -}); - -test("integration: test.support.js: dbg file creation", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = "sap.ui.define([],function(){return {};});"; - - const resource = resourceFactory.createResource({ - path: "/test.support.js", - string: content - }); - - return sourceAdapter.write(resource).then(() => { - return createDebugFiles({ - workspace: sourceAdapter, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return sourceAdapter.byPath("/test-dbg.support.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test-dbg.support.js in target"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - t.deepEqual(buffer.toString(), content, "Correct content"); - }); - }); -}); - -test("integration: test-dbg.js: dbg-dbg file creation", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = "console.log('Hello World');"; - - const resource = resourceFactory.createResource({ - path: "/test-dbg.js", - string: content - }); - - return sourceAdapter.write(resource).then(() => { - return createDebugFiles({ - workspace: sourceAdapter, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return sourceAdapter.byPath("/test-dbg-dbg.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test-dbg-dbg.js in target locator"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - t.deepEqual(buffer.toString(), content, "Correct content"); - }); - }); -}); - -test("integration: test.xml: *no* dbg file creation", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = ""; - - const resource = resourceFactory.createResource({ - path: "/test.xml", - string: content - }); - - return sourceAdapter.write(resource).then(() => { - return createDebugFiles({ - workspace: sourceAdapter, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return sourceAdapter.byPath("/test-dbg.xml").then((resource) => { - if (!resource) { - t.pass("Could not find /test-dbg.xml in target locator as it is not a JavaScript file"); - } else { - t.fail("Found /test-dbg.xml which should not be there (no JavaScript file)"); - } - }); - }); - }); -}); - -test("integration: test1.js, test2.js: dbg file creation", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = "console.log('Hello World');"; - - const resources = [ - resourceFactory.createResource({ - path: "/test1.js", - string: content - }), - resourceFactory.createResource({ - path: "/test2.js", - string: content - }) - ]; - - return Promise.all(resources.map((resource) => { - return sourceAdapter.write(resource); - })).then(() => { - return createDebugFiles({ - workspace: sourceAdapter, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return Promise.all([ - sourceAdapter.byPath("/test1-dbg.js"), - sourceAdapter.byPath("/test2-dbg.js") - ]).then((resources) => { - if (!resources || !resources[0] || !resources[1]) { - t.fail("Could not find /test1-dbg.js and/or /test2-dbg.js in target locator"); - } else { - return Promise.all(resources.map((resource) => { - return resource.getBuffer(); - })); - } - }); - }).then((buffers) => { - t.deepEqual(buffers[0].toString(), content, "Content of /test1-dbg.js is correct"); - t.deepEqual(buffers[1].toString(), content, "Content of /test2-dbg.js is correct"); - }); - }); -}); - -test("integration: dbg file creation should not overwrite the existing -dbg file", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = "console.log('Hello World');"; - const resource = resourceFactory.createResource({ - path: "/test1.js", - string: content - }); - - const contentDebug = "console.log('Hello Debug World')"; - const debugResource = resourceFactory.createResource({ - path: "/test1-dbg.js", - string: contentDebug - }); - - const workspace = resourceFactory.createWorkspace({ - reader: sourceAdapter - }); - - return Promise.all([ - sourceAdapter.write(resource), - workspace.write(debugResource) - ]).then(() => { - return createDebugFiles({ - workspace, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return workspace.byPath("/test1-dbg.js").then((resource) => { - if (!resource) { - t.fail("Could not find the existing /test1-dbg.js"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - t.deepEqual(buffer.toString(), contentDebug, "Content of /test1-dbg.js is correct"); - }); - }); -}); - -test("integration: add '-dbg' suffix only to files and not to the folders in the path", (t) => { - const sourceAdapter = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const content = "console.log('Hello World');"; - const resources = [ - resourceFactory.createResource({ - path: "/someFolder/test.js/test.js", - string: content - }), - resourceFactory.createResource({ - path: "/someFolder/test.view.js/test.view.js", - string: content - }), - resourceFactory.createResource({ - path: "/someFolder/test.fragment.js/test.fragment.js", - string: content - }), - resourceFactory.createResource({ - path: "/someFolder/test.controller.js/test.controller.js", - string: content - }), - resourceFactory.createResource({ - path: "/someFolder/test.designtime.js/test.designtime.js", - string: content - }), - resourceFactory.createResource({ - path: "/someFolder/test.support.js/test.support.js", - string: content - }) - ]; - - return Promise.all(resources.map((resource) => { - return sourceAdapter.write(resource); - })).then(() => { - return createDebugFiles({ - workspace: sourceAdapter, - options: { - pattern: "/**/*.js" - } - }).then(() => { - return Promise.all([ - sourceAdapter.byPath("/someFolder/test.js/test-dbg.js"), - sourceAdapter.byPath("/someFolder/test.view.js/test-dbg.view.js"), - sourceAdapter.byPath("/someFolder/test.fragment.js/test-dbg.fragment.js"), - sourceAdapter.byPath("/someFolder/test.controller.js/test-dbg.controller.js"), - sourceAdapter.byPath("/someFolder/test.designtime.js/test-dbg.designtime.js"), - sourceAdapter.byPath("/someFolder/test.support.js/test-dbg.support.js"), - ]).then((resources) => { - if (!resources || resources.length !== 6) { - t.fail("Could not find all created debug files in target locator"); - } else { - return Promise.all(resources.map((resource) => { - return resource.getBuffer(); - })); - } - }); - }).then((buffers) => { - t.deepEqual(buffers[0].toString(), content, - "Content of '/someFolder/test.js/test-dbg.js' is correct" - ); - t.deepEqual(buffers[1].toString(), content, - "Content of '/someFolder/test.view.js/test-dbg.view.js' is correct" - ); - t.deepEqual(buffers[2].toString(), content, - "Content of '/someFolder/test.fragment.js/test-dbg.fragment.js' is correct" - ); - t.deepEqual(buffers[3].toString(), content, - "Content of '/someFolder/test.controller.js/test-dbg.controller.js' is correct" - ); - t.deepEqual(buffers[4].toString(), content, - "Content of '/someFolder/test.designtime.js/test-dbg.designtime.js' is correct" - ); - t.deepEqual(buffers[5].toString(), content, - "Content of '/someFolder/test.support.js/test-dbg.support.js' is correct" - ); - }); - }); -}); diff --git a/test/lib/tasks/minify.js b/test/lib/tasks/minify.js new file mode 100644 index 000000000..9517de151 --- /dev/null +++ b/test/lib/tasks/minify.js @@ -0,0 +1,77 @@ +const test = require("ava"); +const sinon = require("sinon"); + +const minify = require("../../../lib/tasks/minify"); +const ui5Fs = require("@ui5/fs"); +const resourceFactory = ui5Fs.resourceFactory; +const DuplexCollection = ui5Fs.DuplexCollection; + +test.afterEach.always((t) => { + sinon.restore(); +}); + +test("integration: minify", async (t) => { + const taskUtil = { + setTag: sinon.stub(), + STANDARD_TAGS: { + HasDebugVariant: "1️⃣", + IsDebugVariant: "2️⃣" + } + }; + const reader = resourceFactory.createAdapter({ + virBasePath: "/" + }); + const writer = resourceFactory.createAdapter({ + virBasePath: "/" + }); + const duplexCollection = new DuplexCollection({reader: reader, writer: writer}); + const content = ` +function test(paramA) { + var variableA = paramA; + console.log(variableA); +} +test();`; + const testResource = resourceFactory.createResource({ + path: "/test.js", + string: content + }); + await reader.write(testResource); + + await minify({ + workspace: duplexCollection, + taskUtil, + options: { + pattern: "/test.js" + } + }); + + const expected = `function test(t){var o=t;console.log(o)}test(); +//# sourceMappingURL=test.js.map`; + const res = await writer.byPath("/test.js"); + if (!res) { + t.fail("Could not find /test.js in target locator"); + } + t.deepEqual(await res.getString(), expected, "Correct file content"); + + const resDbg = await writer.byPath("/test-dbg.js"); + if (!resDbg) { + t.fail("Could not find /test-dbg.js in target locator"); + } + t.deepEqual(await resDbg.getString(), content, "Correct debug-file content"); + + const expectedSourceMap = + `{"version":3,"sources":["test-dbg.js"],"names":["test","paramA","variableA","console","log"],` + + `"mappings":"AACA,SAASA,KAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"}`; + + const resSourceMap = await writer.byPath("/test.js.map"); + if (!resSourceMap) { + t.fail("Could not find /test-dbg.js.map in target locator"); + } + t.deepEqual(await resSourceMap.getString(), expectedSourceMap, "Correct source map content"); + + t.is(taskUtil.setTag.callCount, 2, "taskUtil.setTag was called twice"); + t.deepEqual(taskUtil.setTag.getCall(0).args, [res, "1️⃣"], "First taskUtil.setTag call with expected arguments"); + t.deepEqual(taskUtil.setTag.getCall(1).args, [resDbg, "2️⃣"], + "Second taskUtil.setTag call with expected arguments"); +}); + diff --git a/test/lib/tasks/taskRepository.js b/test/lib/tasks/taskRepository.js index 720ab5518..7c1ce4323 100644 --- a/test/lib/tasks/taskRepository.js +++ b/test/lib/tasks/taskRepository.js @@ -24,6 +24,24 @@ test("Unknown task retrieval", (t) => { t.deepEqual(error.message, "taskRepository: Unknown Task not-existing", "Correct exception"); }); +test("Removed task retrieval", (t) => { + const error = t.throws(() => { + taskRepository.getTask("createDebugFiles"); + }); + t.deepEqual(error.message, + `Standard task createDebugFiles has been removed in UI5 Tooling 3.0. ` + + `Please see the migration guide at https://sap.github.io/ui5-tooling/updates/migrate-v3/`, + "Correct exception"); + + const error2 = t.throws(() => { + taskRepository.getTask("uglify"); + }); + t.deepEqual(error2.message, + `Standard task uglify has been removed in UI5 Tooling 3.0. ` + + `Please see the migration guide at https://sap.github.io/ui5-tooling/updates/migrate-v3/`, + "Correct exception"); +}); + test("Duplicate task", (t) => { const myTask = {}; taskRepository.addTask("myOtherTask", myTask); diff --git a/test/lib/tasks/uglify.js b/test/lib/tasks/uglify.js deleted file mode 100644 index 509dc350a..000000000 --- a/test/lib/tasks/uglify.js +++ /dev/null @@ -1,219 +0,0 @@ -const test = require("ava"); - -const uglify = require("../../../lib/tasks/uglify"); -const ui5Fs = require("@ui5/fs"); -const resourceFactory = ui5Fs.resourceFactory; -const DuplexCollection = ui5Fs.DuplexCollection; - -test("integration: uglify", (t) => { - const reader = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const writer = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const duplexCollection = new DuplexCollection({reader: reader, writer: writer}); - const content = ` -function test(paramA) { - var variableA = paramA; - console.log(variableA); -} -test();`; - const testResource = resourceFactory.createResource({ - path: "/test.js", - string: content - }); - const expected = "function test(t){var o=t;console.log(o)}test();"; - - return reader.write(testResource) - .then(() => { - return reader.byPath("/test.js"); - }).then(() => { - return uglify({ - workspace: duplexCollection, - options: { - pattern: "/test.js" - } - }); - }).then(() => { - return writer.byPath("/test.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test.js in target locator"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - return t.deepEqual(buffer.toString(), expected, "Correct content"); - }); -}); - -test("integration: uglify copyright", (t) => { - const reader = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const writer = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const duplexCollection = new DuplexCollection({reader: reader, writer: writer}); - const content = ` -/* - * Copyright jQuery Foundation and other contributors - */ -function test(paramA) { - var variableA = paramA; - console.log(variableA); -} -test();`; - const testResource = resourceFactory.createResource({ - path: "/test.js", - string: content - }); - const expected = `/* - * Copyright jQuery Foundation and other contributors - */ -function test(t){var o=t;console.log(o)}test();`; - - return reader.write(testResource) - .then(() => { - return reader.byPath("/test.js"); - }).then(() => { - return uglify({ - workspace: duplexCollection, - options: { - pattern: "/test.js" - } - }); - }).then(() => { - return writer.byPath("/test.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test.js in target locator"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - return t.deepEqual(buffer.toString(), expected, "Correct content"); - }); -}); - -test("integration: uglify raw module (@ui5-bundle-raw-include)", (t) => { - const reader = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const writer = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const duplexCollection = new DuplexCollection({reader: reader, writer: writer}); - const content = ` -//@ui5-bundle-raw-include sap/ui/my/module.js -function test(paramA) { - var variableA = paramA; - console.log(variableA); -} -test();`; - const testResource = resourceFactory.createResource({ - path: "/test.js", - string: content - }); - const expected = `//@ui5-bundle-raw-include sap/ui/my/module.js -function test(t){var o=t;console.log(o)}test();`; - - return reader.write(testResource) - .then(() => { - return reader.byPath("/test.js"); - }).then(() => { - return uglify({ - workspace: duplexCollection, - options: { - pattern: "/test.js" - } - }); - }).then(() => { - return writer.byPath("/test.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test.js in target locator"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - return t.deepEqual(buffer.toString(), expected, "Correct content"); - }); -}); - -test("integration: uglify raw module (@ui5-bundle)", (t) => { - const reader = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const writer = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const duplexCollection = new DuplexCollection({reader: reader, writer: writer}); - const content = ` -//@ui5-bundle sap/ui/my/module.js -function test(paramA) { - var variableA = paramA; - console.log(variableA); -} -test();`; - const testResource = resourceFactory.createResource({ - path: "/test.js", - string: content - }); - const expected = `//@ui5-bundle sap/ui/my/module.js -function test(t){var o=t;console.log(o)}test();`; - - return reader.write(testResource) - .then(() => { - return reader.byPath("/test.js"); - }).then(() => { - return uglify({ - workspace: duplexCollection, - options: { - pattern: "/test.js" - } - }); - }).then(() => { - return writer.byPath("/test.js").then((resource) => { - if (!resource) { - t.fail("Could not find /test.js in target locator"); - } else { - return resource.getBuffer(); - } - }); - }).then((buffer) => { - return t.deepEqual(buffer.toString(), expected, "Correct content"); - }); -}); - -test("integration: uglify error handling", async (t) => { - const reader = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const writer = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const duplexCollection = new DuplexCollection({reader: reader, writer: writer}); - const content = ` -this code can't be parsed!`; - const testResource = resourceFactory.createResource({ - path: "/test.js", - string: content - }); - - await reader.write(testResource); - - const error = await t.throwsAsync(uglify({ - workspace: duplexCollection, - options: { - pattern: "/test.js" - } - })); - - t.regex(error.message, /Uglification failed with error/, "Error should contain expected message"); - t.regex(error.message, /test\.js/, "Error should contain filename"); - t.regex(error.message, /col/, "Error should contain col"); - t.regex(error.message, /pos/, "Error should contain pos"); - t.regex(error.message, /line/, "Error should contain line"); -}); diff --git a/test/lib/types/AbstractBuilder.js b/test/lib/types/AbstractBuilder.js index 430036784..65033e58f 100644 --- a/test/lib/types/AbstractBuilder.js +++ b/test/lib/types/AbstractBuilder.js @@ -159,14 +159,14 @@ test("Instantiation with custom task and unknown beforeTask", (t) => { const project = clone(applicationBTree); project.builder = { customTasks: [{ - name: "uglify", + name: "minify", beforeTask: "someTask" }] }; const error = t.throws(() => { new CustomBuilder({project}); }); - t.deepEqual(error.message, "Could not find task someTask, referenced by custom task uglify, " + + t.deepEqual(error.message, "Could not find task someTask, referenced by custom task minify, " + "to be scheduled for project application.b", "Correct exception thrown"); }); diff --git a/test/lib/types/application/ApplicationBuilder.js b/test/lib/types/application/ApplicationBuilder.js index b37cb222f..4bf00ac38 100644 --- a/test/lib/types/application/ApplicationBuilder.js +++ b/test/lib/types/application/ApplicationBuilder.js @@ -62,12 +62,11 @@ test("Instantiation", (t) => { "replaceVersion", "generateFlexChangesBundle", "generateManifestBundle", + "minify", "generateComponentPreload", "generateStandaloneAppBundle", "transformBootstrapHtml", "generateBundle", - "createDebugFiles", - "uglify", "generateVersionInfo", "generateCachebusterInfo", "generateApiIndex", @@ -86,12 +85,11 @@ test("Instantiation without component preload project configuration", (t) => { "replaceVersion", "generateFlexChangesBundle", "generateManifestBundle", + "minify", "generateComponentPreload", "generateStandaloneAppBundle", "transformBootstrapHtml", "generateBundle", - "createDebugFiles", - "uglify", "generateVersionInfo", "generateCachebusterInfo", "generateApiIndex", @@ -110,11 +108,10 @@ test("Instantiation without project namespace", (t) => { "replaceCopyright", "replaceVersion", "generateFlexChangesBundle", + "minify", "generateStandaloneAppBundle", "transformBootstrapHtml", "generateBundle", - "createDebugFiles", - "uglify", "generateVersionInfo", "generateApiIndex", "generateResourcesJson" @@ -124,25 +121,24 @@ test("Instantiation without project namespace", (t) => { test("Instantiation with custom tasks", (t) => { const project = clone(applicationBTree); project.builder.customTasks = [ - {name: "replaceVersion", afterTask: "uglify"}, - {name: "uglify", beforeTask: "replaceVersion"} + {name: "replaceVersion", afterTask: "minify"}, + {name: "minify", beforeTask: "replaceVersion"} ]; const appBuilder = new ApplicationBuilder({parentLogger, project}); t.truthy(appBuilder); t.deepEqual(appBuilder.taskExecutionOrder, [ "escapeNonAsciiCharacters", "replaceCopyright", - "uglify--1", + "minify--1", "replaceVersion", "generateFlexChangesBundle", "generateManifestBundle", + "minify", + "replaceVersion--1", "generateComponentPreload", "generateStandaloneAppBundle", "transformBootstrapHtml", "generateBundle", - "createDebugFiles", - "uglify", - "replaceVersion--1", "generateVersionInfo", "generateCachebusterInfo", "generateApiIndex", diff --git a/test/lib/types/library/LibraryBuilder.js b/test/lib/types/library/LibraryBuilder.js index a6b483b82..4afcbbac7 100644 --- a/test/lib/types/library/LibraryBuilder.js +++ b/test/lib/types/library/LibraryBuilder.js @@ -20,13 +20,12 @@ test("Instantiation", (t) => { "replaceBuildtime", "generateJsdoc", "executeJsdocSdkTransformation", + "minify", "generateLibraryManifest", "generateManifestBundle", "generateLibraryPreload", "buildThemes", "generateThemeDesignerResources", - "createDebugFiles", - "uglify", "generateResourcesJson" ], "LibraryBuilder is instantiated with standard tasks"); }); From 04072a26978db57cb9ceb9f3428ea6ee9a23ecd8 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Mon, 17 Jan 2022 10:45:19 +0000 Subject: [PATCH 13/74] In-range update of npm dependencies --- package-lock.json | 1147 ++++++++++++++++++--------------------------- package.json | 8 +- 2 files changed, 465 insertions(+), 690 deletions(-) diff --git a/package-lock.json b/package-lock.json index 402398ea9..e5f1f0bcb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,35 +5,35 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { - "@babel/highlight": "^7.16.0" + "@babel/highlight": "^7.16.7" } }, "@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", + "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", "dev": true }, "@babel/core": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz", - "integrity": "sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helpers": "^7.16.5", - "@babel/parser": "^7.16.5", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz", + "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.7", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -57,12 +57,12 @@ } }, "@babel/generator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz", - "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", "dev": true, "requires": { - "@babel/types": "^7.16.0", + "@babel/types": "^7.16.8", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -76,13 +76,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", "dev": true, "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" }, @@ -96,116 +96,116 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz", - "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-transforms": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz", - "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.16.7" } }, "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true }, "@babel/helpers": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz", - "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", + "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", "dev": true, "requires": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", + "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.15.7", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -269,46 +269,46 @@ } }, "@babel/parser": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.5.tgz", - "integrity": "sha512-+Ce7T5iPNWzfu9C1aB5tN3Lyafs5xb3Ic7vBWyZL2KXT3QSdD1dD3CvgOzPmQKoNNRt6uauc0XwNJTQtXC2/Mw==" + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", + "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==" }, "@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/traverse": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz", - "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.5", - "@babel/types": "^7.16.0", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", + "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.16.8", + "@babel/types": "^7.16.8", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.15.7", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, @@ -330,14 +330,14 @@ } }, "@es-joy/jsdoccomment": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.13.0.tgz", - "integrity": "sha512-APVqbVPGOprb4BmjEnwbSzV+V2e/6DVIUnZG3zdW5uWXWkN0DKMCpiIy2TdBauoANKYO7RQpO8cTjIYNVSKwUA==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.17.0.tgz", + "integrity": "sha512-B8DIIWE194KyQFPojUs+THa2XX+1vulwTBjirw6GqcxjtNE60Rreex26svBnV9SNLTuz92ctZx5XQE1H7yOxgA==", "dev": true, "requires": { "comment-parser": "1.3.0", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "2.0.0" + "jsdoc-type-pratt-parser": "~2.2.1" } }, "@eslint/eslintrc": { @@ -527,9 +527,9 @@ "dev": true }, "@types/node": { - "version": "16.11.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz", - "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==", + "version": "17.0.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.9.tgz", + "integrity": "sha512-5dNBXu/FOER+EXnyah7rn8xlNrfMOQb/qXnw4NQgLkCygKBKhdmF/CA5oXVOKZLBEahw8s2WP9LxIcN/oDDRgQ==", "dev": true, "optional": true }, @@ -580,39 +580,39 @@ } }, "@vue/compiler-core": { - "version": "3.2.26", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz", - "integrity": "sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==", + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.27.tgz", + "integrity": "sha512-JyxAglSM/pb9paG5ZNuKrf5IUpzLzQA3khjWGF9oESELCLQlt6O3YyPMR2A69wIpYWrf5mScZ8YY8TJKOI/1kQ==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.26", + "@vue/shared": "3.2.27", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } }, "@vue/compiler-dom": { - "version": "3.2.26", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.26.tgz", - "integrity": "sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==", + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.27.tgz", + "integrity": "sha512-NyQ7nEbopUBPUMHM4c3FPCbFbnQwptoPjW5Y5qfJ7hfiCNhOuhQsDNqi5JYKBxfpxiFNwjcN9F8t1AsnLrDloQ==", "dev": true, "requires": { - "@vue/compiler-core": "3.2.26", - "@vue/shared": "3.2.26" + "@vue/compiler-core": "3.2.27", + "@vue/shared": "3.2.27" } }, "@vue/compiler-sfc": { - "version": "3.2.26", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.26.tgz", - "integrity": "sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==", + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.27.tgz", + "integrity": "sha512-WyecUhLN5UAQAr2QlmG2nA56OEnhZJaBnSw0G1tazb9rwDuK0V9tnbIXbQgmQlx+x4sJxgg61yWGcIXfilTl3A==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.26", - "@vue/compiler-dom": "3.2.26", - "@vue/compiler-ssr": "3.2.26", - "@vue/reactivity-transform": "3.2.26", - "@vue/shared": "3.2.26", + "@vue/compiler-core": "3.2.27", + "@vue/compiler-dom": "3.2.27", + "@vue/compiler-ssr": "3.2.27", + "@vue/reactivity-transform": "3.2.27", + "@vue/shared": "3.2.27", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -620,32 +620,32 @@ } }, "@vue/compiler-ssr": { - "version": "3.2.26", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.26.tgz", - "integrity": "sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==", + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.27.tgz", + "integrity": "sha512-+l09t319iV7HVSrXfBw9OLwMZIPOFTXmHjZ61Bc5ZcwKqOYAR4uTurKpoXAfcSc5qs/q6WdE9jY3nrP0LUEMQQ==", "dev": true, "requires": { - "@vue/compiler-dom": "3.2.26", - "@vue/shared": "3.2.26" + "@vue/compiler-dom": "3.2.27", + "@vue/shared": "3.2.27" } }, "@vue/reactivity-transform": { - "version": "3.2.26", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.26.tgz", - "integrity": "sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ==", + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.27.tgz", + "integrity": "sha512-67//61ObGxGnVrPhjygocb24eYUh+TFMhkm7szm8v5XdKXjkNl7qgIOflwGvUnwuIRJmr9nZ7+PvY0fL+H2upA==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.26", - "@vue/shared": "3.2.26", + "@vue/compiler-core": "3.2.27", + "@vue/shared": "3.2.27", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "@vue/shared": { - "version": "3.2.26", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz", - "integrity": "sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==", + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.27.tgz", + "integrity": "sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA==", "dev": true }, "acorn": { @@ -693,40 +693,6 @@ "dev": true, "requires": { "string-width": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "ansi-colors": { @@ -736,10 +702,9 @@ "dev": true }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "5.2.0", @@ -784,18 +749,6 @@ "requires": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, "argparse": { @@ -936,25 +889,10 @@ }, "dependencies": { "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } } } }, @@ -993,19 +931,6 @@ "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, "bluebird": { @@ -1040,38 +965,6 @@ "wrap-ansi": "^7.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -1098,9 +991,9 @@ } }, "browserslist": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.0.tgz", - "integrity": "sha512-JGHzm73ei2OnAcobcQ61GXNnN6vDCg5Oz5MayudL+FyzjoLnCzUWnuLtDLMIYw8aXgQzzdCZMVky+fftD5jbtA==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", "dev": true, "requires": { "caniuse-lite": "^1.0.30001286", @@ -1187,9 +1080,9 @@ "dev": true }, "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, "camelcase-keys": { @@ -1212,9 +1105,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001286", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz", - "integrity": "sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ==", + "version": "1.0.30001300", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz", + "integrity": "sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA==", "dev": true }, "catharsis": { @@ -1549,40 +1442,6 @@ "requires": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "cliui": { @@ -1594,40 +1453,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "clone": { @@ -1743,6 +1568,14 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } } }, "convert-to-spaces": { @@ -1820,15 +1653,15 @@ } }, "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "requires": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" } }, "css-what": { @@ -2001,12 +1834,12 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "depcheck": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/depcheck/-/depcheck-1.4.2.tgz", - "integrity": "sha512-oYaBLRbF5NMkYxc5rltnqtuPAn25Lx5xPBIJXy5oUVBgrEDDtotCoYUfFH8lvcmSWzgk1Ts9H+f4Rk0oWL51LQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/depcheck/-/depcheck-1.4.3.tgz", + "integrity": "sha512-vy8xe1tlLFu7t4jFyoirMmOR7x7N601ubU9Gkifyr9z8rjBFtEdWHDBMqXyk6OkK+94NXutzddVXJuo0JlUQKQ==", "dev": true, "requires": { - "@babel/parser": "^7.12.5", + "@babel/parser": "7.16.4", "@babel/traverse": "^7.12.5", "@vue/compiler-sfc": "^3.0.5", "camelcase": "^6.2.0", @@ -2029,6 +1862,14 @@ "scss-parser": "^1.0.4", "semver": "^7.3.2", "yargs": "^16.1.0" + }, + "dependencies": { + "@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "dev": true + } } }, "deps-regex": { @@ -2121,6 +1962,38 @@ "dev": true, "requires": { "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "duplexer3": { @@ -2130,9 +2003,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.17.tgz", - "integrity": "sha512-zhk1MravPtq/KBhmGB7TLBILmXTgRG9TFSI3qS3DbgyfHzIl72iiTE37r/BHIbPCJJlWIo5rySyxiH4vWhu2ZA==", + "version": "1.4.46", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.46.tgz", + "integrity": "sha512-UtV0xUA/dibCKKP2JMxOpDtXR74zABevuUEH4K0tvduFSIoxRVcYmQsbB51kXsFTX8MmOyWMt8tuZAlmDOqkrQ==", "dev": true }, "emittery": { @@ -2362,12 +2235,6 @@ "@babel/highlight": "^7.10.4" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -2414,15 +2281,6 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -2438,17 +2296,16 @@ "dev": true }, "eslint-plugin-jsdoc": { - "version": "37.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.2.0.tgz", - "integrity": "sha512-ca7s/DD1mMObZQ2Y0n0DO/KnFV+FqCX6ztir8pcSuylg3GGCREIisn36P/0cRySuWW/7Y7MNCuUDqtKdgLPU7Q==", + "version": "37.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.1.tgz", + "integrity": "sha512-Y9UhH9BQD40A9P1NOxj59KrSLZb9qzsqYkLCZv30bNeJ7C9eaumTWhh9beiGqvK7m821Hj1dTsZ5LOaFIUTeTg==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "0.13.0", + "@es-joy/jsdoccomment": "~0.17.0", "comment-parser": "1.3.0", "debug": "^4.3.3", "escape-string-regexp": "^4.0.0", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "^2.0.0", "regextras": "^0.8.0", "semver": "^7.3.5", "spdx-expression-parse": "^3.0.1" @@ -2627,9 +2484,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2804,21 +2661,6 @@ "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.2" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "gensync": { @@ -2903,15 +2745,15 @@ "dev": true }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, @@ -2935,9 +2777,9 @@ } }, "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, "hard-rejection": { "version": "2.1.0", @@ -2961,6 +2803,14 @@ "dev": true, "requires": { "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } } }, "has-flag": { @@ -3034,9 +2884,9 @@ "dev": true }, "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" }, "ignore-by-default": { "version": "2.0.0", @@ -3075,9 +2925,9 @@ "dev": true }, "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -3156,9 +3006,9 @@ } }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { "has": "^1.0.3" @@ -3391,9 +3241,9 @@ } }, "istanbul-reports": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", - "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", + "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -3452,9 +3302,9 @@ } }, "jsdoc-type-pratt-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.0.0.tgz", - "integrity": "sha512-sUuj2j48wxrEpbFjDp1sAesAxPiLT+z0SWVmMafyIINs6Lj5gIPKh3VrkBZu4E/Dv+wHpOot0m6H8zlHQjwqeQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.1.tgz", + "integrity": "sha512-rkbaDZw3IPwd/ZPXob4XqQwVDKN/qeC2Dd7jL8EEGLEHLRmkPJgGAPw6OIIVmnwJrdcDh3vMR83/fc7lR5YpqA==", "dev": true }, "jsesc": { @@ -3952,9 +3802,9 @@ } }, "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", "dev": true }, "natural-compare": { @@ -4082,12 +3932,6 @@ "yargs": "^15.0.2" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4114,12 +3958,6 @@ "wrap-ansi": "^6.2.0" } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", @@ -4129,26 +3967,6 @@ "aggregate-error": "^3.0.0" } }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -4271,23 +4089,6 @@ "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "p-cancelable": { @@ -4481,9 +4282,9 @@ "dev": true }, "peek-readable": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz", - "integrity": "sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz", + "integrity": "sha512-9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==", "dev": true }, "pend": { @@ -4499,9 +4300,9 @@ "dev": true }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "4.0.1", @@ -4772,17 +4573,13 @@ } }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "readable-web-to-node-stream": { @@ -4889,6 +4686,33 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } } } }, @@ -4925,13 +4749,14 @@ } }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { @@ -4990,14 +4815,14 @@ } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "sass": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.45.0.tgz", - "integrity": "sha512-ONy5bjppoohtNkFJRqdz1gscXamMzN3wQy1YH9qO2FiNpgjLhpz/IPRGg0PpCjyz/pWfCOaNEaiEGCcjOFAjqw==", + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.48.0.tgz", + "integrity": "sha512-hQi5g4DcfjcipotoHZ80l7GNJHGqQS5LwMBjVYB/TaT0vcSSpbgM8Ad7cgfsB2M0MinbkEQQPO9+sjjSiwxqmw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -5088,9 +4913,9 @@ "dev": true }, "sift": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/sift/-/sift-15.1.0.tgz", - "integrity": "sha512-AYm2xyUOglfMUyBiwtwIqlsjx33C4BS2QaVwe1PwAxoSa8RI5LKCSnBgTEhPvR8WNGjzVNUFUCNKCPJwaRpCDQ==", + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/sift/-/sift-15.1.3.tgz", + "integrity": "sha512-/JZRQtE1pe4t93jKvAKDCgpOSfFX/tFNoYn5hUB4nuVyihGFp5pS5mQu6p7XOo0oQvj+jrgVyIteAI6lO+EE8A==", "dev": true }, "signal-exit": { @@ -5136,12 +4961,6 @@ "requires": { "color-convert": "^2.0.1" } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true } } }, @@ -5248,38 +5067,22 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { @@ -5323,23 +5126,6 @@ "js-yaml": "^3.14.0", "serialize-error": "^7.0.1", "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "supports-color": { @@ -5351,10 +5137,16 @@ "has-flag": "^4.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "table": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", - "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -5365,9 +5157,9 @@ }, "dependencies": { "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -5376,12 +5168,6 @@ "uri-js": "^4.2.2" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -5391,12 +5177,6 @@ "color-convert": "^2.0.1" } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -5413,26 +5193,6 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } } } }, @@ -5453,6 +5213,12 @@ "tap-parser": "^3.0.3" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", @@ -5492,6 +5258,15 @@ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", @@ -5512,6 +5287,41 @@ "events-to-array": "^1.0.1", "js-yaml": "^3.2.7", "readable-stream": "^2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "optional": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "tap-xunit": { @@ -5528,6 +5338,39 @@ "xtend": "~4.0.0" }, "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "optional": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "tap-parser": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-1.2.2.tgz", @@ -5620,6 +5463,38 @@ "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "time-zone": { @@ -5724,9 +5599,9 @@ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" }, "underscore": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", - "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" }, "unique-string": { "version": "2.0.0", @@ -5849,40 +5724,6 @@ "dev": true, "requires": { "string-width": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "wolfy87-eventemitter": { @@ -5908,12 +5749,6 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -5922,32 +5757,6 @@ "requires": { "color-convert": "^2.0.1" } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } } } }, @@ -6029,40 +5838,6 @@ "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "yargs-parser": { diff --git a/package.json b/package.json index 2423049ad..adef87de0 100644 --- a/package.json +++ b/package.json @@ -110,8 +110,8 @@ "escape-unicode": "^0.2.0", "escope": "^3.6.0", "espree": "^6.2.1", - "globby": "^11.0.4", - "graceful-fs": "^4.2.8", + "globby": "^11.1.0", + "graceful-fs": "^4.2.9", "jsdoc": "^3.6.7", "less-openui5": "^0.11.2", "make-dir": "^3.1.0", @@ -130,11 +130,11 @@ "chai-fs": "^2.0.0", "chokidar-cli": "^3.0.0", "cross-env": "^7.0.3", - "depcheck": "^1.4.2", + "depcheck": "^1.4.3", "docdash": "^1.2.0", "eslint": "^7.32.0", "eslint-config-google": "^0.14.0", - "eslint-plugin-jsdoc": "^37.2.0", + "eslint-plugin-jsdoc": "^37.6.1", "extract-zip": "^2.0.1", "mock-require": "^3.0.3", "nyc": "^15.1.0", From 9744c15be7e1320f0e2636cb481525375ea26fd5 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Wed, 19 Jan 2022 15:06:51 +0000 Subject: [PATCH 14/74] In-range update of npm dependencies --- package-lock.json | 8563 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 8210 insertions(+), 353 deletions(-) diff --git a/package-lock.json b/package-lock.json index e5f1f0bcb..6548b878d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,7786 @@ { "name": "@ui5/builder", "version": "3.0.0-alpha.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "@ui5/builder", + "version": "3.0.0-alpha.0", + "license": "Apache-2.0", + "dependencies": { + "@ui5/fs": "^3.0.0-alpha.1", + "@ui5/logger": "^3.0.1-alpha.0", + "cheerio": "1.0.0-rc.9", + "escape-unicode": "^0.2.0", + "escope": "^3.6.0", + "espree": "^6.2.1", + "globby": "^11.1.0", + "graceful-fs": "^4.2.9", + "jsdoc": "^3.6.7", + "less-openui5": "^0.11.2", + "make-dir": "^3.1.0", + "pretty-data": "^0.40.0", + "pretty-hrtime": "^1.0.3", + "replacestream": "^4.0.3", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "terser": "^5.10.0", + "xml2js": "^0.4.23", + "yazl": "^2.5.1" + }, + "devDependencies": { + "ava": "^3.15.0", + "chai": "^4.3.4", + "chai-fs": "^2.0.0", + "chokidar-cli": "^3.0.0", + "cross-env": "^7.0.3", + "depcheck": "^1.4.3", + "docdash": "^1.2.0", + "eslint": "^7.32.0", + "eslint-config-google": "^0.14.0", + "eslint-plugin-jsdoc": "^37.6.1", + "extract-zip": "^2.0.1", + "mock-require": "^3.0.3", + "nyc": "^15.1.0", + "open-cli": "^6.0.1", + "recursive-readdir": "^2.1.1", + "sinon": "^11.1.2", + "tap-nyan": "^1.1.0", + "tap-xunit": "^2.4.1" + }, + "engines": { + "node": ">= 10", + "npm": ">= 5" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", + "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz", + "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.7", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", + "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.8", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", + "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", + "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/parser": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", + "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", + "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.16.8", + "@babel/types": "^7.16.8", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/parser": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", + "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@concordance/react": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@concordance/react/-/react-2.0.0.tgz", + "integrity": "sha512-huLSkUuM2/P+U0uy2WwlKuixMsTODD8p4JVQBI4VKeopkiN0C7M3N9XYVawb4M+4spN5RrO/eLhk7KoQX6nsfA==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1" + }, + "engines": { + "node": ">=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0" + } + }, + "node_modules/@concordance/react/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.17.0.tgz", + "integrity": "sha512-B8DIIWE194KyQFPojUs+THa2XX+1vulwTBjirw6GqcxjtNE60Rreex26svBnV9SNLTuz92ctZx5XQE1H7yOxgA==", + "dev": true, + "dependencies": { + "comment-parser": "1.3.0", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~2.2.1" + }, + "engines": { + "node": "^12 || ^14 || ^16 || ^17" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", + "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", + "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==", + "dev": true, + "optional": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", + "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ui5/fs": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.1.tgz", + "integrity": "sha512-j+8cJQpuM0aHLxzIzDNe7Kwr+X2n6tYeBptz/MSbvONB9u4dKVenaMpreR/Q4QUFi56UKEC0ztkpjxsU/+G5Cw==", + "dependencies": { + "@ui5/logger": "^3.0.1-alpha.0", + "clone": "^2.1.0", + "globby": "^11.0.4", + "graceful-fs": "^4.2.8", + "make-dir": "^3.1.0", + "micromatch": "^4.0.4", + "minimatch": "^3.0.3", + "pretty-hrtime": "^1.0.3", + "random-int": "^2.0.1" + }, + "engines": { + "node": ">= 10", + "npm": ">= 5" + } + }, + "node_modules/@ui5/logger": { + "version": "3.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.1-alpha.0.tgz", + "integrity": "sha512-6UQluslp7N/h9gWsMtyPq3OclE1wiAckkUbIVJZ1deRh/8ARzIKaBRg5jMky+15wQjSsYcWEr7xecBwrtPZQzw==", + "dependencies": { + "npmlog": "^5.0.1" + }, + "engines": { + "node": ">= 10", + "npm": ">= 5" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.27.tgz", + "integrity": "sha512-JyxAglSM/pb9paG5ZNuKrf5IUpzLzQA3khjWGF9oESELCLQlt6O3YyPMR2A69wIpYWrf5mScZ8YY8TJKOI/1kQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.27", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.27.tgz", + "integrity": "sha512-NyQ7nEbopUBPUMHM4c3FPCbFbnQwptoPjW5Y5qfJ7hfiCNhOuhQsDNqi5JYKBxfpxiFNwjcN9F8t1AsnLrDloQ==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.2.27", + "@vue/shared": "3.2.27" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.27.tgz", + "integrity": "sha512-WyecUhLN5UAQAr2QlmG2nA56OEnhZJaBnSw0G1tazb9rwDuK0V9tnbIXbQgmQlx+x4sJxgg61yWGcIXfilTl3A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.27", + "@vue/compiler-dom": "3.2.27", + "@vue/compiler-ssr": "3.2.27", + "@vue/reactivity-transform": "3.2.27", + "@vue/shared": "3.2.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.27.tgz", + "integrity": "sha512-+l09t319iV7HVSrXfBw9OLwMZIPOFTXmHjZ61Bc5ZcwKqOYAR4uTurKpoXAfcSc5qs/q6WdE9jY3nrP0LUEMQQ==", + "dev": true, + "dependencies": { + "@vue/compiler-dom": "3.2.27", + "@vue/shared": "3.2.27" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.27.tgz", + "integrity": "sha512-67//61ObGxGnVrPhjygocb24eYUh+TFMhkm7szm8v5XdKXjkNl7qgIOflwGvUnwuIRJmr9nZ7+PvY0fL+H2upA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.27", + "@vue/shared": "3.2.27", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.27", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.27.tgz", + "integrity": "sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-events": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/array-events/-/array-events-0.2.0.tgz", + "integrity": "sha1-/0KsU+ZvSF1viDI0wyJSvCKGEw4=", + "dev": true, + "dependencies": { + "async-arrays": "*", + "extended-emitter": "*" + }, + "engines": { + "node": "*" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/arrgv": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", + "integrity": "sha512-a4eg4yhp7mmruZDQFqVMlxNRFGi/i1r87pt8SDHy0/I8PqSXoUTlWZRdAZo0VXgvEARcujbtTk8kiZRi1uDGRw==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async-arrays": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-arrays/-/async-arrays-1.0.1.tgz", + "integrity": "sha1-NHrytw8qeldnotVnnMQrvxwiD9k=", + "dev": true, + "dependencies": { + "sift": "*" + }, + "engines": { + "node": "*" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/ava": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/ava/-/ava-3.15.0.tgz", + "integrity": "sha512-HGAnk1SHPk4Sx6plFAUkzV/XC1j9+iQhOzt4vBly18/yo0AV8Oytx7mtJd/CR8igCJ5p160N/Oo/cNJi2uSeWA==", + "dev": true, + "dependencies": { + "@concordance/react": "^2.0.0", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "ansi-styles": "^5.0.0", + "arrgv": "^1.0.2", + "arrify": "^2.0.1", + "callsites": "^3.1.0", + "chalk": "^4.1.0", + "chokidar": "^3.4.3", + "chunkd": "^2.0.1", + "ci-info": "^2.0.0", + "ci-parallel-vars": "^1.0.1", + "clean-yaml-object": "^0.1.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "code-excerpt": "^3.0.0", + "common-path-prefix": "^3.0.0", + "concordance": "^5.0.1", + "convert-source-map": "^1.7.0", + "currently-unhandled": "^0.4.1", + "debug": "^4.3.1", + "del": "^6.0.0", + "emittery": "^0.8.0", + "equal-length": "^1.0.0", + "figures": "^3.2.0", + "globby": "^11.0.1", + "ignore-by-default": "^2.0.0", + "import-local": "^3.0.2", + "indent-string": "^4.0.0", + "is-error": "^2.2.2", + "is-plain-object": "^5.0.0", + "is-promise": "^4.0.0", + "lodash": "^4.17.20", + "matcher": "^3.0.0", + "md5-hex": "^3.0.1", + "mem": "^8.0.0", + "ms": "^2.1.3", + "ora": "^5.2.0", + "p-event": "^4.2.0", + "p-map": "^4.0.0", + "picomatch": "^2.2.2", + "pkg-conf": "^3.1.0", + "plur": "^4.0.0", + "pretty-ms": "^7.0.1", + "read-pkg": "^5.2.0", + "resolve-cwd": "^3.0.0", + "slash": "^3.0.0", + "source-map-support": "^0.5.19", + "stack-utils": "^2.0.3", + "strip-ansi": "^6.0.0", + "supertap": "^2.0.0", + "temp-dir": "^2.0.0", + "trim-off-newlines": "^1.0.1", + "update-notifier": "^5.0.1", + "write-file-atomic": "^3.0.3", + "yargs": "^16.2.0" + }, + "bin": { + "ava": "cli.js" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0 <15 || >=15" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bit-mask": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bit-mask/-/bit-mask-1.0.2.tgz", + "integrity": "sha512-UGtq08LSiazxL4zVmBzrhdCWnT4RWx3JhhD/3crhfv8xxjnVHxf/WoVjEstjSUaZeZRP7kZrWNqup1VvUClCaQ==", + "dev": true, + "dependencies": { + "array-events": "^0.2.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/blueimp-md5": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", + "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", + "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001300", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz", + "integrity": "sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chai-fs/-/chai-fs-2.0.0.tgz", + "integrity": "sha1-Na4Dn7uwcQ9RIqrhf6uh6PQRB8Y=", + "dev": true, + "dependencies": { + "bit-mask": "^1.0.1", + "readdir-enhanced": "^1.4.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "chai": ">= 1.6.1 < 5" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.9", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.9.tgz", + "integrity": "sha512-QF6XVdrLONO6DXRF5iaolY+odmhj2CLj+xzNod7INPWMi/x9X4SOylH0S/vaPpX+AUU6t04s34SQNh7DbkuCng==", + "dependencies": { + "cheerio-select": "^1.4.0", + "dom-serializer": "^1.3.1", + "domhandler": "^4.2.0", + "htmlparser2": "^6.1.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz", + "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==", + "dependencies": { + "css-select": "^4.1.3", + "css-what": "^5.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0", + "domutils": "^2.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar-cli": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chokidar-cli/-/chokidar-cli-3.0.0.tgz", + "integrity": "sha512-xVW+Qeh7z15uZRxHOkP93Ux8A0xbPzwK4GaqD8dQOYc34TlkqUhVSS59fK36DOp5WdJlrRzlYSy02Ht99FjZqQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "yargs": "^13.3.0" + }, + "bin": { + "chokidar": "index.js" + }, + "engines": { + "node": ">= 8.10.0" + } + }, + "node_modules/chokidar-cli/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar-cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar-cli/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar-cli/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/chokidar-cli/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/chokidar-cli/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar-cli/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/chokidar-cli/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar-cli/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar-cli/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar-cli/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar-cli/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar-cli/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar-cli/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar-cli/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/chokidar-cli/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/chokidar-cli/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/chunkd": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chunkd/-/chunkd-2.0.1.tgz", + "integrity": "sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ==", + "dev": true + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/ci-parallel-vars": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ci-parallel-vars/-/ci-parallel-vars-1.0.1.tgz", + "integrity": "sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/code-excerpt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz", + "integrity": "sha512-VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==", + "dev": true, + "dependencies": { + "convert-to-spaces": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/comment-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz", + "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concordance": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/concordance/-/concordance-5.0.4.tgz", + "integrity": "sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==", + "dev": true, + "dependencies": { + "date-time": "^3.1.0", + "esutils": "^2.0.3", + "fast-diff": "^1.2.0", + "js-string-escape": "^1.0.1", + "lodash": "^4.17.15", + "md5-hex": "^3.0.1", + "semver": "^7.3.2", + "well-known-symbols": "^2.0.0" + }, + "engines": { + "node": ">=10.18.0 <11 || >=12.14.0 <13 || >=14" + } + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-to-spaces": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", + "integrity": "sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/date-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", + "integrity": "sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==", + "dev": true, + "dependencies": { + "time-zone": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "node_modules/depcheck": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/depcheck/-/depcheck-1.4.3.tgz", + "integrity": "sha512-vy8xe1tlLFu7t4jFyoirMmOR7x7N601ubU9Gkifyr9z8rjBFtEdWHDBMqXyk6OkK+94NXutzddVXJuo0JlUQKQ==", + "dev": true, + "dependencies": { + "@babel/parser": "7.16.4", + "@babel/traverse": "^7.12.5", + "@vue/compiler-sfc": "^3.0.5", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0", + "debug": "^4.2.0", + "deps-regex": "^0.1.4", + "ignore": "^5.1.8", + "is-core-module": "^2.4.0", + "js-yaml": "^3.14.0", + "json5": "^2.1.3", + "lodash": "^4.17.20", + "minimatch": "^3.0.4", + "multimatch": "^5.0.0", + "please-upgrade-node": "^3.2.0", + "query-ast": "^1.0.3", + "readdirp": "^3.5.0", + "require-package-name": "^2.0.1", + "resolve": "^1.18.1", + "sass": "^1.29.0", + "scss-parser": "^1.0.4", + "semver": "^7.3.2", + "yargs": "^16.1.0" + }, + "bin": { + "depcheck": "bin/depcheck.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/deps-regex": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deps-regex/-/deps-regex-0.1.4.tgz", + "integrity": "sha1-UYZnt2kUYKXn4KNBvnbrfOgJAYQ=", + "dev": true + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/docdash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/docdash/-/docdash-1.2.0.tgz", + "integrity": "sha512-IYZbgYthPTspgqYeciRJNPhSwL51yer7HAwDXhF5p+H7mTDbPvY3PCk/QDjNxdPCpWkaJVFC4t7iCNB/t9E5Kw==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", + "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.48", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.48.tgz", + "integrity": "sha512-RT3SEmpv7XUA+tKXrZGudAWLDpa7f8qmhjcLaM6OD/ERxjQ/zAojT8/Vvo0BSzbArkElFZ1WyZ9FuwAYbkdBNA==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/equal-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz", + "integrity": "sha1-IcoRLUirJLTh5//A5TOdMf38J0w=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "node_modules/es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-set/node_modules/es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-unicode": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/escape-unicode/-/escape-unicode-0.2.0.tgz", + "integrity": "sha512-7jMQuKb8nm0h/9HYLfu4NCLFwoUsd5XO6OZ1z86PbKcMf8zDK1m7nFR0iA2CCShq4TSValaLIveE8T1UBxgALQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dependencies": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-google": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", + "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "37.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.1.tgz", + "integrity": "sha512-Y9UhH9BQD40A9P1NOxj59KrSLZb9qzsqYkLCZv30bNeJ7C9eaumTWhh9beiGqvK7m821Hj1dTsZ5LOaFIUTeTg==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "~0.17.0", + "comment-parser": "1.3.0", + "debug": "^4.3.3", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "regextras": "^0.8.0", + "semver": "^7.3.5", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": "^12 || ^14 || ^16 || ^17" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/eslint/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/eslint/node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/eslint/node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/events-to-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", + "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", + "dev": true + }, + "node_modules/ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "dependencies": { + "type": "^2.5.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + }, + "node_modules/extended-emitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/extended-emitter/-/extended-emitter-1.1.0.tgz", + "integrity": "sha512-TakJS3uz0UJcHTyzX7c+5RoH/DUML2icYgmbfoCjBO8Tc66HaOw9FSECDd2RVnGVACriuSentxLU1HUg54nUbA==", + "dev": true, + "dependencies": { + "sift": "*", + "wolfy87-eventemitter": "*" + }, + "engines": { + "node": "*" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-type": { + "version": "14.7.1", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-14.7.1.tgz", + "integrity": "sha512-sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA==", + "dev": true, + "dependencies": { + "readable-web-to-node-stream": "^2.0.0", + "strtok3": "^6.0.3", + "token-types": "^2.0.0", + "typedarray-to-buffer": "^3.1.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stdin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", + "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-by-default": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-2.0.0.tgz", + "integrity": "sha512-+mQSgMRiFD3L3AOxLYOCxjIq4OnAmo5CIuC+lj5ehCJcPtV++QacEV7FdpzvYxH6DaOySWzQU6RR0lPLy37ckA==", + "dev": true, + "engines": { + "node": ">=10 <11 || >=12 <13 || >=14" + } + }, + "node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/irregular-plurals": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.3.0.tgz", + "integrity": "sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-error": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", + "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", + "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dependencies": { + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsdoc": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.7.tgz", + "integrity": "sha512-sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==", + "dependencies": { + "@babel/parser": "^7.9.4", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.1", + "klaw": "^3.0.0", + "markdown-it": "^10.0.0", + "markdown-it-anchor": "^5.2.7", + "marked": "^2.0.3", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.13.1" + }, + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=8.15.0" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.2.tgz", + "integrity": "sha512-zRokSWcPLSWkoNzsWn9pq7YYSwDhKyEe+cJYT2qaPqLOOJb5sFSi46BPj81vP+e8chvCNdQL9RG86Bi9EI6MDw==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jsdoc/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/less-openui5": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/less-openui5/-/less-openui5-0.11.2.tgz", + "integrity": "sha512-FkAT0JDB3NGroia/hdYInzVzpERINovKEgjeijfYgLK7C4eef8a0midlgdBfTZanv3Gz8zUSjfGYXNWL82jEBA==", + "dependencies": { + "clone": "^2.1.0", + "css": "^3.0.0", + "mime": "^1.6.0" + }, + "engines": { + "node": ">= 10", + "npm": ">= 5" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-it": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", + "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "dependencies": { + "argparse": "^1.0.7", + "entities": "~2.0.0", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-anchor": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", + "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "peerDependencies": { + "markdown-it": "*" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" + }, + "node_modules/marked": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", + "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/md5-hex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-3.0.1.tgz", + "integrity": "sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==", + "dev": true, + "dependencies": { + "blueimp-md5": "^2.10.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, + "node_modules/mem": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "dev": true, + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "node_modules/meow": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", + "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mock-require": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/mock-require/-/mock-require-3.0.3.tgz", + "integrity": "sha512-lLzfLHcyc10MKQnNUCv7dMcoY/2Qxd6wJfbqCcVk3LDb8An4hF6ohk5AztrvgKhJCqj36uyzi/p5se+tvyD+Wg==", + "dev": true, + "dependencies": { + "get-caller-file": "^1.0.2", + "normalize-path": "^2.1.1" + }, + "engines": { + "node": ">=4.3.0" + } + }, + "node_modules/mock-require/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nanoid": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node_modules/nise": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", + "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/nyc/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/nyc/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/nyc/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open-cli": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/open-cli/-/open-cli-6.0.1.tgz", + "integrity": "sha512-A5h8MF3GrT1efn9TiO9LPajDnLtuEiGQT5G8TxWObBlgt1cZJF1YbQo/kNtsD1bJb7HxnT6SaSjzeLq0Rfhygw==", + "dev": true, + "dependencies": { + "file-type": "^14.1.4", + "get-stdin": "^7.0.0", + "meow": "^6.1.0", + "open": "^7.0.3", + "temp-write": "^4.0.0" + }, + "bin": { + "open-cli": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", + "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", + "dev": true, + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/peek-readable": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz", + "integrity": "sha512-9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "dependencies": { + "irregular-plurals": "^3.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-data": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/pretty-data/-/pretty-data-0.40.0.tgz", + "integrity": "sha1-Vyqo6iNGdGerlLa1Jmpv2cj93XI=", + "engines": { + "node": "*" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/query-ast": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/query-ast/-/query-ast-1.0.4.tgz", + "integrity": "sha512-KFJFSvODCBjIH5HbHvITj9EEZKYUU6VX0T5CuB1ayvjUoUaZkKMi6eeby5Tf8DMukyZHlJQOE1+f3vevKUe6eg==", + "dev": true, + "dependencies": { + "invariant": "2.2.4" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/random-int": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/random-int/-/random-int-2.0.1.tgz", + "integrity": "sha512-YALjWK2Rt9EMIv9BF/3mvlzFWQathsvb5UZmN1QmhfIOfcQYXc/UcLzg0ablqesSBpBVLt2Tlwv/eTuBh4LXUQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readable-web-to-node-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-2.0.0.tgz", + "integrity": "sha512-+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA==", + "dev": true + }, + "node_modules/readdir-enhanced": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/readdir-enhanced/-/readdir-enhanced-1.5.2.tgz", + "integrity": "sha1-YUYwSGkKxqRVt1ti+nioj43IXlM=", + "dev": true, + "dependencies": { + "call-me-maybe": "^1.0.1", + "es6-promise": "^4.1.0", + "glob-to-regexp": "^0.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "dev": true, + "dependencies": { + "minimatch": "3.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regextras": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.8.0.tgz", + "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==", + "dev": true, + "engines": { + "node": ">=0.1.14" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/replacestream": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", + "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", + "dependencies": { + "escape-string-regexp": "^1.0.3", + "object-assign": "^4.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/replacestream/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/replacestream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/replacestream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/replacestream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/require-package-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", + "integrity": "sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk=", + "dev": true + }, + "node_modules/requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/resolve": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/sass": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.0.tgz", + "integrity": "sha512-TVwVdNDj6p6b4QymJtNtRS2YtLJ/CqZriGg0eIAbAKMlN8Xy6kbv33FsEZSF7FufFFM705SQviHjjThfaQ4VNw==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/scss-parser": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/scss-parser/-/scss-parser-1.0.5.tgz", + "integrity": "sha512-RZOtvCmCnwkDo7kdcYBi807Y5EoTIxJ34AgEgJNDmOH1jl0/xG0FyYZFbH6Ga3Iwu7q8LSdxJ4C5UkzNXjQxKQ==", + "dev": true, + "dependencies": { + "invariant": "2.2.4" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sift": { + "version": "15.1.3", + "resolved": "https://registry.npmjs.org/sift/-/sift-15.1.3.tgz", + "integrity": "sha512-/JZRQtE1pe4t93jKvAKDCgpOSfFX/tFNoYn5hUB4nuVyihGFp5pS5mQu6p7XOo0oQvj+jrgVyIteAI6lO+EE8A==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + }, + "node_modules/sinon": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz", + "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^7.1.2", + "@sinonjs/samsam": "^6.0.2", + "diff": "^5.0.0", + "nise": "^5.1.0", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/stack-utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strtok3": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", + "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", + "dev": true, + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^4.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/supertap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supertap/-/supertap-2.0.0.tgz", + "integrity": "sha512-jRzcXlCeDYvKoZGA5oRhYyR3jUIYu0enkSxtmAgHRlD7HwrovTpH4bDSi0py9FtuA8si9cW/fKommJHuaoDHJA==", + "dev": true, + "dependencies": { + "arrify": "^2.0.1", + "indent-string": "^4.0.0", + "js-yaml": "^3.14.0", + "serialize-error": "^7.0.1", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/table/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/table/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" + }, + "node_modules/tap-nyan": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tap-nyan/-/tap-nyan-1.1.0.tgz", + "integrity": "sha1-K40TofnKUcGzraDGzNsRd9IGW7A=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "duplexer2": "^0.1.4", + "supports-color": "^3.1.2", + "tap-parser": "^3.0.3" + }, + "bin": { + "tap-nyan": "bin/cmd.js", + "tnyan": "bin/cmd.js" + } + }, + "node_modules/tap-nyan/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tap-nyan/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tap-nyan/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tap-nyan/node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/tap-nyan/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/tap-nyan/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tap-nyan/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tap-nyan/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/tap-parser": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-3.0.5.tgz", + "integrity": "sha1-uUf2ngs+U9S5IBH2zFUuFtrcfsk=", + "dev": true, + "dependencies": { + "events-to-array": "^1.0.1", + "js-yaml": "^3.2.7" + }, + "bin": { + "tap-parser": "bin/cmd.js" + }, + "optionalDependencies": { + "readable-stream": "^2" + } + }, + "node_modules/tap-parser/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "node_modules/tap-parser/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/tap-parser/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tap-xunit": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tap-xunit/-/tap-xunit-2.4.1.tgz", + "integrity": "sha512-qcZStDtjjYjMKAo7QNiCtOW256g3tuSyCSe5kNJniG1Q2oeOExJq4vm8CwboHZURpkXAHvtqMl4TVL7mcbMVVA==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "minimist": "~1.2.0", + "tap-parser": "~1.2.2", + "through2": "~2.0.0", + "xmlbuilder": "~4.2.0", + "xtend": "~4.0.0" + }, + "bin": { + "tap-xunit": "bin/tap-xunit", + "txunit": "bin/tap-xunit" + } + }, + "node_modules/tap-xunit/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "node_modules/tap-xunit/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/tap-xunit/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tap-xunit/node_modules/tap-parser": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-1.2.2.tgz", + "integrity": "sha1-Xi9pcGEfB5x8+FfeHceqG0gN56U=", + "dev": true, + "dependencies": { + "events-to-array": "^1.0.1", + "inherits": "~2.0.1", + "js-yaml": "^3.2.7" + }, + "bin": { + "tap-parser": "bin/cmd.js" + }, + "optionalDependencies": { + "readable-stream": "^2" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-write": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-4.0.0.tgz", + "integrity": "sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "is-stream": "^2.0.0", + "make-dir": "^3.0.0", + "temp-dir": "^1.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/temp-write/node_modules/temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/terser": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "acorn": "^8.5.0" + }, + "peerDependenciesMeta": { + "acorn": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/time-zone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", + "integrity": "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/token-types": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-2.1.1.tgz", + "integrity": "sha512-wnQcqlreS6VjthyHO3Y/kpK/emflxDBNhlNUPfh7wE39KnuDdOituXomIbyI79vBtF0Ninpkh72mcuRHo+RG3Q==", + "dev": true, + "dependencies": { + "@tokenizer/token": "^0.1.1", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=0.1.98" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/token-types/node_modules/@tokenizer/token": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz", + "integrity": "sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==", + "dev": true + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-off-newlines": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz", + "integrity": "sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "node_modules/underscore": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/well-known-symbols": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz", + "integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wolfy87-eventemitter": { + "version": "5.2.9", + "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.9.tgz", + "integrity": "sha512-P+6vtWyuDw+MB01X7UeF8TaHBvbCovf4HPEMF/SV7BdDc1SMTiBy13SRD71lQh4ExFTG1d/WNzDGDCyOKSMblw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", + "dev": true, + "dependencies": { + "lodash": "^4.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dependencies": { + "buffer-crc32": "~0.2.3" + } + } + }, "dependencies": { "@babel/code-frame": { "version": "7.16.7", @@ -42,17 +7820,17 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/parser": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", + "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "dev": true + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true } } }, @@ -65,14 +7843,6 @@ "@babel/types": "^7.16.8", "jsesc": "^2.5.1", "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } } }, "@babel/helper-compilation-targets": { @@ -230,21 +8000,6 @@ "supports-color": "^5.3.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -269,9 +8024,9 @@ } }, "@babel/parser": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", - "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==" + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==" }, "@babel/template": { "version": "7.16.7", @@ -282,6 +8037,14 @@ "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" + }, + "dependencies": { + "@babel/parser": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", + "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "dev": true + } } }, "@babel/traverse": { @@ -300,6 +8063,14 @@ "@babel/types": "^7.16.8", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "dependencies": { + "@babel/parser": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", + "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "dev": true + } } }, "@babel/types": { @@ -357,6 +8128,18 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, "espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", @@ -426,6 +8209,12 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true } } }, @@ -527,9 +8316,9 @@ "dev": true }, "@types/node": { - "version": "17.0.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.9.tgz", - "integrity": "sha512-5dNBXu/FOER+EXnyah7rn8xlNrfMOQb/qXnw4NQgLkCygKBKhdmF/CA5oXVOKZLBEahw8s2WP9LxIcN/oDDRgQ==", + "version": "17.0.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", + "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==", "dev": true, "optional": true }, @@ -589,6 +8378,14 @@ "@vue/shared": "3.2.27", "estree-walker": "^2.0.2", "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "@vue/compiler-dom": { @@ -617,6 +8414,14 @@ "magic-string": "^0.25.7", "postcss": "^8.1.10", "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "@vue/compiler-ssr": { @@ -649,14 +8454,15 @@ "dev": true }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "requires": {} }, "acorn-walk": { "version": "8.2.0", @@ -886,14 +8692,6 @@ "update-notifier": "^5.0.1", "write-file-atomic": "^3.0.3", "yargs": "^16.2.0" - }, - "dependencies": { - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true - } } }, "balanced-match": { @@ -1038,15 +8836,6 @@ "responselike": "^1.0.2" }, "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -1160,6 +8949,21 @@ "requires": { "color-convert": "^2.0.1" } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true } } }, @@ -1196,9 +9000,9 @@ } }, "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { "anymatch": "~3.1.2", @@ -1255,21 +9059,6 @@ "wrap-ansi": "^5.1.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -1285,6 +9074,12 @@ "locate-path": "^3.0.0" } }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -1479,18 +9274,18 @@ } }, "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { - "color-name": "~1.1.4" + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "color-support": { @@ -1568,14 +9363,6 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } } }, "convert-to-spaces": { @@ -1600,20 +9387,6 @@ "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" - }, - "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - } } }, "cross-env": { @@ -1650,6 +9423,13 @@ "inherits": "^2.0.4", "source-map": "^0.6.1", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } } }, "css-select": { @@ -1779,14 +9559,6 @@ "dev": true, "requires": { "strip-bom": "^4.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - } } }, "defaults": { @@ -1862,14 +9634,6 @@ "scss-parser": "^1.0.4", "semver": "^7.3.2", "yargs": "^16.1.0" - }, - "dependencies": { - "@babel/parser": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", - "dev": true - } } }, "deps-regex": { @@ -1964,6 +9728,12 @@ "readable-stream": "^2.0.2" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -1979,12 +9749,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -2003,9 +9767,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.46", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.46.tgz", - "integrity": "sha512-UtV0xUA/dibCKKP2JMxOpDtXR74zABevuUEH4K0tvduFSIoxRVcYmQsbB51kXsFTX8MmOyWMt8tuZAlmDOqkrQ==", + "version": "1.4.48", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.48.tgz", + "integrity": "sha512-RT3SEmpv7XUA+tKXrZGudAWLDpa7f8qmhjcLaM6OD/ERxjQ/zAojT8/Vvo0BSzbArkElFZ1WyZ9FuwAYbkdBNA==", "dev": true }, "emittery": { @@ -2158,9 +9922,10 @@ "dev": true }, "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true }, "escape-unicode": { "version": "0.2.0", @@ -2235,16 +10000,10 @@ "@babel/highlight": "^7.10.4" } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "espree": { @@ -2293,7 +10052,8 @@ "version": "0.14.0", "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-jsdoc": { "version": "37.6.1", @@ -2309,14 +10069,6 @@ "regextras": "^0.8.0", "semver": "^7.3.5", "spdx-expression-parse": "^3.0.1" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - } } }, "eslint-scope": { @@ -2336,12 +10088,21 @@ "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true }, "espree": { "version": "6.2.1", @@ -2351,6 +10112,18 @@ "acorn": "^7.1.1", "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } } }, "esprima": { @@ -2458,17 +10231,6 @@ "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } } }, "fast-deep-equal": { @@ -2670,9 +10432,9 @@ "dev": true }, "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, "get-func-name": { @@ -2694,9 +10456,9 @@ "dev": true }, "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2774,6 +10536,17 @@ "p-cancelable": "^1.0.0", "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } } }, "graceful-fs": { @@ -2838,14 +10611,6 @@ "requires": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "hosted-git-info": { @@ -2908,14 +10673,6 @@ "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } } }, "import-lazy": { @@ -3147,9 +10904,10 @@ "dev": true }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "isexe": { "version": "2.0.0", @@ -3238,6 +10996,14 @@ "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "istanbul-reports": { @@ -3299,12 +11065,19 @@ "strip-json-comments": "^3.1.0", "taffydb": "2.6.2", "underscore": "~1.13.1" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } } }, "jsdoc-type-pratt-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.1.tgz", - "integrity": "sha512-rkbaDZw3IPwd/ZPXob4XqQwVDKN/qeC2Dd7jL8EEGLEHLRmkPJgGAPw6OIIVmnwJrdcDh3vMR83/fc7lR5YpqA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.2.tgz", + "integrity": "sha512-zRokSWcPLSWkoNzsWn9pq7YYSwDhKyEe+cJYT2qaPqLOOJb5sFSi46BPj81vP+e8chvCNdQL9RG86Bi9EI6MDw==", "dev": true }, "jsesc": { @@ -3435,6 +11208,30 @@ "pify": "^4.0.1", "strip-bom": "^3.0.0", "type-fest": "^0.3.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + } } }, "locate-path": { @@ -3581,7 +11378,8 @@ "markdown-it-anchor": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", - "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==" + "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "requires": {} }, "marked": { "version": "2.1.3", @@ -3595,14 +11393,6 @@ "dev": true, "requires": { "escape-string-regexp": "^4.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - } } }, "md5-hex": { @@ -3627,14 +11417,6 @@ "requires": { "map-age-cleaner": "^0.1.3", "mimic-fn": "^3.1.0" - }, - "dependencies": { - "mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true - } } }, "meow": { @@ -3656,27 +11438,11 @@ "yargs-parser": "^18.1.3" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "type-fest": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "dev": true - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -3700,9 +11466,9 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", "dev": true }, "mimic-response": { @@ -3765,12 +11531,6 @@ "normalize-path": "^2.1.1" }, "dependencies": { - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -3941,12 +11701,6 @@ "color-convert": "^2.0.1" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -3958,6 +11712,27 @@ "wrap-ansi": "^6.2.0" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, "p-map": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", @@ -3967,6 +11742,12 @@ "aggregate-error": "^3.0.0" } }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -4002,16 +11783,6 @@ "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -4035,6 +11806,14 @@ "dev": true, "requires": { "mimic-fn": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + } } }, "open": { @@ -4202,13 +11981,15 @@ } }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, "parse-ms": { @@ -4260,14 +12041,6 @@ "dev": true, "requires": { "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } } }, "path-type": { @@ -4533,18 +12306,6 @@ "type-fest": "^0.6.0" }, "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, "type-fest": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", @@ -4562,14 +12323,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "readable-stream": { @@ -4687,6 +12440,11 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -4701,11 +12459,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -4766,12 +12519,20 @@ "dev": true, "requires": { "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } } }, "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "responselike": { @@ -4815,14 +12576,14 @@ } }, "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "sass": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.48.0.tgz", - "integrity": "sha512-hQi5g4DcfjcipotoHZ80l7GNJHGqQS5LwMBjVYB/TaT0vcSSpbgM8Ad7cgfsB2M0MinbkEQQPO9+sjjSiwxqmw==", + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.0.tgz", + "integrity": "sha512-TVwVdNDj6p6b4QymJtNtRS2YtLJ/CqZriGg0eIAbAKMlN8Xy6kbv33FsEZSF7FufFFM705SQviHjjThfaQ4VNw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -4961,18 +12722,34 @@ "requires": { "color-convert": "^2.0.1" } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true } } }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true }, "source-map-js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", - "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, "source-map-resolve": { @@ -4991,6 +12768,13 @@ "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } } }, "sourcemap-codec": { @@ -5057,6 +12841,29 @@ "dev": true, "requires": { "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, "string-width": { @@ -5069,14 +12876,6 @@ "strip-ansi": "^6.0.1" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -5086,9 +12885,9 @@ } }, "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "strip-indent": { @@ -5177,6 +12976,21 @@ "color-convert": "^2.0.1" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -5289,6 +13103,13 @@ "readable-stream": "^2" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5305,13 +13126,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -5338,6 +13152,13 @@ "xtend": "~4.0.0" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5354,13 +13175,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -5382,15 +13196,6 @@ "js-yaml": "^3.2.7", "readable-stream": "^2" } - }, - "xmlbuilder": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", - "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", - "dev": true, - "requires": { - "lodash": "^4.0.0" - } } } }, @@ -5465,6 +13270,12 @@ "xtend": "~4.0.1" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5480,12 +13291,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -5579,9 +13384,9 @@ "dev": true }, "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5757,6 +13562,21 @@ "requires": { "color-convert": "^2.0.1" } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true } } }, @@ -5790,12 +13610,23 @@ "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" + }, + "dependencies": { + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + } } }, "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", + "dev": true, + "requires": { + "lodash": "^4.0.0" + } }, "xmlcreate": { "version": "2.0.4", @@ -5838,13 +13669,39 @@ "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" + }, + "dependencies": { + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } } }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } }, "yauzl": { "version": "2.10.0", From 02f9160b3e70223288414f32aad2940f4693f614 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Thu, 16 Dec 2021 09:59:37 +0100 Subject: [PATCH 15/74] [INTERNAL] Align JSdoc generation with npm 8 workspace setup --- jsdoc.json | 1 - package.json | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/jsdoc.json b/jsdoc.json index 2079cf56d..61b8e3ae3 100644 --- a/jsdoc.json +++ b/jsdoc.json @@ -12,7 +12,6 @@ "./jsdoc-plugin" ], "opts": { - "template": "node_modules/docdash/", "encoding": "utf8", "destination": "jsdocs/", "recurse": true, diff --git a/package.json b/package.json index adef87de0..0169af249 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "coverage": "nyc npm run unit", "coverage-xunit": "nyc --reporter=text --reporter=text-summary --reporter=cobertura npm run unit-xunit", "jsdoc": "npm run jsdoc-generate && open-cli jsdocs/index.html", - "jsdoc-generate": "node_modules/.bin/jsdoc -c ./jsdoc.json ./lib/ || (echo 'Error during JSDoc generation! Check log.' && exit 1)", + "jsdoc-generate": "jsdoc -c ./jsdoc.json -t $(node -p 'path.dirname(require.resolve(\"docdash\"))') ./lib/ || (echo 'Error during JSDoc generation! Check log.' && exit 1)", "jsdoc-watch": "npm run jsdoc && chokidar \"./lib/**/*.js\" -c \"npm run jsdoc-generate\"", "preversion": "npm test", "version": "git-chglog --next-tag v$npm_package_version -o CHANGELOG.md && git add CHANGELOG.md", From f27513a259b30d39e260790781b6d435b4ab088b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20O=C3=9Fwald?= <1410947+matz3@users.noreply.github.com> Date: Thu, 20 Jan 2022 15:06:44 +0100 Subject: [PATCH 16/74] [FIX] generateResourcesJson: Analyze debug bundles (#669) --- lib/lbt/resources/ResourceCollector.js | 48 ++++++++++++------ lib/processors/resourceListCreator.js | 18 +------ test/lib/lbt/resources/ResourceCollector.js | 54 +++++++++++++++++---- 3 files changed, 79 insertions(+), 41 deletions(-) diff --git a/lib/lbt/resources/ResourceCollector.js b/lib/lbt/resources/ResourceCollector.js index 3acc2f88d..a715f28cb 100644 --- a/lib/lbt/resources/ResourceCollector.js +++ b/lib/lbt/resources/ResourceCollector.js @@ -193,17 +193,16 @@ class ResourceCollector { } async determineResourceDetails({ - debugResources, mergedResources, designtimeResources, supportResources, debugBundles + debugResources, mergedResources, designtimeResources, supportResources }) { const baseNames = new Set(); const debugFilter = new ResourceFilterList(debugResources); const mergeFilter = new ResourceFilterList(mergedResources); const designtimeFilter = new ResourceFilterList(designtimeResources); const supportFilter = new ResourceFilterList(supportResources); - const debugBundleFilter = new ResourceFilterList(debugBundles); const promises = []; - const nonBundledDebugResources = []; + const debugResourcesInfo = []; for (const [name, info] of this._resources.entries()) { if ( debugFilter.matches(name) ) { @@ -231,13 +230,14 @@ class ResourceCollector { } if ( /(?:\.js|\.view\.xml|\.control\.xml|\.fragment\.xml)$/.test(name) ) { - if ( (!info.isDebug || debugBundleFilter.matches(name)) ) { - // Only analyze non-debug files and special debug bundles (like sap-ui-core-dbg.js) + if ( !info.isDebug ) { + // Only analyze non-dbg files in first run promises.push( this.enrichWithDependencyInfo(info) ); } else { - nonBundledDebugResources.push(info); + // Collect dbg files to be handled in a second step (see below) + debugResourcesInfo.push(info); } } @@ -279,19 +279,37 @@ class ResourceCollector { await Promise.all(promises); - for (let i = nonBundledDebugResources.length - 1; i >= 0; i--) { - const dbgInfo = nonBundledDebugResources[i]; + const debugBundlePromises = []; + + for (let i = debugResourcesInfo.length - 1; i >= 0; i--) { + const dbgInfo = debugResourcesInfo[i]; const nonDebugName = ResourceInfoList.getNonDebugName(dbgInfo.name); const nonDbgInfo = this._resources.get(nonDebugName); - const newDbgInfo = new ResourceInfo(dbgInfo.name); - - // First copy info of analysis from non-dbg file (included, required, condRequired, ...) - newDbgInfo.copyFrom(null, nonDbgInfo); - // Then copy over info from dbg file to properly set name, isDebug, etc. - newDbgInfo.copyFrom(null, dbgInfo); - this._resources.set(dbgInfo.name, newDbgInfo); + // FIXME: "merged" property is only calculated in ResourceInfo#copyFrom + // Therefore using the same logic here to compute it. + if (!nonDbgInfo || (nonDbgInfo.included != null && nonDbgInfo.included.size > 0)) { + // We need to analyze the dbg resource if there is no non-dbg variant or + // it is a bundle because we will (usually) have different content. + debugBundlePromises.push( + this.enrichWithDependencyInfo(dbgInfo) + ); + } else { + // If the non-dbg resource is not a bundle, we can just copy over the info and skip + // analyzing the dbg variant as both should have the same info. + + const newDbgInfo = new ResourceInfo(dbgInfo.name); + + // First copy info of analysis from non-dbg file (included, required, condRequired, ...) + newDbgInfo.copyFrom(null, nonDbgInfo); + // Then copy over info from dbg file to properly set name, isDebug, etc. + newDbgInfo.copyFrom(null, dbgInfo); + + this._resources.set(dbgInfo.name, newDbgInfo); + } } + + await Promise.all(debugBundlePromises); } createOrphanFilters() { diff --git a/lib/processors/resourceListCreator.js b/lib/processors/resourceListCreator.js index ba012488a..cf4d811b3 100644 --- a/lib/processors/resourceListCreator.js +++ b/lib/processors/resourceListCreator.js @@ -66,17 +66,6 @@ const DEFAULT_SUPPORT_RESOURCES_FILTER = [ "**/*.support.js" ]; -/** - * Hard coded debug bundle, to trigger separate analysis for this filename - * because sap-ui-core.js and sap-ui-core-dbg.js have different includes - * - * @type {string[]} - */ -const DEBUG_BUNDLES = [ - "sap-ui-core-dbg.js", - "sap-ui-core-nojQuery-dbg.js" -]; - /** * Creates and adds resources.json entry (itself) to the list. * @@ -138,8 +127,7 @@ module.exports = async function({resources, dependencyResources = [], options}) debugResources: DEFAULT_DEBUG_RESOURCES_FILTER, mergedResources: DEFAULT_BUNDLE_RESOURCES_FILTER, designtimeResources: DEFAULT_DESIGNTIME_RESOURCES_FILTER, - supportResources: DEFAULT_SUPPORT_RESOURCES_FILTER, - debugBundles: DEBUG_BUNDLES + supportResources: DEFAULT_SUPPORT_RESOURCES_FILTER }, options); const pool = new LocatorResourcePool(); @@ -158,12 +146,10 @@ module.exports = async function({resources, dependencyResources = [], options}) } await collector.determineResourceDetails({ - pool, debugResources: options.debugResources, mergedResources: options.mergedResources, designtimeResources: options.designtimeResources, - supportResources: options.supportResources, - debugBundles: options.debugBundles + supportResources: options.supportResources }); // group resources by components and create ResourceInfoLists diff --git a/test/lib/lbt/resources/ResourceCollector.js b/test/lib/lbt/resources/ResourceCollector.js index 102377612..5f0bd6204 100644 --- a/test/lib/lbt/resources/ResourceCollector.js +++ b/test/lib/lbt/resources/ResourceCollector.js @@ -95,7 +95,7 @@ test.serial("visitResource: ensure proper matching of indicator files", async (t t.is(resourceCollector.components.size, 0, "No prefixes should be added"); }); -test.serial("groupResourcesByComponents: debugBundles", async (t) => { +test.serial("groupResourcesByComponents: external resources", async (t) => { const resourceCollector = new ResourceCollector(); resourceCollector.setExternalResources({ "testcomp": ["my/file.js"] @@ -149,25 +149,60 @@ test.serial("determineResourceDetails: view.xml", async (t) => { t.is(enrichWithDependencyInfoStub.getCall(0).args[0].name, "mylib/my.view.xml", "is called with view"); }); -test.serial("determineResourceDetails: Debug bundle", async (t) => { +test.serial("determineResourceDetails: Debug bundle (without non-debug variant)", async (t) => { const resourceCollector = new ResourceCollector(); const enrichWithDependencyInfoStub = sinon.stub(resourceCollector, "enrichWithDependencyInfo").resolves(); await resourceCollector.visitResource({getPath: () => "/resources/MyBundle-dbg.js", getSize: async () => 13}); await resourceCollector.determineResourceDetails({ - debugBundles: ["MyBundle-dbg.js"] + debugResources: ["**/*-dbg.js"], // MyBundle-dbg.js should be marked as "isDebug" }); + t.is(enrichWithDependencyInfoStub.callCount, 1, "enrichWithDependencyInfo is called once"); t.is(enrichWithDependencyInfoStub.getCall(0).args[0].name, "MyBundle-dbg.js", "enrichWithDependencyInfo is called with debug bundle"); }); +test.serial("determineResourceDetails: Debug bundle (with non-debug variant)", async (t) => { + const resourceCollector = new ResourceCollector(); + + const enrichWithDependencyInfoStub = sinon.stub(resourceCollector, "enrichWithDependencyInfo") + .onFirstCall().callsFake(async (resourceInfo) => { + resourceInfo.included = new Set(["SomeModule.js"]); + resourceInfo.required = new Set(["Boot.js"]); + }) + .onSecondCall().callsFake(async (resourceInfo) => { + resourceInfo.required = new Set(["Boot.js"]); + }); + await resourceCollector.visitResource({getPath: () => "/resources/MyBundle-dbg.js", getSize: async () => 13}); + await resourceCollector.visitResource({getPath: () => "/resources/MyBundle.js", getSize: async () => 13}); + + await resourceCollector.determineResourceDetails({ + debugResources: ["**/*-dbg.js"], // MyBundle-dbg.js should be marked as "isDebug" + }); + t.is(enrichWithDependencyInfoStub.callCount, 2, "enrichWithDependencyInfo is called twice"); + t.is(enrichWithDependencyInfoStub.getCall(0).args[0].name, "MyBundle.js", + "enrichWithDependencyInfo is called with non-debug bundle first"); + t.is(enrichWithDependencyInfoStub.getCall(1).args[0].name, "MyBundle-dbg.js", + "enrichWithDependencyInfo is called with debug bundle on second run"); + + const bundleInfo = resourceCollector._resources.get("MyBundle.js"); + t.deepEqual(bundleInfo.included, new Set(["SomeModule.js"])); + t.deepEqual(bundleInfo.required, new Set(["Boot.js"])); + t.is(bundleInfo.isDebug, false); + + const debugBundleInfo = resourceCollector._resources.get("MyBundle-dbg.js"); + t.is(debugBundleInfo.included, null); + t.deepEqual(debugBundleInfo.required, new Set(["Boot.js"])); + t.is(debugBundleInfo.isDebug, true); +}); + test.serial("determineResourceDetails: Debug files and non-debug files", async (t) => { const resourceCollector = new ResourceCollector(); const enrichWithDependencyInfoStub = sinon.stub(resourceCollector, "enrichWithDependencyInfo") - .callsFake((resourceInfo) => { + .callsFake(async (resourceInfo) => { // Simulate enriching resource info with dependency info to test whether it gets shared // with the dbg resource later on resourceInfo.dynRequired = true; @@ -183,16 +218,15 @@ test.serial("determineResourceDetails: Debug files and non-debug files", async ( })); await resourceCollector.determineResourceDetails({ - debugResources: ["**/*-dbg.js"], - debugBundles: ["MyBundle-dbg.js"] + debugResources: ["**/*-dbg.js"] }); t.is(enrichWithDependencyInfoStub.callCount, 3, "enrichWithDependencyInfo is called three times"); - t.is(enrichWithDependencyInfoStub.getCall(0).args[0].name, "MyBundle-dbg.js", - "enrichWithDependencyInfo called with debug bundle"); - t.is(enrichWithDependencyInfoStub.getCall(1).args[0].name, "mylib/MyControlA.js", + t.is(enrichWithDependencyInfoStub.getCall(0).args[0].name, "mylib/MyControlA.js", "enrichWithDependencyInfo called with non-debug control A"); - t.is(enrichWithDependencyInfoStub.getCall(2).args[0].name, "mylib/MyControlB.js", + t.is(enrichWithDependencyInfoStub.getCall(1).args[0].name, "mylib/MyControlB.js", "enrichWithDependencyInfo called with non-debug control B"); + t.is(enrichWithDependencyInfoStub.getCall(2).args[0].name, "MyBundle-dbg.js", + "enrichWithDependencyInfo called with debug bundle"); t.is(resourceCollector._resources.get("MyBundle-dbg.js").isDebug, true, "MyBundle-dbg is a debug file"); t.is(resourceCollector._resources.get("MyBundle-dbg.js").dynRequired, true, From de5837c43449ea61deae3b2f02f9973f3fa37992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20O=C3=9Fwald?= <1410947+matz3@users.noreply.github.com> Date: Thu, 20 Jan 2022 16:33:55 +0100 Subject: [PATCH 17/74] [BREAKING] moduleBundler: Always default to `optimize: true` (#685) bundleOptions are often omitted. So document them as optional and always default 'optimize' to true, even if bundleOptions are specified. --- lib/processors/bundlers/moduleBundler.js | 18 +- lib/tasks/bundlers/generateBundle.js | 8 +- test/lib/processors/bundlers/moduleBundler.js | 182 ++++++++++++++++-- 3 files changed, 186 insertions(+), 22 deletions(-) diff --git a/lib/processors/bundlers/moduleBundler.js b/lib/processors/bundlers/moduleBundler.js index 39498f86f..f1a205492 100644 --- a/lib/processors/bundlers/moduleBundler.js +++ b/lib/processors/bundlers/moduleBundler.js @@ -89,7 +89,7 @@ const log = require("@ui5/logger").getLogger("builder:processors:bundlers:module * * @public * @typedef {object} ModuleBundleOptions - * @property {boolean} [optimize=false] If set to 'true' the module bundle gets minified + * @property {boolean} [optimize=true] Whether the module bundle gets minified * @property {boolean} [decorateBootstrapModule=false] If set to 'false', the module won't be decorated * with an optimization marker * @property {boolean} [addTryCatchRestartWrapper=false] Whether to wrap bootable module bundles with @@ -109,15 +109,19 @@ const log = require("@ui5/logger").getLogger("builder:processors:bundlers:module * @param {module:@ui5/fs.Resource[]} parameters.resources Resources * @param {object} parameters.options Options * @param {ModuleBundleDefinition} parameters.options.bundleDefinition Module bundle definition - * @param {ModuleBundleOptions} parameters.options.bundleOptions Module bundle options + * @param {ModuleBundleOptions} [parameters.options.bundleOptions] Module bundle options * @returns {Promise} Promise resolving with module bundle resources */ module.exports = function({resources, options: {bundleDefinition, bundleOptions}}) { -// console.log("preloadBundler bundleDefinition:"); -// console.log(JSON.stringify(options.bundleDefinition, null, 4)); - - // TODO 3.0: Fix defaulting behavior, align with JSDoc - bundleOptions = bundleOptions || {optimize: true}; + // Apply defaults without modifying the passed object + bundleOptions = Object.assign({}, { + optimize: true, + decorateBootstrapModule: false, + addTryCatchRestartWrapper: false, + usePredefineCalls: false, + numberOfParts: 1, + ignoreMissingModules: false + }, bundleOptions); const pool = new LocatorResourcePool({ ignoreMissingModules: bundleOptions.ignoreMissingModules diff --git a/lib/tasks/bundlers/generateBundle.js b/lib/tasks/bundlers/generateBundle.js index 709f11417..2b0360180 100644 --- a/lib/tasks/bundlers/generateBundle.js +++ b/lib/tasks/bundlers/generateBundle.js @@ -14,7 +14,7 @@ const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritiz * @param {object} parameters.options Options * @param {string} parameters.options.projectName Project name * @param {ModuleBundleDefinition} parameters.options.bundleDefinition Module bundle definition - * @param {ModuleBundleOptions} parameters.options.bundleOptions Module bundle options + * @param {ModuleBundleOptions} [parameters.options.bundleOptions] Module bundle options * @returns {Promise} Promise resolving with undefined once data has been written */ module.exports = function({ @@ -26,14 +26,16 @@ module.exports = function({ }); if (taskUtil) { + const optimize = !bundleOptions || bundleOptions.optimize !== false; + // Omit -dbg files for optimize bundles and vice versa - const filterTag = bundleOptions.optimize ? + const filterTag = optimize ? taskUtil.STANDARD_TAGS.IsDebugVariant : taskUtil.STANDARD_TAGS.HasDebugVariant; combo = combo.filter(function(resource) { return !taskUtil.getTag(resource, filterTag); }); - if (!bundleOptions.optimize) { + if (!optimize) { // For "unoptimized" bundles, the non-debug files have already been filtered out // Now rename the debug variants to the same name so that they appear like the original // resource to the bundler diff --git a/test/lib/processors/bundlers/moduleBundler.js b/test/lib/processors/bundlers/moduleBundler.js index 04f4962b0..a357e2eae 100644 --- a/test/lib/processors/bundlers/moduleBundler.js +++ b/test/lib/processors/bundlers/moduleBundler.js @@ -77,7 +77,7 @@ test.serial("Builder returns single bundle", async (t) => { t.true(LocatorResourcePool.calledWithNew()); t.deepEqual(LocatorResourcePool.getCall(0).args, [ { - ignoreMissingModules: undefined // not defined in bundleOptions + ignoreMissingModules: false // default } ], "LocatorResourcePool should be called with expected args"); @@ -94,8 +94,18 @@ test.serial("Builder returns single bundle", async (t) => { t.is(builder.createBundle.getCall(0).args.length, 2); t.is(builder.createBundle.getCall(0).args[0], bundleDefinition, "builder.createBundle should be called with bundleDefinition"); - t.is(builder.createBundle.getCall(0).args[1], bundleOptions, - "builder.createBundle should be called with bundleOptions"); + t.deepEqual(builder.createBundle.getCall(0).args[1], { + // default bundleOptions + optimize: true, + decorateBootstrapModule: false, + addTryCatchRestartWrapper: false, + usePredefineCalls: false, + numberOfParts: 1, + ignoreMissingModules: false, + + some: "option" + }, + "builder.createBundle should be called with bundleOptions"); t.true(builder.createBundle.calledAfter(pool.prepare), "builder.createBundle should be called before pool.prepare"); @@ -173,7 +183,7 @@ test.serial("Builder returns multiple bundles", async (t) => { t.true(LocatorResourcePool.calledWithNew()); t.deepEqual(LocatorResourcePool.getCall(0).args, [ { - ignoreMissingModules: undefined // not defined in bundleOptions + ignoreMissingModules: false // default } ], "LocatorResourcePool should be called with expected args"); @@ -190,8 +200,18 @@ test.serial("Builder returns multiple bundles", async (t) => { t.is(builder.createBundle.getCall(0).args.length, 2); t.is(builder.createBundle.getCall(0).args[0], bundleDefinition, "builder.createBundle should be called with bundleDefinition"); - t.is(builder.createBundle.getCall(0).args[1], bundleOptions, - "builder.createBundle should be called with bundleOptions"); + t.deepEqual(builder.createBundle.getCall(0).args[1], { + // default bundleOptions + optimize: true, + decorateBootstrapModule: false, + addTryCatchRestartWrapper: false, + usePredefineCalls: false, + numberOfParts: 1, + ignoreMissingModules: false, + + some: "option" + }, + "builder.createBundle should be called with bundleOptions"); t.true(builder.createBundle.calledAfter(pool.prepare), "builder.createBundle should be called before pool.prepare"); @@ -213,7 +233,7 @@ test.serial("Builder returns multiple bundles", async (t) => { t.is(log.verbose.callCount, 0, "log.verbose is not called when verbose level is not enabled"); }); -test.serial("bundleOptions default", async (t) => { +test.serial("bundleOptions default (no options passed)", async (t) => { const {processor, Resource, LocatorResourcePool, pool, BundleBuilder, builder, log} = t.context; const resources = []; @@ -250,7 +270,7 @@ test.serial("bundleOptions default", async (t) => { t.true(LocatorResourcePool.calledWithNew()); t.deepEqual(LocatorResourcePool.getCall(0).args, [ { - ignoreMissingModules: undefined // not defined in bundleOptions + ignoreMissingModules: false // default } ], "LocatorResourcePool should be called with expected args"); @@ -267,8 +287,16 @@ test.serial("bundleOptions default", async (t) => { t.is(builder.createBundle.getCall(0).args.length, 2); t.is(builder.createBundle.getCall(0).args[0], bundleDefinition, "builder.createBundle should be called with bundleDefinition"); - t.deepEqual(builder.createBundle.getCall(0).args[1], {optimize: true}, // default bundleOptions - "builder.createBundle should be called with bundleOptions"); + t.deepEqual(builder.createBundle.getCall(0).args[1], { + // default bundleOptions + optimize: true, + decorateBootstrapModule: false, + addTryCatchRestartWrapper: false, + usePredefineCalls: false, + numberOfParts: 1, + ignoreMissingModules: false + }, + "builder.createBundle should be called with bundleOptions"); t.true(builder.createBundle.calledAfter(pool.prepare), "builder.createBundle should be called before pool.prepare"); @@ -284,6 +312,113 @@ test.serial("bundleOptions default", async (t) => { t.is(log.verbose.callCount, 0, "log.verbose is not called when verbose level is not enabled"); }); +test.serial("bundleOptions default (empty options passed)", async (t) => { + const {processor, LocatorResourcePool, builder, log} = t.context; + + const resources = []; + const bundleDefinition = { + "some": "definition" + }; + const bundleOptions = {}; + + const createdBundle = { + name: "BundleName.js", + content: "Bundle Content", + bundleInfo: { + "Bundle": "Info" + } + }; + + builder.createBundle.resolves(createdBundle); + + await processor({ + resources, + options: { + bundleDefinition, + bundleOptions + } + }); + + t.is(LocatorResourcePool.callCount, 1, "LocatorResourcePool should be created once"); + t.true(LocatorResourcePool.calledWithNew()); + t.deepEqual(LocatorResourcePool.getCall(0).args, [ + { + ignoreMissingModules: false // default + } + ], "LocatorResourcePool should be called with expected args"); + + t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); + t.is(builder.createBundle.getCall(0).args.length, 2); + t.is(builder.createBundle.getCall(0).args[0], bundleDefinition, + "builder.createBundle should be called with bundleDefinition"); + t.deepEqual(builder.createBundle.getCall(0).args[1], { + // default bundleOptions + optimize: true, + decorateBootstrapModule: false, + addTryCatchRestartWrapper: false, + usePredefineCalls: false, + numberOfParts: 1, + ignoreMissingModules: false + }, + "builder.createBundle should be called with bundleOptions"); + + t.deepEqual(bundleOptions, {}, "Passed bundleOptions object should not be modified"); + + t.is(log.verbose.callCount, 0, "log.verbose is not called when verbose level is not enabled"); +}); + +test.serial("bundleOptions (all options passed)", async (t) => { + const {processor, LocatorResourcePool, builder, log} = t.context; + + const resources = []; + const bundleDefinition = { + "some": "definition" + }; + const bundleOptions = { + optimize: false, + decorateBootstrapModule: true, + addTryCatchRestartWrapper: true, + usePredefineCalls: true, + numberOfParts: 7, + ignoreMissingModules: true + }; + + const createdBundle = { + name: "BundleName.js", + content: "Bundle Content", + bundleInfo: { + "Bundle": "Info" + } + }; + + builder.createBundle.resolves(createdBundle); + + await processor({ + resources, + options: { + bundleDefinition, + bundleOptions + } + }); + + t.is(LocatorResourcePool.callCount, 1, "LocatorResourcePool should be created once"); + t.true(LocatorResourcePool.calledWithNew()); + t.deepEqual(LocatorResourcePool.getCall(0).args, [ + { + ignoreMissingModules: true + } + ], "LocatorResourcePool should be called with expected args"); + + t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); + t.is(builder.createBundle.getCall(0).args.length, 2); + t.is(builder.createBundle.getCall(0).args[0], bundleDefinition, + "builder.createBundle should be called with bundleDefinition"); + t.deepEqual(builder.createBundle.getCall(0).args[1], bundleOptions, + "builder.createBundle should be called with bundleOptions"); + + t.is(log.verbose.callCount, 0, "log.verbose is not called when verbose level is not enabled"); +}); + test.serial("Passes ignoreMissingModules bundleOption to LocatorResourcePool", async (t) => { const {processor, Resource, LocatorResourcePool, pool, BundleBuilder, builder, log} = t.context; @@ -295,6 +430,17 @@ test.serial("Passes ignoreMissingModules bundleOption to LocatorResourcePool", a ignoreMissingModules: "foo" }; + const effectiveBundleOptions = { + // Defaults + "optimize": true, + "decorateBootstrapModule": false, + "addTryCatchRestartWrapper": false, + "usePredefineCalls": false, + "numberOfParts": 1, + + "ignoreMissingModules": "foo" + }; + const createdBundle = { name: "BundleName.js", content: "Bundle Content", @@ -342,7 +488,7 @@ test.serial("Passes ignoreMissingModules bundleOption to LocatorResourcePool", a t.is(builder.createBundle.getCall(0).args.length, 2); t.is(builder.createBundle.getCall(0).args[0], bundleDefinition, "builder.createBundle should be called with bundleDefinition"); - t.is(builder.createBundle.getCall(0).args[1], bundleOptions, + t.deepEqual(builder.createBundle.getCall(0).args[1], effectiveBundleOptions, "builder.createBundle should be called with bundleOptions"); t.true(builder.createBundle.calledAfter(pool.prepare), "builder.createBundle should be called before pool.prepare"); @@ -370,6 +516,18 @@ test.serial("Verbose Logging", async (t) => { "some": "option" }; + const effectiveBundleOptions = { + // Defaults + "optimize": true, + "decorateBootstrapModule": false, + "addTryCatchRestartWrapper": false, + "usePredefineCalls": false, + "numberOfParts": 1, + "ignoreMissingModules": false, + + "some": "option", + }; + const createdBundle = { name: "Bundle Name", content: "Bundle Content", @@ -402,5 +560,5 @@ test.serial("Verbose Logging", async (t) => { t.deepEqual(log.verbose.getCall(0).args, ["Generating bundle:"]); t.deepEqual(log.verbose.getCall(1).args, ["bundleDefinition: " + JSON.stringify(bundleDefinition, null, 2)]); - t.deepEqual(log.verbose.getCall(2).args, ["bundleOptions: " + JSON.stringify(bundleOptions, null, 2)]); + t.deepEqual(log.verbose.getCall(2).args, ["bundleOptions: " + JSON.stringify(effectiveBundleOptions, null, 2)]); }); From f84bcf2129fa053cf2b608d1aedea8f37c217a77 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Fri, 21 Jan 2022 10:55:19 +0100 Subject: [PATCH 18/74] [INTERNAL] Fix tests failing in npm workspace environment --- test/lib/processors/jsdoc/jsdocGenerator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/lib/processors/jsdoc/jsdocGenerator.js b/test/lib/processors/jsdoc/jsdocGenerator.js index 3c297e95e..21ac88d11 100644 --- a/test/lib/processors/jsdoc/jsdocGenerator.js +++ b/test/lib/processors/jsdoc/jsdocGenerator.js @@ -98,7 +98,7 @@ test.serial("buildJsdoc", async (t) => { const firstCallArgs = cpStub.getCall(0).args; t.deepEqual(firstCallArgs[0], "node", "Spawn got called with correct process argument"); t.deepEqual(firstCallArgs[1], [ - path.resolve(__dirname, "..", "..", "..", "..", "node_modules", "jsdoc", "jsdoc.js"), + require.resolve("jsdoc/jsdoc.js"), "-c", "/some/config/path/jsdoc-config.json", "--verbose", From 1689f135c9f4180deeba9269d85b5891ab91c6d7 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Tue, 18 Jan 2022 10:30:42 +0100 Subject: [PATCH 19/74] [INTERNAL] minify: Omit .js.map from build results Source maps are currently only required during the build process (e.g. for creating source maps of bundles) but not as build output. Therefore they will be omitted from the build result. --- lib/tasks/minify.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/tasks/minify.js b/lib/tasks/minify.js index ba508ca5a..007f6f0fc 100644 --- a/lib/tasks/minify.js +++ b/lib/tasks/minify.js @@ -20,6 +20,7 @@ module.exports = async function({workspace, taskUtil, options: {pattern}}) { if (taskUtil) { taskUtil.setTag(resource, taskUtil.STANDARD_TAGS.HasDebugVariant); taskUtil.setTag(dbgResource, taskUtil.STANDARD_TAGS.IsDebugVariant); + taskUtil.setTag(sourceMapResource, taskUtil.STANDARD_TAGS.OmitFromBuildResult); } return Promise.all([ workspace.write(resource), From 9608c5177f86494ba689d2e799b4378fec9ed6fa Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Wed, 19 Jan 2022 14:21:17 +0100 Subject: [PATCH 20/74] [FIX] generateResourcesJson: Don't list resources omitted from build result Resources that are tagged to be omitted from the build result should not be listed in the resources.json as it should represent a listing of files that are part of the build output. Resources of dependencies should also not be used for dependency lookups if they are omitted from the results as they also won't be listed in the resources.json of that dependency. --- lib/tasks/generateResourcesJson.js | 17 ++++- lib/types/application/ApplicationBuilder.js | 1 + lib/types/library/LibraryBuilder.js | 1 + lib/types/themeLibrary/ThemeLibraryBuilder.js | 1 + test/lib/tasks/generateResourcesJson.js | 67 +++++++++++++++++++ 5 files changed, 85 insertions(+), 2 deletions(-) diff --git a/lib/tasks/generateResourcesJson.js b/lib/tasks/generateResourcesJson.js index fcc1d2692..f405b25d1 100644 --- a/lib/tasks/generateResourcesJson.js +++ b/lib/tasks/generateResourcesJson.js @@ -97,12 +97,13 @@ function getCreatorOptions(projectName) { * @param {object} parameters Parameters * @param {module:@ui5/fs.DuplexCollection} parameters.workspace DuplexCollection to read and write files * @param {module:@ui5/fs.AbstractReader} [parameters.dependencies] Reader or Collection to read dependency files + * @param {module:@ui5/builder.tasks.TaskUtil|object} [parameters.taskUtil] TaskUtil * @param {object} parameters.options Options * @param {string} parameters.options.projectName Project name * @returns {Promise} Promise resolving with undefined once data has been written */ -module.exports = async function({workspace, dependencies, options: {projectName}}) { - const resources = await workspace.byGlob(["/resources/**/*"].concat(DEFAULT_EXCLUDES)); +module.exports = async function({workspace, dependencies, taskUtil, options: {projectName}}) { + let resources = await workspace.byGlob(["/resources/**/*"].concat(DEFAULT_EXCLUDES)); // TODO 3.0: Make dependencies parameter mandatory let dependencyResources; @@ -111,6 +112,18 @@ module.exports = async function({workspace, dependencies, options: {projectName} await dependencies.byGlob("/resources/**/*.{js,json,xml,html,properties,library}"); } + if (taskUtil) { + // Filter out resources that will be omitted from the build results + resources = resources.filter((resource) => { + return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.OmitFromBuildResult); + }); + if (dependencyResources) { + dependencyResources = dependencyResources.filter((resource) => { + return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.OmitFromBuildResult); + }); + } + } + const resourceLists = await resourceListCreator({ resources, dependencyResources, diff --git a/lib/types/application/ApplicationBuilder.js b/lib/types/application/ApplicationBuilder.js index 444ebce64..d82d05a8b 100644 --- a/lib/types/application/ApplicationBuilder.js +++ b/lib/types/application/ApplicationBuilder.js @@ -199,6 +199,7 @@ class ApplicationBuilder extends AbstractBuilder { return getTask("generateResourcesJson").task({ workspace: resourceCollections.workspace, dependencies: resourceCollections.dependencies, + taskUtil, options: { projectName: project.metadata.name } diff --git a/lib/types/library/LibraryBuilder.js b/lib/types/library/LibraryBuilder.js index d31148e36..57f96baa2 100644 --- a/lib/types/library/LibraryBuilder.js +++ b/lib/types/library/LibraryBuilder.js @@ -219,6 +219,7 @@ class LibraryBuilder extends AbstractBuilder { return getTask("generateResourcesJson").task({ workspace: resourceCollections.workspace, dependencies: resourceCollections.dependencies, + taskUtil, options: { projectName: project.metadata.name } diff --git a/lib/types/themeLibrary/ThemeLibraryBuilder.js b/lib/types/themeLibrary/ThemeLibraryBuilder.js index 2f49912af..1404357a1 100644 --- a/lib/types/themeLibrary/ThemeLibraryBuilder.js +++ b/lib/types/themeLibrary/ThemeLibraryBuilder.js @@ -51,6 +51,7 @@ class ThemeLibraryBuilder extends AbstractBuilder { return getTask("generateResourcesJson").task({ workspace: resourceCollections.workspace, dependencies: resourceCollections.dependencies, + taskUtil, options: { projectName: project.metadata.name } diff --git a/test/lib/tasks/generateResourcesJson.js b/test/lib/tasks/generateResourcesJson.js index c46a330de..af8b7b064 100644 --- a/test/lib/tasks/generateResourcesJson.js +++ b/test/lib/tasks/generateResourcesJson.js @@ -51,6 +51,7 @@ test.serial("empty resources (sap.ui.core)", async (t) => { }); t.deepEqual(result, undefined, "no resources returned"); t.is(resourceListCreatorStub.callCount, 1); + t.deepEqual(t.context.resourceListCreatorStub.getCall(0).args[0].resources, [], "no resources are passed"); const expectedOptions = { externalResources: { "sap/ui/core": [ @@ -75,6 +76,7 @@ test.serial("empty resources (my.lib)", async (t) => { }); t.deepEqual(result, undefined, "no resources returned"); t.is(t.context.resourceListCreatorStub.callCount, 1); + t.deepEqual(t.context.resourceListCreatorStub.getCall(0).args[0].resources, [], "no resources are passed"); const expectedOptions = {}; t.deepEqual(t.context.resourceListCreatorStub.getCall(0).args[0].options, expectedOptions, "options match"); }); @@ -96,8 +98,73 @@ test.serial("empty resources (my.lib with dependencies)", async (t) => { }); t.deepEqual(result, undefined, "no resources returned"); t.is(t.context.resourceListCreatorStub.callCount, 1); + t.deepEqual(t.context.resourceListCreatorStub.getCall(0).args[0].resources, [], "no resources are passed"); const expectedOptions = {}; t.deepEqual(t.context.resourceListCreatorStub.getCall(0).args[0].options, expectedOptions, "options match"); t.is(t.context.resourceListCreatorStub.getCall(0).args[0].dependencyResources, dependencyResources, "dependencyResources reference should be passed to resourceListCreator"); }); + +test.serial("Resources omitted from build result should be ignored", async (t) => { + const generateResourcesJson = require("../../../lib/tasks/generateResourcesJson"); + + const resource1 = {}; + const resource2 = {}; + const resource3 = {}; + + const workspace = createWorkspace(); + workspace.byGlob = sinon.stub().resolves([ + resource1, + resource2, + resource3, + ]); + + const dependencyResource1 = {}; + const dependencyResource2 = {}; + const dependencies = { + byGlob: sinon.stub().resolves([dependencyResource1, dependencyResource2]) + }; + + const taskUtil = { + getTag: sinon.stub(), + STANDARD_TAGS: { + OmitFromBuildResult: "TEST-OmitFromBuildResult-TEST" + } + }; + + // resources + taskUtil.getTag + .onCall(0).returns(false) + .onCall(1).returns(true) // second resource should be filtered out + .onCall(2).returns(false); + + // dependencyResources + taskUtil.getTag + .onCall(3).returns(true) // first dependencyResource should be filtered out + .onCall(4).returns(false); + + const result = await generateResourcesJson({ + workspace, + dependencies, + taskUtil, + options: { + projectName: "my.lib" + } + }); + + t.is(taskUtil.getTag.callCount, 5); + t.deepEqual(taskUtil.getTag.getCall(0).args, [resource1, "TEST-OmitFromBuildResult-TEST"]); + t.deepEqual(taskUtil.getTag.getCall(1).args, [resource2, "TEST-OmitFromBuildResult-TEST"]); + t.deepEqual(taskUtil.getTag.getCall(2).args, [resource3, "TEST-OmitFromBuildResult-TEST"]); + t.deepEqual(taskUtil.getTag.getCall(3).args, [dependencyResource1, "TEST-OmitFromBuildResult-TEST"]); + t.deepEqual(taskUtil.getTag.getCall(4).args, [dependencyResource2, "TEST-OmitFromBuildResult-TEST"]); + + t.deepEqual(result, undefined, "no resources returned"); + t.is(t.context.resourceListCreatorStub.callCount, 1); + t.deepEqual(t.context.resourceListCreatorStub.getCall(0).args[0].resources, + [resource1, resource3], "only resources 1 and 3 are passed"); + const expectedOptions = {}; + t.deepEqual(t.context.resourceListCreatorStub.getCall(0).args[0].options, expectedOptions, "options match"); + t.deepEqual(t.context.resourceListCreatorStub.getCall(0).args[0].dependencyResources, [dependencyResource2], + "dependencyResources reference should be passed to resourceListCreator"); +}); From 23fa5a783cc66100591f4423410d928dcbe36506 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 20 Jan 2022 14:48:15 +0100 Subject: [PATCH 21/74] [INTERNAL] Update tests --- .../application.a/dest-deps-excl/test.js.map | 1 - .../resources/library/d/some.js.map | 1 - .../dest-deps-incl/resources/ui5loader.js.map | 1 - .../application.a/dest-deps-incl/test.js.map | 1 - .../dest-deps/resources/library/d/some.js.map | 1 - .../dest-deps/resources/ui5loader.js.map | 1 - .../build/application.a/dest-deps/test.js.map | 1 - .../resources/library/d/some.js.map | 1 - .../dest-depself/resources/ui5loader.js.map | 1 - .../application.a/dest-depself/test.js.map | 1 - .../build/application.a/dest-self/test.js.map | 1 - .../build/application.a/dest/test.js.map | 1 - .../cachebuster/Component.js.map | 1 - .../subcomponentA/Component.js.map | 1 - .../subcomponentB/Component.js.map | 1 - .../cachebuster_hash/Component.js.map | 1 - .../subcomponentA/Component.js.map | 1 - .../subcomponentB/Component.js.map | 1 - .../build/application.g/dest/Component.js.map | 1 - .../dest/subcomponentA/Component.js.map | 1 - .../dest/subcomponentB/Component.js.map | 1 - .../application.g/dest2/Component.js.map | 1 - .../dest2/subcomponentA/Component.js.map | 1 - .../dest2/subcomponentB/Component.js.map | 1 - .../build/application.h/dest/Component.js.map | 1 - .../dest/sectionsA/section1.js.map | 1 - .../dest/sectionsA/section2.js.map | 1 - .../dest/sectionsA/section3.js.map | 1 - .../dest/sectionsB/section1.js.map | 1 - .../dest/sectionsB/section2.js.map | 1 - .../dest/sectionsB/section3.js.map | 1 - .../build/application.i/dest/Component.js.map | 1 - .../dest/changes/coding/MyExtension.js.map | 1 - .../dest-resources-json/Component.js.map | 1 - .../changes/coding/MyExtension.js.map | 1 - .../dest-resources-json/resources.json | 44 +-------------- .../build/application.j/dest/Component.js.map | 1 - .../dest/changes/coding/MyExtension.js.map | 1 - .../application.l/dest/subdir/index.js.map | 1 - .../dest/subdir/thirdparty/File1.js.map | 1 - .../build/application.l/dest/test.js.map | 1 - .../dest/Component.js.map" | 1 - .../dest/resources/sap-ui-core.js.map | 1 - .../dest/resources/sap/ui/Global.js.map | 1 - .../dest/resources/sap/ui/core/Core.js.map | 1 - .../dest/resources/library/d/some.js.map | 1 - .../dest/resources/library/e/library.js.map | 1 - .../dest/resources/library/e/some.js.map | 1 - .../library/h/components/Component.js.map | 1 - .../library/h/components/TodoComponent.js.map | 1 - .../library/h/components/resources.json | 27 +--------- .../components/subcomponent1/Component.js.map | 1 - .../h/components/subcomponent1/resources.json | 7 +-- .../components/subcomponent2/Component.js.map | 1 - .../h/components/subcomponent2/resources.json | 7 +-- .../components/subcomponent3/Component.js.map | 1 - .../h/components/subcomponent3/resources.json | 7 +-- .../h/designtime/library.designtime.js.map | 1 - .../resources/library/h/file.js.map | 1 - .../resources/library/h/library.js.map | 1 - .../resources/library/h/not.js.map | 1 - .../resources/library/h/resources.json | 53 +------------------ .../resources/library/h/some.js.map | 1 - .../library/h/components/Component.js.map | 1 - .../library/h/components/TodoComponent.js.map | 1 - .../components/subcomponent1/Component.js.map | 1 - .../components/subcomponent2/Component.js.map | 1 - .../components/subcomponent3/Component.js.map | 1 - .../h/designtime/library.designtime.js.map | 1 - .../dest/resources/library/h/file.js.map | 1 - .../dest/resources/library/h/library.js.map | 1 - .../dest/resources/library/h/not.js.map | 1 - .../dest/resources/library/h/some.js.map | 1 - .../dest/resources/library/l/some.js.map | 1 - .../resources/library/l/subdir/index.js.map | 1 - .../library/l/subdir/thirdparty/File1.js.map | 1 - .../resources/library/\303\270/some.js.map" | 1 - .../dest/resources/sap-ui-core.js.map | 1 - .../dest/resources/sap/ui/Global.js.map | 1 - .../dest/resources/sap/ui/core/Core.js.map | 1 - .../preload/resources/sap-ui-core.js.map | 1 - .../preload/resources/sap/ui/core/Core.js.map | 1 - .../preload/resources/sap/ui/core/one.js.map | 1 - .../preload/resources/sap/ui/core/some.js.map | 1 - .../resources/ui5loader-autoconfig.js.map | 1 - .../preload/resources/ui5loader.js.map | 1 - .../generateLibraryPreload.integration.js | 2 +- test/lib/tasks/minify.js | 7 ++- 88 files changed, 12 insertions(+), 222 deletions(-) delete mode 100644 test/expected/build/application.a/dest-deps-excl/test.js.map delete mode 100644 test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js.map delete mode 100644 test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js.map delete mode 100644 test/expected/build/application.a/dest-deps-incl/test.js.map delete mode 100644 test/expected/build/application.a/dest-deps/resources/library/d/some.js.map delete mode 100644 test/expected/build/application.a/dest-deps/resources/ui5loader.js.map delete mode 100644 test/expected/build/application.a/dest-deps/test.js.map delete mode 100644 test/expected/build/application.a/dest-depself/resources/library/d/some.js.map delete mode 100644 test/expected/build/application.a/dest-depself/resources/ui5loader.js.map delete mode 100644 test/expected/build/application.a/dest-depself/test.js.map delete mode 100644 test/expected/build/application.a/dest-self/test.js.map delete mode 100644 test/expected/build/application.a/dest/test.js.map delete mode 100644 test/expected/build/application.g/cachebuster/Component.js.map delete mode 100644 test/expected/build/application.g/cachebuster/subcomponentA/Component.js.map delete mode 100644 test/expected/build/application.g/cachebuster/subcomponentB/Component.js.map delete mode 100644 test/expected/build/application.g/cachebuster_hash/Component.js.map delete mode 100644 test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js.map delete mode 100644 test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js.map delete mode 100644 test/expected/build/application.g/dest/Component.js.map delete mode 100644 test/expected/build/application.g/dest/subcomponentA/Component.js.map delete mode 100644 test/expected/build/application.g/dest/subcomponentB/Component.js.map delete mode 100644 test/expected/build/application.g/dest2/Component.js.map delete mode 100644 test/expected/build/application.g/dest2/subcomponentA/Component.js.map delete mode 100644 test/expected/build/application.g/dest2/subcomponentB/Component.js.map delete mode 100644 test/expected/build/application.h/dest/Component.js.map delete mode 100644 test/expected/build/application.h/dest/sectionsA/section1.js.map delete mode 100644 test/expected/build/application.h/dest/sectionsA/section2.js.map delete mode 100644 test/expected/build/application.h/dest/sectionsA/section3.js.map delete mode 100644 test/expected/build/application.h/dest/sectionsB/section1.js.map delete mode 100644 test/expected/build/application.h/dest/sectionsB/section2.js.map delete mode 100644 test/expected/build/application.h/dest/sectionsB/section3.js.map delete mode 100644 test/expected/build/application.i/dest/Component.js.map delete mode 100644 test/expected/build/application.i/dest/changes/coding/MyExtension.js.map delete mode 100644 test/expected/build/application.j/dest-resources-json/Component.js.map delete mode 100644 test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js.map delete mode 100644 test/expected/build/application.j/dest/Component.js.map delete mode 100644 test/expected/build/application.j/dest/changes/coding/MyExtension.js.map delete mode 100644 test/expected/build/application.l/dest/subdir/index.js.map delete mode 100644 test/expected/build/application.l/dest/subdir/thirdparty/File1.js.map delete mode 100644 test/expected/build/application.l/dest/test.js.map delete mode 100644 "test/expected/build/application.\303\270/dest/Component.js.map" delete mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js.map delete mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js.map delete mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js.map delete mode 100644 test/expected/build/library.d/dest/resources/library/d/some.js.map delete mode 100644 test/expected/build/library.e/dest/resources/library/e/library.js.map delete mode 100644 test/expected/build/library.e/dest/resources/library/e/some.js.map delete mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js.map delete mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js.map delete mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js.map delete mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js.map delete mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js.map delete mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js.map delete mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/file.js.map delete mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/library.js.map delete mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/not.js.map delete mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/some.js.map delete mode 100644 test/expected/build/library.h/dest/resources/library/h/components/Component.js.map delete mode 100644 test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js.map delete mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js.map delete mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js.map delete mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js.map delete mode 100644 test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js.map delete mode 100644 test/expected/build/library.h/dest/resources/library/h/file.js.map delete mode 100644 test/expected/build/library.h/dest/resources/library/h/library.js.map delete mode 100644 test/expected/build/library.h/dest/resources/library/h/not.js.map delete mode 100644 test/expected/build/library.h/dest/resources/library/h/some.js.map delete mode 100644 test/expected/build/library.l/dest/resources/library/l/some.js.map delete mode 100644 test/expected/build/library.l/dest/resources/library/l/subdir/index.js.map delete mode 100644 test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js.map delete mode 100644 "test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js.map" delete mode 100644 test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js.map delete mode 100644 test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js.map delete mode 100644 test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js.map delete mode 100644 test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map delete mode 100644 test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js.map delete mode 100644 test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js.map delete mode 100644 test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js.map delete mode 100644 test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js.map delete mode 100644 test/expected/build/sap.ui.core/preload/resources/ui5loader.js.map diff --git a/test/expected/build/application.a/dest-deps-excl/test.js.map b/test/expected/build/application.a/dest-deps-excl/test.js.map deleted file mode 100644 index 1d04a4e3e..000000000 --- a/test/expected/build/application.a/dest-deps-excl/test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js.map b/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js.map deleted file mode 100644 index bc2b57a0a..000000000 --- a/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":";;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js.map b/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js.map deleted file mode 100644 index 636d46591..000000000 --- a/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"ui5loader.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/test.js.map b/test/expected/build/application.a/dest-deps-incl/test.js.map deleted file mode 100644 index 1d04a4e3e..000000000 --- a/test/expected/build/application.a/dest-deps-incl/test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/resources/library/d/some.js.map b/test/expected/build/application.a/dest-deps/resources/library/d/some.js.map deleted file mode 100644 index bc2b57a0a..000000000 --- a/test/expected/build/application.a/dest-deps/resources/library/d/some.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":";;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/resources/ui5loader.js.map b/test/expected/build/application.a/dest-deps/resources/ui5loader.js.map deleted file mode 100644 index 636d46591..000000000 --- a/test/expected/build/application.a/dest-deps/resources/ui5loader.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"ui5loader.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/test.js.map b/test/expected/build/application.a/dest-deps/test.js.map deleted file mode 100644 index 1d04a4e3e..000000000 --- a/test/expected/build/application.a/dest-deps/test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/resources/library/d/some.js.map b/test/expected/build/application.a/dest-depself/resources/library/d/some.js.map deleted file mode 100644 index bc2b57a0a..000000000 --- a/test/expected/build/application.a/dest-depself/resources/library/d/some.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":";;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/resources/ui5loader.js.map b/test/expected/build/application.a/dest-depself/resources/ui5loader.js.map deleted file mode 100644 index 636d46591..000000000 --- a/test/expected/build/application.a/dest-depself/resources/ui5loader.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"ui5loader.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/test.js.map b/test/expected/build/application.a/dest-depself/test.js.map deleted file mode 100644 index 1d04a4e3e..000000000 --- a/test/expected/build/application.a/dest-depself/test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-self/test.js.map b/test/expected/build/application.a/dest-self/test.js.map deleted file mode 100644 index 1d04a4e3e..000000000 --- a/test/expected/build/application.a/dest-self/test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.a/dest/test.js.map b/test/expected/build/application.a/dest/test.js.map deleted file mode 100644 index 1d04a4e3e..000000000 --- a/test/expected/build/application.a/dest/test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/Component.js.map b/test/expected/build/application.g/cachebuster/Component.js.map deleted file mode 100644 index 97f5dc393..000000000 --- a/test/expected/build/application.g/cachebuster/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/subcomponentA/Component.js.map b/test/expected/build/application.g/cachebuster/subcomponentA/Component.js.map deleted file mode 100644 index 5303aa4c7..000000000 --- a/test/expected/build/application.g/cachebuster/subcomponentA/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/subcomponentB/Component.js.map b/test/expected/build/application.g/cachebuster/subcomponentB/Component.js.map deleted file mode 100644 index 5303aa4c7..000000000 --- a/test/expected/build/application.g/cachebuster/subcomponentB/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/Component.js.map b/test/expected/build/application.g/cachebuster_hash/Component.js.map deleted file mode 100644 index 97f5dc393..000000000 --- a/test/expected/build/application.g/cachebuster_hash/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js.map b/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js.map deleted file mode 100644 index 5303aa4c7..000000000 --- a/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js.map b/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js.map deleted file mode 100644 index 5303aa4c7..000000000 --- a/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/Component.js.map b/test/expected/build/application.g/dest/Component.js.map deleted file mode 100644 index 97f5dc393..000000000 --- a/test/expected/build/application.g/dest/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentA/Component.js.map b/test/expected/build/application.g/dest/subcomponentA/Component.js.map deleted file mode 100644 index 5303aa4c7..000000000 --- a/test/expected/build/application.g/dest/subcomponentA/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentB/Component.js.map b/test/expected/build/application.g/dest/subcomponentB/Component.js.map deleted file mode 100644 index 5303aa4c7..000000000 --- a/test/expected/build/application.g/dest/subcomponentB/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/Component.js.map b/test/expected/build/application.g/dest2/Component.js.map deleted file mode 100644 index 97f5dc393..000000000 --- a/test/expected/build/application.g/dest2/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentA/Component.js.map b/test/expected/build/application.g/dest2/subcomponentA/Component.js.map deleted file mode 100644 index 5303aa4c7..000000000 --- a/test/expected/build/application.g/dest2/subcomponentA/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentB/Component.js.map b/test/expected/build/application.g/dest2/subcomponentB/Component.js.map deleted file mode 100644 index 5303aa4c7..000000000 --- a/test/expected/build/application.g/dest2/subcomponentB/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/Component.js.map b/test/expected/build/application.h/dest/Component.js.map deleted file mode 100644 index 97f5dc393..000000000 --- a/test/expected/build/application.h/dest/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section1.js.map b/test/expected/build/application.h/dest/sectionsA/section1.js.map deleted file mode 100644 index 8b3202d17..000000000 --- a/test/expected/build/application.h/dest/sectionsA/section1.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["section1-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section1.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section2.js.map b/test/expected/build/application.h/dest/sectionsA/section2.js.map deleted file mode 100644 index 09d59d6ea..000000000 --- a/test/expected/build/application.h/dest/sectionsA/section2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["section2-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section2.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section3.js.map b/test/expected/build/application.h/dest/sectionsA/section3.js.map deleted file mode 100644 index d39b700b8..000000000 --- a/test/expected/build/application.h/dest/sectionsA/section3.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["section3-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section3.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section1.js.map b/test/expected/build/application.h/dest/sectionsB/section1.js.map deleted file mode 100644 index 8b3202d17..000000000 --- a/test/expected/build/application.h/dest/sectionsB/section1.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["section1-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section1.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section2.js.map b/test/expected/build/application.h/dest/sectionsB/section2.js.map deleted file mode 100644 index 09d59d6ea..000000000 --- a/test/expected/build/application.h/dest/sectionsB/section2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["section2-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section2.js"} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section3.js.map b/test/expected/build/application.h/dest/sectionsB/section3.js.map deleted file mode 100644 index d39b700b8..000000000 --- a/test/expected/build/application.h/dest/sectionsB/section3.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["section3-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section3.js"} \ No newline at end of file diff --git a/test/expected/build/application.i/dest/Component.js.map b/test/expected/build/application.i/dest/Component.js.map deleted file mode 100644 index 97f5dc393..000000000 --- a/test/expected/build/application.i/dest/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.i/dest/changes/coding/MyExtension.js.map b/test/expected/build/application.i/dest/changes/coding/MyExtension.js.map deleted file mode 100644 index bff243492..000000000 --- a/test/expected/build/application.i/dest/changes/coding/MyExtension.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js"} \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/Component.js.map b/test/expected/build/application.j/dest-resources-json/Component.js.map deleted file mode 100644 index 97f5dc393..000000000 --- a/test/expected/build/application.j/dest-resources-json/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js.map b/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js.map deleted file mode 100644 index bff243492..000000000 --- a/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js"} \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/resources.json b/test/expected/build/application.j/dest-resources-json/resources.json index 4aa4823f5..3c72c06fb 100644 --- a/test/expected/build/application.j/dest-resources-json/resources.json +++ b/test/expected/build/application.j/dest-resources-json/resources.json @@ -46,11 +46,6 @@ "sap/ui/layout/library.js" ] }, - { - "name": "Component.js.map", - "size": 253, - "isDebug": true - }, { "name": "changes/coding/MyExtension-dbg.js", "module": "application/j/changes/coding/MyExtension.js", @@ -62,11 +57,6 @@ "module": "application/j/changes/coding/MyExtension.js", "size": 79 }, - { - "name": "changes/coding/MyExtension.js.map", - "size": 152, - "isDebug": true - }, { "name": "changes/flexibility-bundle.json", "module": "application/j/changes/flexibility-bundle.json", @@ -77,38 +67,6 @@ "module": "application/j/changes/fragments/MyFragment.fragment.xml", "size": 13 }, - { - "name": "changes/id_111_appDescriptor.change", - "size": 464 - }, - { - "name": "changes/id_111_compVariants.variant", - "size": 466 - }, - { - "name": "changes/id_111_test.ctrl_variant", - "size": 432 - }, - { - "name": "changes/id_111_test.ctrl_variant_change", - "size": 439 - }, - { - "name": "changes/id_111_test.ctrl_variant_management_change", - "size": 450 - }, - { - "name": "changes/id_111_variantDependentControlChange.change", - "size": 489 - }, - { - "name": "changes/id_123_addField.change", - "size": 432 - }, - { - "name": "changes/id_456_addField.change", - "size": 430 - }, { "name": "fileWithoutExtension", "size": 27 @@ -120,7 +78,7 @@ }, { "name": "resources.json", - "size": 2704 + "size": 1923 } ] } \ No newline at end of file diff --git a/test/expected/build/application.j/dest/Component.js.map b/test/expected/build/application.j/dest/Component.js.map deleted file mode 100644 index 97f5dc393..000000000 --- a/test/expected/build/application.j/dest/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/application.j/dest/changes/coding/MyExtension.js.map b/test/expected/build/application.j/dest/changes/coding/MyExtension.js.map deleted file mode 100644 index bff243492..000000000 --- a/test/expected/build/application.j/dest/changes/coding/MyExtension.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js"} \ No newline at end of file diff --git a/test/expected/build/application.l/dest/subdir/index.js.map b/test/expected/build/application.l/dest/subdir/index.js.map deleted file mode 100644 index 9ebd8bf4e..000000000 --- a/test/expected/build/application.l/dest/subdir/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index-dbg.js"],"names":["hello","name","console","log"],"mappings":"AACA,SAASA,MAAMC,GACdC,QAAQC,IAAI,SAAWF,GAExBD,MAAM","file":"index.js"} \ No newline at end of file diff --git a/test/expected/build/application.l/dest/subdir/thirdparty/File1.js.map b/test/expected/build/application.l/dest/subdir/thirdparty/File1.js.map deleted file mode 100644 index 1c04d432d..000000000 --- a/test/expected/build/application.l/dest/subdir/thirdparty/File1.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["File1-dbg.js"],"names":["hello","name","console","log"],"mappings":"AACA,SAASA,MAAMC,GACdC,QAAQC,IAAI,SAAWF,GAExBD,MAAM","file":"File1.js"} \ No newline at end of file diff --git a/test/expected/build/application.l/dest/test.js.map b/test/expected/build/application.l/dest/test.js.map deleted file mode 100644 index 99a31b097..000000000 --- a/test/expected/build/application.l/dest/test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAI,WACjB,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"} \ No newline at end of file diff --git "a/test/expected/build/application.\303\270/dest/Component.js.map" "b/test/expected/build/application.\303\270/dest/Component.js.map" deleted file mode 100644 index 97f5dc393..000000000 --- "a/test/expected/build/application.\303\270/dest/Component.js.map" +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js.map b/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js.map deleted file mode 100644 index e347f93df..000000000 --- a/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"sap-ui-core.js"} \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js.map b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js.map deleted file mode 100644 index 694230468..000000000 --- a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Global-dbg.js"],"names":["console","log"],"mappings":";;;AAIAA,QAAQC,IAAI","file":"Global.js"} \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js.map b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js.map deleted file mode 100644 index 75511857a..000000000 --- a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Core-dbg.js"],"names":["console","log"],"mappings":";;;AAIAA,QAAQC,IAAI","file":"Core.js"} \ No newline at end of file diff --git a/test/expected/build/library.d/dest/resources/library/d/some.js.map b/test/expected/build/library.d/dest/resources/library/d/some.js.map deleted file mode 100644 index bc2b57a0a..000000000 --- a/test/expected/build/library.d/dest/resources/library/d/some.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":";;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/library.e/dest/resources/library/e/library.js.map b/test/expected/build/library.e/dest/resources/library/e/library.js.map deleted file mode 100644 index bd84007b6..000000000 --- a/test/expected/build/library.e/dest/resources/library/e/library.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["library-dbg.js"],"names":["console","log"],"mappings":";;;;;AAKAA,QAAQC,IAAI","file":"library.js"} \ No newline at end of file diff --git a/test/expected/build/library.e/dest/resources/library/e/some.js.map b/test/expected/build/library.e/dest/resources/library/e/some.js.map deleted file mode 100644 index bad3019d4..000000000 --- a/test/expected/build/library.e/dest/resources/library/e/some.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":";;;;;AAKAA,QAAQC,IAAI","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js.map deleted file mode 100644 index 96488949b..000000000 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js.map deleted file mode 100644 index 178f39969..000000000 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["TodoComponent-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"TodoComponent.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json index bdea7f3d7..628c4b6fa 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json @@ -31,11 +31,6 @@ "sap/ui/core/UIComponent.js" ] }, - { - "name": "Component.js.map", - "size": 208, - "isDebug": true - }, { "name": "TodoComponent-dbg.js", "module": "library/h/components/TodoComponent.js", @@ -49,14 +44,9 @@ "size": 96, "format": "raw" }, - { - "name": "TodoComponent.js.map", - "size": 133, - "isDebug": true - }, { "name": "resources.json", - "size": 3509 + "size": 3088 }, { "name": "subcomponent1/Component-dbg.js", @@ -87,11 +77,6 @@ "sap/ui/core/UIComponent.js" ] }, - { - "name": "subcomponent1/Component.js.map", - "size": 208, - "isDebug": true - }, { "name": "subcomponent2/Component-dbg.js", "module": "library/h/components/subcomponent2/Component.js", @@ -121,11 +106,6 @@ "sap/ui/core/UIComponent.js" ] }, - { - "name": "subcomponent2/Component.js.map", - "size": 208, - "isDebug": true - }, { "name": "subcomponent3/Component-dbg.js", "module": "library/h/components/subcomponent3/Component.js", @@ -154,11 +134,6 @@ "required": [ "sap/ui/core/UIComponent.js" ] - }, - { - "name": "subcomponent3/Component.js.map", - "size": 208, - "isDebug": true } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js.map deleted file mode 100644 index 96488949b..000000000 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json index e610cb752..229bc59ec 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json @@ -30,14 +30,9 @@ "sap/ui/core/UIComponent.js" ] }, - { - "name": "Component.js.map", - "size": 208, - "isDebug": true - }, { "name": "resources.json", - "size": 820 + "size": 745 } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js.map deleted file mode 100644 index 96488949b..000000000 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json index 3a981a492..51c37a4d5 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json @@ -30,14 +30,9 @@ "sap/ui/core/UIComponent.js" ] }, - { - "name": "Component.js.map", - "size": 208, - "isDebug": true - }, { "name": "resources.json", - "size": 820 + "size": 745 } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js.map deleted file mode 100644 index 96488949b..000000000 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json index bcf8ccf95..55fc009c5 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json @@ -30,14 +30,9 @@ "sap/ui/core/UIComponent.js" ] }, - { - "name": "Component.js.map", - "size": 208, - "isDebug": true - }, { "name": "resources.json", - "size": 820 + "size": 745 } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js.map deleted file mode 100644 index eed1a2f12..000000000 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["library-dbg.designtime.js"],"names":["myexport","String"],"mappings":";;;AAOA,IAAIA,SAAY,WAEf,aAEAC,OAAO,OAJO","file":"library.designtime.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js.map deleted file mode 100644 index 0e96bde9b..000000000 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["file-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"file.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js.map deleted file mode 100644 index fc4ea2654..000000000 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["library-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"library.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js.map deleted file mode 100644 index d696f9d1e..000000000 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["not-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"not.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json index b7eff7d8b..f1a4d86f0 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json @@ -35,11 +35,6 @@ "sap/ui/core/UIComponent.js" ] }, - { - "name": "components/Component.js.map", - "size": 208, - "isDebug": true - }, { "name": "components/TodoComponent-dbg.js", "module": "library/h/components/TodoComponent.js", @@ -53,11 +48,6 @@ "size": 96, "format": "raw" }, - { - "name": "components/TodoComponent.js.map", - "size": 133, - "isDebug": true - }, { "name": "components/subcomponent1/Component-dbg.js", "module": "library/h/components/subcomponent1/Component.js", @@ -87,11 +77,6 @@ "sap/ui/core/UIComponent.js" ] }, - { - "name": "components/subcomponent1/Component.js.map", - "size": 208, - "isDebug": true - }, { "name": "components/subcomponent2/Component-dbg.js", "module": "library/h/components/subcomponent2/Component.js", @@ -121,11 +106,6 @@ "sap/ui/core/UIComponent.js" ] }, - { - "name": "components/subcomponent2/Component.js.map", - "size": 208, - "isDebug": true - }, { "name": "components/subcomponent3/Component-dbg.js", "module": "library/h/components/subcomponent3/Component.js", @@ -155,11 +135,6 @@ "sap/ui/core/UIComponent.js" ] }, - { - "name": "components/subcomponent3/Component.js.map", - "size": 208, - "isDebug": true - }, { "name": "customBundle-dbg.js", "module": "library/h/customBundle.js", @@ -210,12 +185,6 @@ "format": "raw", "designtime": true }, - { - "name": "designtime/library.designtime.js.map", - "size": 167, - "isDebug": true, - "designtime": true - }, { "name": "file-dbg.js", "module": "library/h/file.js", @@ -229,11 +198,6 @@ "size": 87, "format": "raw" }, - { - "name": "file.js.map", - "size": 115, - "isDebug": true - }, { "name": "i18n/messagebundle.properties", "module": "library/h/i18n/messagebundle.properties", @@ -261,11 +225,6 @@ "size": 93, "format": "raw" }, - { - "name": "library.js.map", - "size": 121, - "isDebug": true - }, { "name": "manifest.json", "module": "library/h/manifest.json", @@ -284,14 +243,9 @@ "size": 95, "format": "raw" }, - { - "name": "not.js.map", - "size": 113, - "isDebug": true - }, { "name": "resources.json", - "size": 6749 + "size": 5873 }, { "name": "some-dbg.js", @@ -313,11 +267,6 @@ "included": [ "library/h/other.js" ] - }, - { - "name": "some.js.map", - "size": 116, - "isDebug": true } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js.map deleted file mode 100644 index d62492183..000000000 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":";;;;AAIAA,QAAQC,IAAI","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/Component.js.map b/test/expected/build/library.h/dest/resources/library/h/components/Component.js.map deleted file mode 100644 index 96488949b..000000000 --- a/test/expected/build/library.h/dest/resources/library/h/components/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js.map b/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js.map deleted file mode 100644 index 178f39969..000000000 --- a/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["TodoComponent-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"TodoComponent.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js.map b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js.map deleted file mode 100644 index 96488949b..000000000 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js.map b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js.map deleted file mode 100644 index 96488949b..000000000 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js.map b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js.map deleted file mode 100644 index 96488949b..000000000 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js.map b/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js.map deleted file mode 100644 index eed1a2f12..000000000 --- a/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["library-dbg.designtime.js"],"names":["myexport","String"],"mappings":";;;AAOA,IAAIA,SAAY,WAEf,aAEAC,OAAO,OAJO","file":"library.designtime.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/file.js.map b/test/expected/build/library.h/dest/resources/library/h/file.js.map deleted file mode 100644 index 0e96bde9b..000000000 --- a/test/expected/build/library.h/dest/resources/library/h/file.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["file-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"file.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/library.js.map b/test/expected/build/library.h/dest/resources/library/h/library.js.map deleted file mode 100644 index fc4ea2654..000000000 --- a/test/expected/build/library.h/dest/resources/library/h/library.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["library-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"library.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/not.js.map b/test/expected/build/library.h/dest/resources/library/h/not.js.map deleted file mode 100644 index d696f9d1e..000000000 --- a/test/expected/build/library.h/dest/resources/library/h/not.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["not-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"not.js"} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/some.js.map b/test/expected/build/library.h/dest/resources/library/h/some.js.map deleted file mode 100644 index d62492183..000000000 --- a/test/expected/build/library.h/dest/resources/library/h/some.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":";;;;AAIAA,QAAQC,IAAI","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/some.js.map b/test/expected/build/library.l/dest/resources/library/l/some.js.map deleted file mode 100644 index a7bf0ac2b..000000000 --- a/test/expected/build/library.l/dest/resources/library/l/some.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["some-dbg.js"],"names":["sap","ui","define","SomeFunction"],"mappings":";;;AAIAA,IAAIC,GAAGC,OAAO,GACb,WACA,aAOA,IAAIC,EAAe,cAEF","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/subdir/index.js.map b/test/expected/build/library.l/dest/resources/library/l/subdir/index.js.map deleted file mode 100644 index 9ebd8bf4e..000000000 --- a/test/expected/build/library.l/dest/resources/library/l/subdir/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index-dbg.js"],"names":["hello","name","console","log"],"mappings":"AACA,SAASA,MAAMC,GACdC,QAAQC,IAAI,SAAWF,GAExBD,MAAM","file":"index.js"} \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js.map b/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js.map deleted file mode 100644 index 1c04d432d..000000000 --- a/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["File1-dbg.js"],"names":["hello","name","console","log"],"mappings":"AACA,SAASA,MAAMC,GACdC,QAAQC,IAAI,SAAWF,GAExBD,MAAM","file":"File1.js"} \ No newline at end of file diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js.map" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js.map" deleted file mode 100644 index bc2b57a0a..000000000 --- "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js.map" +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":";;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js.map b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js.map deleted file mode 100644 index e347f93df..000000000 --- a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"sap-ui-core.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js.map b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js.map deleted file mode 100644 index 694230468..000000000 --- a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Global-dbg.js"],"names":["console","log"],"mappings":";;;AAIAA,QAAQC,IAAI","file":"Global.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js.map b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js.map deleted file mode 100644 index 75511857a..000000000 --- a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Core-dbg.js"],"names":["console","log"],"mappings":";;;AAIAA,QAAQC,IAAI","file":"Core.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map deleted file mode 100644 index a9b380967..000000000 --- a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["sap-ui-core-dbg.js"],"names":["thisShouldBeOverwritten","console","log"],"mappings":"CAAA,WACC,IAAIA,EAA0B,KAC9BC,QAAQC,IAAIF,IAFb","file":"sap-ui-core.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js.map b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js.map deleted file mode 100644 index d83752ade..000000000 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["Core-dbg.js"],"names":["core","console","log"],"mappings":"CAAA,WACC,IAAIA,EAAO,KACXC,QAAQC,IAAIF,IAFb","file":"Core.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js.map b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js.map deleted file mode 100644 index a4b534c3a..000000000 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["one-dbg.js"],"names":["One"],"mappings":"AAAA,SAASA,MACR,OAAO","file":"one.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js.map b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js.map deleted file mode 100644 index c8712c5c9..000000000 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":";;;AAGAA,QAAQC,IAAI","file":"some.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js.map b/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js.map deleted file mode 100644 index 17ebf5849..000000000 --- a/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["ui5loader-autoconfig-dbg.js"],"names":["thisIsTheUi5LoaderAutoconfig","console","log"],"mappings":"CAAA,WACC,IAAIA,EAA+B,KACnCC,QAAQC,IAAIF,IAFb","file":"ui5loader-autoconfig.js"} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/ui5loader.js.map b/test/expected/build/sap.ui.core/preload/resources/ui5loader.js.map deleted file mode 100644 index 6c94ed09e..000000000 --- a/test/expected/build/sap.ui.core/preload/resources/ui5loader.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["ui5loader-dbg.js"],"names":["thisIsTheUi5Loader","console","log"],"mappings":"CAAA,WACC,IAAIA,EAAqB,KACzBC,QAAQC,IAAIF,IAFb","file":"ui5loader.js"} \ No newline at end of file diff --git a/test/lib/tasks/bundlers/generateLibraryPreload.integration.js b/test/lib/tasks/bundlers/generateLibraryPreload.integration.js index d5e99f08e..e6d57d741 100644 --- a/test/lib/tasks/bundlers/generateLibraryPreload.integration.js +++ b/test/lib/tasks/bundlers/generateLibraryPreload.integration.js @@ -99,7 +99,7 @@ test("integration: build sap.ui.core with library preload", async (t) => { assert.directoryDeepEqual(destPath, expectedPath); // Check for all file contents - t.deepEqual(expectedFiles.length, 23, "23 files are expected"); + t.deepEqual(expectedFiles.length, 17, "17 files are expected"); expectedFiles.forEach((expectedFile) => { const relativeFile = path.relative(expectedPath, expectedFile); const destFile = path.join(destPath, relativeFile); diff --git a/test/lib/tasks/minify.js b/test/lib/tasks/minify.js index 9517de151..7e0d6b3df 100644 --- a/test/lib/tasks/minify.js +++ b/test/lib/tasks/minify.js @@ -15,7 +15,8 @@ test("integration: minify", async (t) => { setTag: sinon.stub(), STANDARD_TAGS: { HasDebugVariant: "1️⃣", - IsDebugVariant: "2️⃣" + IsDebugVariant: "2️⃣", + OmitFromBuildResult: "3️⃣" } }; const reader = resourceFactory.createAdapter({ @@ -69,9 +70,11 @@ test();`; } t.deepEqual(await resSourceMap.getString(), expectedSourceMap, "Correct source map content"); - t.is(taskUtil.setTag.callCount, 2, "taskUtil.setTag was called twice"); + t.is(taskUtil.setTag.callCount, 3, "taskUtil.setTag was called 3 times"); t.deepEqual(taskUtil.setTag.getCall(0).args, [res, "1️⃣"], "First taskUtil.setTag call with expected arguments"); t.deepEqual(taskUtil.setTag.getCall(1).args, [resDbg, "2️⃣"], "Second taskUtil.setTag call with expected arguments"); + t.deepEqual(taskUtil.setTag.getCall(2).args, [resSourceMap, "3️⃣"], + "Third taskUtil.setTag call with expected arguments"); }); From 268dd16091c515ec0c922ea23af437d9aa8bf3ea Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 20 Jan 2022 16:24:54 +0100 Subject: [PATCH 22/74] [BREAKING] generateResourcesJson: Make 'dependencies' parameter mandatory --- lib/tasks/generateResourcesJson.js | 17 ++++--------- test/lib/tasks/generateResourcesJson.js | 24 +++++++++++++++++-- .../types/themeLibrary/ThemeLibraryBuilder.js | 5 ++++ 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/lib/tasks/generateResourcesJson.js b/lib/tasks/generateResourcesJson.js index f405b25d1..9c99f6161 100644 --- a/lib/tasks/generateResourcesJson.js +++ b/lib/tasks/generateResourcesJson.js @@ -96,7 +96,7 @@ function getCreatorOptions(projectName) { * @alias module:@ui5/builder.tasks.generateResourcesJson * @param {object} parameters Parameters * @param {module:@ui5/fs.DuplexCollection} parameters.workspace DuplexCollection to read and write files - * @param {module:@ui5/fs.AbstractReader} [parameters.dependencies] Reader or Collection to read dependency files + * @param {module:@ui5/fs.AbstractReader} parameters.dependencies Reader or Collection to read dependency files * @param {module:@ui5/builder.tasks.TaskUtil|object} [parameters.taskUtil] TaskUtil * @param {object} parameters.options Options * @param {string} parameters.options.projectName Project name @@ -104,24 +104,17 @@ function getCreatorOptions(projectName) { */ module.exports = async function({workspace, dependencies, taskUtil, options: {projectName}}) { let resources = await workspace.byGlob(["/resources/**/*"].concat(DEFAULT_EXCLUDES)); - - // TODO 3.0: Make dependencies parameter mandatory - let dependencyResources; - if (dependencies) { - dependencyResources = + let dependencyResources = await dependencies.byGlob("/resources/**/*.{js,json,xml,html,properties,library}"); - } if (taskUtil) { // Filter out resources that will be omitted from the build results resources = resources.filter((resource) => { return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.OmitFromBuildResult); }); - if (dependencyResources) { - dependencyResources = dependencyResources.filter((resource) => { - return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.OmitFromBuildResult); - }); - } + dependencyResources = dependencyResources.filter((resource) => { + return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.OmitFromBuildResult); + }); } const resourceLists = await resourceListCreator({ diff --git a/test/lib/tasks/generateResourcesJson.js b/test/lib/tasks/generateResourcesJson.js index af8b7b064..1c2737605 100644 --- a/test/lib/tasks/generateResourcesJson.js +++ b/test/lib/tasks/generateResourcesJson.js @@ -26,6 +26,12 @@ function createWorkspace() { }); } +function createDependencies() { + return { + byGlob: sinon.stub().resolves([]) + }; +} + test.beforeEach((t) => { t.context.resourceListCreatorStub = sinon.stub(); t.context.resourceListCreatorStub.returns(Promise.resolve([])); @@ -39,12 +45,26 @@ test.afterEach.always((t) => { mock.stopAll(); }); +test.serial("Missing 'dependencies' parameter", async (t) => { + const {generateResourcesJson} = t.context; + + await t.throwsAsync(generateResourcesJson({ + workspace: createWorkspace(), + options: { + projectName: "sap.ui.core" + } + }), { + // Not passing dependencies should result into a TypeError + name: "TypeError" + }); +}); + test.serial("empty resources (sap.ui.core)", async (t) => { const {generateResourcesJson, resourceListCreatorStub} = t.context; const result = await generateResourcesJson({ workspace: createWorkspace(), - dependencies: undefined, + dependencies: createDependencies(), options: { projectName: "sap.ui.core" } @@ -69,7 +89,7 @@ test.serial("empty resources (my.lib)", async (t) => { const result = await generateResourcesJson({ workspace: createWorkspace(), - dependencies: undefined, + dependencies: createDependencies(), options: { projectName: "my.lib" } diff --git a/test/lib/types/themeLibrary/ThemeLibraryBuilder.js b/test/lib/types/themeLibrary/ThemeLibraryBuilder.js index 7deab2f94..687d77966 100644 --- a/test/lib/types/themeLibrary/ThemeLibraryBuilder.js +++ b/test/lib/types/themeLibrary/ThemeLibraryBuilder.js @@ -9,6 +9,11 @@ test("tasks", async (t) => { byGlob: async () => { return []; } + }, + dependencies: { + byGlob: async () => { + return []; + } } }, buildContext: { From 26084d10cb31effd41d5052791ae5582457170a6 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Fri, 21 Jan 2022 10:30:12 +0000 Subject: [PATCH 23/74] In-range update of npm dependencies --- package-lock.json | 260 +++++++++++++++++++++++----------------------- 1 file changed, 130 insertions(+), 130 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6548b878d..fbf0815fc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -76,20 +76,20 @@ } }, "node_modules/@babel/core": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz", - "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz", + "integrity": "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.7", + "@babel/generator": "^7.16.8", "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.7", + "@babel/parser": "^7.16.10", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7", + "@babel/traverse": "^7.16.10", + "@babel/types": "^7.16.8", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -106,9 +106,9 @@ } }, "node_modules/@babel/core/node_modules/@babel/parser": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", - "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", + "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -305,9 +305,9 @@ } }, "node_modules/@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", @@ -400,9 +400,9 @@ } }, "node_modules/@babel/template/node_modules/@babel/parser": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", - "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", + "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -412,9 +412,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", - "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", + "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", @@ -423,7 +423,7 @@ "@babel/helper-function-name": "^7.16.7", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.8", + "@babel/parser": "^7.16.10", "@babel/types": "^7.16.8", "debug": "^4.1.0", "globals": "^11.1.0" @@ -433,9 +433,9 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/parser": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", - "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", + "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -814,13 +814,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.27.tgz", - "integrity": "sha512-JyxAglSM/pb9paG5ZNuKrf5IUpzLzQA3khjWGF9oESELCLQlt6O3YyPMR2A69wIpYWrf5mScZ8YY8TJKOI/1kQ==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.28.tgz", + "integrity": "sha512-mQpfEjmHVxmWKaup0HL6tLMv2HqjjJu7XT4/q0IoUXYXC4xKG8lIVn5YChJqxBTLPuQjzas7u7i9L4PAWJZRtA==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.27", + "@vue/shared": "3.2.28", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } @@ -835,27 +835,27 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.27.tgz", - "integrity": "sha512-NyQ7nEbopUBPUMHM4c3FPCbFbnQwptoPjW5Y5qfJ7hfiCNhOuhQsDNqi5JYKBxfpxiFNwjcN9F8t1AsnLrDloQ==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.28.tgz", + "integrity": "sha512-KA4yXceLteKC7VykvPnViUixemQw3A+oii+deSbZJOQKQKVh1HLosI10qxa8ImPCyun41+wG3uGR+tW7eu1W6Q==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.2.27", - "@vue/shared": "3.2.27" + "@vue/compiler-core": "3.2.28", + "@vue/shared": "3.2.28" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.27.tgz", - "integrity": "sha512-WyecUhLN5UAQAr2QlmG2nA56OEnhZJaBnSw0G1tazb9rwDuK0V9tnbIXbQgmQlx+x4sJxgg61yWGcIXfilTl3A==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.28.tgz", + "integrity": "sha512-zB0WznfEBb4CbGBHzhboHDKVO5nxbkbxxFo9iVlxObP7a9/qvA5kkZEuT7nXP52f3b3qEfmVTjIT23Lo1ndZdQ==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.27", - "@vue/compiler-dom": "3.2.27", - "@vue/compiler-ssr": "3.2.27", - "@vue/reactivity-transform": "3.2.27", - "@vue/shared": "3.2.27", + "@vue/compiler-core": "3.2.28", + "@vue/compiler-dom": "3.2.28", + "@vue/compiler-ssr": "3.2.28", + "@vue/reactivity-transform": "3.2.28", + "@vue/shared": "3.2.28", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -872,32 +872,32 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.27.tgz", - "integrity": "sha512-+l09t319iV7HVSrXfBw9OLwMZIPOFTXmHjZ61Bc5ZcwKqOYAR4uTurKpoXAfcSc5qs/q6WdE9jY3nrP0LUEMQQ==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.28.tgz", + "integrity": "sha512-z8rck1PDTu20iLyip9lAvIhaO40DUJrw3Zv0mS4Apfh3PlfWpF5dhsO5g0dgt213wgYsQIYVIlU9cfrYapqRgg==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.2.27", - "@vue/shared": "3.2.27" + "@vue/compiler-dom": "3.2.28", + "@vue/shared": "3.2.28" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.27.tgz", - "integrity": "sha512-67//61ObGxGnVrPhjygocb24eYUh+TFMhkm7szm8v5XdKXjkNl7qgIOflwGvUnwuIRJmr9nZ7+PvY0fL+H2upA==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.28.tgz", + "integrity": "sha512-zE8idNkOPnBDd2tKSIk84hOQZ+jXKvSy5FoIIVlcNEJHnCFnQ3maqeSJ9KoB2Rf6EXUhFTiTDNRlYlXmT2uHbQ==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.27", - "@vue/shared": "3.2.27", + "@vue/compiler-core": "3.2.28", + "@vue/shared": "3.2.28", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "node_modules/@vue/shared": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.27.tgz", - "integrity": "sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.28.tgz", + "integrity": "sha512-eMQ8s9j8FpbGHlgUAaj/coaG3Q8YtMsoWL/RIHTsE3Ex7PUTyr7V91vB5HqWB5Sn8m4RXTHGO22/skoTUYvp0A==", "dev": true }, "node_modules/acorn": { @@ -1502,9 +1502,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001300", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz", - "integrity": "sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA==", + "version": "1.0.30001301", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", + "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", "dev": true, "funding": { "type": "opencollective", @@ -2618,9 +2618,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.48", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.48.tgz", - "integrity": "sha512-RT3SEmpv7XUA+tKXrZGudAWLDpa7f8qmhjcLaM6OD/ERxjQ/zAojT8/Vvo0BSzbArkElFZ1WyZ9FuwAYbkdBNA==", + "version": "1.4.49", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.49.tgz", + "integrity": "sha512-k/0t1TRfonHIp8TJKfjBu2cKj8MqYTiEpOhci+q7CVEE5xnCQnx1pTa+V8b/sdhe4S3PR4p4iceEQWhGrKQORQ==", "dev": true }, "node_modules/emittery": { @@ -2895,9 +2895,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "37.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.1.tgz", - "integrity": "sha512-Y9UhH9BQD40A9P1NOxj59KrSLZb9qzsqYkLCZv30bNeJ7C9eaumTWhh9beiGqvK7m821Hj1dTsZ5LOaFIUTeTg==", + "version": "37.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.2.tgz", + "integrity": "sha512-yYvCkaq+7A+kWBi2fxJFgWErdGOth5W+h1XqVnJg4qWonWo99K8i7Hmow6HWaiixHShNobtvq66f9HG/dJZ+WA==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.17.0", @@ -6222,9 +6222,9 @@ } }, "node_modules/resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz", + "integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==", "dev": true, "dependencies": { "is-core-module": "^2.8.0", @@ -7798,20 +7798,20 @@ "dev": true }, "@babel/core": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz", - "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz", + "integrity": "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.7", + "@babel/generator": "^7.16.8", "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.7", + "@babel/parser": "^7.16.10", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7", + "@babel/traverse": "^7.16.10", + "@babel/types": "^7.16.8", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -7821,9 +7821,9 @@ }, "dependencies": { "@babel/parser": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", - "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", + "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", "dev": true }, "semver": { @@ -7970,9 +7970,9 @@ } }, "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -8040,17 +8040,17 @@ }, "dependencies": { "@babel/parser": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", - "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", + "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", "dev": true } } }, "@babel/traverse": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", - "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", + "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", @@ -8059,16 +8059,16 @@ "@babel/helper-function-name": "^7.16.7", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.8", + "@babel/parser": "^7.16.10", "@babel/types": "^7.16.8", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { "@babel/parser": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", - "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", + "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", "dev": true } } @@ -8369,13 +8369,13 @@ } }, "@vue/compiler-core": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.27.tgz", - "integrity": "sha512-JyxAglSM/pb9paG5ZNuKrf5IUpzLzQA3khjWGF9oESELCLQlt6O3YyPMR2A69wIpYWrf5mScZ8YY8TJKOI/1kQ==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.28.tgz", + "integrity": "sha512-mQpfEjmHVxmWKaup0HL6tLMv2HqjjJu7XT4/q0IoUXYXC4xKG8lIVn5YChJqxBTLPuQjzas7u7i9L4PAWJZRtA==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.27", + "@vue/shared": "3.2.28", "estree-walker": "^2.0.2", "source-map": "^0.6.1" }, @@ -8389,27 +8389,27 @@ } }, "@vue/compiler-dom": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.27.tgz", - "integrity": "sha512-NyQ7nEbopUBPUMHM4c3FPCbFbnQwptoPjW5Y5qfJ7hfiCNhOuhQsDNqi5JYKBxfpxiFNwjcN9F8t1AsnLrDloQ==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.28.tgz", + "integrity": "sha512-KA4yXceLteKC7VykvPnViUixemQw3A+oii+deSbZJOQKQKVh1HLosI10qxa8ImPCyun41+wG3uGR+tW7eu1W6Q==", "dev": true, "requires": { - "@vue/compiler-core": "3.2.27", - "@vue/shared": "3.2.27" + "@vue/compiler-core": "3.2.28", + "@vue/shared": "3.2.28" } }, "@vue/compiler-sfc": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.27.tgz", - "integrity": "sha512-WyecUhLN5UAQAr2QlmG2nA56OEnhZJaBnSw0G1tazb9rwDuK0V9tnbIXbQgmQlx+x4sJxgg61yWGcIXfilTl3A==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.28.tgz", + "integrity": "sha512-zB0WznfEBb4CbGBHzhboHDKVO5nxbkbxxFo9iVlxObP7a9/qvA5kkZEuT7nXP52f3b3qEfmVTjIT23Lo1ndZdQ==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.27", - "@vue/compiler-dom": "3.2.27", - "@vue/compiler-ssr": "3.2.27", - "@vue/reactivity-transform": "3.2.27", - "@vue/shared": "3.2.27", + "@vue/compiler-core": "3.2.28", + "@vue/compiler-dom": "3.2.28", + "@vue/compiler-ssr": "3.2.28", + "@vue/reactivity-transform": "3.2.28", + "@vue/shared": "3.2.28", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -8425,32 +8425,32 @@ } }, "@vue/compiler-ssr": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.27.tgz", - "integrity": "sha512-+l09t319iV7HVSrXfBw9OLwMZIPOFTXmHjZ61Bc5ZcwKqOYAR4uTurKpoXAfcSc5qs/q6WdE9jY3nrP0LUEMQQ==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.28.tgz", + "integrity": "sha512-z8rck1PDTu20iLyip9lAvIhaO40DUJrw3Zv0mS4Apfh3PlfWpF5dhsO5g0dgt213wgYsQIYVIlU9cfrYapqRgg==", "dev": true, "requires": { - "@vue/compiler-dom": "3.2.27", - "@vue/shared": "3.2.27" + "@vue/compiler-dom": "3.2.28", + "@vue/shared": "3.2.28" } }, "@vue/reactivity-transform": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.27.tgz", - "integrity": "sha512-67//61ObGxGnVrPhjygocb24eYUh+TFMhkm7szm8v5XdKXjkNl7qgIOflwGvUnwuIRJmr9nZ7+PvY0fL+H2upA==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.28.tgz", + "integrity": "sha512-zE8idNkOPnBDd2tKSIk84hOQZ+jXKvSy5FoIIVlcNEJHnCFnQ3maqeSJ9KoB2Rf6EXUhFTiTDNRlYlXmT2uHbQ==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.27", - "@vue/shared": "3.2.27", + "@vue/compiler-core": "3.2.28", + "@vue/shared": "3.2.28", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "@vue/shared": { - "version": "3.2.27", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.27.tgz", - "integrity": "sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA==", + "version": "3.2.28", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.28.tgz", + "integrity": "sha512-eMQ8s9j8FpbGHlgUAaj/coaG3Q8YtMsoWL/RIHTsE3Ex7PUTyr7V91vB5HqWB5Sn8m4RXTHGO22/skoTUYvp0A==", "dev": true }, "acorn": { @@ -8894,9 +8894,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001300", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz", - "integrity": "sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA==", + "version": "1.0.30001301", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", + "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", "dev": true }, "catharsis": { @@ -9767,9 +9767,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.48", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.48.tgz", - "integrity": "sha512-RT3SEmpv7XUA+tKXrZGudAWLDpa7f8qmhjcLaM6OD/ERxjQ/zAojT8/Vvo0BSzbArkElFZ1WyZ9FuwAYbkdBNA==", + "version": "1.4.49", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.49.tgz", + "integrity": "sha512-k/0t1TRfonHIp8TJKfjBu2cKj8MqYTiEpOhci+q7CVEE5xnCQnx1pTa+V8b/sdhe4S3PR4p4iceEQWhGrKQORQ==", "dev": true }, "emittery": { @@ -10056,9 +10056,9 @@ "requires": {} }, "eslint-plugin-jsdoc": { - "version": "37.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.1.tgz", - "integrity": "sha512-Y9UhH9BQD40A9P1NOxj59KrSLZb9qzsqYkLCZv30bNeJ7C9eaumTWhh9beiGqvK7m821Hj1dTsZ5LOaFIUTeTg==", + "version": "37.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.2.tgz", + "integrity": "sha512-yYvCkaq+7A+kWBi2fxJFgWErdGOth5W+h1XqVnJg4qWonWo99K8i7Hmow6HWaiixHShNobtvq66f9HG/dJZ+WA==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.17.0", @@ -12502,9 +12502,9 @@ } }, "resolve": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", - "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz", + "integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==", "dev": true, "requires": { "is-core-module": "^2.8.0", From dbf6c0694693070f73e9f96edef90f094d5bf721 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Mon, 24 Jan 2022 11:20:07 +0100 Subject: [PATCH 24/74] [BREAKING] Require Node.js >= 16.13.2 / npm >= 8 BREAKING CHANGE: Support for older Node.js and npm releases has been dropped. Only Node.js v16.13.2 and npm v8 or higher are supported. --- .github/workflows/github-ci.yml | 4 ++-- azure-pipelines.yml | 20 +++++++------------- package-lock.json | 4 ++-- package.json | 4 ++-- 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/.github/workflows/github-ci.yml b/.github/workflows/github-ci.yml index cbbf77c58..5a8462d7e 100644 --- a/.github/workflows/github-ci.yml +++ b/.github/workflows/github-ci.yml @@ -20,10 +20,10 @@ jobs: - uses: actions/checkout@v2 - - name: Use Node.js LTS 14.x + - name: Use Node.js LTS 16.x uses: actions/setup-node@v2.4.1 with: - node-version: 14.x + node-version: 16.x - name: Install dependencies run: npm ci diff --git a/azure-pipelines.yml b/azure-pipelines.yml index dd0d98b00..75fd5c3e5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -8,24 +8,18 @@ trigger: strategy: matrix: - linux_node_10: + linux_node_lts_16: imageName: 'ubuntu-20.04' - node_version: 10.x - linux_node_lts_12: - imageName: 'ubuntu-20.04' - node_version: 12.x - linux_node_lts_14: - imageName: 'ubuntu-20.04' - node_version: 14.x + node_version: 16.x linux_node_latest: imageName: 'ubuntu-20.04' - node_version: 16.x + node_version: 17.x mac_node_latest: - imageName: 'macOS-10.15' - node_version: 16.x + imageName: 'macOS-11' + node_version: 17.x windows_node_latest: - imageName: 'windows-2019' - node_version: 16.x + imageName: 'windows-2022' + node_version: 17.x pool: vmImage: $(imageName) diff --git a/package-lock.json b/package-lock.json index fbf0815fc..713ac3db8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,8 +50,8 @@ "tap-xunit": "^2.4.1" }, "engines": { - "node": ">= 10", - "npm": ">= 5" + "node": ">= 16.13.2", + "npm": ">= 8" } }, "node_modules/@babel/code-frame": { diff --git a/package.json b/package.json index 0169af249..8bf21d5dc 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,8 @@ ], "main": "index.js", "engines": { - "node": ">= 10", - "npm": ">= 5" + "node": ">= 16.13.2", + "npm": ">= 8" }, "scripts": { "test": "npm run lint && npm run jsdoc-generate && npm run coverage && npm run depcheck", From 50e2c7c729b49e71e0b66050e56972daf55520aa Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Mon, 24 Jan 2022 11:44:34 +0100 Subject: [PATCH 25/74] [INTERNAL] Upgrade ESlint / Use ES2021 --- .eslintrc.js | 9 +- package-lock.json | 648 +++++++++++++++------------------------------- package.json | 4 +- 3 files changed, 211 insertions(+), 450 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 52b9f6836..b1b5dfca8 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,10 +1,7 @@ module.exports = { "env": { "node": true, - "es6": true - }, - "parserOptions": { - "ecmaVersion": 8 + "es2021": true }, "extends": ["eslint:recommended", "google"], "plugins": [ @@ -48,7 +45,9 @@ module.exports = { "valid-jsdoc": 0, // jsdoc/check-examples is temporarily set to "warn" as the rule causes issues in our CI // See: https://github.com/gajus/eslint-plugin-jsdoc/issues/508 - "jsdoc/check-examples": 1, + // Starting with ESLint v8, it needs to be disabled as it currently can't be supported + // See: https://github.com/eslint/eslint/issues/14745 + "jsdoc/check-examples": 0, "jsdoc/check-param-names": 2, "jsdoc/check-tag-names": 2, "jsdoc/check-types": 2, diff --git a/package-lock.json b/package-lock.json index 713ac3db8..4e5399a9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,9 +37,9 @@ "cross-env": "^7.0.3", "depcheck": "^1.4.3", "docdash": "^1.2.0", - "eslint": "^7.32.0", + "eslint": "^8.7.0", "eslint-config-google": "^0.14.0", - "eslint-plugin-jsdoc": "^37.6.1", + "eslint-plugin-jsdoc": "^37.6.3", "extract-zip": "^2.0.1", "mock-require": "^3.0.3", "nyc": "^15.1.0", @@ -493,58 +493,43 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", + "debug": "^4.3.2", + "espree": "^9.2.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/@eslint/eslintrc/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, "dependencies": { - "acorn": "^7.4.0", + "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "eslint-visitor-keys": "^3.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { @@ -571,6 +556,18 @@ "node": ">= 4" } }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -584,12 +581,12 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", + "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" }, @@ -966,15 +963,6 @@ "string-width": "^4.1.0" } }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2649,18 +2637,6 @@ "once": "^1.4.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -2826,49 +2802,44 @@ } }, "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz", + "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", "dev": true, "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.2.0", + "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -2876,7 +2847,7 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2895,9 +2866,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "37.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.2.tgz", - "integrity": "sha512-yYvCkaq+7A+kWBi2fxJFgWErdGOth5W+h1XqVnJg4qWonWo99K8i7Hmow6HWaiixHShNobtvq66f9HG/dJZ+WA==", + "version": "37.6.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.3.tgz", + "integrity": "sha512-Ysd1ZK4kL7DjjRJtWzb6Z7YANu7ndalu5PQBhOn07SlpKQ/+8JXvdtQ6yyADOO8w9xW5ZEEzuGY3KWhtk4CRYA==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.17.0", @@ -2917,43 +2888,46 @@ } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" } }, "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": ">=6" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", @@ -2962,48 +2936,45 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/eslint/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/eslint-visitor-keys": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/eslint/node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, "dependencies": { - "acorn": "^7.4.0", + "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "eslint-visitor-keys": "^3.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, "engines": { - "node": ">=4" + "node": ">=10.13.0" } }, "node_modules/eslint/node_modules/globals": { @@ -3021,13 +2992,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "engines": { - "node": ">= 4" + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/eslint/node_modules/type-fest": { @@ -4598,12 +4572,6 @@ "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", "dev": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -5852,15 +5820,6 @@ "node": ">=8" } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -6192,15 +6151,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -6818,94 +6768,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/table/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/table/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, "node_modules/taffydb": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", @@ -8112,43 +7974,37 @@ } }, "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", + "debug": "^4.3.2", + "espree": "^9.2.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, "requires": { - "acorn": "^7.4.0", + "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "eslint-visitor-keys": "^3.1.0" } }, "globals": { @@ -8166,6 +8022,15 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -8175,12 +8040,12 @@ } }, "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", + "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", "minimatch": "^3.0.4" } @@ -8501,12 +8366,6 @@ "string-width": "^4.1.0" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -9792,15 +9651,6 @@ "once": "^1.4.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -9944,85 +9794,72 @@ } }, "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz", + "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.2.0", + "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", + "glob-parent": "^6.0.1", "globals": "^13.6.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, "requires": { - "acorn": "^7.4.0", + "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "eslint-visitor-keys": "^3.1.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" } }, "globals": { @@ -10034,11 +9871,14 @@ "type-fest": "^0.20.2" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } }, "type-fest": { "version": "0.20.2", @@ -10056,9 +9896,9 @@ "requires": {} }, "eslint-plugin-jsdoc": { - "version": "37.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.2.tgz", - "integrity": "sha512-yYvCkaq+7A+kWBi2fxJFgWErdGOth5W+h1XqVnJg4qWonWo99K8i7Hmow6HWaiixHShNobtvq66f9HG/dJZ+WA==", + "version": "37.6.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.3.tgz", + "integrity": "sha512-Ysd1ZK4kL7DjjRJtWzb6Z7YANu7ndalu5PQBhOn07SlpKQ/+8JXvdtQ6yyADOO8w9xW5ZEEzuGY3KWhtk4CRYA==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.17.0", @@ -10072,36 +9912,44 @@ } }, "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", "dev": true, "requires": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", "dev": true }, "espree": { @@ -11278,12 +11126,6 @@ "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", "dev": true }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -12212,12 +12054,6 @@ "fromentries": "^1.2.0" } }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -12475,12 +12311,6 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -12942,74 +12772,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - } - } - }, "taffydb": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", diff --git a/package.json b/package.json index 8bf21d5dc..fb9603787 100644 --- a/package.json +++ b/package.json @@ -132,9 +132,9 @@ "cross-env": "^7.0.3", "depcheck": "^1.4.3", "docdash": "^1.2.0", - "eslint": "^7.32.0", + "eslint": "^8.7.0", "eslint-config-google": "^0.14.0", - "eslint-plugin-jsdoc": "^37.6.1", + "eslint-plugin-jsdoc": "^37.6.3", "extract-zip": "^2.0.1", "mock-require": "^3.0.3", "nyc": "^15.1.0", From e749b6ae0838f923b27dd0d7d34da2174c433f5f Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Mon, 24 Jan 2022 13:25:05 +0100 Subject: [PATCH 26/74] [FEATURE] Support ES2021 language features By upgrading espree to the latest version, ES2021 language features are now supported. --- lib/lbt/analyzer/JSModuleAnalyzer.js | 7 ++ lib/lbt/utils/parseUtils.js | 2 +- package-lock.json | 113 +++------------------- package.json | 2 +- test/fixtures/lbt/modules/es6-syntax.js | 5 + test/lib/lbt/analyzer/JSModuleAnalyzer.js | 1 + test/lib/lbt/utils/parseUtils.js | 6 ++ 7 files changed, 36 insertions(+), 100 deletions(-) diff --git a/lib/lbt/analyzer/JSModuleAnalyzer.js b/lib/lbt/analyzer/JSModuleAnalyzer.js index 0817b59b0..84b1a0b0c 100644 --- a/lib/lbt/analyzer/JSModuleAnalyzer.js +++ b/lib/lbt/analyzer/JSModuleAnalyzer.js @@ -64,6 +64,7 @@ const EnrichedVisitorKeys = (function() { BreakStatement: [], CallExpression: [], // special handling CatchClause: ["param", "body"], + ChainExpression: [], ClassBody: [], ClassDeclaration: [], ClassExpression: [], @@ -125,8 +126,10 @@ const EnrichedVisitorKeys = (function() { * All properties in an object pattern are executed. */ ObjectPattern: [], // properties + // PrivateIdentifier: [], // will come with ES2022 Program: [], Property: [], + // PropertyDefinition: [], // will come with ES2022 /* * argument of the rest element is always executed under the same condition as the rest element itself */ @@ -134,6 +137,7 @@ const EnrichedVisitorKeys = (function() { ReturnStatement: [], SequenceExpression: [], SpreadElement: [], // the argument of the spread operator always needs to be evaluated - argument + // StaticBlock: [], // will come with ES2022 Super: [], SwitchStatement: [], SwitchCase: ["test", "consequent"], // test and consequent are executed only conditionally @@ -174,6 +178,9 @@ const EnrichedVisitorKeys = (function() { // Check if the visitor-key exists in the available Syntax because // the list of visitor-keys does not match the available Syntax. if (!Syntax[type]) { + // Deprecated / removed: + // ExperimentalRestProperty + // ExperimentalSpreadProperty return; } // Ignore JSX visitor-keys because they aren't used. diff --git a/lib/lbt/utils/parseUtils.js b/lib/lbt/utils/parseUtils.js index 8e8f796a4..4f072c4e1 100644 --- a/lib/lbt/utils/parseUtils.js +++ b/lib/lbt/utils/parseUtils.js @@ -9,7 +9,7 @@ function parseJS(code, userOptions = {}) { // allowed options and their defaults const options = { comment: false, - ecmaVersion: 2020, + ecmaVersion: 2021, range: false, sourceType: "script", }; diff --git a/package-lock.json b/package-lock.json index 4e5399a9a..2f2c94069 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", "escope": "^3.6.0", - "espree": "^6.2.1", + "espree": "^9.3.0", "globby": "^11.1.0", "graceful-fs": "^4.2.9", "jsdoc": "^3.6.7", @@ -518,20 +518,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/@eslint/eslintrc/node_modules/espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", - "dev": true, - "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", @@ -2940,7 +2926,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", - "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -2951,20 +2936,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/eslint/node_modules/espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", - "dev": true, - "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3017,35 +2988,16 @@ } }, "node_modules/espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.1.0" }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/esprima": { @@ -7996,17 +7948,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", - "dev": true, - "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" - } - }, "globals": { "version": "13.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", @@ -9842,17 +9783,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", - "dev": true, - "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" - } - }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -9949,29 +9879,16 @@ "eslint-visitor-keys": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", - "dev": true + "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==" }, "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - } + "acorn": "^8.7.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.1.0" } }, "esprima": { diff --git a/package.json b/package.json index fb9603787..92eed1ea8 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", "escope": "^3.6.0", - "espree": "^6.2.1", + "espree": "^9.3.0", "globby": "^11.1.0", "graceful-fs": "^4.2.9", "jsdoc": "^3.6.7", diff --git a/test/fixtures/lbt/modules/es6-syntax.js b/test/fixtures/lbt/modules/es6-syntax.js index 5d6914f9b..2f9924594 100644 --- a/test/fixtures/lbt/modules/es6-syntax.js +++ b/test/fixtures/lbt/modules/es6-syntax.js @@ -40,4 +40,9 @@ sap.ui.define([ await Promise.resolve(); }; + // chain expression + if (m1?.foo?.bar) { + sap.ui.require(["conditional/module4"]); + } + }); diff --git a/test/lib/lbt/analyzer/JSModuleAnalyzer.js b/test/lib/lbt/analyzer/JSModuleAnalyzer.js index 93bd8bcef..10b5da6e5 100644 --- a/test/lib/lbt/analyzer/JSModuleAnalyzer.js +++ b/test/lib/lbt/analyzer/JSModuleAnalyzer.js @@ -493,6 +493,7 @@ test("ES6 Syntax", (t) => { "conditional/module1.js", "conditional/module2.js", "conditional/module3.js", + "conditional/module4.js", "static/module1.js", "static/module2.js", "static/module3.js", diff --git a/test/lib/lbt/utils/parseUtils.js b/test/lib/lbt/utils/parseUtils.js index 3971d763e..eec63d66d 100644 --- a/test/lib/lbt/utils/parseUtils.js +++ b/test/lib/lbt/utils/parseUtils.js @@ -18,3 +18,9 @@ test("successful parse step", (t) => { t.true(ast != null && typeof ast === "object"); t.is(ast.type, "Program"); }); + +test("successful parse step (ES2021 features)", (t) => { + const ast = parseJS("const x = 1_000_000_000;"); // numeric separators + t.true(ast != null && typeof ast === "object"); + t.is(ast.type, "Program"); +}); From 6f4588b3eb687178e557ac4fb36481104f9681a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20O=C3=9Fwald?= <1410947+matz3@users.noreply.github.com> Date: Tue, 25 Jan 2022 10:47:51 +0100 Subject: [PATCH 27/74] [FIX] Bundler: Ensure reproducibility for bundles with multiple parts (#689) Sort modules in preload sections alphabetically. This caused different bundle contents based on the order of modules that the resolver provides, which is not deterministic. Remove terser from size estimation as modules are now already optimized if the 'optimize' bundle option is enabled. This caused incorrect estimations about the bundle size which resulted into size differences of the individual parts. --- lib/lbt/bundle/AutoSplitter.js | 34 +++++---------- test/lib/lbt/bundle/AutoSplitter.js | 68 ++++++++++++++--------------- 2 files changed, 44 insertions(+), 58 deletions(-) diff --git a/lib/lbt/bundle/AutoSplitter.js b/lib/lbt/bundle/AutoSplitter.js index 114471f8a..5f3a9b776 100644 --- a/lib/lbt/bundle/AutoSplitter.js +++ b/lib/lbt/bundle/AutoSplitter.js @@ -1,6 +1,5 @@ "use strict"; -const terser = require("terser"); const {pd} = require("pretty-data"); const ModuleName = require("../utils/ModuleName"); @@ -8,7 +7,6 @@ const {SectionType} = require("./BundleDefinition"); const escapePropertiesFile = require("../utils/escapePropertiesFile"); const log = require("@ui5/logger").getLogger("lbt:bundle:AutoSplitter"); -const copyrightCommentsPattern = /copyright|\(c\)(?:[0-9]+|\s+[0-9A-za-z])|released under|license|\u00a9/i; const xmlHtmlPrePattern = /<(?:\w+:)?pre\b/; /** @@ -112,6 +110,7 @@ class AutoSplitter { resolvedModule.sections.forEach( (section) => { let currentSection; + let sequence; switch ( section.mode ) { case SectionType.Provided: // 'provided' sections are no longer needed in a fully resolved module @@ -131,16 +130,20 @@ class AutoSplitter { }); break; case SectionType.Preload: + sequence = section.modules.slice(); + // simple version: just sort alphabetically + sequence.sort(); + // NODE_TODO: sort by copyright: - // sequence = section.modules.slice(); // jsBuilder.beforeWriteFunctionPreloadSection((List) sequence); + currentSection = { mode: SectionType.Preload, filters: [] }; currentSection.name = section.name; currentModule.sections.push( currentSection ); - section.modules.forEach( (module) => { + sequence.forEach( (module) => { const moduleSize = moduleSizes[module]; if ( part + 1 < numberOfParts && totalSize + moduleSize / 2 > partSize ) { part++; @@ -195,26 +198,9 @@ class AutoSplitter { } if ( /\.js$/.test(module) ) { - // console.log("determining compressed size for %s", module); - let fileContent = await resource.buffer(); - if ( this.optimize ) { - // console.log("uglify %s start", module); - const result = await terser.minify({ - [resource.name]: String(fileContent) - }, { - warnings: false, // TODO configure? - compress: false, // TODO configure? - output: { - comments: copyrightCommentsPattern, - wrap_func_args: false - } - // , outFileName: resource.name - // , outSourceMap: true - }); - // console.log("uglify %s end", module); - fileContent = result.code; - } - // trace.debug("analyzed %s:%d%n", module, mw.getTargetLength()); + // No optimize / minify step here as the input should be + // either already optimized or not, based on the bundle options + const fileContent = await resource.buffer(); return fileContent.length; } else if ( /\.properties$/.test(module) ) { /* NODE-TODO minimize *.properties diff --git a/test/lib/lbt/bundle/AutoSplitter.js b/test/lib/lbt/bundle/AutoSplitter.js index c6a0874e0..4e704fd70 100644 --- a/test/lib/lbt/bundle/AutoSplitter.js +++ b/test/lib/lbt/bundle/AutoSplitter.js @@ -1,6 +1,5 @@ const test = require("ava"); const sinon = require("sinon"); -const terser = require("terser"); const {pd} = require("pretty-data"); const BundleResolver = require("../../../../lib/lbt/bundle/Resolver"); const AutoSplitter = require("../../../../lib/lbt/bundle/AutoSplitter"); @@ -55,7 +54,7 @@ test("integration: AutoSplitter with numberOfParts 1", async (t) => { defaultFileTypes: [".js", ".fragment.xml", ".view.xml", ".properties", ".json"], sections: [{ mode: "preload", - filters: ["a.js", "b.json"], + filters: ["x.view.xml", "c.properties", "b.json"], // intentionally unsorted resolve: false, resolveConditional: false, renderer: false @@ -67,7 +66,7 @@ test("integration: AutoSplitter with numberOfParts 1", async (t) => { name: `Component-preload-0.js`, sections: [{ mode: "preload", - filters: ["a.js", "b.json"], + filters: ["b.json", "c.properties", "x.view.xml"], // preload section modules should be sorted name: undefined }] }); @@ -155,11 +154,11 @@ test("_calcMinSize: compressedSize", async (t) => { }; } }; - const autpSplitter = new AutoSplitter(pool); - t.deepEqual(await autpSplitter._calcMinSize("mymodule.js"), 123); + const autoSplitter = new AutoSplitter(pool); + t.deepEqual(await autoSplitter._calcMinSize("mymodule.js"), 123); }); -test("_calcMinSize: js resource", async (t) => { +test("_calcMinSize: js resource (optimize=false)", async (t) => { const pool = { findResourceWithInfo: function() { return { @@ -172,13 +171,11 @@ test("_calcMinSize: js resource", async (t) => { }; } }; - const autpSplitter = new AutoSplitter(pool); - t.deepEqual(await autpSplitter._calcMinSize("mymodule.js"), 13); + const autoSplitter = new AutoSplitter(pool); + t.deepEqual(await autoSplitter._calcMinSize("mymodule.js"), 13); }); - -test.serial("_calcMinSize: uglify js resource", async (t) => { - const stubTerser = sinon.stub(terser, "minify").resolves({code: "123"}); +test.serial("_calcMinSize: js resource (optimize=true)", async (t) => { const pool = { findResourceWithInfo: function() { return { @@ -191,10 +188,13 @@ test.serial("_calcMinSize: uglify js resource", async (t) => { }; } }; - const autpSplitter = new AutoSplitter(pool); - autpSplitter.optimize = true; - t.deepEqual(await autpSplitter._calcMinSize("mymodule.js"), 3); - stubTerser.restore(); + const autoSplitter = new AutoSplitter(pool); + + // The optimize flag should not be taken into account and the resource + // should not get optimized by the AutoSplitter. + autoSplitter.optimize = true; + + t.deepEqual(await autoSplitter._calcMinSize("mymodule.js"), 13); }); test("_calcMinSize: properties resource", async (t) => { @@ -221,8 +221,8 @@ test("_calcMinSize: properties resource", async (t) => { }; } }; - const autpSplitter = new AutoSplitter(pool); - t.deepEqual(await autpSplitter._calcMinSize("mymodule.properties"), 10, "length of 1234\\u00df"); + const autoSplitter = new AutoSplitter(pool); + t.deepEqual(await autoSplitter._calcMinSize("mymodule.properties"), 10, "length of 1234\\u00df"); }); test("_calcMinSize: xml view resource", async (t) => { @@ -234,9 +234,9 @@ test("_calcMinSize: xml view resource", async (t) => { }; } }; - const autpSplitter = new AutoSplitter(pool); - autpSplitter.optimizeXMLViews = true; - t.deepEqual(await autpSplitter._calcMinSize("mymodule.view.xml"), 5); + const autoSplitter = new AutoSplitter(pool); + autoSplitter.optimizeXMLViews = true; + t.deepEqual(await autoSplitter._calcMinSize("mymodule.view.xml"), 5); }); test("_calcMinSize: xml view resource without optimizeXMLViews", async (t) => { @@ -248,8 +248,8 @@ test("_calcMinSize: xml view resource without optimizeXMLViews", async (t) => { }; } }; - const autpSplitter = new AutoSplitter(pool); - t.deepEqual(await autpSplitter._calcMinSize("mymodule.view.xml"), 6); + const autoSplitter = new AutoSplitter(pool); + t.deepEqual(await autoSplitter._calcMinSize("mymodule.view.xml"), 6); }); test.serial("_calcMinSize: optimize xml view resource", async (t) => { @@ -262,10 +262,10 @@ test.serial("_calcMinSize: optimize xml view resource", async (t) => { }; } }; - const autpSplitter = new AutoSplitter(pool); - autpSplitter.optimizeXMLViews = true; - autpSplitter.optimize = true; - t.deepEqual(await autpSplitter._calcMinSize("mymodule.view.xml"), 6); + const autoSplitter = new AutoSplitter(pool); + autoSplitter.optimizeXMLViews = true; + autoSplitter.optimize = true; + t.deepEqual(await autoSplitter._calcMinSize("mymodule.view.xml"), 6); stubXmlmin.restore(); }); @@ -279,11 +279,11 @@ test.serial("_calcMinSize: optimize xml view resource and pre tag", async (t) => }; } }; - const autpSplitter = new AutoSplitter(pool); - autpSplitter.optimizeXMLViews = true; - autpSplitter.optimize = true; + const autoSplitter = new AutoSplitter(pool); + autoSplitter.optimizeXMLViews = true; + autoSplitter.optimize = true; t.false(stubXmlmin.called, "xmlmin should not be called"); - t.deepEqual(await autpSplitter._calcMinSize("mymodule.view.xml"), 19); + t.deepEqual(await autoSplitter._calcMinSize("mymodule.view.xml"), 19); stubXmlmin.restore(); }); @@ -293,8 +293,8 @@ test("_calcMinSize: no resource", async (t) => { return null; } }; - const autpSplitter = new AutoSplitter(pool); - t.deepEqual(await autpSplitter._calcMinSize("mymodule.properties"), 0); + const autoSplitter = new AutoSplitter(pool); + t.deepEqual(await autoSplitter._calcMinSize("mymodule.properties"), 0); }); test("_calcMinSize: unknown resource with info", async (t) => { @@ -307,6 +307,6 @@ test("_calcMinSize: unknown resource with info", async (t) => { }; } }; - const autpSplitter = new AutoSplitter(pool); - t.deepEqual(await autpSplitter._calcMinSize("mymodule.mjs"), 47); + const autoSplitter = new AutoSplitter(pool); + t.deepEqual(await autoSplitter._calcMinSize("mymodule.mjs"), 47); }); From 442768691d7ef502d242132ed6be3fa9739f827f Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Tue, 25 Jan 2022 09:49:26 +0000 Subject: [PATCH 28/74] In-range update of npm dependencies --- package-lock.json | 405 ++++++++++++++++++++++++++-------------------- 1 file changed, 230 insertions(+), 175 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2f2c94069..a5752c600 100644 --- a/package-lock.json +++ b/package-lock.json @@ -76,9 +76,9 @@ } }, "node_modules/@babel/core": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz", - "integrity": "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==", + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", + "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", @@ -86,7 +86,7 @@ "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.10", + "@babel/parser": "^7.16.12", "@babel/template": "^7.16.7", "@babel/traverse": "^7.16.10", "@babel/types": "^7.16.8", @@ -106,9 +106,9 @@ } }, "node_modules/@babel/core/node_modules/@babel/parser": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", - "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -400,9 +400,9 @@ } }, "node_modules/@babel/template/node_modules/@babel/parser": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", - "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -433,9 +433,9 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/parser": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", - "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -723,6 +723,25 @@ "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", "dev": true }, + "node_modules/@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" + }, + "node_modules/@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" + }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -736,9 +755,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==", + "version": "17.0.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", + "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==", "dev": true, "optional": true }, @@ -797,13 +816,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.28.tgz", - "integrity": "sha512-mQpfEjmHVxmWKaup0HL6tLMv2HqjjJu7XT4/q0IoUXYXC4xKG8lIVn5YChJqxBTLPuQjzas7u7i9L4PAWJZRtA==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.29.tgz", + "integrity": "sha512-RePZ/J4Ub3sb7atQw6V6Rez+/5LCRHGFlSetT3N4VMrejqJnNPXKUt5AVm/9F5MJriy2w/VudEIvgscCfCWqxw==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.28", + "@vue/shared": "3.2.29", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } @@ -818,27 +837,27 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.28.tgz", - "integrity": "sha512-KA4yXceLteKC7VykvPnViUixemQw3A+oii+deSbZJOQKQKVh1HLosI10qxa8ImPCyun41+wG3uGR+tW7eu1W6Q==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.29.tgz", + "integrity": "sha512-y26vK5khdNS9L3ckvkqJk/78qXwWb75Ci8iYLb67AkJuIgyKhIOcR1E8RIt4mswlVCIeI9gQ+fmtdhaiTAtrBQ==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.2.28", - "@vue/shared": "3.2.28" + "@vue/compiler-core": "3.2.29", + "@vue/shared": "3.2.29" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.28.tgz", - "integrity": "sha512-zB0WznfEBb4CbGBHzhboHDKVO5nxbkbxxFo9iVlxObP7a9/qvA5kkZEuT7nXP52f3b3qEfmVTjIT23Lo1ndZdQ==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.29.tgz", + "integrity": "sha512-X9+0dwsag2u6hSOP/XsMYqFti/edvYvxamgBgCcbSYuXx1xLZN+dS/GvQKM4AgGS4djqo0jQvWfIXdfZ2ET68g==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.28", - "@vue/compiler-dom": "3.2.28", - "@vue/compiler-ssr": "3.2.28", - "@vue/reactivity-transform": "3.2.28", - "@vue/shared": "3.2.28", + "@vue/compiler-core": "3.2.29", + "@vue/compiler-dom": "3.2.29", + "@vue/compiler-ssr": "3.2.29", + "@vue/reactivity-transform": "3.2.29", + "@vue/shared": "3.2.29", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -855,32 +874,32 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.28.tgz", - "integrity": "sha512-z8rck1PDTu20iLyip9lAvIhaO40DUJrw3Zv0mS4Apfh3PlfWpF5dhsO5g0dgt213wgYsQIYVIlU9cfrYapqRgg==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.29.tgz", + "integrity": "sha512-LrvQwXlx66uWsB9/VydaaqEpae9xtmlUkeSKF6aPDbzx8M1h7ukxaPjNCAXuFd3fUHblcri8k42lfimHfzMICA==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.2.28", - "@vue/shared": "3.2.28" + "@vue/compiler-dom": "3.2.29", + "@vue/shared": "3.2.29" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.28.tgz", - "integrity": "sha512-zE8idNkOPnBDd2tKSIk84hOQZ+jXKvSy5FoIIVlcNEJHnCFnQ3maqeSJ9KoB2Rf6EXUhFTiTDNRlYlXmT2uHbQ==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.29.tgz", + "integrity": "sha512-YF6HdOuhdOw6KyRm59+3rML8USb9o8mYM1q+SH0G41K3/q/G7uhPnHGKvspzceD7h9J3VR1waOQ93CUZj7J7OA==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.28", - "@vue/shared": "3.2.28", + "@vue/compiler-core": "3.2.29", + "@vue/shared": "3.2.29", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "node_modules/@vue/shared": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.28.tgz", - "integrity": "sha512-eMQ8s9j8FpbGHlgUAaj/coaG3Q8YtMsoWL/RIHTsE3Ex7PUTyr7V91vB5HqWB5Sn8m4RXTHGO22/skoTUYvp0A==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.29.tgz", + "integrity": "sha512-BjNpU8OK6Z0LVzGUppEk0CMYm/hKDnZfYdjSmPOs0N+TR1cLKJAkDwW8ASZUvaaSLEi6d3hVM7jnWnX+6yWnHw==", "dev": true }, "node_modules/acorn": { @@ -1021,6 +1040,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -2592,9 +2612,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.49", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.49.tgz", - "integrity": "sha512-k/0t1TRfonHIp8TJKfjBu2cKj8MqYTiEpOhci+q7CVEE5xnCQnx1pTa+V8b/sdhe4S3PR4p4iceEQWhGrKQORQ==", + "version": "1.4.52", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.52.tgz", + "integrity": "sha512-JGkh8HEh5PnVrhU4HbpyyO0O791dVY6k7AdqfDeqbcRMeoGxtNHWT77deR2nhvbLe4dKpxjlDEvdEwrvRLGu2Q==", "dev": true }, "node_modules/emittery": { @@ -4245,24 +4265,25 @@ } }, "node_modules/jsdoc": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.7.tgz", - "integrity": "sha512-sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==", + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", + "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", "dependencies": { "@babel/parser": "^7.9.4", + "@types/markdown-it": "^12.2.3", "bluebird": "^3.7.2", "catharsis": "^0.9.0", "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.1", - "klaw": "^3.0.0", - "markdown-it": "^10.0.0", - "markdown-it-anchor": "^5.2.7", - "marked": "^2.0.3", + "js2xmlparser": "^4.0.2", + "klaw": "^4.0.1", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", "mkdirp": "^1.0.4", "requizzle": "^0.2.3", "strip-json-comments": "^3.1.0", "taffydb": "2.6.2", - "underscore": "~1.13.1" + "underscore": "~1.13.2" }, "bin": { "jsdoc": "jsdoc.js" @@ -4370,11 +4391,11 @@ } }, "node_modules/klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "dependencies": { - "graceful-fs": "^4.1.9" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==", + "engines": { + "node": ">=14.14.0" } }, "node_modules/latest-version": { @@ -4423,9 +4444,9 @@ "dev": true }, "node_modules/linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "dependencies": { "uc.micro": "^1.0.1" } @@ -4628,13 +4649,13 @@ } }, "node_modules/markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", "dependencies": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" }, @@ -4643,27 +4664,36 @@ } }, "node_modules/markdown-it-anchor": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", - "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", + "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", "peerDependencies": { + "@types/markdown-it": "*", "markdown-it": "*" } }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/markdown-it/node_modules/entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/marked": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", - "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.10.tgz", + "integrity": "sha512-+QvuFj0nGgO970fySghXGmuw+Fd0gD2x3+MqCWLIPf5oxdv1Ka6b2q+z9RP01P/IaKPMEramy+7cNy/Lw8c3hw==", "bin": { - "marked": "bin/marked" + "marked": "bin/marked.js" }, "engines": { - "node": ">= 10" + "node": ">= 12" } }, "node_modules/matcher": { @@ -6124,12 +6154,12 @@ } }, "node_modules/resolve": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz", - "integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "dependencies": { - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -6557,7 +6587,8 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "node_modules/stack-utils": { "version": "2.0.5", @@ -7612,9 +7643,9 @@ "dev": true }, "@babel/core": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz", - "integrity": "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==", + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", + "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", @@ -7622,7 +7653,7 @@ "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.10", + "@babel/parser": "^7.16.12", "@babel/template": "^7.16.7", "@babel/traverse": "^7.16.10", "@babel/types": "^7.16.8", @@ -7635,9 +7666,9 @@ }, "dependencies": { "@babel/parser": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", - "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", "dev": true }, "semver": { @@ -7854,9 +7885,9 @@ }, "dependencies": { "@babel/parser": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", - "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", "dev": true } } @@ -7880,9 +7911,9 @@ }, "dependencies": { "@babel/parser": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", - "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==", + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", + "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", "dev": true } } @@ -8109,6 +8140,25 @@ "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", "dev": true }, + "@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==" + }, + "@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "requires": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" + }, "@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -8122,9 +8172,9 @@ "dev": true }, "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==", + "version": "17.0.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", + "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==", "dev": true, "optional": true }, @@ -8175,13 +8225,13 @@ } }, "@vue/compiler-core": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.28.tgz", - "integrity": "sha512-mQpfEjmHVxmWKaup0HL6tLMv2HqjjJu7XT4/q0IoUXYXC4xKG8lIVn5YChJqxBTLPuQjzas7u7i9L4PAWJZRtA==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.29.tgz", + "integrity": "sha512-RePZ/J4Ub3sb7atQw6V6Rez+/5LCRHGFlSetT3N4VMrejqJnNPXKUt5AVm/9F5MJriy2w/VudEIvgscCfCWqxw==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.28", + "@vue/shared": "3.2.29", "estree-walker": "^2.0.2", "source-map": "^0.6.1" }, @@ -8195,27 +8245,27 @@ } }, "@vue/compiler-dom": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.28.tgz", - "integrity": "sha512-KA4yXceLteKC7VykvPnViUixemQw3A+oii+deSbZJOQKQKVh1HLosI10qxa8ImPCyun41+wG3uGR+tW7eu1W6Q==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.29.tgz", + "integrity": "sha512-y26vK5khdNS9L3ckvkqJk/78qXwWb75Ci8iYLb67AkJuIgyKhIOcR1E8RIt4mswlVCIeI9gQ+fmtdhaiTAtrBQ==", "dev": true, "requires": { - "@vue/compiler-core": "3.2.28", - "@vue/shared": "3.2.28" + "@vue/compiler-core": "3.2.29", + "@vue/shared": "3.2.29" } }, "@vue/compiler-sfc": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.28.tgz", - "integrity": "sha512-zB0WznfEBb4CbGBHzhboHDKVO5nxbkbxxFo9iVlxObP7a9/qvA5kkZEuT7nXP52f3b3qEfmVTjIT23Lo1ndZdQ==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.29.tgz", + "integrity": "sha512-X9+0dwsag2u6hSOP/XsMYqFti/edvYvxamgBgCcbSYuXx1xLZN+dS/GvQKM4AgGS4djqo0jQvWfIXdfZ2ET68g==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.28", - "@vue/compiler-dom": "3.2.28", - "@vue/compiler-ssr": "3.2.28", - "@vue/reactivity-transform": "3.2.28", - "@vue/shared": "3.2.28", + "@vue/compiler-core": "3.2.29", + "@vue/compiler-dom": "3.2.29", + "@vue/compiler-ssr": "3.2.29", + "@vue/reactivity-transform": "3.2.29", + "@vue/shared": "3.2.29", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -8231,32 +8281,32 @@ } }, "@vue/compiler-ssr": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.28.tgz", - "integrity": "sha512-z8rck1PDTu20iLyip9lAvIhaO40DUJrw3Zv0mS4Apfh3PlfWpF5dhsO5g0dgt213wgYsQIYVIlU9cfrYapqRgg==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.29.tgz", + "integrity": "sha512-LrvQwXlx66uWsB9/VydaaqEpae9xtmlUkeSKF6aPDbzx8M1h7ukxaPjNCAXuFd3fUHblcri8k42lfimHfzMICA==", "dev": true, "requires": { - "@vue/compiler-dom": "3.2.28", - "@vue/shared": "3.2.28" + "@vue/compiler-dom": "3.2.29", + "@vue/shared": "3.2.29" } }, "@vue/reactivity-transform": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.28.tgz", - "integrity": "sha512-zE8idNkOPnBDd2tKSIk84hOQZ+jXKvSy5FoIIVlcNEJHnCFnQ3maqeSJ9KoB2Rf6EXUhFTiTDNRlYlXmT2uHbQ==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.29.tgz", + "integrity": "sha512-YF6HdOuhdOw6KyRm59+3rML8USb9o8mYM1q+SH0G41K3/q/G7uhPnHGKvspzceD7h9J3VR1waOQ93CUZj7J7OA==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.28", - "@vue/shared": "3.2.28", + "@vue/compiler-core": "3.2.29", + "@vue/shared": "3.2.29", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "@vue/shared": { - "version": "3.2.28", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.28.tgz", - "integrity": "sha512-eMQ8s9j8FpbGHlgUAaj/coaG3Q8YtMsoWL/RIHTsE3Ex7PUTyr7V91vB5HqWB5Sn8m4RXTHGO22/skoTUYvp0A==", + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.29.tgz", + "integrity": "sha512-BjNpU8OK6Z0LVzGUppEk0CMYm/hKDnZfYdjSmPOs0N+TR1cLKJAkDwW8ASZUvaaSLEi6d3hVM7jnWnX+6yWnHw==", "dev": true }, "acorn": { @@ -8361,6 +8411,7 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -9567,9 +9618,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.49", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.49.tgz", - "integrity": "sha512-k/0t1TRfonHIp8TJKfjBu2cKj8MqYTiEpOhci+q7CVEE5xnCQnx1pTa+V8b/sdhe4S3PR4p4iceEQWhGrKQORQ==", + "version": "1.4.52", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.52.tgz", + "integrity": "sha512-JGkh8HEh5PnVrhU4HbpyyO0O791dVY6k7AdqfDeqbcRMeoGxtNHWT77deR2nhvbLe4dKpxjlDEvdEwrvRLGu2Q==", "dev": true }, "emittery": { @@ -10812,24 +10863,25 @@ } }, "jsdoc": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.7.tgz", - "integrity": "sha512-sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==", + "version": "3.6.10", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.10.tgz", + "integrity": "sha512-IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==", "requires": { "@babel/parser": "^7.9.4", + "@types/markdown-it": "^12.2.3", "bluebird": "^3.7.2", "catharsis": "^0.9.0", "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.1", - "klaw": "^3.0.0", - "markdown-it": "^10.0.0", - "markdown-it-anchor": "^5.2.7", - "marked": "^2.0.3", + "js2xmlparser": "^4.0.2", + "klaw": "^4.0.1", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", "mkdirp": "^1.0.4", "requizzle": "^0.2.3", "strip-json-comments": "^3.1.0", "taffydb": "2.6.2", - "underscore": "~1.13.1" + "underscore": "~1.13.2" }, "dependencies": { "escape-string-regexp": { @@ -10912,12 +10964,9 @@ "dev": true }, "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "requires": { - "graceful-fs": "^4.1.9" - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.0.1.tgz", + "integrity": "sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw==" }, "latest-version": { "version": "5.1.0", @@ -10955,9 +11004,9 @@ "dev": true }, "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", "requires": { "uc.micro": "^1.0.1" } @@ -11116,34 +11165,39 @@ "dev": true }, "markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" }, "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" } } }, "markdown-it-anchor": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", - "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", + "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", "requires": {} }, "marked": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", - "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==" + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.10.tgz", + "integrity": "sha512-+QvuFj0nGgO970fySghXGmuw+Fd0gD2x3+MqCWLIPf5oxdv1Ka6b2q+z9RP01P/IaKPMEramy+7cNy/Lw8c3hw==" }, "matcher": { "version": "3.0.0", @@ -12249,12 +12303,12 @@ } }, "resolve": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz", - "integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "requires": { - "is-core-module": "^2.8.0", + "is-core-module": "^2.8.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -12579,7 +12633,8 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "stack-utils": { "version": "2.0.5", From d25290ce48a3cd5fc98f6b8fdf3ddb24c809dc0c Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Tue, 25 Jan 2022 10:27:24 +0000 Subject: [PATCH 29/74] [INTERNAL] Bump @ui5/logger from 3.0.1-alpha.0 to 3.0.1-alpha.1 Changelog of this version: https://github.com/SAP/ui5-logger/blob/v3.0.1-alpha.1/CHANGELOG.md --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index a5752c600..7ca0fabc8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "Apache-2.0", "dependencies": { "@ui5/fs": "^3.0.0-alpha.1", - "@ui5/logger": "^3.0.1-alpha.0", + "@ui5/logger": "^3.0.1-alpha.1", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", "escope": "^3.6.0", @@ -804,15 +804,15 @@ } }, "node_modules/@ui5/logger": { - "version": "3.0.1-alpha.0", - "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.1-alpha.0.tgz", - "integrity": "sha512-6UQluslp7N/h9gWsMtyPq3OclE1wiAckkUbIVJZ1deRh/8ARzIKaBRg5jMky+15wQjSsYcWEr7xecBwrtPZQzw==", + "version": "3.0.1-alpha.1", + "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.1-alpha.1.tgz", + "integrity": "sha512-S0jK4e3FQYhIkGFoZSCCtHxKAYGOuCZM+KG06PoHlst73eN0Md89TgRrQtM48UCHEZF/V4A+anOEgza901ikMw==", "dependencies": { "npmlog": "^5.0.1" }, "engines": { - "node": ">= 10", - "npm": ">= 5" + "node": ">= 16.13.2", + "npm": ">= 8" } }, "node_modules/@vue/compiler-core": { @@ -8217,9 +8217,9 @@ } }, "@ui5/logger": { - "version": "3.0.1-alpha.0", - "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.1-alpha.0.tgz", - "integrity": "sha512-6UQluslp7N/h9gWsMtyPq3OclE1wiAckkUbIVJZ1deRh/8ARzIKaBRg5jMky+15wQjSsYcWEr7xecBwrtPZQzw==", + "version": "3.0.1-alpha.1", + "resolved": "https://registry.npmjs.org/@ui5/logger/-/logger-3.0.1-alpha.1.tgz", + "integrity": "sha512-S0jK4e3FQYhIkGFoZSCCtHxKAYGOuCZM+KG06PoHlst73eN0Md89TgRrQtM48UCHEZF/V4A+anOEgza901ikMw==", "requires": { "npmlog": "^5.0.1" } diff --git a/package.json b/package.json index 92eed1ea8..7142c2f9c 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ }, "dependencies": { "@ui5/fs": "^3.0.0-alpha.1", - "@ui5/logger": "^3.0.1-alpha.0", + "@ui5/logger": "^3.0.1-alpha.1", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", "escope": "^3.6.0", From 0188af5db9701386c9f6244a2df8858b7ea7df8e Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Tue, 25 Jan 2022 10:36:06 +0000 Subject: [PATCH 30/74] [INTERNAL] Bump @ui5/fs from 3.0.0-alpha.1 to 3.0.0-alpha.2 Changelog of this version: https://github.com/SAP/ui5-fs/blob/v3.0.0-alpha.2/CHANGELOG.md --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7ca0fabc8..0616151f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "3.0.0-alpha.0", "license": "Apache-2.0", "dependencies": { - "@ui5/fs": "^3.0.0-alpha.1", + "@ui5/fs": "^3.0.0-alpha.2", "@ui5/logger": "^3.0.1-alpha.1", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", @@ -784,14 +784,14 @@ } }, "node_modules/@ui5/fs": { - "version": "3.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.1.tgz", - "integrity": "sha512-j+8cJQpuM0aHLxzIzDNe7Kwr+X2n6tYeBptz/MSbvONB9u4dKVenaMpreR/Q4QUFi56UKEC0ztkpjxsU/+G5Cw==", + "version": "3.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.2.tgz", + "integrity": "sha512-GCcTUiI0Kjqab6mVWK8aHt9wMjMzSoRJx9pGZsbSdXLFR9C7A7x41OW7WL9pjeuiqUFcydC2Ia1+DdKe6TOrgw==", "dependencies": { - "@ui5/logger": "^3.0.1-alpha.0", + "@ui5/logger": "^3.0.1-alpha.1", "clone": "^2.1.0", - "globby": "^11.0.4", - "graceful-fs": "^4.2.8", + "globby": "^11.1.0", + "graceful-fs": "^4.2.9", "make-dir": "^3.1.0", "micromatch": "^4.0.4", "minimatch": "^3.0.3", @@ -799,8 +799,8 @@ "random-int": "^2.0.1" }, "engines": { - "node": ">= 10", - "npm": ">= 5" + "node": ">= 16.13.2", + "npm": ">= 8" } }, "node_modules/@ui5/logger": { @@ -8201,14 +8201,14 @@ } }, "@ui5/fs": { - "version": "3.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.1.tgz", - "integrity": "sha512-j+8cJQpuM0aHLxzIzDNe7Kwr+X2n6tYeBptz/MSbvONB9u4dKVenaMpreR/Q4QUFi56UKEC0ztkpjxsU/+G5Cw==", + "version": "3.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.2.tgz", + "integrity": "sha512-GCcTUiI0Kjqab6mVWK8aHt9wMjMzSoRJx9pGZsbSdXLFR9C7A7x41OW7WL9pjeuiqUFcydC2Ia1+DdKe6TOrgw==", "requires": { - "@ui5/logger": "^3.0.1-alpha.0", + "@ui5/logger": "^3.0.1-alpha.1", "clone": "^2.1.0", - "globby": "^11.0.4", - "graceful-fs": "^4.2.8", + "globby": "^11.1.0", + "graceful-fs": "^4.2.9", "make-dir": "^3.1.0", "micromatch": "^4.0.4", "minimatch": "^3.0.3", diff --git a/package.json b/package.json index 7142c2f9c..08d7a6469 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "url": "git@github.com:SAP/ui5-builder.git" }, "dependencies": { - "@ui5/fs": "^3.0.0-alpha.1", + "@ui5/fs": "^3.0.0-alpha.2", "@ui5/logger": "^3.0.1-alpha.1", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", From fa628b5e4abd8bae57d1d27d92f30d1e99860d94 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Tue, 25 Jan 2022 10:40:53 +0000 Subject: [PATCH 31/74] Release 3.0.0-alpha.1 --- CHANGELOG.md | 41 ++++++++++++++++++++++++++++++++++++++++- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09fe9dd8b..a5d4c8d74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,45 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.0...HEAD). +A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.1...HEAD). + + +## [v3.0.0-alpha.1] - 2022-01-25 +### Breaking Changes +- Require Node.js >= 16.13.2 / npm >= 8 [`dbf6c06`](https://github.com/SAP/ui5-builder/commit/dbf6c0694693070f73e9f96edef90f094d5bf721) +- **generateResourcesJson:** Make 'dependencies' parameter mandatory [`268dd16`](https://github.com/SAP/ui5-builder/commit/268dd16091c515ec0c922ea23af437d9aa8bf3ea) +- **moduleBundler:** Always default to `optimize: true` ([#685](https://github.com/SAP/ui5-builder/issues/685)) [`de5837c`](https://github.com/SAP/ui5-builder/commit/de5837c43449ea61deae3b2f02f9973f3fa37992) + +### Bug Fixes +- **Bundler:** Ensure reproducibility for bundles with multiple parts ([#689](https://github.com/SAP/ui5-builder/issues/689)) [`6f4588b`](https://github.com/SAP/ui5-builder/commit/6f4588b3eb687178e557ac4fb36481104f9681a0) +- **generateResourcesJson:** Don't list resources omitted from build result [`9608c51`](https://github.com/SAP/ui5-builder/commit/9608c5177f86494ba689d2e799b4378fec9ed6fa) +- **generateResourcesJson:** Analyze debug bundles ([#669](https://github.com/SAP/ui5-builder/issues/669)) [`f27513a`](https://github.com/SAP/ui5-builder/commit/f27513a259b30d39e260790781b6d435b4ab088b) + +### Features +- Support ES2021 language features [`e749b6a`](https://github.com/SAP/ui5-builder/commit/e749b6ae0838f923b27dd0d7d34da2174c433f5f) +- Add minify task and processor ([#666](https://github.com/SAP/ui5-builder/issues/666)) [`a3af604`](https://github.com/SAP/ui5-builder/commit/a3af604ff0a12fb9241dcd105cf0aec8d718a299) + +### BREAKING CHANGE + +Support for older Node.js and npm releases has been dropped. +Only Node.js v16.13.2 and npm v8 or higher are supported. + +The following tasks have been removed: +- createDebugFiles +- uglify + +The following processors have been removed: +- debugFileCreator +- resourceCopier +- uglifier + +As a replacement, the new 'minify' task and 'minifier' processor can be +used. + +Note: The minify task is executed earlier, before the bundling +process takes place. Existing 'beforeTask' and 'afterTask' configuration of +custom tasks might need to be adapted to cater for this change. + ## [v3.0.0-alpha.0] - 2021-12-14 @@ -639,6 +677,7 @@ to load the custom bundle file instead. - Add ability to configure component preloads and custom bundles [`2241e5f`](https://github.com/SAP/ui5-builder/commit/2241e5ff98fd95f1f80cc74959655ae7a9c660e7) +[v3.0.0-alpha.1]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.0...v3.0.0-alpha.1 [v3.0.0-alpha.0]: https://github.com/SAP/ui5-builder/compare/v2.11.2...v3.0.0-alpha.0 [v2.11.2]: https://github.com/SAP/ui5-builder/compare/v2.11.1...v2.11.2 [v2.11.1]: https://github.com/SAP/ui5-builder/compare/v2.11.0...v2.11.1 diff --git a/package-lock.json b/package-lock.json index 0616151f8..9efc50406 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.0", + "version": "3.0.0-alpha.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ui5/builder", - "version": "3.0.0-alpha.0", + "version": "3.0.0-alpha.1", "license": "Apache-2.0", "dependencies": { "@ui5/fs": "^3.0.0-alpha.2", diff --git a/package.json b/package.json index 08d7a6469..b377f868e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.0", + "version": "3.0.0-alpha.1", "description": "UI5 Tooling - Builder", "author": { "name": "SAP SE", From 034dd43d75eb4fd71bcfafb81bdd37015a5d0b4c Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Fri, 28 Jan 2022 11:37:06 +0100 Subject: [PATCH 32/74] [INTERNAL] npm release: Add missing CHANGELOG file The CLI needs the changelog files of all modules to create a consolidated changelog. Since npm v7 the CHANGELOG file is not always published anymore. See: https://github.com/npm/npm-packlist/pull/61 --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index b377f868e..09f5e1693 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ }, "files": [ "index.js", + "CHANGELOG.md", "CONTRIBUTING.md", "jsdoc.json", "lib/**", From a0d4bc2a80d61e042786207af4bdbda6c3ddfe31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20O=C3=9Fwald?= <1410947+matz3@users.noreply.github.com> Date: Mon, 14 Feb 2022 13:26:55 +0100 Subject: [PATCH 33/74] [FEATURE] replaceVersion/Copyright: Also process test-resources (#693) JIRA: CPOUI5FOUNDATION-424 --- lib/types/library/LibraryBuilder.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/types/library/LibraryBuilder.js b/lib/types/library/LibraryBuilder.js index 57f96baa2..031bad706 100644 --- a/lib/types/library/LibraryBuilder.js +++ b/lib/types/library/LibraryBuilder.js @@ -28,7 +28,7 @@ class LibraryBuilder extends AbstractBuilder { workspace: resourceCollections.workspace, options: { copyright: project.metadata.copyright, - pattern: "/resources/**/*.{js,library,less,theme}" + pattern: "/**/*.{js,library,css,less,theme,html}" } }); }); @@ -38,7 +38,7 @@ class LibraryBuilder extends AbstractBuilder { workspace: resourceCollections.workspace, options: { version: project.version, - pattern: "/resources/**/*.{js,json,library,less,theme}" + pattern: "/**/*.{js,json,library,less,theme,html}" } }); }); From 3b51c1bb70e257ada7699b8db262f14ef552fd24 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Tue, 22 Feb 2022 16:42:23 +0100 Subject: [PATCH 34/74] [INTERNAL] Upgrade espree to v9.3.1 --- lib/lbt/analyzer/JSModuleAnalyzer.js | 20 +++++++++++++------ lib/lbt/utils/parseUtils.js | 2 +- package-lock.json | 30 ++++++++++++++-------------- package.json | 2 +- 4 files changed, 31 insertions(+), 23 deletions(-) diff --git a/lib/lbt/analyzer/JSModuleAnalyzer.js b/lib/lbt/analyzer/JSModuleAnalyzer.js index 84b1a0b0c..da1c494ad 100644 --- a/lib/lbt/analyzer/JSModuleAnalyzer.js +++ b/lib/lbt/analyzer/JSModuleAnalyzer.js @@ -175,12 +175,11 @@ const EnrichedVisitorKeys = (function() { // merge with 'official' visitor keys Object.keys(VisitorKeys).forEach( (type) => { - // Check if the visitor-key exists in the available Syntax because - // the list of visitor-keys does not match the available Syntax. - if (!Syntax[type]) { - // Deprecated / removed: - // ExperimentalRestProperty - // ExperimentalSpreadProperty + // Ignore deprecated keys: + // - ExperimentalSpreadProperty => SpreadElement + // - ExperimentalRestProperty => RestElement + // They are about to be removed, see: https://github.com/eslint/eslint-visitor-keys/pull/36 + if (type === "ExperimentalSpreadProperty" || type === "ExperimentalRestProperty") { return; } // Ignore JSX visitor-keys because they aren't used. @@ -188,6 +187,15 @@ const EnrichedVisitorKeys = (function() { return; } + // Ignore new ES2022 syntax as we currently use ES2021 (see parseUtils.js) + if ( + type === "PrivateIdentifier" || + type === "PropertyDefinition" || + type === "StaticBlock" + ) { + return; + } + const visitorKeys = VisitorKeys[type]; const condKeys = TempKeys[type]; if ( condKeys === undefined ) { diff --git a/lib/lbt/utils/parseUtils.js b/lib/lbt/utils/parseUtils.js index 4f072c4e1..27ac5abad 100644 --- a/lib/lbt/utils/parseUtils.js +++ b/lib/lbt/utils/parseUtils.js @@ -9,7 +9,7 @@ function parseJS(code, userOptions = {}) { // allowed options and their defaults const options = { comment: false, - ecmaVersion: 2021, + ecmaVersion: 2021, // NOTE: Adopt JSModuleAnalyzer.js to allow new Syntax when upgrading to newer ECMA versions range: false, sourceType: "script", }; diff --git a/package-lock.json b/package-lock.json index 9efc50406..352abd1d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", "escope": "^3.6.0", - "espree": "^9.3.0", + "espree": "^9.3.1", "globby": "^11.1.0", "graceful-fs": "^4.2.9", "jsdoc": "^3.6.7", @@ -2943,9 +2943,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -3008,13 +3008,13 @@ } }, "node_modules/espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "dependencies": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" + "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -9928,18 +9928,18 @@ } }, "eslint-visitor-keys": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" }, "espree": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", - "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", + "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", "requires": { "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" + "eslint-visitor-keys": "^3.3.0" } }, "esprima": { diff --git a/package.json b/package.json index 09f5e1693..da2ceb6ea 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", "escope": "^3.6.0", - "espree": "^9.3.0", + "espree": "^9.3.1", "globby": "^11.1.0", "graceful-fs": "^4.2.9", "jsdoc": "^3.6.7", From 8a20c4257a1ebe4d613b0595be93cd45d900f580 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Wed, 23 Feb 2022 18:35:32 +0100 Subject: [PATCH 35/74] [FEATURE] Generate source maps for bundles (#695) Resolves https://github.com/SAP/ui5-tooling/issues/472 Supersedes https://github.com/SAP/ui5-builder/pull/282 Based on https://github.com/SAP/ui5-tooling/pull/583 JIRA: CPOUI5FOUNDATION-434 Co-authored-by: Matthias Osswald --- lib/lbt/bundle/Builder.js | 463 ++++-- lib/lbt/bundle/BundleWriter.js | 17 + lib/lbt/resources/LocatorResource.js | 14 +- lib/lbt/resources/LocatorResourcePool.js | 12 +- lib/processors/bundlers/moduleBundler.js | 35 +- lib/processors/minifier.js | 15 +- lib/tasks/bundlers/generateBundle.js | 92 +- .../bundlers/generateComponentPreload.js | 17 +- lib/tasks/bundlers/generateLibraryPreload.js | 64 +- .../bundlers/generateStandaloneAppBundle.js | 53 +- lib/tasks/generateResourcesJson.js | 2 +- lib/tasks/minify.js | 14 +- package-lock.json | 7 +- package.json | 1 + .../application.a/dest-deps-excl/test.js | 3 +- .../resources/library/d/some.js | 3 +- .../dest-deps-incl/resources/ui5loader.js | 2 - .../application.a/dest-deps-incl/test.js | 3 +- .../dest-deps/resources/library/d/some.js | 3 +- .../dest-deps/resources/ui5loader.js | 2 - .../build/application.a/dest-deps/test.js | 3 +- .../dest-depself/resources/library/d/some.js | 3 +- .../resources/sap-ui-custom-dbg.js | 1 + .../resources/sap-ui-custom-dbg.js.map | 1 + .../dest-depself/resources/sap-ui-custom.js | 9 +- .../resources/sap-ui-custom.js.map | 1 + .../dest-depself/resources/ui5loader.js | 2 - .../build/application.a/dest-depself/test.js | 3 +- .../dest-self/resources/sap-ui-custom-dbg.js | 1 + .../resources/sap-ui-custom-dbg.js.map | 1 + .../dest-self/resources/sap-ui-custom.js | 8 +- .../dest-self/resources/sap-ui-custom.js.map | 1 + .../build/application.a/dest-self/test.js | 3 +- .../expected/build/application.a/dest/test.js | 3 +- .../dest/embedded/i18n_fr.properties | 1 + .../build/application.b/dest/i18n.properties | 2 + .../application.b/dest/i18n/l10n.properties | 2 + .../application.b/dest/manifest-bundle.zip | Bin 0 -> 1129 bytes .../standalone/resources/sap-ui-custom-dbg.js | 1 + .../resources/sap-ui-custom-dbg.js.map | 1 + .../standalone/resources/sap-ui-custom.js | 4 +- .../standalone/resources/sap-ui-custom.js.map | 1 + .../cachebuster/Component-preload.js | 13 +- .../cachebuster/Component-preload.js.map | 1 + .../application.g/cachebuster/Component.js | 3 +- .../cachebuster/sap-ui-cachebuster-info.json | 27 +- .../cachebuster/subcomponentA/Component.js | 3 +- .../cachebuster/subcomponentB/Component.js | 3 +- .../cachebuster_hash/Component-preload.js | 13 +- .../cachebuster_hash/Component-preload.js.map | 1 + .../cachebuster_hash/Component.js | 3 +- .../sap-ui-cachebuster-info.json | 17 +- .../subcomponentA/Component.js | 3 +- .../subcomponentB/Component.js | 3 +- .../application.g/dest/Component-preload.js | 5 +- .../dest/Component-preload.js.map | 1 + .../build/application.g/dest/Component.js | 3 +- .../dest/subcomponentA/Component-preload.js | 5 +- .../subcomponentA/Component-preload.js.map | 1 + .../dest/subcomponentA/Component.js | 3 +- .../dest/subcomponentB/Component-preload.js | 5 +- .../subcomponentB/Component-preload.js.map | 1 + .../dest/subcomponentB/Component.js | 3 +- .../application.g/dest2/Component-preload.js | 5 +- .../dest2/Component-preload.js.map | 1 + .../build/application.g/dest2/Component.js | 3 +- .../dest2/subcomponentA/Component-preload.js | 5 +- .../subcomponentA/Component-preload.js.map | 1 + .../dest2/subcomponentA/Component.js | 3 +- .../dest2/subcomponentB/Component-preload.js | 5 +- .../subcomponentB/Component-preload.js.map | 1 + .../dest2/subcomponentB/Component.js | 3 +- .../build/application.h/dest/Component.js | 3 +- .../dest/sectionsA/customBundle.js | 9 +- .../dest/sectionsA/customBundle.js.map | 1 + .../application.h/dest/sectionsA/section1.js | 3 +- .../application.h/dest/sectionsA/section2.js | 3 +- .../application.h/dest/sectionsA/section3.js | 3 +- .../dest/sectionsB/customBundle.js | 10 +- .../dest/sectionsB/customBundle.js.map | 1 + .../application.h/dest/sectionsB/section1.js | 3 +- .../application.h/dest/sectionsB/section2.js | 3 +- .../application.h/dest/sectionsB/section3.js | 3 +- .../no-minify/sectionsA/customBundle.js | 7 +- .../no-minify/sectionsA/customBundle.js.map | 1 + .../no-minify/sectionsB/customBundle.js | 10 +- .../no-minify/sectionsB/customBundle.js.map | 1 + .../application.i/dest/Component-preload.js | 9 +- .../dest/Component-preload.js.map | 1 + .../build/application.i/dest/Component.js | 3 +- .../dest/changes/coding/MyExtension.js | 3 +- .../dest-resources-json/Component-preload.js | 9 +- .../Component-preload.js.map | 1 + .../dest-resources-json/Component.js | 3 +- .../changes/coding/MyExtension.js | 3 +- .../dest-resources-json/resources.json | 13 +- .../application.j/dest/Component-preload.js | 9 +- .../dest/Component-preload.js.map | 1 + .../build/application.j/dest/Component.js | 3 +- .../dest/changes/coding/MyExtension.js | 3 +- .../Component-preload.js | 13 +- .../Component-preload.js.map | 1 + .../application.k/dest/Component-preload.js | 4 +- .../dest/Component-preload.js.map | 1 + .../dest/subcomponentA/Component-preload.js | 4 +- .../subcomponentA/Component-preload.js.map | 1 + .../dest/subcomponentB/Component-preload.js | 7 +- .../subcomponentB/Component-preload.js.map | 1 + .../build/application.l/dest/subdir/index.js | 3 +- .../dest/subdir/thirdparty/File1.js | 3 +- .../expected/build/application.l/dest/test.js | 3 +- .../dest/Component-preload.js" | 5 +- .../dest/Component-preload.js.map" | 1 + .../application.\303\270/dest/Component.js" | 3 +- .../dest/resources/sap-ui-core-dbg.js | 0 .../dest/resources/sap-ui-core.js | 2 - .../dest/resources/sap/ui/Global-dbg.js | 5 - .../dest/resources/sap/ui/Global.js | 5 - .../dest/resources/sap/ui/core/.library | 20 - .../dest/resources/sap/ui/core/Core-dbg.js | 5 - .../dest/resources/sap/ui/core/Core.js | 5 - .../dest/resources/library/d/some.js | 3 +- .../resources/library/d/library-preload.js | 4 +- .../library/d/library-preload.js.map | 1 + .../dest/resources/library/e/library.js | 3 +- .../dest/resources/library/e/some.js | 3 +- .../library/h/components/Component-preload.js | 9 +- .../h/components/Component-preload.js.map | 1 + .../library/h/components/Component.js | 3 +- .../library/h/components/TodoComponent.js | 3 +- .../library/h/components/resources.json | 40 +- .../subcomponent1/Component-preload.js | 5 +- .../subcomponent1/Component-preload.js.map | 1 + .../h/components/subcomponent1/Component.js | 3 +- .../h/components/subcomponent1/resources.json | 11 +- .../subcomponent2/Component-preload.js | 5 +- .../subcomponent2/Component-preload.js.map | 1 + .../h/components/subcomponent2/Component.js | 3 +- .../h/components/subcomponent2/resources.json | 11 +- .../subcomponent3/Component-preload.js | 5 +- .../subcomponent3/Component-preload.js.map | 1 + .../h/components/subcomponent3/Component.js | 3 +- .../h/components/subcomponent3/resources.json | 11 +- .../resources/library/h/customBundle-dbg.js | 10 +- .../library/h/customBundle-dbg.js.map | 1 + .../resources/library/h/customBundle.js | 14 +- .../resources/library/h/customBundle.js.map | 1 + .../h/designtime/library.designtime.js | 3 +- .../resources/library/h/file.js | 3 +- .../resources/library/h/library.js | 3 +- .../resources/library/h/not.js | 3 +- .../resources/library/h/resources.json | 64 +- .../resources/library/h/some.js | 3 +- .../library/h/components/Component-preload.js | 9 +- .../h/components/Component-preload.js.map | 1 + .../library/h/components/Component.js | 3 +- .../library/h/components/TodoComponent.js | 3 +- .../subcomponent1/Component-preload.js | 5 +- .../subcomponent1/Component-preload.js.map | 1 + .../h/components/subcomponent1/Component.js | 3 +- .../subcomponent2/Component-preload.js | 5 +- .../subcomponent2/Component-preload.js.map | 1 + .../h/components/subcomponent2/Component.js | 3 +- .../subcomponent3/Component-preload.js | 5 +- .../subcomponent3/Component-preload.js.map | 1 + .../h/components/subcomponent3/Component.js | 3 +- .../resources/library/h/customBundle-dbg.js | 10 +- .../library/h/customBundle-dbg.js.map | 1 + .../dest/resources/library/h/customBundle.js | 14 +- .../resources/library/h/customBundle.js.map | 1 + .../h/designtime/library.designtime.js | 3 +- .../dest/resources/library/h/file.js | 3 +- .../dest/resources/library/h/library.js | 3 +- .../library.h/dest/resources/library/h/not.js | 3 +- .../dest/resources/library/h/some.js | 3 +- .../library/h/components/Component-preload.js | 7 +- .../h/components/Component-preload.js.map | 1 + .../subcomponent1/Component-preload.js | 4 +- .../subcomponent1/Component-preload.js.map | 1 + .../subcomponent2/Component-preload.js | 4 +- .../subcomponent2/Component-preload.js.map | 1 + .../subcomponent3/Component-preload.js | 4 +- .../subcomponent3/Component-preload.js.map | 1 + .../resources/library/h/customBundle-dbg.js | 10 +- .../library/h/customBundle-dbg.js.map | 1 + .../resources/library/h/customBundle.js | 10 +- .../resources/library/h/customBundle.js.map | 1 + .../dest/resources/library/l/some.js | 3 +- .../dest/resources/library/l/subdir/index.js | 3 +- .../library/l/subdir/thirdparty/File1.js | 3 +- .../library/\303\270/library-preload.js" | 5 +- .../library/\303\270/library-preload.js.map" | 1 + .../\303\270/library-preload.support.js" | 1 + .../\303\270/library-preload.support.js.map" | 1 + .../dest/resources/library/\303\270/some.js" | 3 +- .../dest/resources/sap-ui-core.js | 2 - .../dest/resources/sap/ui/Global.js | 3 +- .../dest/resources/sap/ui/core/Core.js | 3 +- .../preload/resources/sap-ui-core-dbg.js | 1 + .../preload/resources/sap-ui-core-dbg.js.map | 1 + .../resources/sap-ui-core-nojQuery-dbg.js | 1 + .../resources/sap-ui-core-nojQuery-dbg.js.map | 1 + .../preload/resources/sap-ui-core-nojQuery.js | 6 +- .../resources/sap-ui-core-nojQuery.js.map | 1 + .../preload/resources/sap-ui-core.js | 6 +- .../preload/resources/sap-ui-core.js.map | 1 + .../preload/resources/sap/ui/core/Core.js | 3 +- .../resources/sap/ui/core/library-preload.js | 13 +- .../sap/ui/core/library-preload.js.map | 1 + .../preload/resources/sap/ui/core/one.js | 3 +- .../preload/resources/sap/ui/core/some.js | 3 +- .../preload/resources/ui5loader-autoconfig.js | 3 +- .../preload/resources/ui5loader.js | 3 +- test/fixtures/application.h/ui5.yaml | 25 - test/fixtures/application.i/ui5.yaml | 25 - test/fixtures/application.j/ui5.yaml | 25 - "test/fixtures/application.\303\270/ui5.yaml" | 9 - test/lib/builder/builder.js | 2 +- test/lib/lbt/bundle/Builder.js | 1268 ++++++++++++++++- test/lib/processors/bundlers/moduleBundler.js | 40 +- .../bundlers/generateComponentPreload.js | 112 +- .../generateLibraryPreload.integration.js | 37 +- .../tasks/bundlers/generateLibraryPreload.js | 18 +- .../generateManifestBundle.integration.js | 2 +- ...generateStandaloneAppBundle.integration.js | 2 +- test/lib/tasks/minify.js | 72 +- 226 files changed, 2601 insertions(+), 707 deletions(-) create mode 100644 test/expected/build/application.a/dest-depself/resources/sap-ui-custom-dbg.js.map create mode 100644 test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js.map create mode 100644 test/expected/build/application.a/dest-self/resources/sap-ui-custom-dbg.js.map create mode 100644 test/expected/build/application.a/dest-self/resources/sap-ui-custom.js.map create mode 100644 test/expected/build/application.b/dest/embedded/i18n_fr.properties create mode 100644 test/expected/build/application.b/dest/i18n.properties create mode 100644 test/expected/build/application.b/dest/i18n/l10n.properties create mode 100644 test/expected/build/application.b/dest/manifest-bundle.zip create mode 100644 test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js.map create mode 100644 test/expected/build/application.b/standalone/resources/sap-ui-custom.js.map create mode 100644 test/expected/build/application.g/cachebuster/Component-preload.js.map create mode 100644 test/expected/build/application.g/cachebuster_hash/Component-preload.js.map create mode 100644 test/expected/build/application.g/dest/Component-preload.js.map create mode 100644 test/expected/build/application.g/dest/subcomponentA/Component-preload.js.map create mode 100644 test/expected/build/application.g/dest/subcomponentB/Component-preload.js.map create mode 100644 test/expected/build/application.g/dest2/Component-preload.js.map create mode 100644 test/expected/build/application.g/dest2/subcomponentA/Component-preload.js.map create mode 100644 test/expected/build/application.g/dest2/subcomponentB/Component-preload.js.map create mode 100644 test/expected/build/application.h/dest/sectionsA/customBundle.js.map create mode 100644 test/expected/build/application.h/dest/sectionsB/customBundle.js.map create mode 100644 test/expected/build/application.h/no-minify/sectionsA/customBundle.js.map create mode 100644 test/expected/build/application.h/no-minify/sectionsB/customBundle.js.map create mode 100644 test/expected/build/application.i/dest/Component-preload.js.map create mode 100644 test/expected/build/application.j/dest-resources-json/Component-preload.js.map create mode 100644 test/expected/build/application.j/dest/Component-preload.js.map create mode 100644 test/expected/build/application.k/dest-package-subcomponents/Component-preload.js.map create mode 100644 test/expected/build/application.k/dest/Component-preload.js.map create mode 100644 test/expected/build/application.k/dest/subcomponentA/Component-preload.js.map create mode 100644 test/expected/build/application.k/dest/subcomponentB/Component-preload.js.map create mode 100644 "test/expected/build/application.\303\270/dest/Component-preload.js.map" delete mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core-dbg.js delete mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js delete mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global-dbg.js delete mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js delete mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/.library delete mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core-dbg.js delete mode 100644 test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js create mode 100644 test/expected/build/library.d/preload/resources/library/d/library-preload.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js.map create mode 100644 test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js.map create mode 100644 test/expected/build/library.h/dest/resources/library/h/customBundle.js.map create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js.map create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js.map create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js.map create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js.map create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js.map create mode 100644 test/expected/build/library.h/no-minify/resources/library/h/customBundle.js.map create mode 100644 "test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js.map" create mode 100644 "test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js.map" create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js.map create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js.map create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js.map create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map create mode 100644 test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js.map delete mode 100644 test/fixtures/application.h/ui5.yaml delete mode 100644 test/fixtures/application.i/ui5.yaml delete mode 100644 test/fixtures/application.j/ui5.yaml delete mode 100644 "test/fixtures/application.\303\270/ui5.yaml" diff --git a/lib/lbt/bundle/Builder.js b/lib/lbt/bundle/Builder.js index 01dc34ae3..cd68b2a24 100644 --- a/lib/lbt/bundle/Builder.js +++ b/lib/lbt/bundle/Builder.js @@ -5,7 +5,7 @@ const path = require("path"); const {pd} = require("pretty-data"); const {parseJS, Syntax} = require("../utils/parseUtils"); -// const MOZ_SourceMap = require("source-map"); +const {encode: encodeMappings, decode: decodeMappings} = require("sourcemap-codec"); const {isMethodCall} = require("../utils/ASTUtils"); const ModuleName = require("../utils/ModuleName"); @@ -18,6 +18,8 @@ const {SectionType} = require("./BundleDefinition"); const BundleWriter = require("./BundleWriter"); const log = require("@ui5/logger").getLogger("lbt:bundle:Builder"); +const sourceMappingUrlPattern = /\/\/# sourceMappingURL=(.+)\s*$/; +const httpPattern = /^https?:\/\//i; const xmlHtmlPrePattern = /<(?:\w+:)?pre\b/; const strReplacements = { @@ -39,30 +41,30 @@ function isEmptyBundle(resolvedBundle) { } const UI5BundleFormat = { - beforePreloads(outW, section) { - outW.write(`jQuery.sap.registerPreloadedModules(`); - outW.writeln(`{`); + beforePreloads(section) { + let str = `jQuery.sap.registerPreloadedModules({\n`; if ( section.name ) { - outW.writeln(`"name":"${section.name}",`); + str += `"name":"${section.name}",\n`; } - outW.writeln(`"version":"2.0",`); - outW.writeln(`"modules":{`); + str += `"version":"2.0",\n`; + str += `"modules":{\n`; + return str; }, - afterPreloads(outW, section) { - outW.writeln(`}});`); + afterPreloads(section) { + return `}});\n`; }, - beforeBundleInfo(outW) { - outW.writeln("\"unsupported\"; /* 'bundleInfo' section mode not supported (requires ui5loader)"); + beforeBundleInfo() { + return `"unsupported"; /* 'bundleInfo' section mode not supported (requires ui5loader)\n`; }, - afterBundleInfo(outW) { - outW.writeln("*/"); + afterBundleInfo() { + return "*/\n"; }, - requireSync(outW, moduleName) { - outW.writeln(`sap.ui.requireSync("${ModuleName.toRequireJSName(moduleName)}");`); + requireSync(moduleName) { + return `sap.ui.requireSync("${ModuleName.toRequireJSName(moduleName)}");\n`; }, shouldDecorate(resolvedModule) { @@ -71,28 +73,29 @@ const UI5BundleFormat = { }; const EVOBundleFormat = { - beforePreloads(outW, section) { - outW.writeln(`sap.ui.require.preload({`); + beforePreloads(section) { + return `sap.ui.require.preload({\n`; }, - afterPreloads(outW, section) { - outW.write(`}`); + afterPreloads(section) { + let str = `}`; if ( section.name ) { - outW.write(`,"${section.name}"`); + str += `,"${section.name}"`; } - outW.writeln(`);`); + str += `);\n`; + return str; }, - beforeBundleInfo(outW) { - outW.writeln("sap.ui.loader.config({bundlesUI5:{"); + beforeBundleInfo() { + return "sap.ui.loader.config({bundlesUI5:{\n"; }, - afterBundleInfo(outW) { - outW.writeln("}});"); + afterBundleInfo() { + return "}});\n"; }, - requireSync(outW, moduleName) { - outW.writeln(`sap.ui.requireSync("${ModuleName.toRequireJSName(moduleName)}");`); + requireSync(moduleName) { + return `sap.ui.requireSync("${ModuleName.toRequireJSName(moduleName)}");\n`; }, shouldDecorate(resolvedModule) { @@ -146,6 +149,9 @@ class BundleBuilder { this.options = options || {}; this.optimize = !!this.options.optimize; + if (this.options.sourceMap === undefined) { + this.options.sourceMap = true; + } // when decorateBootstrapModule is set to false, we don't write the optimized flag // and don't write the try catch wrapper @@ -155,6 +161,15 @@ class BundleBuilder { // TODO is the following condition ok or should the availability of jquery.sap.global.js be configurable? this.jqglobalAvailable = !resolvedModule.containsGlobal; this.openModule(resolvedModule.name); + + this._sourceMap = { + version: 3, + file: path.posix.basename(resolvedModule.name), + sections: [], + }; + this._bundleName = resolvedModule.name; + this._inlineContentCounter = 0; + let bundleInfos = []; // create all sections in sequence for ( const section of resolvedModule.sections ) { @@ -183,6 +198,7 @@ class BundleBuilder { return { name: module.name, content: this.outW.toString(), + sourceMap: this.options.sourceMap ? JSON.stringify(this._sourceMap) : null, bundleInfo: bundleInfo }; } @@ -200,23 +216,36 @@ class BundleBuilder { } } + writeWithSourceMap(content) { + const transientSourceName = + `${path.posix.basename(this._bundleName)}?bundle-code-${this._inlineContentCounter++}`; + const sourceMap = createTransientSourceMap({ + moduleName: transientSourceName, + moduleContent: content, + includeContent: true + }); + this.addSourceMap(this._bundleName, sourceMap); + this.outW.write(content); + this.outW.ensureNewLine(); + } + closeModule(resolvedModule) { if ( resolvedModule.containsCore ) { this.outW.ensureNewLine(); // for clarity and to avoid issues with single line comments - this.outW.writeln(`// as this module contains the Core, we ensure that the Core has been booted`); - this.outW.writeln(`sap.ui.getCore().boot && sap.ui.getCore().boot();`); + this.writeWithSourceMap( + `// as this module contains the Core, we ensure that the Core has been booted\n` + + `sap.ui.getCore().boot && sap.ui.getCore().boot();`); } if ( this.shouldDecorate && this.options.addTryCatchRestartWrapper ) { this.outW.ensureNewLine(); // for clarity and to avoid issues with single line comments - this.outW.writeln(`} catch(oError) {`); - this.outW.writeln(`if (oError.name != "Restart") { throw oError; }`); - this.outW.writeln(`}`); + this.writeWithSourceMap( + `} catch(oError) {\n` + + `if (oError.name != "Restart") { throw oError; }\n` + + `}`); + } + if (this.options.sourceMap) { + this.outW.writeln(`//# sourceMappingURL=${path.posix.basename(resolvedModule.name)}.map`); } - /* NODE-TODO - if ( writeSourceMap && writeSourceMapAnnotation ) { - outW.ensureNewLine(); - outW.write("//# sourceMappingURL=" + moduleName.getBaseName().replaceFirst("\\.js$", ".js.map")); - }*/ } addSection(section) { @@ -258,31 +287,43 @@ class BundleBuilder { // TODO check that there are only JS modules contained async writeRaw(section) { // write all modules in sequence - for ( const module of section.modules ) { - const resource = await this.pool.findResourceWithInfo(module); + for ( const moduleName of section.modules ) { + const resource = await this.pool.findResourceWithInfo(moduleName); if ( resource != null ) { - this.outW.startSegment(module); + this.outW.startSegment(moduleName); this.outW.ensureNewLine(); - this.outW.writeln("//@ui5-bundle-raw-include " + module); - await this.writeRawModule(module, resource); + this.outW.writeln("//@ui5-bundle-raw-include " + moduleName); + await this.writeRawModule(moduleName, resource); const compressedSize = this.outW.endSegment(); - log.verbose(" %s (%d,%d)", module, resource.info != null ? resource.info.size : -1, compressedSize); + log.verbose(" %s (%d,%d)", moduleName, + resource.info != null ? resource.info.size : -1, compressedSize); if ( section.declareRawModules ) { - this.missingRawDeclarations.push(module); + this.missingRawDeclarations.push(moduleName); } - if ( module === UI5ClientConstants.MODULE__JQUERY_SAP_GLOBAL ) { + if ( moduleName === UI5ClientConstants.MODULE__JQUERY_SAP_GLOBAL ) { this.jqglobalAvailable = true; } } else { - log.error(" couldn't find %s", module); + log.error(" couldn't find %s", moduleName); } } } - async writeRawModule(module, resource) { - const fileContent = await resource.string(); + async writeRawModule(moduleName, resource) { + this.outW.ensureNewLine(); + let moduleContent = (await resource.buffer()).toString(); + if (this.options.sourceMap) { + let moduleSourceMap; + ({moduleContent, moduleSourceMap} = + await this.getSourceMapForModule({ + moduleName, + moduleContent, + resourcePath: resource.getPath() + })); + this.addSourceMap(moduleName, moduleSourceMap); + } + this.outW.write(moduleContent); this.outW.ensureNewLine(); - this.outW.write(fileContent); } async writePreloadFunction(section) { @@ -296,7 +337,7 @@ class BundleBuilder { await this.rewriteAMDModules(sequence); if ( sequence.length > 0 ) { - this.targetBundleFormat.beforePreloads(outW, section); + this.writeWithSourceMap(this.targetBundleFormat.beforePreloads(section)); let i = 0; for ( const module of sequence ) { const resource = await this.pool.findResourceWithInfo(module); @@ -304,7 +345,7 @@ class BundleBuilder { if ( i>0 ) { outW.writeln(","); } - this.beforeWritePreloadModule(module, resource.info, resource); + // this.beforeWritePreloadModule(module, resource.info, resource); outW.write(`\t"${module.toString()}":`); outW.startSegment(module); await this.writePreloadModule(module, resource.info, resource); @@ -320,7 +361,7 @@ class BundleBuilder { if ( i > 0 ) { outW.writeln(); } - this.targetBundleFormat.afterPreloads(outW, section); + outW.write(this.targetBundleFormat.afterPreloads(section)); } // this.afterWriteFunctionPreloadSection(); @@ -331,32 +372,72 @@ class BundleBuilder { sequence.sort(); } + addSourceMap(moduleName, map) { + if (!map) { + throw new Error("No source map provided"); + } + + if (map.mappings.startsWith(";")) { + // If first line is not already mapped (typical for comments or parentheses), add a mapping to + // make sure that dev-tools (especially Chrome's) don't choose the end of the preceding module + // when the user tries to set a breakpoint from the bundle file + map.mappings = "AAAA" + map.mappings; + } + + map.sourceRoot = path.posix.relative( + path.posix.dirname(this._bundleName), path.posix.dirname(moduleName)); + + this._sourceMap.sections.push({ + offset: { + line: this.outW.lineOffset, + column: this.outW.columnOffset + }, + map + }); + } + async rewriteAMDModules(sequence) { if ( this.options.usePredefineCalls ) { const outW = this.outW; const remaining = []; - for ( const module of sequence ) { - if ( /\.js$/.test(module) ) { - // console.log("Processing " + module); - const resource = await this.pool.findResourceWithInfo(module); - let moduleContent = await resource.string(); - moduleContent = rewriteDefine(this.targetBundleFormat, moduleContent, module); - if ( moduleContent ) { - outW.startSegment(module); + for ( const moduleName of sequence ) { + if ( /\.js$/.test(moduleName) ) { + // console.log("Processing " + moduleName); + const resource = await this.pool.findResourceWithInfo(moduleName); + let moduleContent = (await resource.buffer()).toString(); + let moduleSourceMap; + if (this.options.sourceMap) { + ({moduleContent, moduleSourceMap} = + await this.getSourceMapForModule({ + moduleName, + moduleContent, + resourcePath: resource.getPath() + })); + } + + const rewriteRes = await rewriteDefine({ + moduleName, moduleContent, moduleSourceMap + }); + if (rewriteRes) { + const {moduleContent, moduleSourceMap} = rewriteRes; + outW.startSegment(moduleName); outW.ensureNewLine(); + if (moduleSourceMap) { + this.addSourceMap(moduleName, moduleSourceMap); + } outW.write(moduleContent); outW.ensureNewLine(); const compressedSize = outW.endSegment(); - log.verbose(" %s (%d,%d)", module, + log.verbose(" %s (%d,%d)", moduleName, resource.info != null ? resource.info.size : -1, compressedSize); } else { // keep unprocessed modules - remaining.push(module); + remaining.push(moduleName); } } else { // keep unprocessed modules - remaining.push(module); + remaining.push(moduleName); } } @@ -372,42 +453,54 @@ class BundleBuilder { /** * - * @param {string} module module name + * @param {string} moduleName module name * @param {ModuleInfo} info * @param {module:@ui5/fs.Resource} resource * @returns {Promise} */ - async writePreloadModule(module, info, resource) { + async writePreloadModule(moduleName, info, resource) { const outW = this.outW; - if ( /\.js$/.test(module) && (info == null || !info.requiresTopLevelScope) ) { - const moduleContent = await resource.string(); - outW.write(`function(){`); + if ( /\.js$/.test(moduleName) && (info == null || !info.requiresTopLevelScope) ) { + outW.writeln(`function(){`); + // The module should be written to a new line in order for dev-tools to map breakpoints to it + outW.ensureNewLine(); + let moduleContent = (await resource.buffer()).toString(); + if (this.options.sourceMap) { + let moduleSourceMap; + ({moduleContent, moduleSourceMap} = + await this.getSourceMapForModule({ + moduleName, + moduleContent, + resourcePath: resource.getPath() + })); + + this.addSourceMap(moduleName, moduleSourceMap); + } outW.write(moduleContent); this.exportGlobalNames(info); outW.ensureNewLine(); outW.write(`}`); - } else if ( /\.js$/.test(module) /* implicitly: && info != null && info.requiresTopLevelScope */ ) { + } else if ( /\.js$/.test(moduleName) /* implicitly: && info != null && info.requiresTopLevelScope */ ) { log.warn("**** warning: module %s requires top level scope" + - " and can only be embedded as a string (requires 'eval')", module); - const moduleContent = await resource.buffer(); - outW.write(makeStringLiteral(moduleContent)); - } else if ( /\.html$/.test(module) ) { - const fileContent = await resource.buffer(); + " and can only be embedded as a string (requires 'eval')", moduleName); + outW.write( makeStringLiteral( (await resource.buffer()).toString() ) ); + } else if ( /\.html$/.test(moduleName) ) { + const fileContent = (await resource.buffer()).toString(); outW.write( makeStringLiteral( fileContent ) ); - } else if ( /\.json$/.test(module) ) { - let fileContent = await resource.buffer(); + } else if ( /\.json$/.test(moduleName) ) { + let fileContent = (await resource.buffer()).toString(); if ( this.optimize ) { try { fileContent = JSON.stringify( JSON.parse( fileContent) ); } catch (e) { - log.verbose("Failed to parse JSON file %s. Ignoring error, skipping compression.", module); + log.verbose("Failed to parse JSON file %s. Ignoring error, skipping compression.", moduleName); log.verbose(e); } } outW.write(makeStringLiteral(fileContent)); - } else if ( /\.xml$/.test(module) ) { - let fileContent = await resource.string(); + } else if ( /\.xml$/.test(moduleName) ) { + let fileContent = (await resource.buffer()).toString(); if ( this.optimize ) { // For XML we use the pretty data // Do not minify if XML(View) contains an <*:pre> tag, @@ -417,14 +510,14 @@ class BundleBuilder { } } outW.write( makeStringLiteral( fileContent ) ); - } else if ( /\.properties$/.test(module) ) { + } else if ( /\.properties$/.test(moduleName) ) { // Since the Builder is also used when building non-project resources (e.g. dependencies) // *.properties files should be escaped if encoding option is specified const fileContent = await escapePropertiesFile(resource); outW.write( makeStringLiteral( fileContent ) ); } else { - log.error("don't know how to embed module " + module); // TODO throw? + log.error("don't know how to embed module " + moduleName); // TODO throw? } return true; @@ -442,18 +535,19 @@ class BundleBuilder { this.outW.ensureNewLine(); info.exposedGlobals.forEach( (globalName) => { // Note: globalName can be assumed to be a valid identifier as it is used as variable name anyhow - this.outW.writeln(`this.${globalName}=${globalName};`); + this.writeWithSourceMap(`this.${globalName}=${globalName};\n`); }); } writeBundleInfos(sections) { this.outW.ensureNewLine(); + let bundleInfoStr = ""; if ( sections.length > 0 ) { - this.targetBundleFormat.beforeBundleInfo(this.outW); + bundleInfoStr = this.targetBundleFormat.beforeBundleInfo(); sections.forEach((section, idx) => { if ( idx > 0 ) { - this.outW.writeln(","); + bundleInfoStr += ",\n"; } if (!section.name) { @@ -464,31 +558,116 @@ class BundleBuilder { `The info might not work as expected. ` + `The name must match the bundle filename (incl. extension such as '.js')`); } - this.outW.write(`"${section.name}":[${section.modules.map(makeStringLiteral).join(",")}]`); + bundleInfoStr += `"${section.name}":[${section.modules.map(makeStringLiteral).join(",")}]`; }); - this.outW.writeln(); - this.targetBundleFormat.afterBundleInfo(this.outW); + bundleInfoStr += "\n"; + bundleInfoStr += this.targetBundleFormat.afterBundleInfo(); + + this.writeWithSourceMap(bundleInfoStr); } } writeRequires(section) { this.outW.ensureNewLine(); section.modules.forEach( (module) => { - this.targetBundleFormat.requireSync(this.outW, module); + this.writeWithSourceMap(this.targetBundleFormat.requireSync(module)); }); } + + async getSourceMapForModule({moduleName, moduleContent, resourcePath}) { + let moduleSourceMap = null; + let newModuleContent = moduleContent; + + const sourceMapUrlMatch = moduleContent.match(sourceMappingUrlPattern); + if (sourceMapUrlMatch) { + const sourceMapUrl = sourceMapUrlMatch[1]; + log.verbose(`Found source map reference in content of module ${moduleName}: ${sourceMapUrl}`); + + // Strip sourceMappingURL from module code to be bundled + // It has no effect and might be cause for confusion + newModuleContent = moduleContent.replace(sourceMappingUrlPattern, ""); + + if (sourceMapUrl) { + if (sourceMapUrl.startsWith("data:")) { + // Data-URI indicates an inline source map + const expectedTypeAndEncoding = "data:application/json;charset=utf-8;base64,"; + if (sourceMapUrl.startsWith(expectedTypeAndEncoding)) { + const base64Content = sourceMapUrl.slice(expectedTypeAndEncoding.length); + moduleSourceMap = Buffer.from(base64Content, "base64").toString(); + } else { + log.warn( + `Source map reference in module ${moduleName} is a data URI but has an unexpected` + + `encoding: ${sourceMapUrl}. Expected it to start with ` + + `"data:application/json;charset=utf-8;base64,"`); + } + } else if (httpPattern.test(sourceMapUrl)) { + log.warn(`Source map reference in module ${moduleName} is an absolute URL. ` + + `Currently, only relative URLs are supported.`); + } else if (path.posix.isAbsolute(sourceMapUrl)) { + log.warn(`Source map reference in module ${moduleName} is an absolute path. ` + + `Currently, only relative paths are supported.`); + } else { + const sourceMapPath = path.posix.join(path.posix.dirname(moduleName), sourceMapUrl); + + try { + const sourceMapResource = await this.pool.findResource(sourceMapPath); + moduleSourceMap = (await sourceMapResource.buffer()).toString(); + } catch (e) { + // No input source map + log.warn(`Unable to read source map for module ${moduleName}: ${e.message}`); + } + } + } + } else { + const sourceMapFileCandidate = resourcePath.slice("/resources/".length) + ".map"; + log.verbose(`Could not find a sourceMappingURL reference in content of module ${moduleName}. ` + + `Attempting to find a source map resource based on the module's path: ${sourceMapFileCandidate}`); + try { + const sourceMapResource = await this.pool.findResource(sourceMapFileCandidate); + if (sourceMapResource) { + moduleSourceMap = (await sourceMapResource.buffer()).toString(); + } + } catch (e) { + // No input source map + log.verbose(`Could not find a source map for module ${moduleName}: ${e.message}`); + } + } + + + if (moduleSourceMap) { + moduleSourceMap = JSON.parse(moduleSourceMap); + } else { + log.verbose(`No source map available for module ${moduleName}. Creating transient source map...`); + moduleSourceMap = createTransientSourceMap({ + moduleName: path.posix.basename(resourcePath), + moduleContent + }); + } + + return { + moduleSourceMap, + moduleContent: newModuleContent + }; + } } const CALL_SAP_UI_DEFINE = ["sap", "ui", "define"]; -function rewriteDefine(targetBundleFormat, code, moduleName) { +/* + * @param {object} parameters + * @param {string} parameters.moduleName + * @param {string} parameters.moduleContent + * @param {object} [parameters.moduleSourceMap] + * @returns {Promise} Object containing moduleContent and + * moduleSourceMap (if one was provided) or null if no rewrite was applicable + */ +async function rewriteDefine({moduleName, moduleContent, moduleSourceMap}) { let ast; - const codeStr = code.toString(); try { - ast = parseJS(codeStr, {range: true}); + ast = parseJS(moduleContent, {range: true}); } catch (e) { log.error("error while parsing %s: %s", moduleName, e.message); - return; + return {}; } if ( ast.type === Syntax.Program && @@ -497,7 +676,6 @@ function rewriteDefine(targetBundleFormat, code, moduleName) { const changes = []; const defineCall = ast.body[0].expression; - // Inject module name if missing if ( defineCall.arguments.length == 0 || defineCall.arguments[0].type !== Syntax.Literal ) { @@ -515,7 +693,6 @@ function rewriteDefine(targetBundleFormat, code, moduleName) { changes.push({ index, - count: 0, value }); } @@ -527,29 +704,109 @@ function rewriteDefine(targetBundleFormat, code, moduleName) { changes.push({ // asterisk marks the index: sap.ui.*define() index: defineCall.callee.property.range[0], - count: 0, value: "pre" }); } - return applyChanges(codeStr, changes); + return transform(changes, moduleContent, moduleSourceMap); } - return false; + return null; } -function applyChanges(string, changes) { - // No sorting needed as changes are added in correct order - - const array = Array.from(string); +/* + * @param {object[]} changes Changes that should be applied to the code + * @param {string} moduleContent Code to transform + * @param {object} [moduleSourceMap] Optional source map that should be aligned with the content change + * @returns {Promise} Object containing moduleContent and + * moduleSourceMap (if one was provided) + */ +async function transform(changes, moduleContent, moduleSourceMap) { + const mappingChanges = []; + + const array = Array.from(moduleContent); + // No sorting needed as changes are added in correct (reverse) order changes.forEach((change) => { + if (moduleSourceMap) { + // Compute line and column for given index to re-align source map with inserted characters + const precedingCode = array.slice(0, change.index); + + const line = precedingCode.reduce((lineCount, char) => { + if (char === "\n") { + lineCount++; + } + return lineCount; + }, 0); + const lineStartIndex = precedingCode.lastIndexOf("\n") + 1; + const column = change.index - lineStartIndex; + + // Source map re-alignment needs to be done from front to back + mappingChanges.unshift({ + line, + column, + columnDiff: change.value.length + }); + } + + // Apply modification array.splice( change.index, - change.count, + 0, change.value ); }); - return array.join(""); + const transformedCode = array.join(""); + + if (moduleSourceMap) { + const mappings = decodeMappings(moduleSourceMap.mappings); + mappingChanges.forEach((mappingChange) => { + const lineMapping = mappings[mappingChange.line]; + if (!lineMapping) { + // No mapping available that could be transformed + return; + } + // Mapping structure: + // [generatedCodeColumn, sourceIndex, sourceCodeLine, sourceCodeColumn, nameIndex] + lineMapping.forEach((mapping) => { + if (mapping[0] > mappingChange.column) { + // All column mappings for the generated code after any change + // need to be moved by the amount of inserted characters + mapping[0] = mapping[0] + mappingChange.columnDiff; + } + }); + }); + + moduleSourceMap.mappings = encodeMappings(mappings); + + // No need for file information in source map since the bundled code does not exist in any file anyways + delete moduleSourceMap.file; + } + + return { + moduleContent: transformedCode, + moduleSourceMap + }; +} + +function createTransientSourceMap({moduleName, moduleContent, includeContent = false}) { + const sourceMap = { + version: 3, + sources: [moduleName], + // TODO: check whether moduleContent.match() with \n is better w.r.t performance/memory usage + mappings: encodeMappings(moduleContent.split("\n").map((line, i) => { + return [[0, 0, i, 0]]; + })) + }; + if (includeContent) { + sourceMap.sourcesContent = [moduleContent]; + } + return sourceMap; } module.exports = BundleBuilder; + +// Export local functions for testing only +/* istanbul ignore else */ +if (process.env.NODE_ENV === "test") { + module.exports.__localFunctions__ = {rewriteDefine, createTransientSourceMap}; +} diff --git a/lib/lbt/bundle/BundleWriter.js b/lib/lbt/bundle/BundleWriter.js index 8b63ba0ad..004bc9311 100644 --- a/lib/lbt/bundle/BundleWriter.js +++ b/lib/lbt/bundle/BundleWriter.js @@ -11,6 +11,8 @@ const SPACES_OR_TABS_ONLY = /^[ \t]+$/; * * Most methods have been extracted from JSMergeWriter. * + * columnOffset and lineOffset are used for sourcemap merging as reference to where we are at a given point in time + * * @author Frank Weigel * @since 1.27.0 * @private @@ -18,6 +20,8 @@ const SPACES_OR_TABS_ONLY = /^[ \t]+$/; class BundleWriter { constructor() { this.buf = ""; + this.lineOffset = 0; + this.columnOffset = 0; this.segments = []; this.currentSegment = null; this.currentSourceIndex = 0; @@ -28,6 +32,11 @@ class BundleWriter { let writeBuf = ""; for ( let i = 0; i < str.length; i++ ) { writeBuf += str[i]; + if (str[i] != null && str[i].split) { + const strSplit = str[i].split(NL); + this.lineOffset += strSplit.length - 1; + this.columnOffset += strSplit[strSplit.length - 1].length; + } } if ( writeBuf.length >= 1 ) { this.buf += writeBuf; @@ -40,15 +49,23 @@ class BundleWriter { writeln(...str) { for ( let i = 0; i < str.length; i++ ) { this.buf += str[i]; + if (str[i] != null && str[i].split) { + const strSplit = str[i].split(NL); + this.lineOffset += strSplit.length - 1; + } } this.buf += NL; this.endsWithNewLine = true; + this.lineOffset += 1; + this.columnOffset = 0; } ensureNewLine() { if ( !this.endsWithNewLine ) { this.buf += NL; this.endsWithNewLine = true; + this.lineOffset += 1; + this.columnOffset = 0; } } diff --git a/lib/lbt/resources/LocatorResource.js b/lib/lbt/resources/LocatorResource.js index a5c029734..a39fbb37e 100644 --- a/lib/lbt/resources/LocatorResource.js +++ b/lib/lbt/resources/LocatorResource.js @@ -1,12 +1,12 @@ const Resource = require("./Resource"); -function extractName(path) { - return path.slice( "/resources/".length); -} +// function extractName(path) { +// return path.slice( "/resources/".length); +// } class LocatorResource extends Resource { - constructor(pool, resource) { - super(pool, extractName(resource.getPath()), null, resource.getStatInfo()); + constructor(pool, resource, moduleName) { + super(pool, moduleName, null, resource.getStatInfo()); this.resource = resource; } @@ -17,6 +17,10 @@ class LocatorResource extends Resource { getProject() { return this.resource._project; } + + getPath() { + return this.resource.getPath(); + } } module.exports = LocatorResource; diff --git a/lib/lbt/resources/LocatorResourcePool.js b/lib/lbt/resources/LocatorResourcePool.js index 104051584..af6994c17 100644 --- a/lib/lbt/resources/LocatorResourcePool.js +++ b/lib/lbt/resources/LocatorResourcePool.js @@ -2,12 +2,16 @@ const ResourcePool = require("./ResourcePool"); const LocatorResource = require("./LocatorResource"); class LocatorResourcePool extends ResourcePool { - prepare(resources) { + prepare(resources, moduleNameMapping) { resources = resources.filter( (res) => !res.getStatInfo().isDirectory() ); return Promise.all( - resources.map( - (resource) => this.addResource( new LocatorResource(this, resource) ) - ).filter(Boolean) + resources.map((resource) => { + let moduleName = moduleNameMapping && moduleNameMapping[resource.getPath()]; + if (!moduleName) { + moduleName = resource.getPath().slice("/resources/".length); + } + this.addResource(new LocatorResource(this, resource, moduleName)); + }).filter(Boolean) ); } } diff --git a/lib/processors/bundlers/moduleBundler.js b/lib/processors/bundlers/moduleBundler.js index f1a205492..e4080b2df 100644 --- a/lib/processors/bundlers/moduleBundler.js +++ b/lib/processors/bundlers/moduleBundler.js @@ -90,6 +90,8 @@ const log = require("@ui5/logger").getLogger("builder:processors:bundlers:module * @public * @typedef {object} ModuleBundleOptions * @property {boolean} [optimize=true] Whether the module bundle gets minified + * @property {boolean} [sourceMap] Whether to generate a source map file for the bundle. + * Defaults to true if optimize is set to true * @property {boolean} [decorateBootstrapModule=false] If set to 'false', the module won't be decorated * with an optimization marker * @property {boolean} [addTryCatchRestartWrapper=false] Whether to wrap bootable module bundles with @@ -101,18 +103,30 @@ const log = require("@ui5/logger").getLogger("builder:processors:bundlers:module */ /** - * Legacy preload bundler. + * Result set + * + * @public + * @typedef {object} ModuleBundlerResult + * @property {module:@ui5/fs.Resource} bundle Bundle resource + * @property {module:@ui5/fs.Resource} sourceMap Source Map + * @memberof module:@ui5/builder.processors + */ + +/** + * Legacy module bundler. * * @public * @alias module:@ui5/builder.processors.moduleBundler * @param {object} parameters Parameters * @param {module:@ui5/fs.Resource[]} parameters.resources Resources * @param {object} parameters.options Options + * @param {object} [parameters.options.moduleNameMapping] + Optional mapping of resource paths to module name in order to overwrite the default determination * @param {ModuleBundleDefinition} parameters.options.bundleDefinition Module bundle definition * @param {ModuleBundleOptions} [parameters.options.bundleOptions] Module bundle options - * @returns {Promise} Promise resolving with module bundle resources + * @returns {Promise} Promise resolving with module bundle resources */ -module.exports = function({resources, options: {bundleDefinition, bundleOptions}}) { +module.exports = function({resources, options: {bundleDefinition, bundleOptions, moduleNameMapping}}) { // Apply defaults without modifying the passed object bundleOptions = Object.assign({}, { optimize: true, @@ -134,7 +148,7 @@ module.exports = function({resources, options: {bundleDefinition, bundleOptions} log.verbose(`bundleOptions: ${JSON.stringify(bundleOptions, null, 2)}`); } - return pool.prepare( resources ). + return pool.prepare( resources, moduleNameMapping ). then( () => builder.createBundle(bundleDefinition, bundleOptions) ). then( (results) => { let bundles; @@ -146,13 +160,20 @@ module.exports = function({resources, options: {bundleDefinition, bundleOptions} return Promise.all(bundles.map((bundleObj) => { if ( bundleObj ) { - const {name, content} = bundleObj; + const {name, content, sourceMap} = bundleObj; // console.log("creating bundle as '%s'", "/resources/" + name); - const resource = new EvoResource({ + const res = {}; + res.bundle = new EvoResource({ path: "/resources/" + name, string: content }); - return resource; + if (sourceMap) { + res.sourceMap = new EvoResource({ + path: "/resources/" + name + ".map", + string: sourceMap + }); + } + return res; } })); }); diff --git a/lib/processors/minifier.js b/lib/processors/minifier.js index e2abe32d8..1a583fd23 100644 --- a/lib/processors/minifier.js +++ b/lib/processors/minifier.js @@ -34,10 +34,12 @@ const debugFileRegex = /((?:\.view|\.fragment|\.controller|\.designtime|\.suppor * @alias module:@ui5/builder.processors.minifier * @param {object} parameters Parameters * @param {module:@ui5/fs.Resource[]} parameters.resources List of resources to be processed + * @param {boolean} [parameters.addSourceMappingUrl=true] + * Whether to add a sourceMappingURL reference to the end of the minified resource * @returns {Promise} * Promise resolving with object of resource, dbgResource and sourceMap */ -module.exports = async function({resources}) { +module.exports = async function({resources, addSourceMappingUrl = true}) { return Promise.all(resources.map(async (resource) => { const dbgPath = resource.getPath().replace(debugFileRegex, "-dbg$1"); const dbgResource = await resource.clone(); @@ -46,6 +48,12 @@ module.exports = async function({resources}) { const filename = path.posix.basename(resource.getPath()); const code = await resource.getString(); try { + const sourceMapOptions = { + filename + }; + if (addSourceMappingUrl) { + sourceMapOptions.url = filename + ".map"; + } const dbgFilename = path.posix.basename(dbgPath); const result = await terser.minify({ // Use debug-name since this will be referenced in the source map "sources" @@ -63,10 +71,7 @@ module.exports = async function({resources}) { "sap", ] }, - sourceMap: { - filename, - url: filename + ".map" - } + sourceMap: sourceMapOptions }); resource.setString(result.code); const sourceMapResource = new Resource({ diff --git a/lib/tasks/bundlers/generateBundle.js b/lib/tasks/bundlers/generateBundle.js index 2b0360180..2d83d1f43 100644 --- a/lib/tasks/bundlers/generateBundle.js +++ b/lib/tasks/bundlers/generateBundle.js @@ -25,8 +25,53 @@ module.exports = function({ readers: [workspace, dependencies] }); + const optimize = !bundleOptions || bundleOptions.optimize !== false; if (taskUtil) { - const optimize = !bundleOptions || bundleOptions.optimize !== false; + /* Scenarios + 1. Optimize bundle with minification already done + Workspace: + * /resources/my/lib/Control.js [ui5:HasDebugVariant] + * /resources/my/lib/Control.js.map [ui5:HasDebugVariant] + * /resources/my/lib/Control-dbg.js [ui5:IsDebugVariant] + + Bundler input: + * /resources/my/lib/Control.js + * /resources/my/lib/Control.js.map + + => Filter out debug resources + + 2. Optimize bundle with no minification + * /resources/my/lib/Control.js + + => No action necessary + + 3. Debug-bundle with minification already done + Workspace: + * /resources/my/lib/Control.js [ui5:HasDebugVariant] + * /resources/my/lib/Control.js.map [ui5:HasDebugVariant] + * /resources/my/lib/Control-dbg.js [ui5:IsDebugVariant] + + Bundler input: + * /resources/my/lib/Control-dbg.js + * moduleNameMapping: [{"/resources/my/lib/Control-dbg.js": "my/lib/Control.js"}] + + => Filter out minified-resources (tagged as "HasDebugVariant", incl. source maps) and rename debug-files + + 4. Debug-bundle with no minification + * /resources/my/lib/Control.js + + => No action necessary + + 5. Bundle with external input (optimize or not), e.g. TS-project + Workspace: + * /resources/my/lib/Control.ts + * /resources/my/lib/Control.js + * /resources/my/lib/Control.js.map + + Bundler input: + * /resources/my/lib/Control.js + * /resources/my/lib/Control.js.map + */ // Omit -dbg files for optimize bundles and vice versa const filterTag = optimize ? @@ -34,37 +79,50 @@ module.exports = function({ combo = combo.filter(function(resource) { return !taskUtil.getTag(resource, filterTag); }); + } - if (!optimize) { - // For "unoptimized" bundles, the non-debug files have already been filtered out - // Now rename the debug variants to the same name so that they appear like the original - // resource to the bundler - combo = combo.transformer(async function(resourcePath, getResource) { + return combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library,js.map}").then((resources) => { + const moduleNameMapping = {}; + if (!optimize && taskUtil) { + // For "unoptimized" bundles, the non-debug files have already been filtered out above. + // Now we need to create a mapping from the debug-variant resource path to the respective module name, + // which is basically the non-debug resource path, minus the "/resources/"" prefix. + // This mapping overwrites internal logic of the LocatorResourcePool which would otherwise determine + // the module name from the resource path, which would contain "-dbg" in this case. That would be + // incorrect since debug-variants should still keep the original module name. + for (let i = resources.length - 1; i >= 0; i--) { + const resourcePath = resources[i].getPath(); if (taskUtil.getTag(resourcePath, taskUtil.STANDARD_TAGS.IsDebugVariant)) { - const resource = await getResource(); - const nonDbgPath = ModuleName.getNonDebugName(resource.getPath()); + const nonDbgPath = ModuleName.getNonDebugName(resourcePath); if (!nonDbgPath) { - throw new Error(`Failed to resolve non-debug name for ${resource.getPath()}`); + throw new Error(`Failed to resolve non-debug name for ${resourcePath}`); } - resource.setPath(nonDbgPath); + moduleNameMapping[resourcePath] = nonDbgPath.slice("/resources/".length); } - }); + } } - } - - return combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library}").then((resources) => { return moduleBundler({ options: { bundleDefinition, - bundleOptions + bundleOptions, + moduleNameMapping }, resources }).then((bundles) => { - return Promise.all(bundles.map((bundle) => { + return Promise.all(bundles.map(({bundle, sourceMap}) => { if (taskUtil) { taskUtil.setTag(bundle, taskUtil.STANDARD_TAGS.IsBundle); + if (sourceMap) { + // Clear tag that might have been set by the minify task, in cases where + // the bundle name is identical to a source file + taskUtil.clearTag(sourceMap, taskUtil.STANDARD_TAGS.OmitFromBuildResult); + } + } + const writes = [workspace.write(bundle)]; + if (sourceMap) { + writes.push(workspace.write(sourceMap)); } - return workspace.write(bundle); + return Promise.all(writes); })); }); }); diff --git a/lib/tasks/bundlers/generateComponentPreload.js b/lib/tasks/bundlers/generateComponentPreload.js index 4946624b0..0bae96d79 100644 --- a/lib/tasks/bundlers/generateComponentPreload.js +++ b/lib/tasks/bundlers/generateComponentPreload.js @@ -41,7 +41,7 @@ module.exports = function({ } // TODO 3.0: Limit to workspace resources? - return combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library}") + return combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library,js.map}") .then(async (resources) => { let allNamespaces = []; if (paths) { @@ -148,12 +148,19 @@ module.exports = function({ }); })); }) - .then((processedResources) => { - return Promise.all(processedResources.map((resource) => { + .then((results) => { + const bundles = Array.prototype.concat.apply([], results); + return Promise.all(bundles.map(({bundle, sourceMap}) => { if (taskUtil) { - taskUtil.setTag(resource[0], taskUtil.STANDARD_TAGS.IsBundle); + taskUtil.setTag(bundle, taskUtil.STANDARD_TAGS.IsBundle); + // Clear tag that might have been set by the minify task, in cases where + // the bundle name is identical to a source file + taskUtil.clearTag(sourceMap, taskUtil.STANDARD_TAGS.OmitFromBuildResult); } - return workspace.write(resource[0]); + return Promise.all([ + workspace.write(bundle), + workspace.write(sourceMap) + ]); })); }); }; diff --git a/lib/tasks/bundlers/generateLibraryPreload.js b/lib/tasks/bundlers/generateLibraryPreload.js index 5a6b5bba2..654aa65ca 100644 --- a/lib/tasks/bundlers/generateLibraryPreload.js +++ b/lib/tasks/bundlers/generateLibraryPreload.js @@ -177,6 +177,8 @@ function createLibraryBundles(libraryNamespace, resources, excludes) { ignoreMissingModules: true, skipIfEmpty: true } + // Note: Although the bundle uses optimize=false, there is + // no moduleNameMapping needed, as support files are excluded from minification. }, resources }) @@ -212,6 +214,10 @@ function getModuleBundlerOptions(config) { moduleBundlerOptions.bundleDefinition.sections.unshift(providedSection); } + if (config.moduleNameMapping) { + moduleBundlerOptions.moduleNameMapping = config.moduleNameMapping; + } + return moduleBundlerOptions; } @@ -285,7 +291,7 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN }); } - return combo.byGlob("/**/*.{js,json,xml,html,properties,library}").then(async (resources) => { + return combo.byGlob("/**/*.{js,json,xml,html,properties,library,js.map}").then(async (resources) => { // Find all libraries and create a library-preload.js bundle let p = Promise.resolve(); @@ -305,6 +311,7 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN return resource.getPath() === "/resources/ui5loader.js"; }); + const unoptimizedModuleNameMapping = {}; let unoptimizedResources = resources; if (taskUtil) { unoptimizedResources = await new ReaderCollectionPrioritized({ @@ -313,16 +320,24 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN }).filter(function(resource) { // Remove any non-debug variants return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.HasDebugVariant); - }).transformer(async function(resourcePath, getResource) { + }).byGlob("/**/*.{js,json,xml,html,properties,library,js.map}"); + + // For "unoptimized" bundles, the non-debug files have already been filtered out above. + // Now we need to create a mapping from the debug-variant resource path to the respective module + // name, which is basically the non-debug resource path, minus the "/resources/"" prefix. + // This mapping overwrites internal logic of the LocatorResourcePool which would otherwise determine + // the module name from the resource path, which would contain "-dbg" in this case. That would be + // incorrect since debug-variants should still keep the original module name. + for (let i = unoptimizedResources.length - 1; i >= 0; i--) { + const resourcePath = unoptimizedResources[i].getPath(); if (taskUtil.getTag(resourcePath, taskUtil.STANDARD_TAGS.IsDebugVariant)) { - const resource = await getResource(); - const nonDbgPath = ModuleName.getNonDebugName(resource.getPath()); + const nonDbgPath = ModuleName.getNonDebugName(resourcePath); if (!nonDbgPath) { - throw new Error(`Failed to resolve non-debug name for ${resource.getPath()}`); + throw new Error(`Failed to resolve non-debug name for ${resourcePath}`); } - resource.setPath(nonDbgPath); + unoptimizedModuleNameMapping[resourcePath] = nonDbgPath.slice("/resources/".length); } - }).byGlob("/**/*.{js,json,xml,html,properties,library}"); + } } let filters; @@ -337,7 +352,10 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN resources }), moduleBundler({ - options: getModuleBundlerOptions({name: "sap-ui-core-dbg.js", filters, preload: false}), + options: getModuleBundlerOptions({ + name: "sap-ui-core-dbg.js", filters, preload: false, + moduleNameMapping: unoptimizedModuleNameMapping + }), resources: unoptimizedResources }), moduleBundler({ @@ -348,17 +366,27 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN }), moduleBundler({ options: getModuleBundlerOptions({ - name: "sap-ui-core-nojQuery-dbg.js", filters, preload: false, provided: true + name: "sap-ui-core-nojQuery-dbg.js", filters, preload: false, provided: true, + moduleNameMapping: unoptimizedModuleNameMapping }), resources: unoptimizedResources }), ]).then((results) => { const bundles = Array.prototype.concat.apply([], results); - return Promise.all(bundles.map((bundle) => { + return Promise.all(bundles.map(({bundle, sourceMap}) => { if (taskUtil) { taskUtil.setTag(bundle, taskUtil.STANDARD_TAGS.IsBundle); + if (sourceMap) { + // Clear tag that might have been set by the minify task, in cases where + // the bundle name is identical to a source file + taskUtil.clearTag(sourceMap, taskUtil.STANDARD_TAGS.OmitFromBuildResult); + } } - return workspace.write(bundle); + const writes = [workspace.write(bundle)]; + if (sourceMap) { + writes.push(workspace.write(sourceMap)); + } + return Promise.all(writes); })); }); } @@ -396,12 +424,22 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN return createLibraryBundles(libraryNamespace, resources, excludes) .then((results) => { const bundles = Array.prototype.concat.apply([], results); - return Promise.all(bundles.map((bundle) => { + return Promise.all(bundles.map(({bundle, sourceMap} = {}) => { if (bundle) { if (taskUtil) { taskUtil.setTag(bundle, taskUtil.STANDARD_TAGS.IsBundle); + if (sourceMap) { + // Clear tag that might have been set by the minify task, in cases where + // the bundle name is identical to a source file + taskUtil.clearTag(sourceMap, + taskUtil.STANDARD_TAGS.OmitFromBuildResult); + } + } + const writes = [workspace.write(bundle)]; + if (sourceMap) { + writes.push(workspace.write(sourceMap)); } - return workspace.write(bundle); + return Promise.all(writes); } })); }); diff --git a/lib/tasks/bundlers/generateStandaloneAppBundle.js b/lib/tasks/bundlers/generateStandaloneAppBundle.js index e843f0395..7621c447c 100644 --- a/lib/tasks/bundlers/generateStandaloneAppBundle.js +++ b/lib/tasks/bundlers/generateStandaloneAppBundle.js @@ -1,6 +1,7 @@ const log = require("@ui5/logger").getLogger("builder:tasks:bundlers:generateStandaloneAppBundle"); const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritized; const moduleBundler = require("../../processors/bundlers/moduleBundler"); +const ModuleName = require("../../lbt/utils/ModuleName"); function getBundleDefinition(config) { const bundleDefinition = { @@ -88,8 +89,7 @@ module.exports = async function({workspace, dependencies, taskUtil, options: {pr return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.IsDebugVariant); }); } - const results = await combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library}"); - const resources = Array.prototype.concat.apply([], results); + const resources = await combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library,js.map}"); const isEvo = resources.find((resource) => { return resource.getPath() === "/resources/ui5loader.js"; @@ -101,6 +101,35 @@ module.exports = async function({workspace, dependencies, taskUtil, options: {pr filters = ["jquery.sap.global.js"]; } + const unoptimizedModuleNameMapping = {}; + let unoptimizedResources = resources; + if (taskUtil) { + unoptimizedResources = await new ReaderCollectionPrioritized({ + name: `generateStandaloneAppBundle - prioritize workspace over dependencies: ${projectName}`, + readers: [workspace, dependencies] + }).filter(function(resource) { + // Remove any non-debug variants + return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.HasDebugVariant); + }).byGlob("/resources/**/*.{js,json,xml,html,properties,library,js.map}"); + + // For "unoptimized" bundles, the non-debug files have already been filtered out above. + // Now we need to create a mapping from the debug-variant resource path to the respective module name, + // which is basically the non-debug resource path, minus the "/resources/"" prefix. + // This mapping overwrites internal logic of the LocatorResourcePool which would otherwise determine + // the module name from the resource path, which would contain "-dbg" in this case. That would be + // incorrect since debug-variants should still keep the original module name. + for (let i = unoptimizedResources.length - 1; i >= 0; i--) { + const resourcePath = unoptimizedResources[i].getPath(); + if (taskUtil.getTag(resourcePath, taskUtil.STANDARD_TAGS.IsDebugVariant)) { + const nonDbgPath = ModuleName.getNonDebugName(resourcePath); + if (!nonDbgPath) { + throw new Error(`Failed to resolve non-debug name for ${resourcePath}`); + } + unoptimizedModuleNameMapping[resourcePath] = nonDbgPath.slice("/resources/".length); + } + } + } + await Promise.all([ moduleBundler({ resources, @@ -114,7 +143,7 @@ module.exports = async function({workspace, dependencies, taskUtil, options: {pr } }), moduleBundler({ - resources, + resources: unoptimizedResources, options: { bundleDefinition: getBundleDefinition({ name: "sap-ui-custom-dbg.js", @@ -123,16 +152,26 @@ module.exports = async function({workspace, dependencies, taskUtil, options: {pr }), bundleOptions: { optimize: false - } + }, + moduleNameMapping: unoptimizedModuleNameMapping } }) ]).then((results) => { const bundles = Array.prototype.concat.apply([], results); - return Promise.all(bundles.map((resource) => { + return Promise.all(bundles.map(({bundle, sourceMap}) => { if (taskUtil) { - taskUtil.setTag(resource, taskUtil.STANDARD_TAGS.IsBundle); + taskUtil.setTag(bundle, taskUtil.STANDARD_TAGS.IsBundle); + if (sourceMap) { + // Clear tag that might have been set by the minify task, in cases where + // the bundle name is identical to a source file + taskUtil.clearTag(sourceMap, taskUtil.STANDARD_TAGS.OmitFromBuildResult); + } + } + const writes = [workspace.write(bundle)]; + if (sourceMap) { + writes.push(workspace.write(sourceMap)); } - return workspace.write(resource); + return Promise.all(writes); })); }); }; diff --git a/lib/tasks/generateResourcesJson.js b/lib/tasks/generateResourcesJson.js index 9c99f6161..38992175a 100644 --- a/lib/tasks/generateResourcesJson.js +++ b/lib/tasks/generateResourcesJson.js @@ -105,7 +105,7 @@ function getCreatorOptions(projectName) { module.exports = async function({workspace, dependencies, taskUtil, options: {projectName}}) { let resources = await workspace.byGlob(["/resources/**/*"].concat(DEFAULT_EXCLUDES)); let dependencyResources = - await dependencies.byGlob("/resources/**/*.{js,json,xml,html,properties,library}"); + await dependencies.byGlob("/resources/**/*.{js,json,xml,html,properties,library,js.map}"); if (taskUtil) { // Filter out resources that will be omitted from the build results diff --git a/lib/tasks/minify.js b/lib/tasks/minify.js index 007f6f0fc..3fe5c6ddf 100644 --- a/lib/tasks/minify.js +++ b/lib/tasks/minify.js @@ -10,17 +10,25 @@ const minifier = require("../processors/minifier"); * @param {module:@ui5/builder.tasks.TaskUtil|object} [parameters.taskUtil] TaskUtil * @param {object} parameters.options Options * @param {string} parameters.options.pattern Pattern to locate the files to be processed + * @param {boolean} [parameters.options.omitSourceMapResources=true] Whether source map resources shall + * be tagged as "OmitFromBuildResult" and no sourceMappingURL shall be added to the minified resource * @returns {Promise} Promise resolving with undefined once data has been written */ -module.exports = async function({workspace, taskUtil, options: {pattern}}) { +module.exports = async function({workspace, taskUtil, options: {pattern, omitSourceMapResources = true}}) { const resources = await workspace.byGlob(pattern); - const processedResources = await minifier({resources}); + const processedResources = await minifier({ + resources, + addSourceMappingUrl: !omitSourceMapResources + }); return Promise.all(processedResources.map(async ({resource, dbgResource, sourceMapResource}) => { if (taskUtil) { taskUtil.setTag(resource, taskUtil.STANDARD_TAGS.HasDebugVariant); taskUtil.setTag(dbgResource, taskUtil.STANDARD_TAGS.IsDebugVariant); - taskUtil.setTag(sourceMapResource, taskUtil.STANDARD_TAGS.OmitFromBuildResult); + taskUtil.setTag(sourceMapResource, taskUtil.STANDARD_TAGS.HasDebugVariant); + if (omitSourceMapResources) { + taskUtil.setTag(sourceMapResource, taskUtil.STANDARD_TAGS.OmitFromBuildResult); + } } return Promise.all([ workspace.write(resource), diff --git a/package-lock.json b/package-lock.json index 352abd1d1..228c8ab5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "replacestream": "^4.0.3", "rimraf": "^3.0.2", "semver": "^7.3.5", + "sourcemap-codec": "^1.4.8", "terser": "^5.10.0", "xml2js": "^0.4.23", "yazl": "^2.5.1" @@ -6532,8 +6533,7 @@ "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, "node_modules/spawn-wrap": { "version": "2.0.0", @@ -12581,8 +12581,7 @@ "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, "spawn-wrap": { "version": "2.0.0", diff --git a/package.json b/package.json index da2ceb6ea..a726f1d0c 100644 --- a/package.json +++ b/package.json @@ -121,6 +121,7 @@ "replacestream": "^4.0.3", "rimraf": "^3.0.2", "semver": "^7.3.5", + "sourcemap-codec": "^1.4.8", "terser": "^5.10.0", "xml2js": "^0.4.23", "yazl": "^2.5.1" diff --git a/test/expected/build/application.a/dest-deps-excl/test.js b/test/expected/build/application.a/dest-deps-excl/test.js index 24b3706c6..fd8278c6e 100644 --- a/test/expected/build/application.a/dest-deps-excl/test.js +++ b/test/expected/build/application.a/dest-deps-excl/test.js @@ -1,2 +1 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); -//# sourceMappingURL=test.js.map \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js b/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js index 75aba1e23..c23f5f207 100644 --- a/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js +++ b/test/expected/build/application.a/dest-deps-incl/resources/library/d/some.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -(function(){var o="World";console.log("Hello "+o)})(); -//# sourceMappingURL=some.js.map \ No newline at end of file +(function(){var o="World";console.log("Hello "+o)})(); \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js b/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js index 9b62890d8..e69de29bb 100644 --- a/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js +++ b/test/expected/build/application.a/dest-deps-incl/resources/ui5loader.js @@ -1,2 +0,0 @@ - -//# sourceMappingURL=ui5loader.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps-incl/test.js b/test/expected/build/application.a/dest-deps-incl/test.js index 24b3706c6..fd8278c6e 100644 --- a/test/expected/build/application.a/dest-deps-incl/test.js +++ b/test/expected/build/application.a/dest-deps-incl/test.js @@ -1,2 +1 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); -//# sourceMappingURL=test.js.map \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/resources/library/d/some.js b/test/expected/build/application.a/dest-deps/resources/library/d/some.js index 75aba1e23..c23f5f207 100644 --- a/test/expected/build/application.a/dest-deps/resources/library/d/some.js +++ b/test/expected/build/application.a/dest-deps/resources/library/d/some.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -(function(){var o="World";console.log("Hello "+o)})(); -//# sourceMappingURL=some.js.map \ No newline at end of file +(function(){var o="World";console.log("Hello "+o)})(); \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/resources/ui5loader.js b/test/expected/build/application.a/dest-deps/resources/ui5loader.js index 9b62890d8..e69de29bb 100644 --- a/test/expected/build/application.a/dest-deps/resources/ui5loader.js +++ b/test/expected/build/application.a/dest-deps/resources/ui5loader.js @@ -1,2 +0,0 @@ - -//# sourceMappingURL=ui5loader.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-deps/test.js b/test/expected/build/application.a/dest-deps/test.js index 24b3706c6..fd8278c6e 100644 --- a/test/expected/build/application.a/dest-deps/test.js +++ b/test/expected/build/application.a/dest-deps/test.js @@ -1,2 +1 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); -//# sourceMappingURL=test.js.map \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/resources/library/d/some.js b/test/expected/build/application.a/dest-depself/resources/library/d/some.js index 75aba1e23..c23f5f207 100644 --- a/test/expected/build/application.a/dest-depself/resources/library/d/some.js +++ b/test/expected/build/application.a/dest-depself/resources/library/d/some.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -(function(){var o="World";console.log("Hello "+o)})(); -//# sourceMappingURL=some.js.map \ No newline at end of file +(function(){var o="World";console.log("Hello "+o)})(); \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/resources/sap-ui-custom-dbg.js b/test/expected/build/application.a/dest-depself/resources/sap-ui-custom-dbg.js index 456319972..54dbb5e7d 100644 --- a/test/expected/build/application.a/dest-depself/resources/sap-ui-custom-dbg.js +++ b/test/expected/build/application.a/dest-depself/resources/sap-ui-custom-dbg.js @@ -1 +1,2 @@ //@ui5-bundle sap-ui-custom-dbg.js +//# sourceMappingURL=sap-ui-custom-dbg.js.map diff --git a/test/expected/build/application.a/dest-depself/resources/sap-ui-custom-dbg.js.map b/test/expected/build/application.a/dest-depself/resources/sap-ui-custom-dbg.js.map new file mode 100644 index 000000000..7c185dcc4 --- /dev/null +++ b/test/expected/build/application.a/dest-depself/resources/sap-ui-custom-dbg.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sap-ui-custom-dbg.js","sections":[]} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js b/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js index b03a55c6e..0a39f3213 100644 --- a/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js +++ b/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js @@ -1,12 +1,13 @@ //@ui5-bundle sap-ui-custom.js sap.ui.require.preload({ - "application/a/test.js":function(){sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); -//# sourceMappingURL=test.js.map + "application/a/test.js":function(){ +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); }, - "library/d/some.js":function(){/*! + "library/d/some.js":function(){ +/*! * Some fancy copyright */ (function(){var o="World";console.log("Hello "+o)})(); -//# sourceMappingURL=some.js.map } }); +//# sourceMappingURL=sap-ui-custom.js.map diff --git a/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js.map b/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js.map new file mode 100644 index 000000000..a8c0b442f --- /dev/null +++ b/test/expected/build/application.a/dest-depself/resources/sap-ui-custom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sap-ui-custom.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["sap-ui-custom.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js","sourceRoot":"application/a"}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":"AAAA;;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js","sourceRoot":"library/d"}}]} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/resources/ui5loader.js b/test/expected/build/application.a/dest-depself/resources/ui5loader.js index 9b62890d8..e69de29bb 100644 --- a/test/expected/build/application.a/dest-depself/resources/ui5loader.js +++ b/test/expected/build/application.a/dest-depself/resources/ui5loader.js @@ -1,2 +0,0 @@ - -//# sourceMappingURL=ui5loader.js.map \ No newline at end of file diff --git a/test/expected/build/application.a/dest-depself/test.js b/test/expected/build/application.a/dest-depself/test.js index 24b3706c6..fd8278c6e 100644 --- a/test/expected/build/application.a/dest-depself/test.js +++ b/test/expected/build/application.a/dest-depself/test.js @@ -1,2 +1 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); -//# sourceMappingURL=test.js.map \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file diff --git a/test/expected/build/application.a/dest-self/resources/sap-ui-custom-dbg.js b/test/expected/build/application.a/dest-self/resources/sap-ui-custom-dbg.js index 456319972..54dbb5e7d 100644 --- a/test/expected/build/application.a/dest-self/resources/sap-ui-custom-dbg.js +++ b/test/expected/build/application.a/dest-self/resources/sap-ui-custom-dbg.js @@ -1 +1,2 @@ //@ui5-bundle sap-ui-custom-dbg.js +//# sourceMappingURL=sap-ui-custom-dbg.js.map diff --git a/test/expected/build/application.a/dest-self/resources/sap-ui-custom-dbg.js.map b/test/expected/build/application.a/dest-self/resources/sap-ui-custom-dbg.js.map new file mode 100644 index 000000000..7c185dcc4 --- /dev/null +++ b/test/expected/build/application.a/dest-self/resources/sap-ui-custom-dbg.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sap-ui-custom-dbg.js","sections":[]} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js b/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js index 5016d451e..9605939bb 100644 --- a/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js +++ b/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js @@ -1,9 +1,10 @@ //@ui5-bundle sap-ui-custom.js sap.ui.require.preload({ - "application/a/test.js":function(){sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); -//# sourceMappingURL=test.js.map + "application/a/test.js":function(){ +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); }, - "library/d/some.js":function(){/*! + "library/d/some.js":function(){ +/*! * ${copyright} */ (function() { @@ -12,3 +13,4 @@ sap.ui.require.preload({ })(); } }); +//# sourceMappingURL=sap-ui-custom.js.map diff --git a/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js.map b/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js.map new file mode 100644 index 000000000..587957a0b --- /dev/null +++ b/test/expected/build/application.a/dest-self/resources/sap-ui-custom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sap-ui-custom.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["sap-ui-custom.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["test-dbg.js"],"names":["sap","ui","define","someObject","test","paramA","variableA","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CACV,kBACD,SAASC,GACX,SAASC,EAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js","sourceRoot":"application/a"}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["some.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":"library/d"}}]} \ No newline at end of file diff --git a/test/expected/build/application.a/dest-self/test.js b/test/expected/build/application.a/dest-self/test.js index 24b3706c6..fd8278c6e 100644 --- a/test/expected/build/application.a/dest-self/test.js +++ b/test/expected/build/application.a/dest-self/test.js @@ -1,2 +1 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); -//# sourceMappingURL=test.js.map \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file diff --git a/test/expected/build/application.a/dest/test.js b/test/expected/build/application.a/dest/test.js index 24b3706c6..fd8278c6e 100644 --- a/test/expected/build/application.a/dest/test.js +++ b/test/expected/build/application.a/dest/test.js @@ -1,2 +1 @@ -sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); -//# sourceMappingURL=test.js.map \ No newline at end of file +sap.ui.define(["library/d/some"],function(n){function o(n){var o=n;console.log(o)}o()}); \ No newline at end of file diff --git a/test/expected/build/application.b/dest/embedded/i18n_fr.properties b/test/expected/build/application.b/dest/embedded/i18n_fr.properties new file mode 100644 index 000000000..85e162740 --- /dev/null +++ b/test/expected/build/application.b/dest/embedded/i18n_fr.properties @@ -0,0 +1 @@ +title=embedded-i18n_fr-wrong \ No newline at end of file diff --git a/test/expected/build/application.b/dest/i18n.properties b/test/expected/build/application.b/dest/i18n.properties new file mode 100644 index 000000000..e8dc9e0da --- /dev/null +++ b/test/expected/build/application.b/dest/i18n.properties @@ -0,0 +1,2 @@ +title=app-i18n-wrong +fame=Stra\u00dfe \ No newline at end of file diff --git a/test/expected/build/application.b/dest/i18n/l10n.properties b/test/expected/build/application.b/dest/i18n/l10n.properties new file mode 100644 index 000000000..e8dc9e0da --- /dev/null +++ b/test/expected/build/application.b/dest/i18n/l10n.properties @@ -0,0 +1,2 @@ +title=app-i18n-wrong +fame=Stra\u00dfe \ No newline at end of file diff --git a/test/expected/build/application.b/dest/manifest-bundle.zip b/test/expected/build/application.b/dest/manifest-bundle.zip new file mode 100644 index 0000000000000000000000000000000000000000..1e5d351a8c9f556ee434bdae28a3eb81205dfcbc GIT binary patch literal 1129 zcmWIWW@Zs#VBp|j$Sm{-u?x$+(aONUz|Y9QAO@sUbCXh2Qc_d&a})D2(^88|^s>raY>Gh0ehr$8p2H@jEq@T z=FCj$(1{3&oWLc-CN*{P%sCNEmwHrsRb<%Ar4kh*c)RAhRk?W;yo^$r98^3xD7dS! zYmwraDOW_6Mx?Z-OncH08x+f%cI}$enUzmhJ!N7*b?BMUzn4UT4ipArSs;doaHgR} zo<4}sD=5k@NG&SKOfA+vsdLhEtM6G~FJDhj--~BWwwz!_GjHwTxfT*Yb3n1BfYrSC zlvMmicKds>qM7={@*AfL&@?3=76)Rup9A&inH0=!YpKuR!rf*!vi e=rM*cBoWyV6i>0TfmE>p;e4R8w*b{KFaQ96t5LTA literal 0 HcmV?d00001 diff --git a/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js b/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js index be330319f..431dde210 100644 --- a/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js +++ b/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js @@ -7,3 +7,4 @@ sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); +//# sourceMappingURL=sap-ui-custom-dbg.js.map diff --git a/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js.map b/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js.map new file mode 100644 index 000000000..0a374bce4 --- /dev/null +++ b/test/expected/build/application.b/standalone/resources/sap-ui-custom-dbg.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sap-ui-custom-dbg.js","sections":[{"offset":{"line":2,"column":0},"map":{"version":3,"sources":["ui5loader-autoconfig.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["sap-ui-custom-dbg.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.requireSync(\"sap/ui/core/Core\");\n"],"sourceRoot":""}},{"offset":{"line":7,"column":0},"map":{"version":3,"sources":["sap-ui-custom-dbg.js?bundle-code-1"],"mappings":"AAAA;AACA","sourcesContent":["// as this module contains the Core, we ensure that the Core has been booted\nsap.ui.getCore().boot && sap.ui.getCore().boot();"],"sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.b/standalone/resources/sap-ui-custom.js b/test/expected/build/application.b/standalone/resources/sap-ui-custom.js index b68d6920b..df8d2af8b 100644 --- a/test/expected/build/application.b/standalone/resources/sap-ui-custom.js +++ b/test/expected/build/application.b/standalone/resources/sap-ui-custom.js @@ -14,7 +14,8 @@ sap.ui.require.preload({ "id1/i18n/i18n_de.properties":'title=app-i18n_de\nfame=Stra\\u00dfe', "id1/i18n/l10n.properties":'title=app-i18n-wrong\nfame=Stra\\u00dfe', "id1/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"id1","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', - "sap/ui/core/Core.js":function(){(function () { + "sap/ui/core/Core.js":function(){ +(function () { var core = true; console.log(core); })() @@ -23,3 +24,4 @@ sap.ui.require.preload({ sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); +//# sourceMappingURL=sap-ui-custom.js.map diff --git a/test/expected/build/application.b/standalone/resources/sap-ui-custom.js.map b/test/expected/build/application.b/standalone/resources/sap-ui-custom.js.map new file mode 100644 index 000000000..d98966387 --- /dev/null +++ b/test/expected/build/application.b/standalone/resources/sap-ui-custom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sap-ui-custom.js","sections":[{"offset":{"line":2,"column":0},"map":{"version":3,"sources":["ui5loader-autoconfig.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["sap-ui-custom.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":17,"column":0},"map":{"version":3,"sources":["Core.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":"sap/ui/core"}},{"offset":{"line":23,"column":0},"map":{"version":3,"sources":["sap-ui-custom.js?bundle-code-1"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.requireSync(\"sap/ui/core/Core\");\n"],"sourceRoot":""}},{"offset":{"line":24,"column":0},"map":{"version":3,"sources":["sap-ui-custom.js?bundle-code-2"],"mappings":"AAAA;AACA","sourcesContent":["// as this module contains the Core, we ensure that the Core has been booted\nsap.ui.getCore().boot && sap.ui.getCore().boot();"],"sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/Component-preload.js b/test/expected/build/application.g/cachebuster/Component-preload.js index e42a2092a..b1f089a2a 100644 --- a/test/expected/build/application.g/cachebuster/Component-preload.js +++ b/test/expected/build/application.g/cachebuster/Component-preload.js @@ -2,16 +2,17 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/g/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); }, "application/g/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g","type":"application","applicationVersion":{"version":"1.0.0"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"Some fancy copyright"}', - "application/g/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/subcomponentA/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', - "application/g/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/subcomponentB/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/cachebuster/Component-preload.js.map b/test/expected/build/application.g/cachebuster/Component-preload.js.map new file mode 100644 index 000000000..407e4420d --- /dev/null +++ b/test/expected/build/application.g/cachebuster/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentA"}},{"offset":{"line":13,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentB"}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/Component.js b/test/expected/build/application.g/cachebuster/Component.js index 6ad3cfb41..6fdb761a9 100644 --- a/test/expected/build/application.g/cachebuster/Component.js +++ b/test/expected/build/application.g/cachebuster/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/sap-ui-cachebuster-info.json b/test/expected/build/application.g/cachebuster/sap-ui-cachebuster-info.json index a8cc8479d..b7fb26273 100644 --- a/test/expected/build/application.g/cachebuster/sap-ui-cachebuster-info.json +++ b/test/expected/build/application.g/cachebuster/sap-ui-cachebuster-info.json @@ -1,15 +1,16 @@ { - "subcomponentB/Component-dbg.js": 1542320456755, - "subcomponentA/manifest.json": 1542320456755, - "manifest.json": 1603970570100, - "subcomponentA/Component.js": 1542320456755, - "subcomponentB/manifest.json": 1542320456755, - "Component.js": 1542320456754, - "Component-dbg.js": 1542320456754, - "Component.js.map": 1638483275870, - "subcomponentA/Component-dbg.js": 1542320456755, - "subcomponentA/Component.js.map": 1638483275870, - "subcomponentB/Component.js": 1542320456755, - "subcomponentB/Component.js.map": 1638483275871, - "Component-preload.js": 1638483275995 + "subcomponentB/manifest.json": 1563262681148, + "subcomponentA/manifest.json": 1563262681148, + "manifest.json": 1563262681147, + "subcomponentB/Component.js": 1563262681148, + "subcomponentA/Component.js": 1563262681148, + "Component.js": 1563262681147, + "subcomponentA/Component-dbg.js": 1563262681148, + "subcomponentA/Component.js.map": 1645537451553, + "subcomponentB/Component-dbg.js": 1563262681148, + "subcomponentB/Component.js.map": 1645537451553, + "Component-dbg.js": 1563262681147, + "Component.js.map": 1645537451553, + "Component-preload.js": 1645537451980, + "Component-preload.js.map": 1645537451980 } \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/subcomponentA/Component.js b/test/expected/build/application.g/cachebuster/subcomponentA/Component.js index b53909394..0d3fd6ccc 100644 --- a/test/expected/build/application.g/cachebuster/subcomponentA/Component.js +++ b/test/expected/build/application.g/cachebuster/subcomponentA/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster/subcomponentB/Component.js b/test/expected/build/application.g/cachebuster/subcomponentB/Component.js index c5cc2084d..c8af2ace9 100644 --- a/test/expected/build/application.g/cachebuster/subcomponentB/Component.js +++ b/test/expected/build/application.g/cachebuster/subcomponentB/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/Component-preload.js b/test/expected/build/application.g/cachebuster_hash/Component-preload.js index e42a2092a..b1f089a2a 100644 --- a/test/expected/build/application.g/cachebuster_hash/Component-preload.js +++ b/test/expected/build/application.g/cachebuster_hash/Component-preload.js @@ -2,16 +2,17 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/g/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); }, "application/g/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g","type":"application","applicationVersion":{"version":"1.0.0"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"Some fancy copyright"}', - "application/g/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/subcomponentA/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', - "application/g/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/subcomponentB/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/cachebuster_hash/Component-preload.js.map b/test/expected/build/application.g/cachebuster_hash/Component-preload.js.map new file mode 100644 index 000000000..407e4420d --- /dev/null +++ b/test/expected/build/application.g/cachebuster_hash/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentA"}},{"offset":{"line":13,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentB"}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/Component.js b/test/expected/build/application.g/cachebuster_hash/Component.js index 6ad3cfb41..6fdb761a9 100644 --- a/test/expected/build/application.g/cachebuster_hash/Component.js +++ b/test/expected/build/application.g/cachebuster_hash/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/sap-ui-cachebuster-info.json b/test/expected/build/application.g/cachebuster_hash/sap-ui-cachebuster-info.json index 68f5436bc..5d91cc749 100644 --- a/test/expected/build/application.g/cachebuster_hash/sap-ui-cachebuster-info.json +++ b/test/expected/build/application.g/cachebuster_hash/sap-ui-cachebuster-info.json @@ -1,15 +1,16 @@ { - "Component.js": "174e92417f0fa7889c2bdb8a243c4d748d66a4da", - "subcomponentB/manifest.json": "3a08d0555e3e49fe683e01205090eed3182b4a9f", + "Component-dbg.js": "874c35543ae850262d1552b6c2d00cecaae205a7", + "subcomponentA/manifest.json": "7dfcdf568dcfb47c74d309e2f00193688b112fb7", "manifest.json": "a867583cff8c3a5135bfbdd97dcb7a9cad4948bd", - "subcomponentB/Component.js": "d2a467cc8d05c693b22dbef82c2bff4610611d81", + "subcomponentB/manifest.json": "3a08d0555e3e49fe683e01205090eed3182b4a9f", "subcomponentA/Component.js": "37e2d3c99ddf728313ceaddd087c6d547fcbdf8f", - "subcomponentA/manifest.json": "7dfcdf568dcfb47c74d309e2f00193688b112fb7", - "subcomponentB/Component-dbg.js": "c03da2c5ff162c1d9d5e5c4a3edc2cebcda6b0a1", - "subcomponentB/Component.js.map": "76cd9820f761dd43fe4b2a6f5397d09625603e0d", + "Component.js": "174e92417f0fa7889c2bdb8a243c4d748d66a4da", "subcomponentA/Component-dbg.js": "fef3a5814776e5575302f814e96ae31a13df12b7", "subcomponentA/Component.js.map": "76cd9820f761dd43fe4b2a6f5397d09625603e0d", - "Component-dbg.js": "874c35543ae850262d1552b6c2d00cecaae205a7", + "subcomponentB/Component-dbg.js": "c03da2c5ff162c1d9d5e5c4a3edc2cebcda6b0a1", + "subcomponentB/Component.js.map": "76cd9820f761dd43fe4b2a6f5397d09625603e0d", + "subcomponentB/Component.js": "d2a467cc8d05c693b22dbef82c2bff4610611d81", "Component.js.map": "35e88e40f4933fe235a359361d7bd3459e6f5235", - "Component-preload.js": "d55d19cde640e716b1e03fe44d21436d5158db09" + "Component-preload.js": "5a4592408148af17538a1ee2c70c310931d2575c", + "Component-preload.js.map": "3b5d5de04ca05341ed50444277945dac240505f6" } \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js b/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js index b53909394..0d3fd6ccc 100644 --- a/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js +++ b/test/expected/build/application.g/cachebuster_hash/subcomponentA/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js b/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js index c5cc2084d..c8af2ace9 100644 --- a/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js +++ b/test/expected/build/application.g/cachebuster_hash/subcomponentB/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/dest/Component-preload.js b/test/expected/build/application.g/dest/Component-preload.js index 3754c4605..a186e8cc7 100644 --- a/test/expected/build/application.g/dest/Component-preload.js +++ b/test/expected/build/application.g/dest/Component-preload.js @@ -2,8 +2,9 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/g/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); }, "application/g/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g","type":"application","applicationVersion":{"version":"1.0.0"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"Some fancy copyright"}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest/Component-preload.js.map b/test/expected/build/application.g/dest/Component-preload.js.map new file mode 100644 index 000000000..a7a60e6f3 --- /dev/null +++ b/test/expected/build/application.g/dest/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/Component.js b/test/expected/build/application.g/dest/Component.js index 6ad3cfb41..6fdb761a9 100644 --- a/test/expected/build/application.g/dest/Component.js +++ b/test/expected/build/application.g/dest/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentA/Component-preload.js b/test/expected/build/application.g/dest/subcomponentA/Component-preload.js index 47f678316..63ae65bd3 100644 --- a/test/expected/build/application.g/dest/subcomponentA/Component-preload.js +++ b/test/expected/build/application.g/dest/subcomponentA/Component-preload.js @@ -2,8 +2,9 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/g/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/subcomponentA/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest/subcomponentA/Component-preload.js.map b/test/expected/build/application.g/dest/subcomponentA/Component-preload.js.map new file mode 100644 index 000000000..86937b5b0 --- /dev/null +++ b/test/expected/build/application.g/dest/subcomponentA/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentA/Component.js b/test/expected/build/application.g/dest/subcomponentA/Component.js index b53909394..0d3fd6ccc 100644 --- a/test/expected/build/application.g/dest/subcomponentA/Component.js +++ b/test/expected/build/application.g/dest/subcomponentA/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentB/Component-preload.js b/test/expected/build/application.g/dest/subcomponentB/Component-preload.js index f6815fb06..ec2301f6d 100644 --- a/test/expected/build/application.g/dest/subcomponentB/Component-preload.js +++ b/test/expected/build/application.g/dest/subcomponentB/Component-preload.js @@ -2,8 +2,9 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/g/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/subcomponentB/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest/subcomponentB/Component-preload.js.map b/test/expected/build/application.g/dest/subcomponentB/Component-preload.js.map new file mode 100644 index 000000000..86937b5b0 --- /dev/null +++ b/test/expected/build/application.g/dest/subcomponentB/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentB/Component.js b/test/expected/build/application.g/dest/subcomponentB/Component.js index c5cc2084d..c8af2ace9 100644 --- a/test/expected/build/application.g/dest/subcomponentB/Component.js +++ b/test/expected/build/application.g/dest/subcomponentB/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/Component-preload.js b/test/expected/build/application.g/dest2/Component-preload.js index 3754c4605..a186e8cc7 100644 --- a/test/expected/build/application.g/dest2/Component-preload.js +++ b/test/expected/build/application.g/dest2/Component-preload.js @@ -2,8 +2,9 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/g/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); }, "application/g/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g","type":"application","applicationVersion":{"version":"1.0.0"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"Some fancy copyright"}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest2/Component-preload.js.map b/test/expected/build/application.g/dest2/Component-preload.js.map new file mode 100644 index 000000000..a7a60e6f3 --- /dev/null +++ b/test/expected/build/application.g/dest2/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/Component.js b/test/expected/build/application.g/dest2/Component.js index 6ad3cfb41..6fdb761a9 100644 --- a/test/expected/build/application.g/dest2/Component.js +++ b/test/expected/build/application.g/dest2/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js b/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js index 47f678316..63ae65bd3 100644 --- a/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js +++ b/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js @@ -2,8 +2,9 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/g/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/subcomponentA/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js.map b/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js.map new file mode 100644 index 000000000..86937b5b0 --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentA/Component.js b/test/expected/build/application.g/dest2/subcomponentA/Component.js index b53909394..0d3fd6ccc 100644 --- a/test/expected/build/application.g/dest2/subcomponentA/Component.js +++ b/test/expected/build/application.g/dest2/subcomponentA/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js b/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js index f6815fb06..ec2301f6d 100644 --- a/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js +++ b/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js @@ -2,8 +2,9 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/g/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/g/subcomponentB/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js.map b/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js.map new file mode 100644 index 000000000..86937b5b0 --- /dev/null +++ b/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentB/Component.js b/test/expected/build/application.g/dest2/subcomponentB/Component.js index c5cc2084d..c8af2ace9 100644 --- a/test/expected/build/application.g/dest2/subcomponentB/Component.js +++ b/test/expected/build/application.g/dest2/subcomponentB/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.h/dest/Component.js b/test/expected/build/application.h/dest/Component.js index ccde11646..acf57e86e 100644 --- a/test/expected/build/application.h/dest/Component.js +++ b/test/expected/build/application.h/dest/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.h.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.h.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/customBundle.js b/test/expected/build/application.h/dest/sectionsA/customBundle.js index 4292cdd48..50d9eba4b 100644 --- a/test/expected/build/application.h/dest/sectionsA/customBundle.js +++ b/test/expected/build/application.h/dest/sectionsA/customBundle.js @@ -2,10 +2,11 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/h/sectionsA/section1.js":function(){sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); -//# sourceMappingURL=section1.js.map + "application/h/sectionsA/section1.js":function(){ +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); }, - "application/h/sectionsA/section3.js":function(){sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); -//# sourceMappingURL=section3.js.map + "application/h/sectionsA/section3.js":function(){ +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); } }}); +//# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/application.h/dest/sectionsA/customBundle.js.map b/test/expected/build/application.h/dest/sectionsA/customBundle.js.map new file mode 100644 index 000000000..d4d5782ad --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsA/customBundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["section1-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section1.js","sourceRoot":""}},{"offset":{"line":8,"column":0},"map":{"version":3,"sources":["section3-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section3.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section1.js b/test/expected/build/application.h/dest/sectionsA/section1.js index 740930367..1ec2e3184 100644 --- a/test/expected/build/application.h/dest/sectionsA/section1.js +++ b/test/expected/build/application.h/dest/sectionsA/section1.js @@ -1,2 +1 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); -//# sourceMappingURL=section1.js.map \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section2.js b/test/expected/build/application.h/dest/sectionsA/section2.js index 653acdb83..a446217a5 100644 --- a/test/expected/build/application.h/dest/sectionsA/section2.js +++ b/test/expected/build/application.h/dest/sectionsA/section2.js @@ -1,2 +1 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 2 included")}); -//# sourceMappingURL=section2.js.map \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 2 included")}); \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/section3.js b/test/expected/build/application.h/dest/sectionsA/section3.js index 70c1434ed..8358bbe01 100644 --- a/test/expected/build/application.h/dest/sectionsA/section3.js +++ b/test/expected/build/application.h/dest/sectionsA/section3.js @@ -1,2 +1 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); -//# sourceMappingURL=section3.js.map \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/customBundle.js b/test/expected/build/application.h/dest/sectionsB/customBundle.js index 2ee5ae456..ab1c24af1 100644 --- a/test/expected/build/application.h/dest/sectionsB/customBundle.js +++ b/test/expected/build/application.h/dest/sectionsB/customBundle.js @@ -2,16 +2,20 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/h/sectionsB/section1.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + "application/h/sectionsB/section1.js":function(){ +sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 1 included"); }); }, - "application/h/sectionsB/section2.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + "application/h/sectionsB/section2.js":function(){ +sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 2 included"); }); }, - "application/h/sectionsB/section3.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + "application/h/sectionsB/section3.js":function(){ +sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 3 included"); }); } }}); +//# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/application.h/dest/sectionsB/customBundle.js.map b/test/expected/build/application.h/dest/sectionsB/customBundle.js.map new file mode 100644 index 000000000..a4a89d247 --- /dev/null +++ b/test/expected/build/application.h/dest/sectionsB/customBundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["section1-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":10,"column":0},"map":{"version":3,"sources":["section2-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":15,"column":0},"map":{"version":3,"sources":["section3-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section1.js b/test/expected/build/application.h/dest/sectionsB/section1.js index 740930367..1ec2e3184 100644 --- a/test/expected/build/application.h/dest/sectionsB/section1.js +++ b/test/expected/build/application.h/dest/sectionsB/section1.js @@ -1,2 +1 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); -//# sourceMappingURL=section1.js.map \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section2.js b/test/expected/build/application.h/dest/sectionsB/section2.js index 653acdb83..a446217a5 100644 --- a/test/expected/build/application.h/dest/sectionsB/section2.js +++ b/test/expected/build/application.h/dest/sectionsB/section2.js @@ -1,2 +1 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 2 included")}); -//# sourceMappingURL=section2.js.map \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 2 included")}); \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/section3.js b/test/expected/build/application.h/dest/sectionsB/section3.js index 70c1434ed..8358bbe01 100644 --- a/test/expected/build/application.h/dest/sectionsB/section3.js +++ b/test/expected/build/application.h/dest/sectionsB/section3.js @@ -1,2 +1 @@ -sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); -//# sourceMappingURL=section3.js.map \ No newline at end of file +sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); \ No newline at end of file diff --git a/test/expected/build/application.h/no-minify/sectionsA/customBundle.js b/test/expected/build/application.h/no-minify/sectionsA/customBundle.js index 3bd827332..3512dedd4 100644 --- a/test/expected/build/application.h/no-minify/sectionsA/customBundle.js +++ b/test/expected/build/application.h/no-minify/sectionsA/customBundle.js @@ -2,12 +2,15 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/h/sectionsA/section1.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + "application/h/sectionsA/section1.js":function(){ +sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 1 included"); }); }, - "application/h/sectionsA/section3.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + "application/h/sectionsA/section3.js":function(){ +sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 3 included"); }); } }}); +//# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/application.h/no-minify/sectionsA/customBundle.js.map b/test/expected/build/application.h/no-minify/sectionsA/customBundle.js.map new file mode 100644 index 000000000..fb67f722e --- /dev/null +++ b/test/expected/build/application.h/no-minify/sectionsA/customBundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["section1.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":10,"column":0},"map":{"version":3,"sources":["section3.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.h/no-minify/sectionsB/customBundle.js b/test/expected/build/application.h/no-minify/sectionsB/customBundle.js index 2ee5ae456..ab1c24af1 100644 --- a/test/expected/build/application.h/no-minify/sectionsB/customBundle.js +++ b/test/expected/build/application.h/no-minify/sectionsB/customBundle.js @@ -2,16 +2,20 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/h/sectionsB/section1.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + "application/h/sectionsB/section1.js":function(){ +sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 1 included"); }); }, - "application/h/sectionsB/section2.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + "application/h/sectionsB/section2.js":function(){ +sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 2 included"); }); }, - "application/h/sectionsB/section3.js":function(){sap.ui.define(["sap/m/Button"], function(Button) { + "application/h/sectionsB/section3.js":function(){ +sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 3 included"); }); } }}); +//# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/application.h/no-minify/sectionsB/customBundle.js.map b/test/expected/build/application.h/no-minify/sectionsB/customBundle.js.map new file mode 100644 index 000000000..f42d1805c --- /dev/null +++ b/test/expected/build/application.h/no-minify/sectionsB/customBundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["section1.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":10,"column":0},"map":{"version":3,"sources":["section2.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":15,"column":0},"map":{"version":3,"sources":["section3.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.i/dest/Component-preload.js b/test/expected/build/application.i/dest/Component-preload.js index 929f49213..a23378704 100644 --- a/test/expected/build/application.i/dest/Component-preload.js +++ b/test/expected/build/application.i/dest/Component-preload.js @@ -2,13 +2,14 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/i/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.i.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/i/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.i.Component",{metadata:{manifest:"json"}})}); }, "application/i/changes/changes-bundle.json":'[{"fileName":"id_456_addField","fileType":"change","changeType":"hideControl","component":"application.i.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.i.Component/changes","creation":"2023-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}},{"fileName":"id_123_addField","fileType":"change","changeType":"hideControl","component":"application.i.Component","content":{},"selector":{"id":"control1"},"layer":"CUSTOMER","texts":{},"namespace":"apps/application.i.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"Max Mustermann"}}]', - "application/i/changes/coding/MyExtension.js":function(){sap.ui.define([],function(){return{}}); -//# sourceMappingURL=MyExtension.js.map + "application/i/changes/coding/MyExtension.js":function(){ +sap.ui.define([],function(){return{}}); }, "application/i/changes/fragments/MyFragment.fragment.xml":'', "application/i/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.i","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{}}}}}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.i/dest/Component-preload.js.map b/test/expected/build/application.i/dest/Component-preload.js.map new file mode 100644 index 000000000..adda28edc --- /dev/null +++ b/test/expected/build/application.i/dest/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js","sourceRoot":"changes/coding"}}]} \ No newline at end of file diff --git a/test/expected/build/application.i/dest/Component.js b/test/expected/build/application.i/dest/Component.js index 5d50a2eff..f172a1f15 100644 --- a/test/expected/build/application.i/dest/Component.js +++ b/test/expected/build/application.i/dest/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.i.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.i.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.i/dest/changes/coding/MyExtension.js b/test/expected/build/application.i/dest/changes/coding/MyExtension.js index ce81ba310..b9e475d8e 100644 --- a/test/expected/build/application.i/dest/changes/coding/MyExtension.js +++ b/test/expected/build/application.i/dest/changes/coding/MyExtension.js @@ -1,2 +1 @@ -sap.ui.define([],function(){return{}}); -//# sourceMappingURL=MyExtension.js.map \ No newline at end of file +sap.ui.define([],function(){return{}}); \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/Component-preload.js b/test/expected/build/application.j/dest-resources-json/Component-preload.js index b00969cfa..62fee9e16 100644 --- a/test/expected/build/application.j/dest-resources-json/Component-preload.js +++ b/test/expected/build/application.j/dest-resources-json/Component-preload.js @@ -2,13 +2,14 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/j/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/j/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); }, - "application/j/changes/coding/MyExtension.js":function(){sap.ui.define([],function(){return{}}); -//# sourceMappingURL=MyExtension.js.map + "application/j/changes/coding/MyExtension.js":function(){ +sap.ui.define([],function(){return{}}); }, "application/j/changes/flexibility-bundle.json":'{"changes":[{"fileName":"id_456_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2023-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}},{"fileName":"id_123_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"CUSTOMER","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"Max Mustermann"}}],"compVariants":[{"fileName":"id_111_compVariants","fileType":"variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"appDescriptorChange":false}],"variants":[{"fileName":"id_111_test","fileType":"ctrl_variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantDependentControlChanges":[{"fileName":"id_111_variantDependentControlChange","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"variantReference":"someting here"}],"variantManagementChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_management_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}]}', "application/j/changes/fragments/MyFragment.fragment.xml":'', "application/j/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.j","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.73.2","libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{"lazy":false}}}}}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.j/dest-resources-json/Component-preload.js.map b/test/expected/build/application.j/dest-resources-json/Component-preload.js.map new file mode 100644 index 000000000..a7bfb3e24 --- /dev/null +++ b/test/expected/build/application.j/dest-resources-json/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":8,"column":0},"map":{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js","sourceRoot":"changes/coding"}}]} \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/Component.js b/test/expected/build/application.j/dest-resources-json/Component.js index f64b0734d..984f96eaf 100644 --- a/test/expected/build/application.j/dest-resources-json/Component.js +++ b/test/expected/build/application.j/dest-resources-json/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js b/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js index ce81ba310..b9e475d8e 100644 --- a/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js +++ b/test/expected/build/application.j/dest-resources-json/changes/coding/MyExtension.js @@ -1,2 +1 @@ -sap.ui.define([],function(){return{}}); -//# sourceMappingURL=MyExtension.js.map \ No newline at end of file +sap.ui.define([],function(){return{}}); \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/resources.json b/test/expected/build/application.j/dest-resources-json/resources.json index 3c72c06fb..7612bf68d 100644 --- a/test/expected/build/application.j/dest-resources-json/resources.json +++ b/test/expected/build/application.j/dest-resources-json/resources.json @@ -17,7 +17,7 @@ { "name": "Component-preload.js", "module": "application/j/Component-preload.js", - "size": 3760, + "size": 3730, "merged": true, "required": [ "sap/m/library.js", @@ -34,10 +34,15 @@ "application/j/manifest.json" ] }, + { + "name": "Component-preload.js.map", + "size": 836, + "isDebug": true + }, { "name": "Component.js", "module": "application/j/Component.js", - "size": 179, + "size": 141, "required": [ "sap/m/library.js", "sap/ui/core/UIComponent.js", @@ -55,7 +60,7 @@ { "name": "changes/coding/MyExtension.js", "module": "application/j/changes/coding/MyExtension.js", - "size": 79 + "size": 39 }, { "name": "changes/flexibility-bundle.json", @@ -78,7 +83,7 @@ }, { "name": "resources.json", - "size": 1923 + "size": 2006 } ] } \ No newline at end of file diff --git a/test/expected/build/application.j/dest/Component-preload.js b/test/expected/build/application.j/dest/Component-preload.js index b00969cfa..62fee9e16 100644 --- a/test/expected/build/application.j/dest/Component-preload.js +++ b/test/expected/build/application.j/dest/Component-preload.js @@ -2,13 +2,14 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/j/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/j/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); }, - "application/j/changes/coding/MyExtension.js":function(){sap.ui.define([],function(){return{}}); -//# sourceMappingURL=MyExtension.js.map + "application/j/changes/coding/MyExtension.js":function(){ +sap.ui.define([],function(){return{}}); }, "application/j/changes/flexibility-bundle.json":'{"changes":[{"fileName":"id_456_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2023-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}},{"fileName":"id_123_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"CUSTOMER","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"Max Mustermann"}}],"compVariants":[{"fileName":"id_111_compVariants","fileType":"variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"appDescriptorChange":false}],"variants":[{"fileName":"id_111_test","fileType":"ctrl_variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantDependentControlChanges":[{"fileName":"id_111_variantDependentControlChange","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"variantReference":"someting here"}],"variantManagementChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_management_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}]}', "application/j/changes/fragments/MyFragment.fragment.xml":'', "application/j/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.j","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.73.2","libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{"lazy":false}}}}}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.j/dest/Component-preload.js.map b/test/expected/build/application.j/dest/Component-preload.js.map new file mode 100644 index 000000000..a7bfb3e24 --- /dev/null +++ b/test/expected/build/application.j/dest/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":8,"column":0},"map":{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js","sourceRoot":"changes/coding"}}]} \ No newline at end of file diff --git a/test/expected/build/application.j/dest/Component.js b/test/expected/build/application.j/dest/Component.js index f64b0734d..984f96eaf 100644 --- a/test/expected/build/application.j/dest/Component.js +++ b/test/expected/build/application.j/dest/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/application.j/dest/changes/coding/MyExtension.js b/test/expected/build/application.j/dest/changes/coding/MyExtension.js index ce81ba310..b9e475d8e 100644 --- a/test/expected/build/application.j/dest/changes/coding/MyExtension.js +++ b/test/expected/build/application.j/dest/changes/coding/MyExtension.js @@ -1,2 +1 @@ -sap.ui.define([],function(){return{}}); -//# sourceMappingURL=MyExtension.js.map \ No newline at end of file +sap.ui.define([],function(){return{}}); \ No newline at end of file diff --git a/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js b/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js index ed8251c37..07f1270d6 100644 --- a/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js +++ b/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js @@ -2,7 +2,8 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/k/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "application/k/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; return UIComponent.extend('application.k.Component', { metadata: { @@ -12,7 +13,8 @@ jQuery.sap.registerPreloadedModules({ }); }, "application/k/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k","type":"application","applicationVersion":{"version":"${version}"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"${copyright}"}', - "application/k/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "application/k/subcomponentA/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; return UIComponent.extend('application.k.subcomponentA.Component', { metadata: { @@ -22,7 +24,8 @@ jQuery.sap.registerPreloadedModules({ }); }, "application/k/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', - "application/k/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "application/k/subcomponentB/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; return UIComponent.extend('application.k.subcomponentB.Component', { metadata: { @@ -32,6 +35,8 @@ jQuery.sap.registerPreloadedModules({ }); }, "application/k/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', - "application/k/subcomponentB/thirdparty/lib.js":function(){console.log("subcomponentB/thirdparty/lib.js"); + "application/k/subcomponentB/thirdparty/lib.js":function(){ +console.log("subcomponentB/thirdparty/lib.js"); } }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js.map b/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js.map new file mode 100644 index 000000000..721564654 --- /dev/null +++ b/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":16,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":"subcomponentA"}},{"offset":{"line":27,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":"subcomponentB"}},{"offset":{"line":38,"column":0},"map":{"version":3,"sources":["lib.js"],"mappings":"AAAA;AACA","sourceRoot":"subcomponentB/thirdparty"}}]} \ No newline at end of file diff --git a/test/expected/build/application.k/dest/Component-preload.js b/test/expected/build/application.k/dest/Component-preload.js index 12b9506ec..9eefb8942 100644 --- a/test/expected/build/application.k/dest/Component-preload.js +++ b/test/expected/build/application.k/dest/Component-preload.js @@ -2,7 +2,8 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/k/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "application/k/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; return UIComponent.extend('application.k.Component', { metadata: { @@ -13,3 +14,4 @@ jQuery.sap.registerPreloadedModules({ }, "application/k/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k","type":"application","applicationVersion":{"version":"${version}"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"${copyright}"}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.k/dest/Component-preload.js.map b/test/expected/build/application.k/dest/Component-preload.js.map new file mode 100644 index 000000000..61c83ce28 --- /dev/null +++ b/test/expected/build/application.k/dest/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.k/dest/subcomponentA/Component-preload.js b/test/expected/build/application.k/dest/subcomponentA/Component-preload.js index 2e73aff3b..cb50c4d55 100644 --- a/test/expected/build/application.k/dest/subcomponentA/Component-preload.js +++ b/test/expected/build/application.k/dest/subcomponentA/Component-preload.js @@ -2,7 +2,8 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/k/subcomponentA/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "application/k/subcomponentA/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; return UIComponent.extend('application.k.subcomponentA.Component', { metadata: { @@ -13,3 +14,4 @@ jQuery.sap.registerPreloadedModules({ }, "application/k/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.k/dest/subcomponentA/Component-preload.js.map b/test/expected/build/application.k/dest/subcomponentA/Component-preload.js.map new file mode 100644 index 000000000..61c83ce28 --- /dev/null +++ b/test/expected/build/application.k/dest/subcomponentA/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.k/dest/subcomponentB/Component-preload.js b/test/expected/build/application.k/dest/subcomponentB/Component-preload.js index 24bf462a5..e09fbb22e 100644 --- a/test/expected/build/application.k/dest/subcomponentB/Component-preload.js +++ b/test/expected/build/application.k/dest/subcomponentB/Component-preload.js @@ -2,7 +2,8 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "application/k/subcomponentB/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "application/k/subcomponentB/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; return UIComponent.extend('application.k.subcomponentB.Component', { metadata: { @@ -12,6 +13,8 @@ jQuery.sap.registerPreloadedModules({ }); }, "application/k/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}', - "application/k/subcomponentB/thirdparty/lib.js":function(){console.log("subcomponentB/thirdparty/lib.js"); + "application/k/subcomponentB/thirdparty/lib.js":function(){ +console.log("subcomponentB/thirdparty/lib.js"); } }}); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.k/dest/subcomponentB/Component-preload.js.map b/test/expected/build/application.k/dest/subcomponentB/Component-preload.js.map new file mode 100644 index 000000000..555d13778 --- /dev/null +++ b/test/expected/build/application.k/dest/subcomponentB/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":16,"column":0},"map":{"version":3,"sources":["lib.js"],"mappings":"AAAA;AACA","sourceRoot":"thirdparty"}}]} \ No newline at end of file diff --git a/test/expected/build/application.l/dest/subdir/index.js b/test/expected/build/application.l/dest/subdir/index.js index 9661d7207..894e5374f 100644 --- a/test/expected/build/application.l/dest/subdir/index.js +++ b/test/expected/build/application.l/dest/subdir/index.js @@ -1,2 +1 @@ -function hello(l){console.log("hello "+l)}hello("world"); -//# sourceMappingURL=index.js.map \ No newline at end of file +function hello(l){console.log("hello "+l)}hello("world"); \ No newline at end of file diff --git a/test/expected/build/application.l/dest/subdir/thirdparty/File1.js b/test/expected/build/application.l/dest/subdir/thirdparty/File1.js index 7b3311e4e..894e5374f 100644 --- a/test/expected/build/application.l/dest/subdir/thirdparty/File1.js +++ b/test/expected/build/application.l/dest/subdir/thirdparty/File1.js @@ -1,2 +1 @@ -function hello(l){console.log("hello "+l)}hello("world"); -//# sourceMappingURL=File1.js.map \ No newline at end of file +function hello(l){console.log("hello "+l)}hello("world"); \ No newline at end of file diff --git a/test/expected/build/application.l/dest/test.js b/test/expected/build/application.l/dest/test.js index 5a6672e9f..49687cdc2 100644 --- a/test/expected/build/application.l/dest/test.js +++ b/test/expected/build/application.l/dest/test.js @@ -1,2 +1 @@ -sap.ui.define([],function(){function n(n){var o=n;console.log(o)}n()}); -//# sourceMappingURL=test.js.map \ No newline at end of file +sap.ui.define([],function(){function n(n){var o=n;console.log(o)}n()}); \ No newline at end of file diff --git "a/test/expected/build/application.\303\270/dest/Component-preload.js" "b/test/expected/build/application.\303\270/dest/Component-preload.js" index 7b95d4e8a..eba461cf0 100644 --- "a/test/expected/build/application.\303\270/dest/Component-preload.js" +++ "b/test/expected/build/application.\303\270/dest/Component-preload.js" @@ -1,7 +1,8 @@ //@ui5-bundle application/ø/Component-preload.js sap.ui.require.preload({ - "application/ø/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.ø.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map + "application/ø/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.ø.Component",{metadata:{manifest:"json"}})}); }, "application/ø/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.ø","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.73.2","libs":{"sap.ui.core":{}}}}}' }); +//# sourceMappingURL=Component-preload.js.map diff --git "a/test/expected/build/application.\303\270/dest/Component-preload.js.map" "b/test/expected/build/application.\303\270/dest/Component-preload.js.map" new file mode 100644 index 000000000..cf93d8189 --- /dev/null +++ "b/test/expected/build/application.\303\270/dest/Component-preload.js.map" @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git "a/test/expected/build/application.\303\270/dest/Component.js" "b/test/expected/build/application.\303\270/dest/Component.js" index 8c43e4752..cc3bdb695 100644 --- "a/test/expected/build/application.\303\270/dest/Component.js" +++ "b/test/expected/build/application.\303\270/dest/Component.js" @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.ø.Component",{metadata:{manifest:"json"}})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.ø.Component",{metadata:{manifest:"json"}})}); \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core-dbg.js b/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core-dbg.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js b/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js deleted file mode 100644 index a72d46525..000000000 --- a/test/expected/build/library.coreBuildtime/dest/resources/sap-ui-core.js +++ /dev/null @@ -1,2 +0,0 @@ - -//# sourceMappingURL=sap-ui-core.js.map \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global-dbg.js b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global-dbg.js deleted file mode 100644 index 8a2077bdb..000000000 --- a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global-dbg.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Some fancy copyright - */ -// replacement of $\{buildtime\} is only made in sap/ui/Global.js and Global-dbg.js -console.log('20220620-1630'); diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js deleted file mode 100644 index e0fe65e6f..000000000 --- a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/Global.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Some fancy copyright - */ -console.log("20220620-1630"); -//# sourceMappingURL=Global.js.map \ No newline at end of file diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/.library b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/.library deleted file mode 100644 index f975d6a4e..000000000 --- a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/.library +++ /dev/null @@ -1,20 +0,0 @@ - - - - sap.ui.core - SAP SE - Some fancy copyright - 1.0.0 - - Core - - - - - - - - - - diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core-dbg.js b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core-dbg.js deleted file mode 100644 index 124b349b7..000000000 --- a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core-dbg.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Some fancy copyright - */ -// replacement of $\{buildtime\} is only made in sap/ui/Global.js and Global-dbg.js -console.log('${buildtime}'); diff --git a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js b/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js deleted file mode 100644 index e625a5c05..000000000 --- a/test/expected/build/library.coreBuildtime/dest/resources/sap/ui/core/Core.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - * Some fancy copyright - */ -console.log("${buildtime}"); -//# sourceMappingURL=Core.js.map \ No newline at end of file diff --git a/test/expected/build/library.d/dest/resources/library/d/some.js b/test/expected/build/library.d/dest/resources/library/d/some.js index 75aba1e23..c23f5f207 100644 --- a/test/expected/build/library.d/dest/resources/library/d/some.js +++ b/test/expected/build/library.d/dest/resources/library/d/some.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -(function(){var o="World";console.log("Hello "+o)})(); -//# sourceMappingURL=some.js.map \ No newline at end of file +(function(){var o="World";console.log("Hello "+o)})(); \ No newline at end of file diff --git a/test/expected/build/library.d/preload/resources/library/d/library-preload.js b/test/expected/build/library.d/preload/resources/library/d/library-preload.js index 68c443e80..12b0a1cb5 100644 --- a/test/expected/build/library.d/preload/resources/library/d/library-preload.js +++ b/test/expected/build/library.d/preload/resources/library/d/library-preload.js @@ -2,7 +2,8 @@ jQuery.sap.registerPreloadedModules({ "version":"2.0", "modules":{ - "library/d/some.js":function(){/*! + "library/d/some.js":function(){ +/*! * ${copyright} */ (function() { @@ -11,3 +12,4 @@ jQuery.sap.registerPreloadedModules({ })(); } }}); +//# sourceMappingURL=library-preload.js.map diff --git a/test/expected/build/library.d/preload/resources/library/d/library-preload.js.map b/test/expected/build/library.d/preload/resources/library/d/library-preload.js.map new file mode 100644 index 000000000..75adb2fe2 --- /dev/null +++ b/test/expected/build/library.d/preload/resources/library/d/library-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"library-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["library-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["some.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.e/dest/resources/library/e/library.js b/test/expected/build/library.e/dest/resources/library/e/library.js index 648540278..39e3277ce 100644 --- a/test/expected/build/library.e/dest/resources/library/e/library.js +++ b/test/expected/build/library.e/dest/resources/library/e/library.js @@ -3,5 +3,4 @@ * (c) Copyright 2009-xxx SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ -console.log("HelloWorld"); -//# sourceMappingURL=library.js.map \ No newline at end of file +console.log("HelloWorld"); \ No newline at end of file diff --git a/test/expected/build/library.e/dest/resources/library/e/some.js b/test/expected/build/library.e/dest/resources/library/e/some.js index 36245f900..39e3277ce 100644 --- a/test/expected/build/library.e/dest/resources/library/e/some.js +++ b/test/expected/build/library.e/dest/resources/library/e/some.js @@ -3,5 +3,4 @@ * (c) Copyright 2009-xxx SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ -console.log("HelloWorld"); -//# sourceMappingURL=some.js.map \ No newline at end of file +console.log("HelloWorld"); \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js index 58530f541..416739324 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js @@ -1,12 +1,13 @@ //@ui5-bundle library/h/components/Component-preload.js sap.ui.require.preload({ - "library/h/components/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map + "library/h/components/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); }, - "library/h/components/TodoComponent.js":function(){/*! + "library/h/components/TodoComponent.js":function(){ +/*! * Some fancy copyright */ console.log(" File "); -//# sourceMappingURL=TodoComponent.js.map } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js.map new file mode 100644 index 000000000..41305e36f --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js","sourceRoot":""}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["TodoComponent-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;AAGAA,QAAQC,IAAI","file":"TodoComponent.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js index 04d854984..422a97071 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js index f58e632b3..bcf866e67 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/TodoComponent.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -console.log(" File "); -//# sourceMappingURL=TodoComponent.js.map \ No newline at end of file +console.log(" File "); \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json index 628c4b6fa..4df48478f 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/resources.json @@ -13,7 +13,7 @@ { "name": "Component-preload.js", "module": "library/h/components/Component-preload.js", - "size": 441, + "size": 409, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -23,10 +23,15 @@ "library/h/components/TodoComponent.js" ] }, + { + "name": "Component-preload.js.map", + "size": 702, + "isDebug": true + }, { "name": "Component.js", "module": "library/h/components/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] @@ -41,12 +46,12 @@ { "name": "TodoComponent.js", "module": "library/h/components/TodoComponent.js", - "size": 96, + "size": 54, "format": "raw" }, { "name": "resources.json", - "size": 3088 + "size": 3462 }, { "name": "subcomponent1/Component-dbg.js", @@ -60,7 +65,7 @@ { "name": "subcomponent1/Component-preload.js", "module": "library/h/components/subcomponent1/Component-preload.js", - "size": 317, + "size": 326, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -69,10 +74,15 @@ "library/h/components/subcomponent1/Component.js" ] }, + { + "name": "subcomponent1/Component-preload.js.map", + "size": 509, + "isDebug": true + }, { "name": "subcomponent1/Component.js", "module": "library/h/components/subcomponent1/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] @@ -89,7 +99,7 @@ { "name": "subcomponent2/Component-preload.js", "module": "library/h/components/subcomponent2/Component-preload.js", - "size": 317, + "size": 326, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -98,10 +108,15 @@ "library/h/components/subcomponent2/Component.js" ] }, + { + "name": "subcomponent2/Component-preload.js.map", + "size": 509, + "isDebug": true + }, { "name": "subcomponent2/Component.js", "module": "library/h/components/subcomponent2/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] @@ -118,7 +133,7 @@ { "name": "subcomponent3/Component-preload.js", "module": "library/h/components/subcomponent3/Component-preload.js", - "size": 317, + "size": 326, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -127,10 +142,15 @@ "library/h/components/subcomponent3/Component.js" ] }, + { + "name": "subcomponent3/Component-preload.js.map", + "size": 509, + "isDebug": true + }, { "name": "subcomponent3/Component.js", "module": "library/h/components/subcomponent3/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js index 464e003a7..4e08fd2af 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js @@ -1,6 +1,7 @@ //@ui5-bundle library/h/components/subcomponent1/Component-preload.js sap.ui.require.preload({ - "library/h/components/subcomponent1/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map + "library/h/components/subcomponent1/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js.map new file mode 100644 index 000000000..cb1cd3f0a --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js index 04d854984..422a97071 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json index 229bc59ec..3cb004e6c 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent1/resources.json @@ -13,7 +13,7 @@ { "name": "Component-preload.js", "module": "library/h/components/subcomponent1/Component-preload.js", - "size": 317, + "size": 326, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -22,17 +22,22 @@ "library/h/components/subcomponent1/Component.js" ] }, + { + "name": "Component-preload.js.map", + "size": 509, + "isDebug": true + }, { "name": "Component.js", "module": "library/h/components/subcomponent1/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] }, { "name": "resources.json", - "size": 745 + "size": 828 } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js index ef751b6d7..854db6f10 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js @@ -1,6 +1,7 @@ //@ui5-bundle library/h/components/subcomponent2/Component-preload.js sap.ui.require.preload({ - "library/h/components/subcomponent2/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map + "library/h/components/subcomponent2/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js.map new file mode 100644 index 000000000..cb1cd3f0a --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js index 04d854984..422a97071 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json index 51c37a4d5..55964fad6 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent2/resources.json @@ -13,7 +13,7 @@ { "name": "Component-preload.js", "module": "library/h/components/subcomponent2/Component-preload.js", - "size": 317, + "size": 326, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -22,17 +22,22 @@ "library/h/components/subcomponent2/Component.js" ] }, + { + "name": "Component-preload.js.map", + "size": 509, + "isDebug": true + }, { "name": "Component.js", "module": "library/h/components/subcomponent2/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] }, { "name": "resources.json", - "size": 745 + "size": 828 } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js index 55db04d3d..b37a05f21 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js @@ -1,6 +1,7 @@ //@ui5-bundle library/h/components/subcomponent3/Component-preload.js sap.ui.require.preload({ - "library/h/components/subcomponent3/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map + "library/h/components/subcomponent3/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js.map new file mode 100644 index 000000000..cb1cd3f0a --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js index 04d854984..422a97071 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json index 55fc009c5..6ca9bb8e6 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/components/subcomponent3/resources.json @@ -13,7 +13,7 @@ { "name": "Component-preload.js", "module": "library/h/components/subcomponent3/Component-preload.js", - "size": 317, + "size": 326, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -22,17 +22,22 @@ "library/h/components/subcomponent3/Component.js" ] }, + { + "name": "Component-preload.js.map", + "size": 509, + "isDebug": true + }, { "name": "Component.js", "module": "library/h/components/subcomponent3/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] }, { "name": "resources.json", - "size": 745 + "size": 828 } ] } \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js index 1746a7a97..b98361666 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js @@ -1,16 +1,19 @@ //@ui5-bundle library/h/customBundle-dbg.js sap.ui.require.preload({ - "library/h/file.js":function(){/*! + "library/h/file.js":function(){ +/*! * Some fancy copyright */ console.log(' File '); }, - "library/h/library.js":function(){/*! + "library/h/library.js":function(){ +/*! * Some fancy copyright */ console.log(' Library '); }, - "library/h/some.js":function(){/*! + "library/h/some.js":function(){ +/*! * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js @@ -22,3 +25,4 @@ console.log(' Some '); * Some fancy copyright */ console.log(' Not including '); +//# sourceMappingURL=customBundle-dbg.js.map diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js.map new file mode 100644 index 000000000..f9420d627 --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle-dbg.js.map @@ -0,0 +1 @@ +{"version":3,"file":"customBundle-dbg.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle-dbg.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["file-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["library-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":15,"column":0},"map":{"version":3,"sources":["some-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":23,"column":0},"map":{"version":3,"sources":["not-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js index 40bf0e991..336248ee2 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js @@ -1,23 +1,23 @@ //@ui5-bundle library/h/customBundle.js sap.ui.require.preload({ - "library/h/file.js":function(){/*! + "library/h/file.js":function(){ +/*! * Some fancy copyright */ console.log(" File "); -//# sourceMappingURL=file.js.map }, - "library/h/library.js":function(){/*! + "library/h/library.js":function(){ +/*! * Some fancy copyright */ console.log(" Library "); -//# sourceMappingURL=library.js.map }, - "library/h/some.js":function(){/*! + "library/h/some.js":function(){ +/*! * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js console.log(" Some "); -//# sourceMappingURL=some.js.map } }); //@ui5-bundle-raw-include library/h/not.js @@ -25,4 +25,4 @@ console.log(" Some "); * Some fancy copyright */ console.log(" Not including "); -//# sourceMappingURL=not.js.map \ No newline at end of file +//# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js.map b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js.map new file mode 100644 index 000000000..4a3b67496 --- /dev/null +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/customBundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["file-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;AAGAA,QAAQC,IAAI","file":"file.js","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["library-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;AAGAA,QAAQC,IAAI","file":"library.js","sourceRoot":""}},{"offset":{"line":15,"column":0},"map":{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;;AAIAA,QAAQC,IAAI","file":"some.js","sourceRoot":""}},{"offset":{"line":23,"column":0},"map":{"version":3,"sources":["not-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;AAGAA,QAAQC,IAAI","file":"not.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js index 530ba01e1..9b135171d 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/designtime/library.designtime.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -var myexport=function(){"use strict";String("asd")}(); -//# sourceMappingURL=library.designtime.js.map \ No newline at end of file +var myexport=function(){"use strict";String("asd")}(); \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js index 2fe4c2aae..bcf866e67 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/file.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -console.log(" File "); -//# sourceMappingURL=file.js.map \ No newline at end of file +console.log(" File "); \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js index ce760e5cb..6900e2218 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/library.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -console.log(" Library "); -//# sourceMappingURL=library.js.map \ No newline at end of file +console.log(" Library "); \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js index 75a862b14..c249a10c8 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/not.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -console.log(" Not including "); -//# sourceMappingURL=not.js.map \ No newline at end of file +console.log(" Not including "); \ No newline at end of file diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json b/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json index f1a4d86f0..84806ccc3 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/resources.json @@ -17,7 +17,7 @@ { "name": "components/Component-preload.js", "module": "library/h/components/Component-preload.js", - "size": 441, + "size": 409, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -27,10 +27,15 @@ "library/h/components/TodoComponent.js" ] }, + { + "name": "components/Component-preload.js.map", + "size": 702, + "isDebug": true + }, { "name": "components/Component.js", "module": "library/h/components/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] @@ -45,7 +50,7 @@ { "name": "components/TodoComponent.js", "module": "library/h/components/TodoComponent.js", - "size": 96, + "size": 54, "format": "raw" }, { @@ -60,7 +65,7 @@ { "name": "components/subcomponent1/Component-preload.js", "module": "library/h/components/subcomponent1/Component-preload.js", - "size": 317, + "size": 326, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -69,10 +74,15 @@ "library/h/components/subcomponent1/Component.js" ] }, + { + "name": "components/subcomponent1/Component-preload.js.map", + "size": 509, + "isDebug": true + }, { "name": "components/subcomponent1/Component.js", "module": "library/h/components/subcomponent1/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] @@ -89,7 +99,7 @@ { "name": "components/subcomponent2/Component-preload.js", "module": "library/h/components/subcomponent2/Component-preload.js", - "size": 317, + "size": 326, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -98,10 +108,15 @@ "library/h/components/subcomponent2/Component.js" ] }, + { + "name": "components/subcomponent2/Component-preload.js.map", + "size": 509, + "isDebug": true + }, { "name": "components/subcomponent2/Component.js", "module": "library/h/components/subcomponent2/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] @@ -118,7 +133,7 @@ { "name": "components/subcomponent3/Component-preload.js", "module": "library/h/components/subcomponent3/Component-preload.js", - "size": 317, + "size": 326, "merged": true, "required": [ "sap/ui/core/UIComponent.js" @@ -127,10 +142,15 @@ "library/h/components/subcomponent3/Component.js" ] }, + { + "name": "components/subcomponent3/Component-preload.js.map", + "size": 509, + "isDebug": true + }, { "name": "components/subcomponent3/Component.js", "module": "library/h/components/subcomponent3/Component.js", - "size": 153, + "size": 115, "required": [ "sap/ui/core/UIComponent.js" ] @@ -138,7 +158,7 @@ { "name": "customBundle-dbg.js", "module": "library/h/customBundle.js", - "size": 500, + "size": 548, "isDebug": true, "merged": true, "included": [ @@ -149,10 +169,15 @@ "library/h/not.js" ] }, + { + "name": "customBundle-dbg.js.map", + "size": 784, + "isDebug": true + }, { "name": "customBundle.js", "module": "library/h/customBundle.js", - "size": 629, + "size": 540, "merged": true, "included": [ "library/h/file.js", @@ -162,6 +187,11 @@ "library/h/not.js" ] }, + { + "name": "customBundle.js.map", + "size": 942, + "isDebug": true + }, { "name": "designtime/library-dbg.designtime.js", "module": "library/h/designtime/library.designtime.js", @@ -177,7 +207,7 @@ { "name": "designtime/library.designtime.js", "module": "library/h/designtime/library.designtime.js", - "size": 133, + "size": 86, "requiresTopLevelScope": true, "exposedGlobalNames": [ "myexport" @@ -195,7 +225,7 @@ { "name": "file.js", "module": "library/h/file.js", - "size": 87, + "size": 54, "format": "raw" }, { @@ -222,7 +252,7 @@ { "name": "library.js", "module": "library/h/library.js", - "size": 93, + "size": 57, "format": "raw" }, { @@ -240,12 +270,12 @@ { "name": "not.js", "module": "library/h/not.js", - "size": 95, + "size": 63, "format": "raw" }, { "name": "resources.json", - "size": 5873 + "size": 6449 }, { "name": "some-dbg.js", @@ -261,7 +291,7 @@ { "name": "some.js", "module": "library/h/some.js", - "size": 132, + "size": 99, "format": "raw", "merged": true, "included": [ diff --git a/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js b/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js index 0c5f5d3e3..1e86f9afc 100644 --- a/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js +++ b/test/expected/build/library.h/dest-resources-json/resources/library/h/some.js @@ -2,5 +2,4 @@ * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js -console.log(" Some "); -//# sourceMappingURL=some.js.map \ No newline at end of file +console.log(" Some "); \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js b/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js index 58530f541..416739324 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js @@ -1,12 +1,13 @@ //@ui5-bundle library/h/components/Component-preload.js sap.ui.require.preload({ - "library/h/components/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map + "library/h/components/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); }, - "library/h/components/TodoComponent.js":function(){/*! + "library/h/components/TodoComponent.js":function(){ +/*! * Some fancy copyright */ console.log(" File "); -//# sourceMappingURL=TodoComponent.js.map } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js.map b/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js.map new file mode 100644 index 000000000..41305e36f --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js","sourceRoot":""}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["TodoComponent-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;AAGAA,QAAQC,IAAI","file":"TodoComponent.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/Component.js b/test/expected/build/library.h/dest/resources/library/h/components/Component.js index 04d854984..422a97071 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/Component.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js b/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js index f58e632b3..bcf866e67 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/TodoComponent.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -console.log(" File "); -//# sourceMappingURL=TodoComponent.js.map \ No newline at end of file +console.log(" File "); \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js index 464e003a7..4e08fd2af 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js @@ -1,6 +1,7 @@ //@ui5-bundle library/h/components/subcomponent1/Component-preload.js sap.ui.require.preload({ - "library/h/components/subcomponent1/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map + "library/h/components/subcomponent1/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js.map b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js.map new file mode 100644 index 000000000..cb1cd3f0a --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js index 04d854984..422a97071 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent1/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js index ef751b6d7..854db6f10 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js @@ -1,6 +1,7 @@ //@ui5-bundle library/h/components/subcomponent2/Component-preload.js sap.ui.require.preload({ - "library/h/components/subcomponent2/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map + "library/h/components/subcomponent2/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js.map b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js.map new file mode 100644 index 000000000..cb1cd3f0a --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js index 04d854984..422a97071 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent2/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js index 55db04d3d..b37a05f21 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js @@ -1,6 +1,7 @@ //@ui5-bundle library/h/components/subcomponent3/Component-preload.js sap.ui.require.preload({ - "library/h/components/subcomponent3/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map + "library/h/components/subcomponent3/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js.map b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js.map new file mode 100644 index 000000000..cb1cd3f0a --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js index 04d854984..422a97071 100644 --- a/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js +++ b/test/expected/build/library.h/dest/resources/library/h/components/subcomponent3/Component.js @@ -1,2 +1 @@ -sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); -//# sourceMappingURL=Component.js.map \ No newline at end of file +sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{})}); \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js b/test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js index 1746a7a97..b98361666 100644 --- a/test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js +++ b/test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js @@ -1,16 +1,19 @@ //@ui5-bundle library/h/customBundle-dbg.js sap.ui.require.preload({ - "library/h/file.js":function(){/*! + "library/h/file.js":function(){ +/*! * Some fancy copyright */ console.log(' File '); }, - "library/h/library.js":function(){/*! + "library/h/library.js":function(){ +/*! * Some fancy copyright */ console.log(' Library '); }, - "library/h/some.js":function(){/*! + "library/h/some.js":function(){ +/*! * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js @@ -22,3 +25,4 @@ console.log(' Some '); * Some fancy copyright */ console.log(' Not including '); +//# sourceMappingURL=customBundle-dbg.js.map diff --git a/test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js.map b/test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js.map new file mode 100644 index 000000000..f9420d627 --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/customBundle-dbg.js.map @@ -0,0 +1 @@ +{"version":3,"file":"customBundle-dbg.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle-dbg.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["file-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["library-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":15,"column":0},"map":{"version":3,"sources":["some-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":23,"column":0},"map":{"version":3,"sources":["not-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/customBundle.js b/test/expected/build/library.h/dest/resources/library/h/customBundle.js index 40bf0e991..336248ee2 100644 --- a/test/expected/build/library.h/dest/resources/library/h/customBundle.js +++ b/test/expected/build/library.h/dest/resources/library/h/customBundle.js @@ -1,23 +1,23 @@ //@ui5-bundle library/h/customBundle.js sap.ui.require.preload({ - "library/h/file.js":function(){/*! + "library/h/file.js":function(){ +/*! * Some fancy copyright */ console.log(" File "); -//# sourceMappingURL=file.js.map }, - "library/h/library.js":function(){/*! + "library/h/library.js":function(){ +/*! * Some fancy copyright */ console.log(" Library "); -//# sourceMappingURL=library.js.map }, - "library/h/some.js":function(){/*! + "library/h/some.js":function(){ +/*! * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js console.log(" Some "); -//# sourceMappingURL=some.js.map } }); //@ui5-bundle-raw-include library/h/not.js @@ -25,4 +25,4 @@ console.log(" Some "); * Some fancy copyright */ console.log(" Not including "); -//# sourceMappingURL=not.js.map \ No newline at end of file +//# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/library.h/dest/resources/library/h/customBundle.js.map b/test/expected/build/library.h/dest/resources/library/h/customBundle.js.map new file mode 100644 index 000000000..4a3b67496 --- /dev/null +++ b/test/expected/build/library.h/dest/resources/library/h/customBundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["file-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;AAGAA,QAAQC,IAAI","file":"file.js","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["library-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;AAGAA,QAAQC,IAAI","file":"library.js","sourceRoot":""}},{"offset":{"line":15,"column":0},"map":{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;;AAIAA,QAAQC,IAAI","file":"some.js","sourceRoot":""}},{"offset":{"line":23,"column":0},"map":{"version":3,"sources":["not-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;AAGAA,QAAQC,IAAI","file":"not.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js b/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js index 530ba01e1..9b135171d 100644 --- a/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js +++ b/test/expected/build/library.h/dest/resources/library/h/designtime/library.designtime.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -var myexport=function(){"use strict";String("asd")}(); -//# sourceMappingURL=library.designtime.js.map \ No newline at end of file +var myexport=function(){"use strict";String("asd")}(); \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/file.js b/test/expected/build/library.h/dest/resources/library/h/file.js index 2fe4c2aae..bcf866e67 100644 --- a/test/expected/build/library.h/dest/resources/library/h/file.js +++ b/test/expected/build/library.h/dest/resources/library/h/file.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -console.log(" File "); -//# sourceMappingURL=file.js.map \ No newline at end of file +console.log(" File "); \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/library.js b/test/expected/build/library.h/dest/resources/library/h/library.js index ce760e5cb..6900e2218 100644 --- a/test/expected/build/library.h/dest/resources/library/h/library.js +++ b/test/expected/build/library.h/dest/resources/library/h/library.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -console.log(" Library "); -//# sourceMappingURL=library.js.map \ No newline at end of file +console.log(" Library "); \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/not.js b/test/expected/build/library.h/dest/resources/library/h/not.js index 75a862b14..c249a10c8 100644 --- a/test/expected/build/library.h/dest/resources/library/h/not.js +++ b/test/expected/build/library.h/dest/resources/library/h/not.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -console.log(" Not including "); -//# sourceMappingURL=not.js.map \ No newline at end of file +console.log(" Not including "); \ No newline at end of file diff --git a/test/expected/build/library.h/dest/resources/library/h/some.js b/test/expected/build/library.h/dest/resources/library/h/some.js index 0c5f5d3e3..1e86f9afc 100644 --- a/test/expected/build/library.h/dest/resources/library/h/some.js +++ b/test/expected/build/library.h/dest/resources/library/h/some.js @@ -2,5 +2,4 @@ * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js -console.log(" Some "); -//# sourceMappingURL=some.js.map \ No newline at end of file +console.log(" Some "); \ No newline at end of file diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js b/test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js index 1ca867689..c2ba18606 100644 --- a/test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js @@ -1,14 +1,17 @@ //@ui5-bundle library/h/components/Component-preload.js sap.ui.require.preload({ - "library/h/components/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "library/h/components/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; return UIComponent.extend('application.g.Component', { }); }); }, - "library/h/components/TodoComponent.js":function(){/*! + "library/h/components/TodoComponent.js":function(){ +/*! * Some fancy copyright */ console.log(' File '); } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js.map b/test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js.map new file mode 100644 index 000000000..baa7012c8 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":10,"column":0},"map":{"version":3,"sources":["TodoComponent.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js index 40b2828bc..d2aff44c1 100644 --- a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js @@ -1,9 +1,11 @@ //@ui5-bundle library/h/components/subcomponent1/Component-preload.js sap.ui.require.preload({ - "library/h/components/subcomponent1/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "library/h/components/subcomponent1/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; return UIComponent.extend('application.g.Component', { }); }); } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js.map b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js.map new file mode 100644 index 000000000..ee8821bdb --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent1/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js index 0e338e1ba..03abae7d8 100644 --- a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js @@ -1,9 +1,11 @@ //@ui5-bundle library/h/components/subcomponent2/Component-preload.js sap.ui.require.preload({ - "library/h/components/subcomponent2/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "library/h/components/subcomponent2/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; return UIComponent.extend('application.g.Component', { }); }); } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js.map b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js.map new file mode 100644 index 000000000..ee8821bdb --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent2/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js index 42cadcd83..f6c0783c0 100644 --- a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js @@ -1,9 +1,11 @@ //@ui5-bundle library/h/components/subcomponent3/Component-preload.js sap.ui.require.preload({ - "library/h/components/subcomponent3/Component.js":function(){sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ + "library/h/components/subcomponent3/Component.js":function(){ +sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; return UIComponent.extend('application.g.Component', { }); }); } }); +//# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js.map b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js.map new file mode 100644 index 000000000..ee8821bdb --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/components/subcomponent3/Component-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js b/test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js index 1746a7a97..b98361666 100644 --- a/test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js +++ b/test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js @@ -1,16 +1,19 @@ //@ui5-bundle library/h/customBundle-dbg.js sap.ui.require.preload({ - "library/h/file.js":function(){/*! + "library/h/file.js":function(){ +/*! * Some fancy copyright */ console.log(' File '); }, - "library/h/library.js":function(){/*! + "library/h/library.js":function(){ +/*! * Some fancy copyright */ console.log(' Library '); }, - "library/h/some.js":function(){/*! + "library/h/some.js":function(){ +/*! * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js @@ -22,3 +25,4 @@ console.log(' Some '); * Some fancy copyright */ console.log(' Not including '); +//# sourceMappingURL=customBundle-dbg.js.map diff --git a/test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js.map b/test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js.map new file mode 100644 index 000000000..26839da42 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/customBundle-dbg.js.map @@ -0,0 +1 @@ +{"version":3,"file":"customBundle-dbg.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle-dbg.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["file.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["library.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":15,"column":0},"map":{"version":3,"sources":["some.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":23,"column":0},"map":{"version":3,"sources":["not.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.h/no-minify/resources/library/h/customBundle.js b/test/expected/build/library.h/no-minify/resources/library/h/customBundle.js index 8c6d93a0b..380250bbe 100644 --- a/test/expected/build/library.h/no-minify/resources/library/h/customBundle.js +++ b/test/expected/build/library.h/no-minify/resources/library/h/customBundle.js @@ -1,16 +1,19 @@ //@ui5-bundle library/h/customBundle.js sap.ui.require.preload({ - "library/h/file.js":function(){/*! + "library/h/file.js":function(){ +/*! * Some fancy copyright */ console.log(' File '); }, - "library/h/library.js":function(){/*! + "library/h/library.js":function(){ +/*! * Some fancy copyright */ console.log(' Library '); }, - "library/h/some.js":function(){/*! + "library/h/some.js":function(){ +/*! * Some fancy copyright */ //@ui5-bundle-raw-include library/h/other.js @@ -22,3 +25,4 @@ console.log(' Some '); * Some fancy copyright */ console.log(' Not including '); +//# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/library.h/no-minify/resources/library/h/customBundle.js.map b/test/expected/build/library.h/no-minify/resources/library/h/customBundle.js.map new file mode 100644 index 000000000..3a2f6c0e8 --- /dev/null +++ b/test/expected/build/library.h/no-minify/resources/library/h/customBundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["file.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["library.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":15,"column":0},"map":{"version":3,"sources":["some.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":23,"column":0},"map":{"version":3,"sources":["not.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/some.js b/test/expected/build/library.l/dest/resources/library/l/some.js index bf4a8a469..82357c2d4 100644 --- a/test/expected/build/library.l/dest/resources/library/l/some.js +++ b/test/expected/build/library.l/dest/resources/library/l/some.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -sap.ui.define([],function(){"use strict";var i=function(){}},true); -//# sourceMappingURL=some.js.map \ No newline at end of file +sap.ui.define([],function(){"use strict";var i=function(){}},true); \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/subdir/index.js b/test/expected/build/library.l/dest/resources/library/l/subdir/index.js index 9661d7207..894e5374f 100644 --- a/test/expected/build/library.l/dest/resources/library/l/subdir/index.js +++ b/test/expected/build/library.l/dest/resources/library/l/subdir/index.js @@ -1,2 +1 @@ -function hello(l){console.log("hello "+l)}hello("world"); -//# sourceMappingURL=index.js.map \ No newline at end of file +function hello(l){console.log("hello "+l)}hello("world"); \ No newline at end of file diff --git a/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js b/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js index 7b3311e4e..894e5374f 100644 --- a/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js +++ b/test/expected/build/library.l/dest/resources/library/l/subdir/thirdparty/File1.js @@ -1,2 +1 @@ -function hello(l){console.log("hello "+l)}hello("world"); -//# sourceMappingURL=File1.js.map \ No newline at end of file +function hello(l){console.log("hello "+l)}hello("world"); \ No newline at end of file diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js" index 7b9c787c6..0a38dc7b0 100644 --- "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js" +++ "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js" @@ -1,10 +1,11 @@ //@ui5-bundle library/ø/library-preload.js sap.ui.require.preload({ "library/ø/manifest.json":'{"_version":"1.21.0","sap.app":{"id":"library.ø","type":"library","embeds":[],"applicationVersion":{"version":"1.0.0"},"title":"Library Ø","description":"Library Ø","resources":"resources.json","offline":true},"sap.ui":{"technology":"UI5","supportedThemes":["цветя"]},"sap.ui5":{"dependencies":{"minUI5Version":"1.0","libs":{}},"library":{"i18n":false}}}', - "library/ø/some.js":function(){/*! + "library/ø/some.js":function(){ +/*! * Some fancy copyright */ (function(){var o="World";console.log("Hello "+o)})(); -//# sourceMappingURL=some.js.map } }); +//# sourceMappingURL=library-preload.js.map diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js.map" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js.map" new file mode 100644 index 000000000..ba9e10c92 --- /dev/null +++ "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.js.map" @@ -0,0 +1 @@ +{"version":3,"file":"library-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["library-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":4,"column":0},"map":{"version":3,"sources":["some-dbg.js"],"names":["someNonUglifiedVariable","console","log"],"mappings":"AAAA;;;CAGA,WACC,IAAIA,EAA0B,QAC9BC,QAAQC,IAAI,SAAWF,IAFxB","file":"some.js","sourceRoot":""}}]} \ No newline at end of file diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js" index 9dd152223..a4cbccba8 100644 --- "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js" +++ "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js" @@ -35,3 +35,4 @@ ]; }, true); +//# sourceMappingURL=library-preload.support.js.map diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js.map" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js.map" new file mode 100644 index 000000000..be89c1e24 --- /dev/null +++ "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/library-preload.support.js.map" @@ -0,0 +1 @@ +{"version":3,"file":"library-preload.support.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["MyControl.support.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":"rules"}}]} \ No newline at end of file diff --git "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js" "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js" index 75aba1e23..c23f5f207 100644 --- "a/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js" +++ "b/test/expected/build/library.\303\270/dest/resources/library/\303\270/some.js" @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -(function(){var o="World";console.log("Hello "+o)})(); -//# sourceMappingURL=some.js.map \ No newline at end of file +(function(){var o="World";console.log("Hello "+o)})(); \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js index a72d46525..e69de29bb 100644 --- a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js +++ b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap-ui-core.js @@ -1,2 +0,0 @@ - -//# sourceMappingURL=sap-ui-core.js.map \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js index e0fe65e6f..b37fec15d 100644 --- a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js +++ b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/Global.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -console.log("20220620-1630"); -//# sourceMappingURL=Global.js.map \ No newline at end of file +console.log("20220620-1630"); \ No newline at end of file diff --git a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js index e625a5c05..607c2f2f2 100644 --- a/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js +++ b/test/expected/build/sap.ui.core-buildtime/dest/resources/sap/ui/core/Core.js @@ -1,5 +1,4 @@ /*! * Some fancy copyright */ -console.log("${buildtime}"); -//# sourceMappingURL=Core.js.map \ No newline at end of file +console.log("${buildtime}"); \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js index 032851a0c..2a2414795 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js @@ -7,3 +7,4 @@ sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); +//# sourceMappingURL=sap-ui-core-dbg.js.map diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js.map b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js.map new file mode 100644 index 000000000..42fc15159 --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-dbg.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sap-ui-core-dbg.js","sections":[{"offset":{"line":2,"column":0},"map":{"version":3,"sources":["ui5loader-autoconfig-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["sap-ui-core-dbg.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.requireSync(\"sap/ui/core/Core\");\n"],"sourceRoot":""}},{"offset":{"line":7,"column":0},"map":{"version":3,"sources":["sap-ui-core-dbg.js?bundle-code-1"],"mappings":"AAAA;AACA","sourcesContent":["// as this module contains the Core, we ensure that the Core has been booted\nsap.ui.getCore().boot && sap.ui.getCore().boot();"],"sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js index 0586fc05a..b5a8e28a4 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js @@ -7,3 +7,4 @@ sap.ui.requireSync("sap/ui/core/Core"); // as this module contains the Core, we ensure that the Core has been booted sap.ui.getCore().boot && sap.ui.getCore().boot(); +//# sourceMappingURL=sap-ui-core-nojQuery-dbg.js.map diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js.map b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js.map new file mode 100644 index 000000000..d6f967ff5 --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery-dbg.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sap-ui-core-nojQuery-dbg.js","sections":[{"offset":{"line":2,"column":0},"map":{"version":3,"sources":["ui5loader-autoconfig-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["sap-ui-core-nojQuery-dbg.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.requireSync(\"sap/ui/core/Core\");\n"],"sourceRoot":""}},{"offset":{"line":7,"column":0},"map":{"version":3,"sources":["sap-ui-core-nojQuery-dbg.js?bundle-code-1"],"mappings":"AAAA;AACA","sourcesContent":["// as this module contains the Core, we ensure that the Core has been booted\nsap.ui.getCore().boot && sap.ui.getCore().boot();"],"sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js index f5f9001c0..14731c9fe 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js @@ -3,10 +3,9 @@ window["sap-ui-optimized"] = true; try { //@ui5-bundle-raw-include ui5loader-autoconfig.js (function(){var o=true;console.log(o)})(); -//# sourceMappingURL=ui5loader-autoconfig.js.map sap.ui.require.preload({ - "sap/ui/core/Core.js":function(){(function(){var o=true;console.log(o)})(); -//# sourceMappingURL=Core.js.map + "sap/ui/core/Core.js":function(){ +(function(){var o=true;console.log(o)})(); } }); sap.ui.requireSync("sap/ui/core/Core"); @@ -15,3 +14,4 @@ sap.ui.getCore().boot && sap.ui.getCore().boot(); } catch(oError) { if (oError.name != "Restart") { throw oError; } } +//# sourceMappingURL=sap-ui-core-nojQuery.js.map diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js.map b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js.map new file mode 100644 index 000000000..ca9a8e492 --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core-nojQuery.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sap-ui-core-nojQuery.js","sections":[{"offset":{"line":4,"column":0},"map":{"version":3,"sources":["ui5loader-autoconfig-dbg.js"],"names":["thisIsTheUi5LoaderAutoconfig","console","log"],"mappings":"CAAA,WACC,IAAIA,EAA+B,KACnCC,QAAQC,IAAIF,IAFb","file":"ui5loader-autoconfig.js","sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["sap-ui-core-nojQuery.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":7,"column":0},"map":{"version":3,"sources":["Core-dbg.js"],"names":["core","console","log"],"mappings":"CAAA,WACC,IAAIA,EAAO,KACXC,QAAQC,IAAIF,IAFb","file":"Core.js","sourceRoot":"sap/ui/core"}},{"offset":{"line":10,"column":0},"map":{"version":3,"sources":["sap-ui-core-nojQuery.js?bundle-code-1"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.requireSync(\"sap/ui/core/Core\");\n"],"sourceRoot":""}},{"offset":{"line":11,"column":0},"map":{"version":3,"sources":["sap-ui-core-nojQuery.js?bundle-code-2"],"mappings":"AAAA;AACA","sourcesContent":["// as this module contains the Core, we ensure that the Core has been booted\nsap.ui.getCore().boot && sap.ui.getCore().boot();"],"sourceRoot":""}},{"offset":{"line":13,"column":0},"map":{"version":3,"sources":["sap-ui-core-nojQuery.js?bundle-code-3"],"mappings":"AAAA;AACA;AACA","sourcesContent":["} catch(oError) {\nif (oError.name != \"Restart\") { throw oError; }\n}"],"sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js index d3a111a16..bf5d44549 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js @@ -3,10 +3,9 @@ window["sap-ui-optimized"] = true; try { //@ui5-bundle-raw-include ui5loader-autoconfig.js (function(){var o=true;console.log(o)})(); -//# sourceMappingURL=ui5loader-autoconfig.js.map sap.ui.require.preload({ - "sap/ui/core/Core.js":function(){(function(){var o=true;console.log(o)})(); -//# sourceMappingURL=Core.js.map + "sap/ui/core/Core.js":function(){ +(function(){var o=true;console.log(o)})(); } }); sap.ui.requireSync("sap/ui/core/Core"); @@ -15,3 +14,4 @@ sap.ui.getCore().boot && sap.ui.getCore().boot(); } catch(oError) { if (oError.name != "Restart") { throw oError; } } +//# sourceMappingURL=sap-ui-core.js.map diff --git a/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map new file mode 100644 index 000000000..dcfd83f5d --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap-ui-core.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sap-ui-core.js","sections":[{"offset":{"line":4,"column":0},"map":{"version":3,"sources":["ui5loader-autoconfig-dbg.js"],"names":["thisIsTheUi5LoaderAutoconfig","console","log"],"mappings":"CAAA,WACC,IAAIA,EAA+B,KACnCC,QAAQC,IAAIF,IAFb","file":"ui5loader-autoconfig.js","sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["sap-ui-core.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":7,"column":0},"map":{"version":3,"sources":["Core-dbg.js"],"names":["core","console","log"],"mappings":"CAAA,WACC,IAAIA,EAAO,KACXC,QAAQC,IAAIF,IAFb","file":"Core.js","sourceRoot":"sap/ui/core"}},{"offset":{"line":10,"column":0},"map":{"version":3,"sources":["sap-ui-core.js?bundle-code-1"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.requireSync(\"sap/ui/core/Core\");\n"],"sourceRoot":""}},{"offset":{"line":11,"column":0},"map":{"version":3,"sources":["sap-ui-core.js?bundle-code-2"],"mappings":"AAAA;AACA","sourcesContent":["// as this module contains the Core, we ensure that the Core has been booted\nsap.ui.getCore().boot && sap.ui.getCore().boot();"],"sourceRoot":""}},{"offset":{"line":13,"column":0},"map":{"version":3,"sources":["sap-ui-core.js?bundle-code-3"],"mappings":"AAAA;AACA;AACA","sourcesContent":["} catch(oError) {\nif (oError.name != \"Restart\") { throw oError; }\n}"],"sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js index 29a53cc7e..dd81f8b0e 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/Core.js @@ -1,2 +1 @@ -(function(){var o=true;console.log(o)})(); -//# sourceMappingURL=Core.js.map \ No newline at end of file +(function(){var o=true;console.log(o)})(); \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js index 19e93a36a..d368503ac 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js @@ -1,16 +1,17 @@ //@ui5-bundle sap/ui/core/library-preload.js sap.ui.require.preload({ - "sap/ui/core/one.js":function(){function One(){return 1} -//# sourceMappingURL=one.js.map + "sap/ui/core/one.js":function(){ +function One(){return 1} this.One=One; }, - "sap/ui/core/some.js":function(){/*! + "sap/ui/core/some.js":function(){ +/*! * ${copyright} */ console.log("HelloWorld"); -//# sourceMappingURL=some.js.map }, - "ui5loader.js":function(){(function(){var o=true;console.log(o)})(); -//# sourceMappingURL=ui5loader.js.map + "ui5loader.js":function(){ +(function(){var o=true;console.log(o)})(); } }); +//# sourceMappingURL=library-preload.js.map diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js.map b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js.map new file mode 100644 index 000000000..e22c32c23 --- /dev/null +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/library-preload.js.map @@ -0,0 +1 @@ +{"version":3,"file":"library-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["library-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["one-dbg.js"],"names":["One"],"mappings":"AAAA,SAASA,MACR,OAAO","file":"one.js","sourceRoot":""}},{"offset":{"line":4,"column":0},"map":{"version":3,"sources":["library-preload.js?bundle-code-1"],"mappings":"AAAA;AACA","sourcesContent":["this.One=One;\n"],"sourceRoot":""}},{"offset":{"line":7,"column":0},"map":{"version":3,"sources":["some-dbg.js"],"names":["console","log"],"mappings":"AAAA;;;AAGAA,QAAQC,IAAI","file":"some.js","sourceRoot":""}},{"offset":{"line":13,"column":0},"map":{"version":3,"sources":["ui5loader-dbg.js"],"names":["thisIsTheUi5Loader","console","log"],"mappings":"CAAA,WACC,IAAIA,EAAqB,KACzBC,QAAQC,IAAIF,IAFb","file":"ui5loader.js","sourceRoot":"../../.."}}]} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js index 7a53557c1..5aa630fcf 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/one.js @@ -1,2 +1 @@ -function One(){return 1} -//# sourceMappingURL=one.js.map \ No newline at end of file +function One(){return 1} \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js index 66f0541d6..f4ab0a202 100644 --- a/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js +++ b/test/expected/build/sap.ui.core/preload/resources/sap/ui/core/some.js @@ -1,5 +1,4 @@ /*! * ${copyright} */ -console.log("HelloWorld"); -//# sourceMappingURL=some.js.map \ No newline at end of file +console.log("HelloWorld"); \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js b/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js index 3cedd755e..dd81f8b0e 100644 --- a/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js +++ b/test/expected/build/sap.ui.core/preload/resources/ui5loader-autoconfig.js @@ -1,2 +1 @@ -(function(){var o=true;console.log(o)})(); -//# sourceMappingURL=ui5loader-autoconfig.js.map \ No newline at end of file +(function(){var o=true;console.log(o)})(); \ No newline at end of file diff --git a/test/expected/build/sap.ui.core/preload/resources/ui5loader.js b/test/expected/build/sap.ui.core/preload/resources/ui5loader.js index 863578d3d..dd81f8b0e 100644 --- a/test/expected/build/sap.ui.core/preload/resources/ui5loader.js +++ b/test/expected/build/sap.ui.core/preload/resources/ui5loader.js @@ -1,2 +1 @@ -(function(){var o=true;console.log(o)})(); -//# sourceMappingURL=ui5loader.js.map \ No newline at end of file +(function(){var o=true;console.log(o)})(); \ No newline at end of file diff --git a/test/fixtures/application.h/ui5.yaml b/test/fixtures/application.h/ui5.yaml deleted file mode 100644 index 9365040dc..000000000 --- a/test/fixtures/application.h/ui5.yaml +++ /dev/null @@ -1,25 +0,0 @@ ---- -specVersion: "2.0" -type: application -metadata: - name: application.h -builder: - bundles: - - name: sap/ushell/bootstrap/cdm.js - defaultFileTypes: - - ".js" - sections: - - mode: raw - filters: - - ui5loader.js - - ui5loader-autoconfig.js - declareModules: false - resolve: true - - mode: preload - name: sap/ushell/bootstrap/common - filters: - - sap/ushell/bootstrap/cdm/cdm-def.js - resolve: true - - mode: require - filters: - - sap/ushell/bootstrap/cdm/cdm-def.js \ No newline at end of file diff --git a/test/fixtures/application.i/ui5.yaml b/test/fixtures/application.i/ui5.yaml deleted file mode 100644 index 7c526c7e8..000000000 --- a/test/fixtures/application.i/ui5.yaml +++ /dev/null @@ -1,25 +0,0 @@ ---- -specVersion: "0.1" -type: application -metadata: - name: application.i -builder: - bundles: - - name: sap/ushell/bootstrap/cdm.js - defaultFileTypes: - - ".js" - sections: - - mode: raw - filters: - - ui5loader.js - - ui5loader-autoconfig.js - declareModules: false - resolve: true - - mode: preload - name: sap/ushell/bootstrap/common - filters: - - sap/ushell/bootstrap/cdm/cdm-def.js - resolve: true - - mode: require - filters: - - sap/ushell/bootstrap/cdm/cdm-def.js \ No newline at end of file diff --git a/test/fixtures/application.j/ui5.yaml b/test/fixtures/application.j/ui5.yaml deleted file mode 100644 index 5cc8b006d..000000000 --- a/test/fixtures/application.j/ui5.yaml +++ /dev/null @@ -1,25 +0,0 @@ ---- -specVersion: "0.1" -type: application -metadata: - name: application.j -builder: - bundles: - - name: sap/ushell/bootstrap/cdm.js - defaultFileTypes: - - ".js" - sections: - - mode: raw - filters: - - ui5loader.js - - ui5loader-autoconfig.js - declareModules: false - resolve: true - - mode: preload - name: sap/ushell/bootstrap/common - filters: - - sap/ushell/bootstrap/cdm/cdm-def.js - resolve: true - - mode: require - filters: - - sap/ushell/bootstrap/cdm/cdm-def.js diff --git "a/test/fixtures/application.\303\270/ui5.yaml" "b/test/fixtures/application.\303\270/ui5.yaml" deleted file mode 100644 index 67342283e..000000000 --- "a/test/fixtures/application.\303\270/ui5.yaml" +++ /dev/null @@ -1,9 +0,0 @@ ---- -specVersion: "2.0" -type: application -metadata: - name: application.ø -resources: - configuration: - paths: - webapp: wêbäpp diff --git a/test/lib/builder/builder.js b/test/lib/builder/builder.js index e19f78766..6b9403a1a 100644 --- a/test/lib/builder/builder.js +++ b/test/lib/builder/builder.js @@ -901,7 +901,7 @@ test.serial("Build library.ø", (t) => { }); test.serial("Build library.coreBuildtime: replaceBuildtime", (t) => { - const destPath = path.join("test", "tmp", "build", "library.coreBuildtime", "dest"); + const destPath = path.join("test", "tmp", "build", "sap.ui.core-buildtime", "dest"); const expectedPath = path.join("test", "expected", "build", "sap.ui.core-buildtime", "dest"); const dateStubs = [ diff --git a/test/lib/lbt/bundle/Builder.js b/test/lib/lbt/bundle/Builder.js index c6146a75d..19dd58518 100644 --- a/test/lib/lbt/bundle/Builder.js +++ b/test/lib/lbt/bundle/Builder.js @@ -1,3 +1,4 @@ +/* eslint-disable max-len */ const test = require("ava"); const sinon = require("sinon"); const mock = require("mock-require"); @@ -5,6 +6,11 @@ const mock = require("mock-require"); const Builder = require("../../../../lib/lbt/bundle/Builder"); const ResourcePool = require("../../../../lib/lbt/resources/ResourcePool"); +// Node.js itself tries to parse sourceMappingURLs in all JavaScript files. This is unwanted and might even lead to +// obscure errors when dynamically generating Data-URI soruceMappingURL values. +// Therefore use this constant to never write the actual string. +const SOURCE_MAPPING_URL = "//" + "# sourceMappingURL"; + test.afterEach.always((t) => { mock.stopAll(); sinon.restore(); @@ -39,7 +45,6 @@ test.serial("writePreloadModule: with invalid json content", async (t) => { }; const result = await builder.writePreloadModule("invalid.json", undefined, invalidJsonResource); - t.is(verboseLogStub.callCount, 2, "called 2 times"); t.is(verboseLogStub.firstCall.args[0], "Failed to parse JSON file %s. Ignoring error, skipping compression.", "first verbose log argument 0 is correct"); @@ -55,6 +60,7 @@ test("integration: createBundle with exposedGlobals", async (t) => { const pool = new ResourcePool(); pool.addResource({ name: "a.js", + getPath: () => "a.js", string: function() { return this.buffer(); }, @@ -62,6 +68,7 @@ test("integration: createBundle with exposedGlobals", async (t) => { }); pool.addResource({ name: "ui5loader.js", + getPath: () => "ui5loader.js", string: function() { return this.buffer(); }, @@ -69,6 +76,7 @@ test("integration: createBundle with exposedGlobals", async (t) => { }); pool.addResource({ name: "a.library", + getPath: () => "a.library", string: function() { return this.buffer(); }, @@ -103,11 +111,13 @@ test("integration: createBundle with exposedGlobals", async (t) => { t.deepEqual(oResult.name, "library-preload.js"); const expectedContent = `//@ui5-bundle library-preload.js sap.ui.require.preload({ - "a.js":function(){function One(){return 1;} + "a.js":function(){ +function One(){return 1;} this.One=One; } },"preload-section"); sap.ui.requireSync("ui5loader"); +${SOURCE_MAPPING_URL}=library-preload.js.map `; t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat " + "should contain:" + @@ -123,6 +133,7 @@ test("integration: createBundle EVOBundleFormat (ui5loader.js)", async (t) => { const pool = new ResourcePool(); pool.addResource({ name: "ui5loader.js", + getPath: () => "ui5loader.js", string: function() { return this.buffer(); }, @@ -130,6 +141,7 @@ test("integration: createBundle EVOBundleFormat (ui5loader.js)", async (t) => { }); pool.addResource({ name: "jquery.sap.global-dbg.js", + getPath: () => "jquery.sap.global-dbg.js", string: function() { return this.buffer(); }, @@ -137,6 +149,7 @@ test("integration: createBundle EVOBundleFormat (ui5loader.js)", async (t) => { }); pool.addResource({ name: "myModule.js", + getPath: () => "myModule.js", string: function() { return this.buffer(); }, @@ -167,12 +180,14 @@ test("integration: createBundle EVOBundleFormat (ui5loader.js)", async (t) => { const expectedContent = `//@ui5-bundle Component-preload.js window["sap-ui-optimized"] = true; sap.ui.require.preload({ - "jquery.sap.global-dbg.js":function(){sap.ui.define([], function(){return {};}); + "jquery.sap.global-dbg.js":function(){ +sap.ui.define([], function(){return {};}); } },"preload-section"); //@ui5-bundle-raw-include myModule.js (function(){window.mine = {};}()); sap.ui.requireSync("ui5loader"); +${SOURCE_MAPPING_URL}=Component-preload.js.map `; t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optimization and " + "should contain:" + @@ -189,6 +204,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( const pool = new ResourcePool(); pool.addResource({ name: "ui5loader.js", + getPath: () => "ui5loader.js", string: function() { return this.buffer(); }, @@ -196,6 +212,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( }); pool.addResource({ // the pool must contain this to activate optimization markers name: "jquery.sap.global-dbg.js", + getPath: () => "jquery.sap.global-dbg.js", string: function() { return this.buffer(); }, @@ -203,6 +220,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( }); pool.addResource({ name: "jquery.sap.global.js", + getPath: () => "jquery.sap.global.js", string: function() { return this.buffer(); }, @@ -210,6 +228,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( }); pool.addResource({ name: "jquery.sap.pony1.js", + getPath: () => "jquery.sap.pony1.js", string: function() { return this.buffer(); }, @@ -217,6 +236,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( }); pool.addResource({ name: "jquery.sap.pony2.js", + getPath: () => "jquery.sap.pony2.js", string: function() { return this.buffer(); }, @@ -227,6 +247,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( }); pool.addResource({ name: "myRawModule.js", + getPath: () => "myRawModule.js", string: function() { return this.buffer(); }, @@ -234,6 +255,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( }); pool.addResource({ name: "myModuleUsingGlobalScope.js", + getPath: () => "myModuleUsingGlobalScope.js", string: function() { return this.buffer(); }, @@ -268,7 +290,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls", async ( usePredefineCalls: true, numberOfParts: 1, decorateBootstrapModule: true, - optimize: true // Note: using 'optimize' makes the test sensitive to changes in terser + optimize: true }); t.deepEqual(oResult.name, "Component-preload.js"); const expectedContent = `//@ui5-bundle Component-preload.js @@ -285,6 +307,7 @@ sap.ui.require.preload({ //@ui5-bundle-raw-include myRawModule.js (function(){window.mine = {};}()); sap.ui.requireSync("ui5loader"); +${SOURCE_MAPPING_URL}=Component-preload.js.map `; t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optimization and " + "should contain:" + @@ -307,6 +330,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls, no optim const pool = new ResourcePool(); pool.addResource({ name: "ui5loader.js", + getPath: () => "ui5loader.js", string: function() { return this.buffer(); }, @@ -314,6 +338,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls, no optim }); pool.addResource({ // the pool must contain this to activate optimization markers name: "jquery.sap.global-dbg.js", + getPath: () => "jquery.sap.global-dbg.js", string: function() { return this.buffer(); }, @@ -321,6 +346,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls, no optim }); pool.addResource({ name: "jquery.sap.global.js", + getPath: () => "jquery.sap.global.js", string: function() { return this.buffer(); }, @@ -328,6 +354,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls, no optim }); pool.addResource({ name: "jquery.sap.pony1.js", + getPath: () => "jquery.sap.pony1.js", string: function() { return this.buffer(); }, @@ -335,6 +362,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls, no optim }); pool.addResource({ name: "jquery.sap.pony2.js", + getPath: () => "jquery.sap.pony2.js", string: function() { return this.buffer(); }, @@ -345,6 +373,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls, no optim }); pool.addResource({ name: "myRawModule.js", + getPath: () => "myRawModule.js", string: function() { return this.buffer(); }, @@ -352,6 +381,7 @@ test("integration: createBundle EVOBundleFormat, using predefine calls, no optim }); pool.addResource({ name: "myModuleUsingGlobalScope.js", + getPath: () => "myModuleUsingGlobalScope.js", string: function() { return this.buffer(); }, @@ -403,6 +433,7 @@ sap.ui.require.preload({ //@ui5-bundle-raw-include myRawModule.js (function(){window.mine = {};}()); sap.ui.requireSync("ui5loader"); +${SOURCE_MAPPING_URL}=Component-preload.js.map `; t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optimization and " + "should contain:" + @@ -425,6 +456,7 @@ test("integration: createBundle (bootstrap bundle)", async (t) => { const pool = new ResourcePool(); pool.addResource({ name: "ui5loader.js", + getPath: () => "ui5loader.js", string: function() { return this.buffer(); }, @@ -432,6 +464,7 @@ test("integration: createBundle (bootstrap bundle)", async (t) => { }); pool.addResource({ name: "sap/ui/core/Core.js", + getPath: () => "sap/ui/core/Core.js", string: function() { return this.buffer(); }, @@ -477,6 +510,7 @@ sap.ui.getCore().boot && sap.ui.getCore().boot(); } catch(oError) { if (oError.name != "Restart") { throw oError; } } +${SOURCE_MAPPING_URL}=bootstrap.js.map `; t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optimization and " + "should contain:" + @@ -493,6 +527,7 @@ test("integration: createBundle UI5BundleFormat (non ui5loader.js)", async (t) = const pool = new ResourcePool(); pool.addResource({ name: "sap-ui-core.js", + getPath: () => "sap-ui-core.js", string: function() { return this.buffer(); }, @@ -500,6 +535,7 @@ test("integration: createBundle UI5BundleFormat (non ui5loader.js)", async (t) = }); pool.addResource({ name: "jquery.sap.global-dbg.js", + getPath: () => "jquery.sap.global-dbg.js", string: function() { return this.buffer(); }, @@ -507,6 +543,7 @@ test("integration: createBundle UI5BundleFormat (non ui5loader.js)", async (t) = }); pool.addResource({ name: "myModule.js", + getPath: () => "myModule.js", string: function() { return this.buffer(); }, @@ -539,12 +576,14 @@ jQuery.sap.registerPreloadedModules({ "name":"preload-section", "version":"2.0", "modules":{ - "jquery.sap.global-dbg.js":function(){sap.ui.define([], function(){/* comment */ return {};}); + "jquery.sap.global-dbg.js":function(){ +sap.ui.define([], function(){/* comment */ return {};}); } }}); //@ui5-bundle-raw-include myModule.js (function(){window.mine = {};}()); sap.ui.requireSync("sap-ui-core"); +${SOURCE_MAPPING_URL}=Component-preload.js.map `; t.deepEqual(oResult.content, expectedContent, "Ui5BundleFormat should start with registerPreloadedModules " + "and should contain:" + @@ -561,6 +600,7 @@ test("integration: createBundle (bootstrap bundle, UI5BundleFormat)", async (t) const pool = new ResourcePool(); pool.addResource({ name: "jquery.sap.global.js", + getPath: () => "jquery.sap.global.js", string: function() { return this.buffer(); }, @@ -568,6 +608,7 @@ test("integration: createBundle (bootstrap bundle, UI5BundleFormat)", async (t) }); pool.addResource({ name: "myRawModule.js", + getPath: () => "myRawModule.js", string: function() { return this.buffer(); }, @@ -575,6 +616,7 @@ test("integration: createBundle (bootstrap bundle, UI5BundleFormat)", async (t) }); pool.addResource({ name: "sap/ui/core/Core.js", + getPath: () => "sap/ui/core/Core.js", string: function() { return this.buffer(); }, @@ -624,6 +666,7 @@ sap.ui.getCore().boot && sap.ui.getCore().boot(); } catch(oError) { if (oError.name != "Restart") { throw oError; } } +${SOURCE_MAPPING_URL}=bootstrap.js.map `; t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat should start with optimization and " + "should contain:" + @@ -636,7 +679,7 @@ if (oError.name != "Restart") { throw oError; } "bundle info subModules are correct"); }); -test("integration: createBundle with bundleInfo", async (t) => { +test.serial("integration: createBundle with bundleInfo", async (t) => { const logger = require("@ui5/logger"); const verboseLogStub = sinon.stub(); const warnLogStub = sinon.stub(); @@ -650,6 +693,7 @@ test("integration: createBundle with bundleInfo", async (t) => { const pool = new ResourcePool(); pool.addResource({ name: "a.js", + getPath: () => "a.js", string: function() { return this.buffer(); }, @@ -657,6 +701,7 @@ test("integration: createBundle with bundleInfo", async (t) => { }); pool.addResource({ name: "b.js", + getPath: () => "b.js", string: function() { return this.buffer(); }, @@ -664,6 +709,7 @@ test("integration: createBundle with bundleInfo", async (t) => { }); pool.addResource({ name: "c.js", + getPath: () => "c.js", string: function() { return this.buffer(); }, @@ -671,6 +717,7 @@ test("integration: createBundle with bundleInfo", async (t) => { }); pool.addResource({ name: "ui5loader.js", + getPath: () => "ui5loader.js", string: function() { return this.buffer(); }, @@ -678,6 +725,7 @@ test("integration: createBundle with bundleInfo", async (t) => { }); pool.addResource({ name: "a.library", + getPath: () => "a.library", string: function() { return this.buffer(); }, @@ -720,7 +768,8 @@ test("integration: createBundle with bundleInfo", async (t) => { t.deepEqual(oResult.name, "library-preload.js"); const expectedContent = `//@ui5-bundle library-preload.js sap.ui.require.preload({ - "a.js":function(){function One(){return 1;} + "a.js":function(){ +function One(){return 1;} this.One=One; } },"preload-section"); @@ -729,6 +778,7 @@ sap.ui.loader.config({bundlesUI5:{ "my-custom-bundle":['b.js'], "my-other-custom-bundle.js":['c.js'] }}); +${SOURCE_MAPPING_URL}=library-preload.js.map `; t.deepEqual(oResult.content, expectedContent, "EVOBundleFormat " + "should contain:" + @@ -746,3 +796,1207 @@ sap.ui.loader.config({bundlesUI5:{ `The name must match the bundle filename (incl. extension such as '.js')` ]); }); + +test("integration: createBundle using predefine calls with source maps and a single, simple source", async (t) => { + const pool = new ResourcePool(); + + // jquery.sap.global-dbg.js: + // /* Some comment */ + // sap.ui.define([], function (){ + // console.log("Put me on a map!"); + // return {}; + // }); + + const originalSourceMap = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "console", + "log" + ], + "mappings": "AACAA,IAAIC,GAAGC,OAAO,GAAI,WACjBC,QAAQC,IAAI,oBACZ,MAAO", + "file": "jquery.sap.global.js" + }; + pool.addResource({ + name: "jquery.sap.global.js.map", + getPath: () => "jquery.sap.global.js.map", + buffer: async () => JSON.stringify(originalSourceMap) + }); + pool.addResource({ + name: "jquery.sap.global.js", + getPath: () => "jquery.sap.global.js", + buffer: async () => `sap.ui.define([],function(){console.log("Put me on a map!");return{}}); +${SOURCE_MAPPING_URL}=jquery.sap.global.js.map` + }); + + const bundleDefinition = { + name: `Component-preload.js`, + defaultFileTypes: [".js"], + sections: [{ + mode: "preload", + name: "preload-section", + filters: [ + "jquery.sap.global.js" + ] + }] + }; + + const builder = new Builder(pool); + const oResult = await builder.createBundle(bundleDefinition, { + usePredefineCalls: true, + optimize: false + }); + t.deepEqual(oResult.name, "Component-preload.js"); + const expectedContent = `//@ui5-bundle Component-preload.js +sap.ui.predefine("jquery.sap.global", [],function(){console.log("Put me on a map!");return{}}); +${SOURCE_MAPPING_URL}=Component-preload.js.map +`; + t.deepEqual(oResult.content, expectedContent, "Correct bundle content"); + t.deepEqual(oResult.bundleInfo.name, "Component-preload.js", "bundle info name is correct"); + t.deepEqual(oResult.bundleInfo.size, expectedContent.length, "bundle info size is correct"); + t.deepEqual(oResult.bundleInfo.subModules, + [ + "jquery.sap.global.js" + ], "bundle info subModules are correct"); + const indexMap = JSON.parse(oResult.sourceMap); + t.is(indexMap.sections.length, 1, "Bundle index source map contains one section"); + t.deepEqual(indexMap.sections[0].offset, { + line: 1, + column: 0 + }, "Section has correct offset"); + + const expectedSourceMap = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "console", + "log" + ], + "mappings": "AACAA,IAAIC,GAAGC,+BAAO,GAAI,WACjBC,QAAQC,IAAI,oBACZ,MAAO", + "sourceRoot": "" + }; + t.deepEqual(indexMap.sections[0].map, expectedSourceMap, "Section contains correct map"); +}); + +test("integration: createBundle using predefine calls with source maps and a single, multi-line source", async (t) => { + const pool = new ResourcePool(); + + // jquery.sap.global-dbg.js: + // /* Some comment */ + // sap. + // ui. + // define( + // [ + // ], function (){ + // console.log("Put me on a map!"); + // return {}; + // }); + + const originalSourceMap = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "console", + "log" + ], + "mappings": "AACAA,IACAC,GACAC,OACA,GACG,WACFC,QAAQC,IAAI,oBACZ,MAAO", + "file": "jquery.sap.global.js" + }; + pool.addResource({ + name: "jquery.sap.global.js.map", + getPath: () => "jquery.sap.global.js.map", + buffer: async () => JSON.stringify(originalSourceMap) + }); + pool.addResource({ + name: "jquery.sap.global.js", + getPath: () => "jquery.sap.global.js", + buffer: async () => `sap.ui.define([],function(){console.log("Put me on a map!");return{}}); +${SOURCE_MAPPING_URL}=jquery.sap.global.js.map` + }); + + const bundleDefinition = { + name: `Component-preload.js`, + defaultFileTypes: [".js"], + sections: [{ + mode: "preload", + name: "preload-section", + filters: [ + "jquery.sap.global.js" + ] + }] + }; + + const builder = new Builder(pool); + const oResult = await builder.createBundle(bundleDefinition, { + usePredefineCalls: true, + numberOfParts: 1, + decorateBootstrapModule: true, + optimize: false + }); + t.deepEqual(oResult.name, "Component-preload.js"); + const expectedContent = `//@ui5-bundle Component-preload.js +sap.ui.predefine("jquery.sap.global", [],function(){console.log("Put me on a map!");return{}}); +${SOURCE_MAPPING_URL}=Component-preload.js.map +`; + t.deepEqual(oResult.content, expectedContent, "Correct bundle content"); + t.deepEqual(oResult.bundleInfo.name, "Component-preload.js", "bundle info name is correct"); + t.deepEqual(oResult.bundleInfo.size, expectedContent.length, "bundle info size is correct"); + t.deepEqual(oResult.bundleInfo.subModules, + [ + "jquery.sap.global.js" + ], "bundle info subModules are correct"); + const indexMap = JSON.parse(oResult.sourceMap); + t.is(indexMap.sections.length, 1, "Bundle index source map contains one section"); + t.deepEqual(indexMap.sections[0].offset, { + line: 1, + column: 0 + }, "Section has correct offset"); + + const expectedSourceMap = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "console", + "log" + ], + "mappings": "AACAA,IACAC,GACAC,+BACA,GACG,WACFC,QAAQC,IAAI,oBACZ,MAAO", + "sourceRoot": "" + }; + t.deepEqual(indexMap.sections[0].map, expectedSourceMap, "Section contains correct map"); +}); + +test("integration: createBundle using predefine calls with source maps and a single source with non-executable code in 1st line", async (t) => { + const pool = new ResourcePool(); + + // jquery.sap.global-dbg.js: + // /*! + // * OpenUI5 + // * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + // * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + // */ + // /*global XMLHttpRequest, localStorage, alert, document */ + // /** + // * @namespace jQuery + // * @public + // */ + // sap.ui.define([ + // // new sap/base/* modules + // "sap/base/util/now", "sap/base/util/Version", "sap/base/assert", "sap/base/Log" + // ], function(now, Version, assert, Log) { + // return now; + // }); + + const originalSourceMap = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "now", + "Version", + "assert", + "Log" + ], + "mappings": ";;;;;AAYAA,IAAIC,GAAGC,OAAO,CAEb,oBAAqB,wBAAyB,kBAAmB,gBAC/D,SAASC,EAAKC,EAASC,EAAQC,GACjC,OAAOH", + "file": "jquery.sap.global.js" + }; + pool.addResource({ + name: "jquery.sap.global.js.map", + getPath: () => "jquery.sap.global.js.map", + buffer: async () => JSON.stringify(originalSourceMap) + }); + pool.addResource({ + name: "jquery.sap.global.js", + getPath: () => "jquery.sap.global.js", + buffer: async () => `/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.define(["sap/base/util/now","sap/base/util/Version","sap/base/assert","sap/base/Log"],function(s,a,e,i){return s}); +${SOURCE_MAPPING_URL}=jquery.sap.global.js.map` + }); + + const bundleDefinition = { + name: `Component-preload.js`, + defaultFileTypes: [".js"], + sections: [{ + mode: "preload", + name: "preload-section", + filters: [ + "jquery.sap.global.js" + ] + }] + }; + + const builder = new Builder(pool); + const oResult = await builder.createBundle(bundleDefinition, { + usePredefineCalls: true, + numberOfParts: 1, + decorateBootstrapModule: true, + optimize: false + }); + t.deepEqual(oResult.name, "Component-preload.js"); + const expectedContent = `//@ui5-bundle Component-preload.js +/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.predefine("jquery.sap.global", ["sap/base/util/now","sap/base/util/Version","sap/base/assert","sap/base/Log"],function(s,a,e,i){return s}); +${SOURCE_MAPPING_URL}=Component-preload.js.map +`; + t.deepEqual(oResult.content, expectedContent, "Correct bundle content"); + t.deepEqual(oResult.bundleInfo.name, "Component-preload.js", "bundle info name is correct"); + t.deepEqual(oResult.bundleInfo.size, expectedContent.length, "bundle info size is correct"); + t.deepEqual(oResult.bundleInfo.subModules, + [ + "jquery.sap.global.js" + ], "bundle info subModules are correct"); + const indexMap = JSON.parse(oResult.sourceMap); + t.is(indexMap.sections.length, 1, "Bundle index source map contains one section"); + t.deepEqual(indexMap.sections[0].offset, { + line: 1, + column: 0 + }, "Section has correct offset"); + + const expectedSourceMap = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "now", + "Version", + "assert", + "Log" + ], + "mappings": "AAAA;;;;;AAYAA,IAAIC,GAAGC,+BAAO,CAEb,oBAAqB,wBAAyB,kBAAmB,gBAC/D,SAASC,EAAKC,EAASC,EAAQC,GACjC,OAAOH", + "sourceRoot": "" + }; + t.deepEqual(indexMap.sections[0].map, expectedSourceMap, "Section contains correct map"); +}); + +test("integration: createBundle using predefine calls with source maps and multiple sources", async (t) => { + const pool = new ResourcePool(); + + // jquery.sap.global-dbg.js: + // /*! + // * OpenUI5 + // * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + // * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + // */ + // /*global XMLHttpRequest, localStorage, alert, document */ + // /** + // * @namespace jQuery + // * @public + // */ + // sap.ui.define([ + // // new sap/base/* modules + // "sap/base/util/now", "sap/base/util/Version", "sap/base/assert", "sap/base/Log" + // ], function(now, Version, assert, Log) { + // return now; + // }); + + const originalGlobalSourceMap = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "now", + "Version", + "assert", + "Log" + ], + "mappings": ";;;;;AAYAA,IAAIC,GAAGC,OAAO,CAEb,oBAAqB,wBAAyB,kBAAmB,gBAC/D,SAASC,EAAKC,EAASC,EAAQC,GACjC,OAAOH", + "file": "jquery.sap.global.js" + }; + pool.addResource({ + name: "jquery.sap.global.js.map", + getPath: () => "jquery.sap.global.js.map", + buffer: async () => JSON.stringify(originalGlobalSourceMap) + }); + pool.addResource({ + name: "jquery.sap.global.js", + getPath: () => "jquery.sap.global.js", + buffer: async () => `/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.define(["sap/base/util/now","sap/base/util/Version","sap/base/assert","sap/base/Log"],function(s,a,e,i){return s}); +${SOURCE_MAPPING_URL}=jquery.sap.global.js.map` + }); + + // jquery.sap.dom-dbg.js: + // /*! + // * OpenUI5 + // * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + // * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + // */ + // // Provides functionality related to DOM analysis and manipulation which is not provided by jQuery itself. + // sap.ui.define([ + // 'jquery.sap.global', 'sap/ui/dom/containsOrEquals', + // 'sap/ui/core/syncStyleClass', 'sap/ui/dom/getOwnerWindow', 'sap/ui/dom/getScrollbarSize', + // 'sap/ui/dom/denormalizeScrollLeftRTL', 'sap/ui/dom/denormalizeScrollBeginRTL', + // 'sap/ui/dom/units/Rem', 'sap/ui/dom/jquery/Aria', + // 'sap/ui/dom/jquery/Selection', 'sap/ui/dom/jquery/zIndex', 'sap/ui/dom/jquery/parentByAttribute', + // 'sap/ui/dom/jquery/cursorPos', 'sap/ui/dom/jquery/selectText', 'sap/ui/dom/jquery/getSelectedText', + // 'sap/ui/dom/jquery/rect', 'sap/ui/dom/jquery/rectContains', 'sap/ui/dom/jquery/Focusable', + // 'sap/ui/dom/jquery/hasTabIndex', 'sap/ui/dom/jquery/scrollLeftRTL', 'sap/ui/dom/jquery/scrollRightRTL', 'sap/ui/dom/jquery/Selectors' + // ], function(jQuery, domContainsOrEquals, fnSyncStyleClass, domGetOwnerWindow, + // domGetScrollbarSize, domDenormalizeScrollLeftRTL, domDenormalizeScrollBeginRTL, domUnitsRem + // /* + // jqueryAria, + // jquerySelection, + // jqueryzIndex, + // jqueryParentByAttribute, + // jqueryCursorPos, + // jquerySelectText, + // jqueryGetSelectedText, + // jqueryRect, + // jqueryRectContains, + // jqueryFocusable, + // jqueryHasTabIndex, + // jqueryScrollLeftRTL, + // jqueryScrollRightRTL, + // jquerySelectors*/ + // ) { + // "use strict"; + // /** + // * Shortcut for document.getElementById(). + // * + // * @param {string} sId The id of the DOM element to return + // * @param {Window} [oWindow=window] The window (optional) + // * @return {Element} The DOMNode identified by the given sId + // * @public + // * @since 0.9.0 + // * @deprecated since 1.58 use document.getElementById instead + // */ + // jQuery.sap.domById = function domById(sId, oWindow) { + // return sId ? (oWindow || window).document.getElementById(sId) : null; + // }; + // return jQuery; + // }); + + const originalDomSourceMap = { + "version": 3, + "sources": + [ + "jquery.sap.dom-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "jQuery", + "domContainsOrEquals", + "fnSyncStyleClass", + "domGetOwnerWindow", + "domGetScrollbarSize", + "domDenormalizeScrollLeftRTL", + "domDenormalizeScrollBeginRTL", + "domUnitsRem", + "domById", + "sId", + "oWindow", + "window", + "document", + "getElementById" + ], + "mappings": ";;;;;AAOAA,IAAIC,GAAGC,OAAO,CACb,oBAAqB,8BACrB,6BAA8B,4BAA6B,8BAC3D,sCAAuC,uCACvC,uBAAwB,yBACxB,8BAA+B,2BAA4B,sCAC3D,8BAA+B,+BAAgC,oCAC/D,yBAA0B,iCAAkC,8BAC5D,gCAAiC,kCAAmC,mCAAoC,+BACtG,SAASC,OAAQC,EAAqBC,EAAkBC,EAC1DC,EAAqBC,EAA6BC,EAA8BC,GAiBhF,aAYAP,OAAOH,IAAIW,QAAU,SAASA,EAAQC,EAAKC,GAC1C,OAAOD,GAAOC,GAAWC,QAAQC,SAASC,eAAeJ,GAAO,MAGjE,OAAOT", + "file": "jquery.sap.dom.js" + }; + pool.addResource({ + name: "jquery.sap.dom.js.map", + getPath: () => "jquery.sap.dom.js.map", + buffer: async () => JSON.stringify(originalDomSourceMap) + }); + pool.addResource({ + name: "jquery.sap.dom.js", + getPath: () => "jquery.sap.dom.js", + buffer: async () => `/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.define(["jquery.sap.global","sap/ui/dom/containsOrEquals","sap/ui/core/syncStyleClass","sap/ui/dom/getOwnerWindow","sap/ui/dom/getScrollbarSize","sap/ui/dom/denormalizeScrollLeftRTL","sap/ui/dom/denormalizeScrollBeginRTL","sap/ui/dom/units/Rem","sap/ui/dom/jquery/Aria","sap/ui/dom/jquery/Selection","sap/ui/dom/jquery/zIndex","sap/ui/dom/jquery/parentByAttribute","sap/ui/dom/jquery/cursorPos","sap/ui/dom/jquery/selectText","sap/ui/dom/jquery/getSelectedText","sap/ui/dom/jquery/rect","sap/ui/dom/jquery/rectContains","sap/ui/dom/jquery/Focusable","sap/ui/dom/jquery/hasTabIndex","sap/ui/dom/jquery/scrollLeftRTL","sap/ui/dom/jquery/scrollRightRTL","sap/ui/dom/jquery/Selectors"],function(jQuery,e,u,o,s,i,r,a){"use strict";jQuery.sap.domById=function e(u,o){return u?(o||window).document.getElementById(u):null};return jQuery}); +${SOURCE_MAPPING_URL}=jquery.sap.dom.js.map` + }); + + const bundleDefinition = { + name: `Component-preload.js`, + defaultFileTypes: [".js"], + sections: [{ + mode: "preload", + name: "preload-section", + filters: [ + "jquery.sap.global.js", + "jquery.sap.dom.js" + ] + }] + }; + + const builder = new Builder(pool); + const oResult = await builder.createBundle(bundleDefinition, { + usePredefineCalls: true, + numberOfParts: 1, + decorateBootstrapModule: true, + optimize: false + }); + t.deepEqual(oResult.name, "Component-preload.js"); + const expectedContent = `//@ui5-bundle Component-preload.js +/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.predefine("jquery.sap.dom", ["jquery.sap.global","sap/ui/dom/containsOrEquals","sap/ui/core/syncStyleClass","sap/ui/dom/getOwnerWindow","sap/ui/dom/getScrollbarSize","sap/ui/dom/denormalizeScrollLeftRTL","sap/ui/dom/denormalizeScrollBeginRTL","sap/ui/dom/units/Rem","sap/ui/dom/jquery/Aria","sap/ui/dom/jquery/Selection","sap/ui/dom/jquery/zIndex","sap/ui/dom/jquery/parentByAttribute","sap/ui/dom/jquery/cursorPos","sap/ui/dom/jquery/selectText","sap/ui/dom/jquery/getSelectedText","sap/ui/dom/jquery/rect","sap/ui/dom/jquery/rectContains","sap/ui/dom/jquery/Focusable","sap/ui/dom/jquery/hasTabIndex","sap/ui/dom/jquery/scrollLeftRTL","sap/ui/dom/jquery/scrollRightRTL","sap/ui/dom/jquery/Selectors"],function(jQuery,e,u,o,s,i,r,a){"use strict";jQuery.sap.domById=function e(u,o){return u?(o||window).document.getElementById(u):null};return jQuery}); +/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.predefine("jquery.sap.global", ["sap/base/util/now","sap/base/util/Version","sap/base/assert","sap/base/Log"],function(s,a,e,i){return s}); +${SOURCE_MAPPING_URL}=Component-preload.js.map +`; + t.deepEqual(oResult.content, expectedContent, "Correct bundle content"); + t.deepEqual(oResult.bundleInfo.name, "Component-preload.js", "bundle info name is correct"); + t.deepEqual(oResult.bundleInfo.size, expectedContent.length, "bundle info size is correct"); + t.deepEqual(oResult.bundleInfo.subModules, + [ + "jquery.sap.dom.js", + "jquery.sap.global.js" + ], "bundle info subModules are correct"); + const indexMap = JSON.parse(oResult.sourceMap); + t.is(indexMap.sections.length, 2, "Bundle index source map contains two sections"); + t.deepEqual(indexMap.sections[0].offset, { + line: 1, + column: 0 + }, "Section one has correct offset"); + + const expectedSourceMap1 = { + "version": 3, + "sources": + [ + "jquery.sap.dom-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "jQuery", + "domContainsOrEquals", + "fnSyncStyleClass", + "domGetOwnerWindow", + "domGetScrollbarSize", + "domDenormalizeScrollLeftRTL", + "domDenormalizeScrollBeginRTL", + "domUnitsRem", + "domById", + "sId", + "oWindow", + "window", + "document", + "getElementById" + ], + "mappings": "AAAA;;;;;AAOAA,IAAIC,GAAGC,4BAAO,CACb,oBAAqB,8BACrB,6BAA8B,4BAA6B,8BAC3D,sCAAuC,uCACvC,uBAAwB,yBACxB,8BAA+B,2BAA4B,sCAC3D,8BAA+B,+BAAgC,oCAC/D,yBAA0B,iCAAkC,8BAC5D,gCAAiC,kCAAmC,mCAAoC,+BACtG,SAASC,OAAQC,EAAqBC,EAAkBC,EAC1DC,EAAqBC,EAA6BC,EAA8BC,GAiBhF,aAYAP,OAAOH,IAAIW,QAAU,SAASA,EAAQC,EAAKC,GAC1C,OAAOD,GAAOC,GAAWC,QAAQC,SAASC,eAAeJ,GAAO,MAGjE,OAAOT", + "sourceRoot": "" + }; + t.deepEqual(indexMap.sections[0].map, expectedSourceMap1, "Section one contains correct map"); + t.deepEqual(indexMap.sections[1].offset, { + line: 7, + column: 0 + }, "Section two has correct offset"); + + const expectedSourceMap2 = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "now", + "Version", + "assert", + "Log" + ], + "mappings": "AAAA;;;;;AAYAA,IAAIC,GAAGC,+BAAO,CAEb,oBAAqB,wBAAyB,kBAAmB,gBAC/D,SAASC,EAAKC,EAASC,EAAQC,GACjC,OAAOH", + "sourceRoot": "" + }; + t.deepEqual(indexMap.sections[1].map, expectedSourceMap2, "Section two contains correct map"); +}); + +test("integration: createBundle using predefine calls with source maps and multiple sources 2", async (t) => { + const pool = new ResourcePool(); + + // jquery.sap.global-dbg.js: + // /*! + // * OpenUI5 + // * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + // * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + // */ + // /*global XMLHttpRequest, localStorage, alert, document */ + // /** + // * @namespace jQuery + // * @public + // */ + // sap.ui.define([ + // // new sap/base/* modules + // "sap/base/util/now", "sap/base/util/Version", "sap/base/assert", "sap/base/Log" + // ], function(now, Version, assert, Log) { + // return now; + // }); + + const originalGlobalSourceMap = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "now", + "Version", + "assert", + "Log" + ], + "mappings": ";;;;;AAYAA,IAAIC,GAAGC,OAAO,CAEb,oBAAqB,wBAAyB,kBAAmB,gBAC/D,SAASC,EAAKC,EAASC,EAAQC,GACjC,OAAOH", + "file": "jquery.sap.global.js" + }; + pool.addResource({ + name: "jquery.sap.global.js.map", + getPath: () => "jquery.sap.global.js.map", + buffer: async () => JSON.stringify(originalGlobalSourceMap) + }); + pool.addResource({ + name: "jquery.sap.global.js", + getPath: () => "jquery.sap.global.js", + buffer: async () => `/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.define(["sap/base/util/now","sap/base/util/Version","sap/base/assert","sap/base/Log"],function(s,a,e,i){return s}); +${SOURCE_MAPPING_URL}=jquery.sap.global.js.map` + }); + + // No source map for "jquery.sap.xom.js" => Transitive source map will be created + pool.addResource({ + name: "jquery.sap.xom.js", + getPath: () => "jquery.sap.xom.js", + buffer: async () => `/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.define(function() { + console.log("Test"); +}); +` + }); + + const bundleDefinition = { + name: `Component-preload.js`, + defaultFileTypes: [".js"], + sections: [{ + mode: "preload", + name: "preload-section", + filters: [ + "jquery.sap.global.js", + "jquery.sap.xom.js" + ] + }] + }; + + const builder = new Builder(pool); + const oResult = await builder.createBundle(bundleDefinition, { + usePredefineCalls: true, + numberOfParts: 1, + decorateBootstrapModule: true, + optimize: false + }); + t.deepEqual(oResult.name, "Component-preload.js"); + const expectedContent = `//@ui5-bundle Component-preload.js +/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.predefine("jquery.sap.global", ["sap/base/util/now","sap/base/util/Version","sap/base/assert","sap/base/Log"],function(s,a,e,i){return s}); +/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.predefine("jquery.sap.xom", function() { + console.log("Test"); +}); +${SOURCE_MAPPING_URL}=Component-preload.js.map +`; + t.deepEqual(oResult.content, expectedContent, "Correct bundle content"); + t.deepEqual(oResult.bundleInfo.name, "Component-preload.js", "bundle info name is correct"); + t.deepEqual(oResult.bundleInfo.size, expectedContent.length, "bundle info size is correct"); + t.deepEqual(oResult.bundleInfo.subModules, + [ + "jquery.sap.global.js", + "jquery.sap.xom.js", + ], "bundle info subModules are correct"); + const indexMap = JSON.parse(oResult.sourceMap); + t.is(indexMap.sections.length, 2, "Bundle index source map contains two sections"); + t.deepEqual(indexMap.sections[0].offset, { + line: 1, + column: 0 + }, "Section one has correct offset"); + + const expectedSourceMap1 = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "now", + "Version", + "assert", + "Log" + ], + "mappings": "AAAA;;;;;AAYAA,IAAIC,GAAGC,+BAAO,CAEb,oBAAqB,wBAAyB,kBAAmB,gBAC/D,SAASC,EAAKC,EAASC,EAAQC,GACjC,OAAOH", + "sourceRoot": "" + }; + t.deepEqual(indexMap.sections[0].map, expectedSourceMap1, "Section one contains correct map"); + t.deepEqual(indexMap.sections[1].offset, { + line: 7, + column: 0 + }, "Section two has correct offset"); + + const expectedSourceMap2 = { // Transitive source map + "version": 3, + "sources": + [ + "jquery.sap.xom.js" + ], + "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA", + "sourceRoot": "" + }; + t.deepEqual(indexMap.sections[1].map, expectedSourceMap2, "Section two contains correct map"); +}); + +test("integration: createBundle using predefine calls with inline source maps and a single source", async (t) => { + const pool = new ResourcePool(); + + // jquery.sap.global-dbg.js: + // /*! + // * OpenUI5 + // * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + // * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + // */ + // /*global XMLHttpRequest, localStorage, alert, document */ + // /** + // * @namespace jQuery + // * @public + // */ + // sap.ui.define([ + // // new sap/base/* modules + // "sap/base/util/now", "sap/base/util/Version", "sap/base/assert", "sap/base/Log" + // ], function(now, Version, assert, Log) { + // return now; + // }); + + // Source map should be identical to "single source" test above + pool.addResource({ + name: "jquery.sap.global.js", + getPath: () => "jquery.sap.global.js", + buffer: async () => `/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.define(["sap/base/util/now","sap/base/util/Version","sap/base/assert","sap/base/Log"],function(s,a,e,i){return s}); +${SOURCE_MAPPING_URL}=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImpxdWVyeS5zYXAuZ2xvYmFsLWRiZy5qcyJdLCJuYW1lcyI6WyJzYXAiLCJ1aSIsImRlZmluZSIsIm5vdyIsIlZlcnNpb24iLCJhc3NlcnQiLCJMb2ciXSwibWFwcGluZ3MiOiI7Ozs7O0FBWUFBLElBQUlDLEdBQUdDLE9BQU8sQ0FFYixvQkFBcUIsd0JBQXlCLGtCQUFtQixnQkFDL0QsU0FBU0MsRUFBS0MsRUFBU0MsRUFBUUMsR0FDakMsT0FBT0giLCJmaWxlIjoianF1ZXJ5LnNhcC5nbG9iYWwuanMifQ==` + }); + + const bundleDefinition = { + name: `Component-preload.js`, + defaultFileTypes: [".js"], + sections: [{ + mode: "preload", + name: "preload-section", + filters: [ + "jquery.sap.global.js" + ] + }] + }; + + const builder = new Builder(pool); + const oResult = await builder.createBundle(bundleDefinition, { + usePredefineCalls: true, + numberOfParts: 1, + decorateBootstrapModule: true, + optimize: false + }); + t.deepEqual(oResult.name, "Component-preload.js"); + const expectedContent = `//@ui5-bundle Component-preload.js +/*! + * OpenUI5 + * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. + */ +sap.ui.predefine("jquery.sap.global", ["sap/base/util/now","sap/base/util/Version","sap/base/assert","sap/base/Log"],function(s,a,e,i){return s}); +${SOURCE_MAPPING_URL}=Component-preload.js.map +`; + t.deepEqual(oResult.content, expectedContent, "Correct bundle content"); + t.deepEqual(oResult.bundleInfo.name, "Component-preload.js", "bundle info name is correct"); + t.deepEqual(oResult.bundleInfo.size, expectedContent.length, "bundle info size is correct"); + t.deepEqual(oResult.bundleInfo.subModules, + [ + "jquery.sap.global.js" + ], "bundle info subModules are correct"); + const indexMap = JSON.parse(oResult.sourceMap); + t.is(indexMap.sections.length, 1, "Bundle index source map contains one section"); + t.deepEqual(indexMap.sections[0].offset, { + line: 1, + column: 0 + }, "Section has correct offset"); + + const expectedSourceMap = { + "version": 3, + "sources": + [ + "jquery.sap.global-dbg.js" + ], + "names": + [ + "sap", + "ui", + "define", + "now", + "Version", + "assert", + "Log" + ], + "mappings": "AAAA;;;;;AAYAA,IAAIC,GAAGC,+BAAO,CAEb,oBAAqB,wBAAyB,kBAAmB,gBAC/D,SAASC,EAAKC,EAASC,EAAQC,GACjC,OAAOH", + "sourceRoot": "" + }; + t.deepEqual(indexMap.sections[0].map, expectedSourceMap, "Section contains correct map"); +}); + +test("rewriteDefine (without moduleSourceMap)", async (t) => { + const {rewriteDefine} = Builder.__localFunctions__; + + const {moduleContent, moduleSourceMap} = await rewriteDefine({ + moduleName: "my/test/module.js", + moduleContent: "sap.ui.define([],(()=>1));", + moduleSourceMap: undefined + }); + + t.is(moduleContent, `sap.ui.predefine("my/test/module", [],(()=>1));`); + t.is(moduleSourceMap, undefined); +}); + +test("rewriteDefine (with moduleSourceMap)", async (t) => { + const {rewriteDefine} = Builder.__localFunctions__; + const {encode: encodeMappings, decode: decodeMappings} = require("sourcemap-codec"); + + const inputMappings = [ + [ + [ + 0, 0, 0, 0, 0 + ], + [ + 4, 0, 0, 4, 1 + ], + [ + 7, 0, 0, 7, 2 + ], + [ + 14, 0, 0, 14 + ], + [ + 18, 0, 0, 18 + ], + [ + 22, 0, 1, 8 + ] + ] + ]; + + const {moduleContent, moduleSourceMap} = await rewriteDefine({ + moduleName: "my/test/module.js", + moduleContent: "sap.ui.define([],(()=>1));", + moduleSourceMap: { + "version": 3, + "file": "module.js", + "sources": ["my/test/module-dbg.js"], + "names": ["sap", "ui", "define"], + "mappings": encodeMappings(inputMappings) + } + }); + + const expectedMappings = JSON.parse(JSON.stringify(inputMappings)); + const expectedColumnDiff = `"my/test/module", `.length + "pre".length; + expectedMappings[0][3][0] += expectedColumnDiff; + expectedMappings[0][4][0] += expectedColumnDiff; + expectedMappings[0][5][0] += expectedColumnDiff; + + t.is(moduleContent, `sap.ui.predefine("my/test/module", [],(()=>1));`); + t.deepEqual(decodeMappings(moduleSourceMap.mappings), expectedMappings); + t.deepEqual(moduleSourceMap, { + "version": 3, + "sources": ["my/test/module-dbg.js"], + "names": ["sap", "ui", "define"], + "mappings": encodeMappings(expectedMappings) + }); +}); + +test("rewriteDefine (with empty moduleSourceMap)", async (t) => { + const {rewriteDefine} = Builder.__localFunctions__; + const {encode: encodeMappings, decode: decodeMappings} = require("sourcemap-codec"); + + const inputMappings = [ + [ + [ + 0, 0, 0, 0 + ] + ] + ]; + + const {moduleContent, moduleSourceMap} = await rewriteDefine({ + moduleName: "my/test/module.js", + moduleContent: `sap +.ui.define([], () => { + return 1; +});`, + moduleSourceMap: { + "version": 3, + "sources": ["my/test/module.js"], + "mappings": encodeMappings(inputMappings) + } + }); + + const expectedMappings = JSON.parse(JSON.stringify(inputMappings)); + + t.is(moduleContent, `sap +.ui.predefine("my/test/module", [], () => { + return 1; +});`); + t.deepEqual(decodeMappings(moduleSourceMap.mappings), expectedMappings); + t.deepEqual(moduleSourceMap, { + "version": 3, + "sources": ["my/test/module.js"], + "mappings": encodeMappings(expectedMappings) + }); +}); + +test("getSourceMapForModule: Source map resource named after module resource (no sourceMappingURL)", async (t) => { + const originalSourceMap = { + "version": 3, + "sources": + [ + "module-dbg.js" + ], + "names": + [ + ], + "mappings": "XXXX", + "file": "module.js" + }; + const pool = new ResourcePool(); + pool.addResource({ + name: "my/test/module.js.map", + getPath: () => "my/test/module.js.map", + string: function() { + return this.buffer(); + }, + buffer: async () => JSON.stringify(originalSourceMap) + }); + + const builder = new Builder(pool); + const {moduleContent, moduleSourceMap} = await builder.getSourceMapForModule({ + moduleName: "my/test/module", + resourcePath: "/resources/my/test/module.js", + moduleContent: `// Some content +` + }); + + t.is(moduleContent, "// Some content\n", "Source map URL has been removed from module content"); + t.deepEqual(moduleSourceMap, originalSourceMap, "Correct source map retrieved via relative URL"); +}); +test("getSourceMapForModule: No source map available for debug variant", async (t) => { + const originalSourceMap = { + "version": 3, + "sources": + [ + "module-dbg.js" + ], + "names": + [ + ], + "mappings": "XXXX", + "file": "module.js" + }; + const pool = new ResourcePool(); + pool.addResource({ + name: "my/test/module.js.map", + getPath: () => "my/test/module.js.map", + string: function() { + return this.buffer(); + }, + buffer: async () => JSON.stringify(originalSourceMap) + }); + + const builder = new Builder(pool); + const {moduleContent, moduleSourceMap} = await builder.getSourceMapForModule({ + moduleName: "my/test/module", + resourcePath: "/resources/my/test/module-dbg.js", + moduleContent: `// Some content +` + }); + + t.is(moduleContent, "// Some content\n", "Source map URL has been removed from module content"); + t.deepEqual(moduleSourceMap, { + mappings: "AAAA;AACA", + sources: [ + "module-dbg.js", + ], + version: 3, + }, "Expected transitive source map has been generated"); +}); + +test("getSourceMapForModule: Relative URL", async (t) => { + const originalSourceMap = { + "version": 3, + "sources": + [ + "module-dbg.js" + ], + "names": + [ + ], + "mappings": "XXXX", + "file": "module.js" + }; + const pool = new ResourcePool(); + pool.addResource({ + name: "my/test/module.js.map", + getPath: () => "my/test/module.js.map", + string: function() { + return this.buffer(); + }, + buffer: async () => JSON.stringify(originalSourceMap) + }); + + const builder = new Builder(pool); + const {moduleContent, moduleSourceMap} = await builder.getSourceMapForModule({ + moduleName: "my/test/module", + resourcePath: "/resources/my/test/module.js", + moduleContent: `// Some content +${SOURCE_MAPPING_URL}=module.js.map` + }); + + t.is(moduleContent, "// Some content\n", "Source map URL has been removed from module content"); + t.deepEqual(moduleSourceMap, originalSourceMap, "Correct source map retrieved via relative URL"); +}); + +test("getSourceMapForModule: Relative URL to resource that cannot be found", async (t) => { + const pool = new ResourcePool(); + + const builder = new Builder(pool); + const {moduleContent, moduleSourceMap} = await builder.getSourceMapForModule({ + moduleName: "my/test/module", + resourcePath: "/resources/my/test/module.js", + moduleContent: `// Some content +${SOURCE_MAPPING_URL}=module.js.map` + }); + + t.is(moduleContent, "// Some content\n", "Source map URL has been removed from module content"); + t.deepEqual(moduleSourceMap, { + mappings: "AAAA;AACA", + sources: [ + "module.js", + ], + version: 3, + }, "Expected transitive source map has been generated"); +}); + +test("getSourceMapForModule: Full URL (not supported)", async (t) => { + const pool = new ResourcePool(); + const builder = new Builder(pool); + const {moduleContent, moduleSourceMap} = await builder.getSourceMapForModule({ + moduleName: "my/test/module", + resourcePath: "/resources/my/test/module.js", + moduleContent: `// Some content +${SOURCE_MAPPING_URL}=https://ui5.sap.com/resources/my/test/module.js.map` + }); + + t.is(moduleContent, "// Some content\n", "Source map URL has been removed from module content"); + t.deepEqual(moduleSourceMap, { + mappings: "AAAA;AACA", + sources: [ + "module.js", + ], + version: 3, + }, "Expected transitive source map has been generated"); +}); + +test("getSourceMapForModule: Absolute URL (not supported)", async (t) => { + const pool = new ResourcePool(); + const builder = new Builder(pool); + const {moduleContent, moduleSourceMap} = await builder.getSourceMapForModule({ + moduleName: "my/test/module", + resourcePath: "/resources/my/test/module.js", + moduleContent: `// Some content +${SOURCE_MAPPING_URL}=/resources/my/test/module.js.map` + }); + + t.is(moduleContent, "// Some content\n", "Source map URL has been removed from module content"); + t.deepEqual(moduleSourceMap, { + mappings: "AAAA;AACA", + sources: [ + "module.js", + ], + version: 3, + }, "Expected transitive source map has been generated"); +}); + +test("getSourceMapForModule: Data URI", async (t) => { + const pool = new ResourcePool(); + const builder = new Builder(pool); + const originalSourceMap = { + "version": 3, + "sources": + [ + "module-dbg.js" + ], + "names": + [ + ], + "mappings": "XXXX", + "file": "module.js" + }; + const encodedSourceMap = Buffer.from(JSON.stringify(originalSourceMap)).toString("base64"); + const {moduleContent, moduleSourceMap} = await builder.getSourceMapForModule({ + moduleName: "my/test/module", + resourcePath: "/resources/my/test/module.js", + moduleContent: `// Some content +${SOURCE_MAPPING_URL}=data:application/json;charset=utf-8;base64,${encodedSourceMap}` + }); + + t.is(moduleContent, "// Some content\n", "Source map URL has been removed from module content"); + t.deepEqual(moduleSourceMap, originalSourceMap, "Encoded source map has been parsed correctly"); +}); + +test("getSourceMapForModule: Data URI with incorrect encoding", async (t) => { + const pool = new ResourcePool(); + const builder = new Builder(pool); + const {moduleContent, moduleSourceMap} = await builder.getSourceMapForModule({ + moduleName: "my/test/module", + resourcePath: "/resources/my/test/module.js", + moduleContent: `// Some content +${SOURCE_MAPPING_URL}=data:application/pony;charset=utf-8;base64,AAAA` + }); + + t.is(moduleContent, "// Some content\n", "Source map URL has been removed from module content"); + t.deepEqual(moduleSourceMap, { + mappings: "AAAA;AACA", + sources: [ + "module.js", + ], + version: 3, + }, "Expected transitive source map has been generated"); +}); + +test("createTransientSourceMap: includeContent=false", async (t) => { + const {createTransientSourceMap} = Builder.__localFunctions__; + + const res = createTransientSourceMap({ + moduleName: "my/test/module.js", + moduleContent: `Some content +With +Multiple +Lines`, + includeContent: false + }); + t.deepEqual(res, { + "version": 3, + "sources": ["my/test/module.js"], + "mappings": "AAAA;AACA;AACA;AACA" + }, "Expected source map has been created"); +}); + +test("createTransientSourceMap: includeContent=true", async (t) => { + const {createTransientSourceMap} = Builder.__localFunctions__; + + const moduleContent = `Some content +With +Multiple +Lines`; + const res = createTransientSourceMap({ + moduleName: "my/test/module.js", + moduleContent, + includeContent: true + }); + t.deepEqual(res, { + version: 3, + sources: ["my/test/module.js"], + mappings: "AAAA;AACA;AACA;AACA", + sourcesContent: [moduleContent] + }, "Expected source map has been created"); +}); diff --git a/test/lib/processors/bundlers/moduleBundler.js b/test/lib/processors/bundlers/moduleBundler.js index a357e2eae..174a95bec 100644 --- a/test/lib/processors/bundlers/moduleBundler.js +++ b/test/lib/processors/bundlers/moduleBundler.js @@ -70,8 +70,8 @@ test.serial("Builder returns single bundle", async (t) => { } }); - t.deepEqual(outputResources, [expectedOutputResource]); - t.is(outputResources[0], expectedOutputResource); + t.deepEqual(outputResources, [{bundle: expectedOutputResource}]); + t.is(outputResources[0].bundle, expectedOutputResource); t.is(LocatorResourcePool.callCount, 1, "LocatorResourcePool should be created once"); t.true(LocatorResourcePool.calledWithNew()); @@ -87,8 +87,9 @@ test.serial("Builder returns single bundle", async (t) => { t.is(BundleBuilder.getCall(0).args[0], pool, "LocatorResourcePool should be called with pool"); t.is(pool.prepare.callCount, 1, "pool.prepare should be called once"); - t.is(pool.prepare.getCall(0).args.length, 1); + t.is(pool.prepare.getCall(0).args.length, 2); t.is(pool.prepare.getCall(0).args[0], resources, "pool.prepare should be called with resources"); + t.is(pool.prepare.getCall(0).args[1], undefined, "pool.prepare should be called without moduleNameMapping"); t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); t.is(builder.createBundle.getCall(0).args.length, 2); @@ -155,16 +156,20 @@ test.serial("Builder returns multiple bundles", async (t) => { const expectedOutputResources = [ { - "output": "resource 1" + bundle: { + "output": "resource 1" + }, }, undefined, { - "output": "resource 2" + bundle: { + "output": "resource 2" + } }, undefined ]; - Resource.onFirstCall().returns(expectedOutputResources[0]); - Resource.onSecondCall().returns(expectedOutputResources[2]); + Resource.onFirstCall().returns(expectedOutputResources[0].bundle); + Resource.onSecondCall().returns(expectedOutputResources[2].bundle); const outputResources = await processor({ resources, @@ -175,9 +180,9 @@ test.serial("Builder returns multiple bundles", async (t) => { }); t.deepEqual(outputResources, expectedOutputResources); - t.is(outputResources[0], expectedOutputResources[0]); + t.is(outputResources[0].bundle, expectedOutputResources[0].bundle); t.is(outputResources[1], expectedOutputResources[1]); - t.is(outputResources[2], expectedOutputResources[2]); + t.is(outputResources[2].bundle, expectedOutputResources[2].bundle); t.is(LocatorResourcePool.callCount, 1, "LocatorResourcePool should be created once"); t.true(LocatorResourcePool.calledWithNew()); @@ -193,8 +198,9 @@ test.serial("Builder returns multiple bundles", async (t) => { t.is(BundleBuilder.getCall(0).args[0], pool, "LocatorResourcePool should be called with pool"); t.is(pool.prepare.callCount, 1, "pool.prepare should be called once"); - t.is(pool.prepare.getCall(0).args.length, 1); + t.is(pool.prepare.getCall(0).args.length, 2); t.is(pool.prepare.getCall(0).args[0], resources, "pool.prepare should be called with resources"); + t.is(pool.prepare.getCall(0).args[1], undefined, "pool.prepare should be called without moduleNameMapping"); t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); t.is(builder.createBundle.getCall(0).args.length, 2); @@ -263,8 +269,8 @@ test.serial("bundleOptions default (no options passed)", async (t) => { } }); - t.deepEqual(outputResources, [expectedOutputResource]); - t.is(outputResources[0], expectedOutputResource); + t.deepEqual(outputResources, [{bundle: expectedOutputResource}]); + t.is(outputResources[0].bundle, expectedOutputResource); t.is(LocatorResourcePool.callCount, 1, "LocatorResourcePool should be created once"); t.true(LocatorResourcePool.calledWithNew()); @@ -280,8 +286,9 @@ test.serial("bundleOptions default (no options passed)", async (t) => { t.is(BundleBuilder.getCall(0).args[0], pool, "LocatorResourcePool should be called with pool"); t.is(pool.prepare.callCount, 1, "pool.prepare should be called once"); - t.is(pool.prepare.getCall(0).args.length, 1); + t.is(pool.prepare.getCall(0).args.length, 2); t.is(pool.prepare.getCall(0).args[0], resources, "pool.prepare should be called with resources"); + t.is(pool.prepare.getCall(0).args[1], undefined, "pool.prepare should be called without moduleNameMapping"); t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); t.is(builder.createBundle.getCall(0).args.length, 2); @@ -464,8 +471,8 @@ test.serial("Passes ignoreMissingModules bundleOption to LocatorResourcePool", a } }); - t.deepEqual(outputResources, [expectedOutputResource]); - t.is(outputResources[0], expectedOutputResource); + t.deepEqual(outputResources, [{bundle: expectedOutputResource}]); + t.is(outputResources[0].bundle, expectedOutputResource); t.is(LocatorResourcePool.callCount, 1, "LocatorResourcePool should be created once"); t.true(LocatorResourcePool.calledWithNew()); @@ -481,8 +488,9 @@ test.serial("Passes ignoreMissingModules bundleOption to LocatorResourcePool", a t.is(BundleBuilder.getCall(0).args[0], pool, "LocatorResourcePool should be called with pool"); t.is(pool.prepare.callCount, 1, "pool.prepare should be called once"); - t.is(pool.prepare.getCall(0).args.length, 1); + t.is(pool.prepare.getCall(0).args.length, 2); t.is(pool.prepare.getCall(0).args[0], resources, "pool.prepare should be called with resources"); + t.is(pool.prepare.getCall(0).args[1], undefined, "pool.prepare should be called without moduleNameMapping"); t.is(builder.createBundle.callCount, 1, "builder.createBundle should be called once"); t.is(builder.createBundle.getCall(0).args.length, 2); diff --git a/test/lib/tasks/bundlers/generateComponentPreload.js b/test/lib/tasks/bundlers/generateComponentPreload.js index fc6546139..4cd92f9a9 100644 --- a/test/lib/tasks/bundlers/generateComponentPreload.js +++ b/test/lib/tasks/bundlers/generateComponentPreload.js @@ -26,7 +26,7 @@ test.beforeEach((t) => { ReaderCollectionPrioritized: t.context.ReaderCollectionPrioritizedStub }); - t.context.moduleBundlerStub = sinon.stub().resolves([{"fake": "resource"}]); + t.context.moduleBundlerStub = sinon.stub().resolves([]); mock("../../../../lib/processors/bundlers/moduleBundler", t.context.moduleBundlerStub); t.context.generateComponentPreload = mock.reRequire("../../../../lib/tasks/bundlers/generateComponentPreload"); @@ -48,6 +48,14 @@ test.serial("generateComponentPreload - one namespace", async (t) => { ]; comboByGlob.resolves(resources); + moduleBundlerStub.resolves([ + { + name: "my/app/Component-preload.js", + bundle: {"fake": "bundle"}, + sourceMap: {"fake": "sourceMap"} + } + ]); + await generateComponentPreload({ workspace, dependencies, @@ -99,7 +107,7 @@ test.serial("generateComponentPreload - one namespace", async (t) => { t.is(comboByGlob.callCount, 1, "combo.byGlob should have been called once"); - t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library}"], + t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], "combo.byGlob should have been called with expected pattern"); t.is(ReaderCollectionPrioritizedStub.callCount, 1, @@ -108,11 +116,15 @@ test.serial("generateComponentPreload - one namespace", async (t) => { "ReaderCollectionPrioritized should have been called with 'new'"); const bundleResources = await moduleBundlerStub.getCall(0).returnValue; - t.is(workspace.write.callCount, 1, - "workspace.write should have been called once"); - t.deepEqual(workspace.write.getCall(0).args, [bundleResources[0]], + t.is(workspace.write.callCount, 2, + "workspace.write should have been called twice"); + t.deepEqual(workspace.write.getCall(0).args, [bundleResources[0].bundle], "workspace.write should have been called with expected args"); - t.is(workspace.write.getCall(0).args[0], bundleResources[0], + t.is(workspace.write.getCall(0).args[0], bundleResources[0].bundle, + "workspace.write should have been called with exact resource returned by moduleBundler"); + t.deepEqual(workspace.write.getCall(1).args, [bundleResources[0].sourceMap], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(1).args[0], bundleResources[0].sourceMap, "workspace.write should have been called with exact resource returned by moduleBundler"); }); @@ -127,6 +139,14 @@ test.serial("generateComponentPreload - one namespace - excludes", async (t) => ]; comboByGlob.resolves(resources); + moduleBundlerStub.resolves([ + { + name: "my/app/Component-preload.js", + bundle: {"fake": "bundle"}, + sourceMap: {"fake": "sourceMap"} + } + ]); + await generateComponentPreload({ workspace, dependencies, @@ -184,7 +204,7 @@ test.serial("generateComponentPreload - one namespace - excludes", async (t) => t.is(comboByGlob.callCount, 1, "combo.byGlob should have been called once"); - t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library}"], + t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], "combo.byGlob should have been called with expected pattern"); t.is(ReaderCollectionPrioritizedStub.callCount, 1, @@ -193,11 +213,15 @@ test.serial("generateComponentPreload - one namespace - excludes", async (t) => "ReaderCollectionPrioritized should have been called with 'new'"); const bundleResources = await moduleBundlerStub.getCall(0).returnValue; - t.is(workspace.write.callCount, 1, - "workspace.write should have been called once"); - t.deepEqual(workspace.write.getCall(0).args, [bundleResources[0]], + t.is(workspace.write.callCount, 2, + "workspace.write should have been called twice"); + t.deepEqual(workspace.write.getCall(0).args, [bundleResources[0].bundle], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(0).args[0], bundleResources[0].bundle, + "workspace.write should have been called with exact resource returned by moduleBundler"); + t.deepEqual(workspace.write.getCall(1).args, [bundleResources[0].sourceMap], "workspace.write should have been called with expected args"); - t.is(workspace.write.getCall(0).args[0], bundleResources[0], + t.is(workspace.write.getCall(1).args[0], bundleResources[0].sourceMap, "workspace.write should have been called with exact resource returned by moduleBundler"); }); @@ -212,6 +236,14 @@ test.serial("generateComponentPreload - one namespace - excludes w/o namespace", ]; comboByGlob.resolves(resources); + moduleBundlerStub.resolves([ + { + name: "my/app/Component-preload.js", + bundle: {"fake": "bundle"}, + sourceMap: {"fake": "sourceMap"} + } + ]); + await generateComponentPreload({ workspace, dependencies, @@ -268,7 +300,7 @@ test.serial("generateComponentPreload - one namespace - excludes w/o namespace", t.is(comboByGlob.callCount, 1, "combo.byGlob should have been called once"); - t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library}"], + t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], "combo.byGlob should have been called with expected pattern"); t.is(ReaderCollectionPrioritizedStub.callCount, 1, @@ -277,11 +309,15 @@ test.serial("generateComponentPreload - one namespace - excludes w/o namespace", "ReaderCollectionPrioritized should have been called with 'new'"); const bundleResources = await moduleBundlerStub.getCall(0).returnValue; - t.is(workspace.write.callCount, 1, - "workspace.write should have been called once"); - t.deepEqual(workspace.write.getCall(0).args, [bundleResources[0]], + t.is(workspace.write.callCount, 2, + "workspace.write should have been called twice"); + t.deepEqual(workspace.write.getCall(0).args, [bundleResources[0].bundle], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(0).args[0], bundleResources[0].bundle, + "workspace.write should have been called with exact resource returned by moduleBundler"); + t.deepEqual(workspace.write.getCall(1).args, [bundleResources[0].sourceMap], "workspace.write should have been called with expected args"); - t.is(workspace.write.getCall(0).args[0], bundleResources[0], + t.is(workspace.write.getCall(1).args[0], bundleResources[0].sourceMap, "workspace.write should have been called with exact resource returned by moduleBundler"); }); @@ -296,6 +332,21 @@ test.serial("generateComponentPreload - multiple namespaces - excludes", async ( ]; comboByGlob.resolves(resources); + moduleBundlerStub.onFirstCall().resolves([ + { + name: "my/app1/Component-preload.js", + bundle: {"fake": "bundle1"}, + sourceMap: {"fake": "sourceMap1"} + } + ]); + moduleBundlerStub.onSecondCall().resolves([ + { + name: "my/app2/Component-preload.js", + bundle: {"fake": "bundle2"}, + sourceMap: {"fake": "sourceMap2"} + } + ]); + await generateComponentPreload({ workspace, dependencies, @@ -400,7 +451,7 @@ test.serial("generateComponentPreload - multiple namespaces - excludes", async ( t.is(comboByGlob.callCount, 1, "combo.byGlob should have been called once"); - t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library}"], + t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], "combo.byGlob should have been called with expected pattern"); t.is(ReaderCollectionPrioritizedStub.callCount, 1, @@ -408,17 +459,28 @@ test.serial("generateComponentPreload - multiple namespaces - excludes", async ( t.true(ReaderCollectionPrioritizedStub.calledWithNew(), "ReaderCollectionPrioritized should have been called with 'new'"); - const bundleResources1 = await moduleBundlerStub.getCall(0).returnValue; - const bundleResources2 = await moduleBundlerStub.getCall(1).returnValue; - t.is(workspace.write.callCount, 2, - "workspace.write should have been called twice"); - t.deepEqual(workspace.write.getCall(0).args, [bundleResources1[0]], + const bundleObj1 = await moduleBundlerStub.getCall(0).returnValue; + const bundleObj2 = await moduleBundlerStub.getCall(1).returnValue; + + t.is(workspace.write.callCount, 4, + "workspace.write should have been called 4 times (2x .js, 2x .js.map)"); + + t.deepEqual(workspace.write.getCall(0).args, [bundleObj1[0].bundle], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(0).args[0], bundleObj1[0].bundle, + "workspace.write should have been called with exact resource returned by moduleBundler"); + t.deepEqual(workspace.write.getCall(1).args, [bundleObj1[0].sourceMap], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(1).args[0], bundleObj1[0].sourceMap, + "workspace.write should have been called with exact resource returned by moduleBundler"); + + t.deepEqual(workspace.write.getCall(2).args, [bundleObj2[0].bundle], "workspace.write should have been called with expected args"); - t.is(workspace.write.getCall(0).args[0], bundleResources1[0], + t.is(workspace.write.getCall(2).args[0], bundleObj2[0].bundle, "workspace.write should have been called with exact resource returned by moduleBundler"); - t.deepEqual(workspace.write.getCall(1).args, [bundleResources2[0]], + t.deepEqual(workspace.write.getCall(3).args, [bundleObj2[0].sourceMap], "workspace.write should have been called with expected args"); - t.is(workspace.write.getCall(1).args[0], bundleResources2[0], + t.is(workspace.write.getCall(3).args[0], bundleObj2[0].sourceMap, "workspace.write should have been called with exact resource returned by moduleBundler"); }); diff --git a/test/lib/tasks/bundlers/generateLibraryPreload.integration.js b/test/lib/tasks/bundlers/generateLibraryPreload.integration.js index e6d57d741..f45e38a64 100644 --- a/test/lib/tasks/bundlers/generateLibraryPreload.integration.js +++ b/test/lib/tasks/bundlers/generateLibraryPreload.integration.js @@ -46,7 +46,7 @@ test("integration: build library.d with library preload", async (t) => { assert.directoryDeepEqual(destPath, expectedPath); // Check for all file contents - t.deepEqual(expectedFiles.length, 4, "4 files are expected"); + t.deepEqual(expectedFiles.length, 5, "5 files are expected"); expectedFiles.forEach((expectedFile) => { const relativeFile = path.relative(expectedPath, expectedFile); const destFile = path.join(destPath, relativeFile); @@ -99,7 +99,6 @@ test("integration: build sap.ui.core with library preload", async (t) => { assert.directoryDeepEqual(destPath, expectedPath); // Check for all file contents - t.deepEqual(expectedFiles.length, 17, "17 files are expected"); expectedFiles.forEach((expectedFile) => { const relativeFile = path.relative(expectedPath, expectedFile); const destFile = path.join(destPath, relativeFile); @@ -162,7 +161,8 @@ test("integration: generateLibraryPreload", async (t) => { const writtenResources = await writer.byGlob(["**/**"]); t.deepEqual(writtenResources.map((r) => r.getPath()).sort(), [ - "/resources/my/test/lib/library-preload.js" + "/resources/my/test/lib/library-preload.js", + "/resources/my/test/lib/library-preload.js.map" ], "Expected preload files should be created"); const libraryPreload = await writer.byPath("/resources/my/test/lib/library-preload.js"); @@ -172,6 +172,12 @@ test("integration: generateLibraryPreload", async (t) => { "library-preload should be a bundle"); t.regex(libraryPreloadContent, new RegExp("my/test/lib/library"), "library-preload should include library.js module"); + + const libraryPreloadSourceMap = await writer.byPath("/resources/my/test/lib/library-preload.js.map"); + const libraryPreloadSourceMapContent = await libraryPreloadSourceMap.getString(); + t.notThrows(() => { + JSON.parse(libraryPreloadSourceMapContent); + }, "Source map file should have valid JSON content"); }); test("integration: generateLibraryPreload with designtime and support files", async (t) => { @@ -222,8 +228,11 @@ test("integration: generateLibraryPreload with designtime and support files", as const writtenResources = await writer.byGlob(["**/**"]); t.deepEqual(writtenResources.map((r) => r.getPath()).sort(), [ "/resources/my/test/lib/designtime/library-preload.designtime.js", + "/resources/my/test/lib/designtime/library-preload.designtime.js.map", "/resources/my/test/lib/library-preload.js", - "/resources/my/test/lib/library-preload.support.js" + "/resources/my/test/lib/library-preload.js.map", + "/resources/my/test/lib/library-preload.support.js", + "/resources/my/test/lib/library-preload.support.js.map", ], "Expected preload files should be created"); const libraryPreload = await writer.byPath("/resources/my/test/lib/library-preload.js"); @@ -253,4 +262,24 @@ test("integration: generateLibraryPreload with designtime and support files", as "library-preload.support should include some.support module"); t.regex(supportPreloadContent, new RegExp("my/test/lib/support/foo\\.support"), "library-preload.support should include support/foo.support module"); + + const libraryPreloadSourceMap = await writer.byPath("/resources/my/test/lib/library-preload.js.map"); + const libraryPreloadSourceMapContent = await libraryPreloadSourceMap.getString(); + t.notThrows(() => { + JSON.parse(libraryPreloadSourceMapContent); + }, "Source map file should have valid JSON content"); + + const designtimePreloadSourceMap = + await writer.byPath("/resources/my/test/lib/designtime/library-preload.designtime.js.map"); + const designtimePreloadSourceMapContent = await designtimePreloadSourceMap.getString(); + t.notThrows(() => { + JSON.parse(designtimePreloadSourceMapContent); + }, "Source map file should have valid JSON content"); + + const supportPreloadSourceMap = + await writer.byPath("/resources/my/test/lib/library-preload.support.js.map"); + const supportPreloadSourceMapContent = await supportPreloadSourceMap.getString(); + t.notThrows(() => { + JSON.parse(supportPreloadSourceMapContent); + }, "Source map file should have valid JSON content"); }); diff --git a/test/lib/tasks/bundlers/generateLibraryPreload.js b/test/lib/tasks/bundlers/generateLibraryPreload.js index 7b281d46f..b28c78d45 100644 --- a/test/lib/tasks/bundlers/generateLibraryPreload.js +++ b/test/lib/tasks/bundlers/generateLibraryPreload.js @@ -250,7 +250,8 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - } + }, + moduleNameMapping: {} }, resources }]); @@ -341,7 +342,8 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - } + }, + moduleNameMapping: {} }, resources }]); @@ -510,7 +512,8 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - } + }, + moduleNameMapping: {} }, resources }]); @@ -601,7 +604,8 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - } + }, + moduleNameMapping: {} }, resources }]); @@ -828,7 +832,8 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - } + }, + moduleNameMapping: {} }, resources }]); @@ -919,7 +924,8 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - } + }, + moduleNameMapping: {} }, resources }]); diff --git a/test/lib/tasks/bundlers/generateManifestBundle.integration.js b/test/lib/tasks/bundlers/generateManifestBundle.integration.js index 522291b05..81eb78ec0 100644 --- a/test/lib/tasks/bundlers/generateManifestBundle.integration.js +++ b/test/lib/tasks/bundlers/generateManifestBundle.integration.js @@ -53,7 +53,7 @@ test("integration: Build application.b with manifestBundler", (t) => { const destFile = path.join(destBundle, relativeFile); assert.fileEqual(destFile, expectedFile); }); - t.pass(); + t.pass("No assertion exception"); }); }); diff --git a/test/lib/tasks/bundlers/generateStandaloneAppBundle.integration.js b/test/lib/tasks/bundlers/generateStandaloneAppBundle.integration.js index 141886858..88af852e7 100644 --- a/test/lib/tasks/bundlers/generateStandaloneAppBundle.integration.js +++ b/test/lib/tasks/bundlers/generateStandaloneAppBundle.integration.js @@ -48,12 +48,12 @@ test("integration: build application.b standalone", async (t) => { assert.directoryDeepEqual(destPath, expectedPath, "Result directory structure correct"); // Check for all file contents - t.deepEqual(expectedFiles.length, 11, "11 files are expected"); expectedFiles.forEach((expectedFile) => { const relativeFile = path.relative(expectedPath, expectedFile); const destFile = path.join(destPath, relativeFile); assert.fileEqual(destFile, expectedFile, "Correct file content"); }); + t.pass("No assertion exception"); }); }); diff --git a/test/lib/tasks/minify.js b/test/lib/tasks/minify.js index 7e0d6b3df..358a126c1 100644 --- a/test/lib/tasks/minify.js +++ b/test/lib/tasks/minify.js @@ -46,6 +46,76 @@ test();`; } }); + const expected = `function test(t){var o=t;console.log(o)}test();`; + const res = await writer.byPath("/test.js"); + if (!res) { + t.fail("Could not find /test.js in target locator"); + } + t.deepEqual(await res.getString(), expected, "Correct file content"); + + const resDbg = await writer.byPath("/test-dbg.js"); + if (!resDbg) { + t.fail("Could not find /test-dbg.js in target locator"); + } + t.deepEqual(await resDbg.getString(), content, "Correct debug-file content"); + + const expectedSourceMap = + `{"version":3,"sources":["test-dbg.js"],"names":["test","paramA","variableA","console","log"],` + + `"mappings":"AACA,SAASA,KAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"}`; + + const resSourceMap = await writer.byPath("/test.js.map"); + if (!resSourceMap) { + t.fail("Could not find /test-dbg.js.map in target locator"); + } + t.deepEqual(await resSourceMap.getString(), expectedSourceMap, "Correct source map content"); + + t.is(taskUtil.setTag.callCount, 4, "taskUtil.setTag was called 4 times"); + t.deepEqual(taskUtil.setTag.getCall(0).args, [res, "1️⃣"], "First taskUtil.setTag call with expected arguments"); + t.deepEqual(taskUtil.setTag.getCall(1).args, [resDbg, "2️⃣"], + "Second taskUtil.setTag call with expected arguments"); + t.deepEqual(taskUtil.setTag.getCall(2).args, [resSourceMap, "1️⃣"], + "Third taskUtil.setTag call with expected arguments"); + t.deepEqual(taskUtil.setTag.getCall(3).args, [resSourceMap, "3️⃣"], + "Fourth taskUtil.setTag call with expected arguments"); +}); + +test("integration: minify omitSourceMapResources=false", async (t) => { + const taskUtil = { + setTag: sinon.stub(), + STANDARD_TAGS: { + HasDebugVariant: "1️⃣", + IsDebugVariant: "2️⃣", + OmitFromBuildResult: "3️⃣" + } + }; + const reader = resourceFactory.createAdapter({ + virBasePath: "/" + }); + const writer = resourceFactory.createAdapter({ + virBasePath: "/" + }); + const duplexCollection = new DuplexCollection({reader: reader, writer: writer}); + const content = ` +function test(paramA) { + var variableA = paramA; + console.log(variableA); +} +test();`; + const testResource = resourceFactory.createResource({ + path: "/test.js", + string: content + }); + await reader.write(testResource); + + await minify({ + workspace: duplexCollection, + taskUtil, + options: { + pattern: "/test.js", + omitSourceMapResources: false + } + }); + const expected = `function test(t){var o=t;console.log(o)}test(); //# sourceMappingURL=test.js.map`; const res = await writer.byPath("/test.js"); @@ -74,7 +144,7 @@ test();`; t.deepEqual(taskUtil.setTag.getCall(0).args, [res, "1️⃣"], "First taskUtil.setTag call with expected arguments"); t.deepEqual(taskUtil.setTag.getCall(1).args, [resDbg, "2️⃣"], "Second taskUtil.setTag call with expected arguments"); - t.deepEqual(taskUtil.setTag.getCall(2).args, [resSourceMap, "3️⃣"], + t.deepEqual(taskUtil.setTag.getCall(2).args, [resSourceMap, "1️⃣"], "Third taskUtil.setTag call with expected arguments"); }); From 37e1e3cb372aaadcac931ad19e472304e53efdda Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Wed, 23 Feb 2022 17:37:20 +0000 Subject: [PATCH 36/74] In-range update of npm dependencies --- package-lock.json | 843 ++++++++++++++++++++++++++-------------------- 1 file changed, 474 insertions(+), 369 deletions(-) diff --git a/package-lock.json b/package-lock.json index 228c8ab5e..aac04c030 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,6 +55,18 @@ "npm": ">= 8" } }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", @@ -68,35 +80,35 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "version": "7.17.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", + "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", "dev": true, "dependencies": { + "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", + "@babel/generator": "^7.17.3", "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.3", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -107,9 +119,9 @@ } }, "node_modules/@babel/core/node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -128,12 +140,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", "dev": true, "dependencies": { - "@babel/types": "^7.16.8", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -231,9 +243,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", + "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.16.7", @@ -242,8 +254,8 @@ "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -292,14 +304,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", "dev": true, "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -401,9 +413,9 @@ } }, "node_modules/@babel/template/node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -413,19 +425,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", + "@babel/generator": "^7.17.3", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -434,9 +446,9 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -446,9 +458,9 @@ } }, "node_modules/@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", @@ -480,28 +492,28 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.17.0.tgz", - "integrity": "sha512-B8DIIWE194KyQFPojUs+THa2XX+1vulwTBjirw6GqcxjtNE60Rreex26svBnV9SNLTuz92ctZx5XQE1H7yOxgA==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz", + "integrity": "sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==", "dev": true, "dependencies": { "comment-parser": "1.3.0", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~2.2.1" + "jsdoc-type-pratt-parser": "~2.2.3" }, "engines": { "node": "^12 || ^14 || ^16 || ^17" } }, "node_modules/@eslint/eslintrc": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", - "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", + "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.2.0", + "espree": "^9.3.1", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", @@ -520,9 +532,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -568,9 +580,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", - "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -630,6 +642,31 @@ "node": ">=8" } }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -690,9 +727,9 @@ } }, "node_modules/@sinonjs/samsam": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.6.0", @@ -756,9 +793,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", - "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==", + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", "dev": true, "optional": true }, @@ -817,13 +854,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.29.tgz", - "integrity": "sha512-RePZ/J4Ub3sb7atQw6V6Rez+/5LCRHGFlSetT3N4VMrejqJnNPXKUt5AVm/9F5MJriy2w/VudEIvgscCfCWqxw==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz", + "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.29", + "@vue/shared": "3.2.31", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } @@ -838,27 +875,27 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.29.tgz", - "integrity": "sha512-y26vK5khdNS9L3ckvkqJk/78qXwWb75Ci8iYLb67AkJuIgyKhIOcR1E8RIt4mswlVCIeI9gQ+fmtdhaiTAtrBQ==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", + "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.2.29", - "@vue/shared": "3.2.29" + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.29.tgz", - "integrity": "sha512-X9+0dwsag2u6hSOP/XsMYqFti/edvYvxamgBgCcbSYuXx1xLZN+dS/GvQKM4AgGS4djqo0jQvWfIXdfZ2ET68g==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz", + "integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.29", - "@vue/compiler-dom": "3.2.29", - "@vue/compiler-ssr": "3.2.29", - "@vue/reactivity-transform": "3.2.29", - "@vue/shared": "3.2.29", + "@vue/compiler-core": "3.2.31", + "@vue/compiler-dom": "3.2.31", + "@vue/compiler-ssr": "3.2.31", + "@vue/reactivity-transform": "3.2.31", + "@vue/shared": "3.2.31", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -875,32 +912,32 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.29.tgz", - "integrity": "sha512-LrvQwXlx66uWsB9/VydaaqEpae9xtmlUkeSKF6aPDbzx8M1h7ukxaPjNCAXuFd3fUHblcri8k42lfimHfzMICA==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz", + "integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.2.29", - "@vue/shared": "3.2.29" + "@vue/compiler-dom": "3.2.31", + "@vue/shared": "3.2.31" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.29.tgz", - "integrity": "sha512-YF6HdOuhdOw6KyRm59+3rML8USb9o8mYM1q+SH0G41K3/q/G7uhPnHGKvspzceD7h9J3VR1waOQ93CUZj7J7OA==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz", + "integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.29", - "@vue/shared": "3.2.29", + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "node_modules/@vue/shared": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.29.tgz", - "integrity": "sha512-BjNpU8OK6Z0LVzGUppEk0CMYm/hKDnZfYdjSmPOs0N+TR1cLKJAkDwW8ASZUvaaSLEi6d3hVM7jnWnX+6yWnHw==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==", "dev": true }, "node_modules/acorn": { @@ -1342,15 +1379,15 @@ } }, "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.19.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz", + "integrity": "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", + "caniuse-lite": "^1.0.30001312", + "electron-to-chromium": "^1.4.71", "escalade": "^3.1.1", - "node-releases": "^2.0.1", + "node-releases": "^2.0.2", "picocolors": "^1.0.0" }, "bin": { @@ -1497,9 +1534,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001301", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", - "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", + "version": "1.0.30001312", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", + "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", "dev": true, "funding": { "type": "opencollective", @@ -1518,15 +1555,16 @@ } }, "node_modules/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", + "loupe": "^2.3.1", "pathval": "^1.1.1", "type-detect": "^4.0.5" }, @@ -2613,9 +2651,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.52.tgz", - "integrity": "sha512-JGkh8HEh5PnVrhU4HbpyyO0O791dVY6k7AdqfDeqbcRMeoGxtNHWT77deR2nhvbLe4dKpxjlDEvdEwrvRLGu2Q==", + "version": "1.4.71", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", + "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==", "dev": true }, "node_modules/emittery": { @@ -2809,12 +2847,12 @@ } }, "node_modules/eslint": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz", - "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", + "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.0.5", + "@eslint/eslintrc": "^1.1.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -2822,10 +2860,10 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.0", + "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.2.0", - "espree": "^9.3.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -2873,12 +2911,12 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "37.6.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.3.tgz", - "integrity": "sha512-Ysd1ZK4kL7DjjRJtWzb6Z7YANu7ndalu5PQBhOn07SlpKQ/+8JXvdtQ6yyADOO8w9xW5ZEEzuGY3KWhtk4CRYA==", + "version": "37.9.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.4.tgz", + "integrity": "sha512-VxCyGgUNNnj2T4bb1OqltkbsPp3ehRzR5onIfh6zGrAvISmvgX/sbxUlh3YyGqWtjOTSBCURdKdmelSXEIHnlA==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.17.0", + "@es-joy/jsdoccomment": "~0.20.1", "comment-parser": "1.3.0", "debug": "^4.3.3", "escape-string-regexp": "^4.0.0", @@ -2895,9 +2933,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -2970,9 +3008,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3121,9 +3159,9 @@ } }, "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", + "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" }, "node_modules/extended-emitter": { "version": "1.1.0", @@ -3323,9 +3361,9 @@ } }, "node_modules/flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "node_modules/foreground-child": { @@ -4217,9 +4255,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", - "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -4294,9 +4332,9 @@ } }, "node_modules/jsdoc-type-pratt-parser": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.2.tgz", - "integrity": "sha512-zRokSWcPLSWkoNzsWn9pq7YYSwDhKyEe+cJYT2qaPqLOOJb5sFSi46BPj81vP+e8chvCNdQL9RG86Bi9EI6MDw==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.3.tgz", + "integrity": "sha512-QPyxq62Q8veBSDtDrWmqaEPjSCeknUV9dH/OAGt3q9an8qC8UQDqitQiw1NvoMskIESpoRZ6qzt4H3rlK0xo8A==", "dev": true, "engines": { "node": ">=12.0.0" @@ -4574,6 +4612,15 @@ "loose-envify": "cli.js" } }, + "node_modules/loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -4687,9 +4734,9 @@ } }, "node_modules/marked": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.10.tgz", - "integrity": "sha512-+QvuFj0nGgO970fySghXGmuw+Fd0gD2x3+MqCWLIPf5oxdv1Ka6b2q+z9RP01P/IaKPMEramy+7cNy/Lw8c3hw==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", "bin": { "marked": "bin/marked.js" }, @@ -4838,9 +4885,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4939,9 +4986,9 @@ } }, "node_modules/nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -4962,13 +5009,13 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" }, "node_modules/nise": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", - "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", + "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" @@ -4987,9 +5034,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, "node_modules/normalize-package-data": { @@ -5580,9 +5627,9 @@ } }, "node_modules/peek-readable": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz", - "integrity": "sha512-9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", "dev": true, "engines": { "node": ">=8" @@ -5720,14 +5767,14 @@ } }, "node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", "dev": true, "dependencies": { - "nanoid": "^3.1.30", + "nanoid": "^3.2.0", "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" }, "engines": { "node": "^10 || ^12 || >=14" @@ -6004,6 +6051,18 @@ "node": ">=0.10.0" } }, + "node_modules/recursive-readdir/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -6274,9 +6333,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/sass": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.0.tgz", - "integrity": "sha512-TVwVdNDj6p6b4QymJtNtRS2YtLJ/CqZriGg0eIAbAKMlN8Xy6kbv33FsEZSF7FufFFM705SQviHjjThfaQ4VNw==", + "version": "1.49.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.8.tgz", + "integrity": "sha512-NoGOjvDDOU9og9oAxhRnap71QaTjjlzrvLnKecUJ3GxhaQBrV6e7gPuSPF28u1OcVAArVojPAe4ZhOXwwC4tGw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -6287,7 +6346,7 @@ "sass": "sass.js" }, "engines": { - "node": ">=8.9.0" + "node": ">=12.0.0" } }, "node_modules/sax": { @@ -6402,15 +6461,15 @@ } }, "node_modules/sift": { - "version": "15.1.3", - "resolved": "https://registry.npmjs.org/sift/-/sift-15.1.3.tgz", - "integrity": "sha512-/JZRQtE1pe4t93jKvAKDCgpOSfFX/tFNoYn5hUB4nuVyihGFp5pS5mQu6p7XOo0oQvj+jrgVyIteAI6lO+EE8A==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz", + "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ==", "dev": true }, "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sinon": { "version": "11.1.2", @@ -6695,13 +6754,13 @@ } }, "node_modules/strtok3": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", - "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", "dev": true, "dependencies": { "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.0.1" + "peek-readable": "^4.1.0" }, "engines": { "node": ">=10" @@ -7009,10 +7068,11 @@ } }, "node_modules/terser": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", + "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", "dependencies": { + "acorn": "^8.5.0", "commander": "^2.20.0", "source-map": "~0.7.2", "source-map-support": "~0.5.20" @@ -7022,14 +7082,6 @@ }, "engines": { "node": ">=10" - }, - "peerDependencies": { - "acorn": "^8.5.0" - }, - "peerDependenciesMeta": { - "acorn": { - "optional": true - } } }, "node_modules/terser/node_modules/source-map": { @@ -7627,6 +7679,15 @@ } }, "dependencies": { + "@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.0" + } + }, "@babel/code-frame": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", @@ -7637,38 +7698,38 @@ } }, "@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", "dev": true }, "@babel/core": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", - "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "version": "7.17.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", + "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", "dev": true, "requires": { + "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", + "@babel/generator": "^7.17.3", "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.12", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.3", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" + "semver": "^6.3.0" }, "dependencies": { "@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", "dev": true }, "semver": { @@ -7680,12 +7741,12 @@ } }, "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", + "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", "dev": true, "requires": { - "@babel/types": "^7.16.8", + "@babel/types": "^7.17.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -7758,9 +7819,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "version": "7.17.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", + "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.16.7", @@ -7769,8 +7830,8 @@ "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.3", + "@babel/types": "^7.17.0" } }, "@babel/helper-simple-access": { @@ -7804,14 +7865,14 @@ "dev": true }, "@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", "dev": true, "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" } }, "@babel/highlight": { @@ -7885,43 +7946,43 @@ }, "dependencies": { "@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", "dev": true } } }, "@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", + "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", + "@babel/generator": "^7.17.3", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", + "@babel/parser": "^7.17.3", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { "@babel/parser": { - "version": "7.16.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.12.tgz", - "integrity": "sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==", + "version": "7.17.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", + "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", "dev": true } } }, "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -7946,25 +8007,25 @@ } }, "@es-joy/jsdoccomment": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.17.0.tgz", - "integrity": "sha512-B8DIIWE194KyQFPojUs+THa2XX+1vulwTBjirw6GqcxjtNE60Rreex26svBnV9SNLTuz92ctZx5XQE1H7yOxgA==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz", + "integrity": "sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==", "dev": true, "requires": { "comment-parser": "1.3.0", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~2.2.1" + "jsdoc-type-pratt-parser": "~2.2.3" } }, "@eslint/eslintrc": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", - "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", + "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.2.0", + "espree": "^9.3.1", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", @@ -7980,9 +8041,9 @@ "dev": true }, "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -8012,9 +8073,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", - "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", + "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -8061,6 +8122,28 @@ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, + "@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", + "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -8109,9 +8192,9 @@ } }, "@sinonjs/samsam": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", "dev": true, "requires": { "@sinonjs/commons": "^1.6.0", @@ -8172,9 +8255,9 @@ "dev": true }, "@types/node": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", - "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==", + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", "dev": true, "optional": true }, @@ -8225,13 +8308,13 @@ } }, "@vue/compiler-core": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.29.tgz", - "integrity": "sha512-RePZ/J4Ub3sb7atQw6V6Rez+/5LCRHGFlSetT3N4VMrejqJnNPXKUt5AVm/9F5MJriy2w/VudEIvgscCfCWqxw==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz", + "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.29", + "@vue/shared": "3.2.31", "estree-walker": "^2.0.2", "source-map": "^0.6.1" }, @@ -8245,27 +8328,27 @@ } }, "@vue/compiler-dom": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.29.tgz", - "integrity": "sha512-y26vK5khdNS9L3ckvkqJk/78qXwWb75Ci8iYLb67AkJuIgyKhIOcR1E8RIt4mswlVCIeI9gQ+fmtdhaiTAtrBQ==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", + "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", "dev": true, "requires": { - "@vue/compiler-core": "3.2.29", - "@vue/shared": "3.2.29" + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31" } }, "@vue/compiler-sfc": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.29.tgz", - "integrity": "sha512-X9+0dwsag2u6hSOP/XsMYqFti/edvYvxamgBgCcbSYuXx1xLZN+dS/GvQKM4AgGS4djqo0jQvWfIXdfZ2ET68g==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz", + "integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.29", - "@vue/compiler-dom": "3.2.29", - "@vue/compiler-ssr": "3.2.29", - "@vue/reactivity-transform": "3.2.29", - "@vue/shared": "3.2.29", + "@vue/compiler-core": "3.2.31", + "@vue/compiler-dom": "3.2.31", + "@vue/compiler-ssr": "3.2.31", + "@vue/reactivity-transform": "3.2.31", + "@vue/shared": "3.2.31", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -8281,32 +8364,32 @@ } }, "@vue/compiler-ssr": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.29.tgz", - "integrity": "sha512-LrvQwXlx66uWsB9/VydaaqEpae9xtmlUkeSKF6aPDbzx8M1h7ukxaPjNCAXuFd3fUHblcri8k42lfimHfzMICA==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz", + "integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==", "dev": true, "requires": { - "@vue/compiler-dom": "3.2.29", - "@vue/shared": "3.2.29" + "@vue/compiler-dom": "3.2.31", + "@vue/shared": "3.2.31" } }, "@vue/reactivity-transform": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.29.tgz", - "integrity": "sha512-YF6HdOuhdOw6KyRm59+3rML8USb9o8mYM1q+SH0G41K3/q/G7uhPnHGKvspzceD7h9J3VR1waOQ93CUZj7J7OA==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz", + "integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.29", - "@vue/shared": "3.2.29", + "@vue/compiler-core": "3.2.31", + "@vue/shared": "3.2.31", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "@vue/shared": { - "version": "3.2.29", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.29.tgz", - "integrity": "sha512-BjNpU8OK6Z0LVzGUppEk0CMYm/hKDnZfYdjSmPOs0N+TR1cLKJAkDwW8ASZUvaaSLEi6d3hVM7jnWnX+6yWnHw==", + "version": "3.2.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz", + "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==", "dev": true }, "acorn": { @@ -8640,15 +8723,15 @@ } }, "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.19.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz", + "integrity": "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", + "caniuse-lite": "^1.0.30001312", + "electron-to-chromium": "^1.4.71", "escalade": "^3.1.1", - "node-releases": "^2.0.1", + "node-releases": "^2.0.2", "picocolors": "^1.0.0" } }, @@ -8745,9 +8828,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001301", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz", - "integrity": "sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==", + "version": "1.0.30001312", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", + "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", "dev": true }, "catharsis": { @@ -8759,15 +8842,16 @@ } }, "chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", + "loupe": "^2.3.1", "pathval": "^1.1.1", "type-detect": "^4.0.5" } @@ -9618,9 +9702,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.52.tgz", - "integrity": "sha512-JGkh8HEh5PnVrhU4HbpyyO0O791dVY6k7AdqfDeqbcRMeoGxtNHWT77deR2nhvbLe4dKpxjlDEvdEwrvRLGu2Q==", + "version": "1.4.71", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", + "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==", "dev": true }, "emittery": { @@ -9786,12 +9870,12 @@ } }, "eslint": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.7.0.tgz", - "integrity": "sha512-ifHYzkBGrzS2iDU7KjhCAVMGCvF6M3Xfs8X8b37cgrUlDt6bWRTpRh6T/gtSXv1HJ/BUGgmjvNvOEGu85Iif7w==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", + "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.0.5", + "@eslint/eslintrc": "^1.1.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -9799,10 +9883,10 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.0", + "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.2.0", - "espree": "^9.3.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -9844,9 +9928,9 @@ } }, "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -9877,12 +9961,12 @@ "requires": {} }, "eslint-plugin-jsdoc": { - "version": "37.6.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.6.3.tgz", - "integrity": "sha512-Ysd1ZK4kL7DjjRJtWzb6Z7YANu7ndalu5PQBhOn07SlpKQ/+8JXvdtQ6yyADOO8w9xW5ZEEzuGY3KWhtk4CRYA==", + "version": "37.9.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.4.tgz", + "integrity": "sha512-VxCyGgUNNnj2T4bb1OqltkbsPp3ehRzR5onIfh6zGrAvISmvgX/sbxUlh3YyGqWtjOTSBCURdKdmelSXEIHnlA==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "~0.17.0", + "@es-joy/jsdoccomment": "~0.20.1", "comment-parser": "1.3.0", "debug": "^4.3.3", "escape-string-regexp": "^4.0.0", @@ -9893,9 +9977,9 @@ } }, "eslint-scope": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -10021,9 +10105,9 @@ }, "dependencies": { "type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", + "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" } } }, @@ -10180,9 +10264,9 @@ } }, "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "foreground-child": { @@ -10823,9 +10907,9 @@ } }, "istanbul-reports": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", - "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -10892,9 +10976,9 @@ } }, "jsdoc-type-pratt-parser": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.2.tgz", - "integrity": "sha512-zRokSWcPLSWkoNzsWn9pq7YYSwDhKyEe+cJYT2qaPqLOOJb5sFSi46BPj81vP+e8chvCNdQL9RG86Bi9EI6MDw==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.3.tgz", + "integrity": "sha512-QPyxq62Q8veBSDtDrWmqaEPjSCeknUV9dH/OAGt3q9an8qC8UQDqitQiw1NvoMskIESpoRZ6qzt4H3rlK0xo8A==", "dev": true }, "jsesc": { @@ -11111,6 +11195,15 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -11195,9 +11288,9 @@ "requires": {} }, "marked": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.10.tgz", - "integrity": "sha512-+QvuFj0nGgO970fySghXGmuw+Fd0gD2x3+MqCWLIPf5oxdv1Ka6b2q+z9RP01P/IaKPMEramy+7cNy/Lw8c3hw==" + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==" }, "matcher": { "version": "3.0.0", @@ -11297,9 +11390,9 @@ "dev": true }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } @@ -11375,9 +11468,9 @@ } }, "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, "natural-compare": { @@ -11392,13 +11485,13 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" }, "nise": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", - "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", + "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^7.0.4", + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "path-to-regexp": "^1.7.0" @@ -11414,9 +11507,9 @@ } }, "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, "normalize-package-data": { @@ -11868,9 +11961,9 @@ "dev": true }, "peek-readable": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz", - "integrity": "sha512-9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", + "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", "dev": true }, "pend": { @@ -11970,14 +12063,14 @@ } }, "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", "dev": true, "requires": { - "nanoid": "^3.1.30", + "nanoid": "^3.2.0", "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" + "source-map-js": "^1.0.2" } }, "prelude-ls": { @@ -12175,6 +12268,17 @@ "dev": true, "requires": { "minimatch": "3.0.4" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "redent": { @@ -12382,9 +12486,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "sass": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.0.tgz", - "integrity": "sha512-TVwVdNDj6p6b4QymJtNtRS2YtLJ/CqZriGg0eIAbAKMlN8Xy6kbv33FsEZSF7FufFFM705SQviHjjThfaQ4VNw==", + "version": "1.49.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.8.tgz", + "integrity": "sha512-NoGOjvDDOU9og9oAxhRnap71QaTjjlzrvLnKecUJ3GxhaQBrV6e7gPuSPF28u1OcVAArVojPAe4ZhOXwwC4tGw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -12475,15 +12579,15 @@ "dev": true }, "sift": { - "version": "15.1.3", - "resolved": "https://registry.npmjs.org/sift/-/sift-15.1.3.tgz", - "integrity": "sha512-/JZRQtE1pe4t93jKvAKDCgpOSfFX/tFNoYn5hUB4nuVyihGFp5pS5mQu6p7XOo0oQvj+jrgVyIteAI6lO+EE8A==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.0.tgz", + "integrity": "sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ==", "dev": true }, "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "sinon": { "version": "11.1.2", @@ -12706,13 +12810,13 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, "strtok3": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", - "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", + "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", "dev": true, "requires": { "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.0.1" + "peek-readable": "^4.1.0" } }, "supertap": { @@ -12960,10 +13064,11 @@ } }, "terser": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", + "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", "requires": { + "acorn": "^8.5.0", "commander": "^2.20.0", "source-map": "~0.7.2", "source-map-support": "~0.5.20" From af075edf784d9f1ba162a34f0bf150dbcbc0f479 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Wed, 9 Feb 2022 17:50:42 +0100 Subject: [PATCH 37/74] [FIX] XMLTemplateAnalyzer: Analyze core:require of FragmentDefinition The FragmentDefinition node should be skipped, but it may still contain a core:require definition. This is in line with the current runtime which also reads the require and loads the module. --- lib/lbt/analyzer/XMLTemplateAnalyzer.js | 3 ++- test/lib/lbt/analyzer/XMLTemplateAnalyzer.js | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/lbt/analyzer/XMLTemplateAnalyzer.js b/lib/lbt/analyzer/XMLTemplateAnalyzer.js index ce17f880e..e87dadcfb 100644 --- a/lib/lbt/analyzer/XMLTemplateAnalyzer.js +++ b/lib/lbt/analyzer/XMLTemplateAnalyzer.js @@ -231,9 +231,10 @@ class XMLTemplateAnalyzer { // looks like a UI5 library or package name const moduleName = ModuleName.fromUI5LegacyName( (namespace ? namespace + "." : "") + localName ); + this._analyzeCoreRequire(node); + // ignore FragmentDefinition (also skipped by runtime XMLTemplateProcessor) if ( FRAGMENTDEFINITION_MODULE !== moduleName ) { - this._analyzeCoreRequire(node); this.promises.push(this._analyzeModuleDependency(node, moduleName, this.conditional)); } } diff --git a/test/lib/lbt/analyzer/XMLTemplateAnalyzer.js b/test/lib/lbt/analyzer/XMLTemplateAnalyzer.js index 7019fa03f..1c9877cdc 100644 --- a/test/lib/lbt/analyzer/XMLTemplateAnalyzer.js +++ b/test/lib/lbt/analyzer/XMLTemplateAnalyzer.js @@ -326,6 +326,26 @@ test("integration: Analysis of an xml fragment", async (t) => { "Implicit dependency should be added since a fragment is analyzed"); }); +test("integration: Analysis of an xml fragment with core:require", async (t) => { + const xml = ` + + `; + + const moduleInfo = new ModuleInfo(); + + const analyzer = new XMLTemplateAnalyzer(fakeMockPool); + await analyzer.analyzeFragment(xml, moduleInfo); + t.deepEqual(moduleInfo.dependencies, + [ + "sap/ui/core/Fragment.js", + "sap/m/MessageToast.js" + ], "Dependencies should come from the XML template"); + t.true(moduleInfo.isImplicitDependency("sap/ui/core/Fragment.js"), + "Implicit dependency should be added since an XML Fragment is analyzed"); +}); + test("integration: Analysis of an empty xml view", async (t) => { const xml = ""; From 0c9fec607a64c4614570057d15b1bbece0660be8 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Wed, 23 Feb 2022 11:11:38 +0100 Subject: [PATCH 38/74] [INTERNAL] Remove unused expected build results Folders have been added by mistake and are not used by any test. --- test/expected/build/build/fileWithoutExtension | 1 - test/expected/build/build/index.html | 11 ----------- test/expected/build/build/test.js | 9 --------- test/expected/build/cleanup/fileWithoutExtension | 1 - test/expected/build/cleanup/index.html | 11 ----------- test/expected/build/cleanup/test.js | 9 --------- 6 files changed, 42 deletions(-) delete mode 100644 test/expected/build/build/fileWithoutExtension delete mode 100644 test/expected/build/build/index.html delete mode 100644 test/expected/build/build/test.js delete mode 100644 test/expected/build/cleanup/fileWithoutExtension delete mode 100644 test/expected/build/cleanup/index.html delete mode 100644 test/expected/build/cleanup/test.js diff --git a/test/expected/build/build/fileWithoutExtension b/test/expected/build/build/fileWithoutExtension deleted file mode 100644 index 1a39ca7a7..000000000 --- a/test/expected/build/build/fileWithoutExtension +++ /dev/null @@ -1 +0,0 @@ -A file without an extension \ No newline at end of file diff --git a/test/expected/build/build/index.html b/test/expected/build/build/index.html deleted file mode 100644 index 1523b1dc3..000000000 --- a/test/expected/build/build/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - Application A - - - - - - \ No newline at end of file diff --git a/test/expected/build/build/test.js b/test/expected/build/build/test.js deleted file mode 100644 index cb4595405..000000000 --- a/test/expected/build/build/test.js +++ /dev/null @@ -1,9 +0,0 @@ -sap.ui.define([ - "library/d/some" -], function(someObject) { - function test(paramA) { - var variableA = paramA; - console.log(variableA); - } - test(); -}); diff --git a/test/expected/build/cleanup/fileWithoutExtension b/test/expected/build/cleanup/fileWithoutExtension deleted file mode 100644 index 1a39ca7a7..000000000 --- a/test/expected/build/cleanup/fileWithoutExtension +++ /dev/null @@ -1 +0,0 @@ -A file without an extension \ No newline at end of file diff --git a/test/expected/build/cleanup/index.html b/test/expected/build/cleanup/index.html deleted file mode 100644 index 1523b1dc3..000000000 --- a/test/expected/build/cleanup/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - Application A - - - - - - \ No newline at end of file diff --git a/test/expected/build/cleanup/test.js b/test/expected/build/cleanup/test.js deleted file mode 100644 index cb4595405..000000000 --- a/test/expected/build/cleanup/test.js +++ /dev/null @@ -1,9 +0,0 @@ -sap.ui.define([ - "library/d/some" -], function(someObject) { - function test(paramA) { - var variableA = paramA; - console.log(variableA); - } - test(); -}); From 6b84314da342b1b66f2fdb98a06b24d2b8f0d043 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Thu, 24 Feb 2022 23:17:14 +0100 Subject: [PATCH 39/74] [INTERNAL] git-chglog: Fix mutli-release-branch setup * Always sort by semver instead of date to fix changelog generation when different branches are tagged at intersecting times * For release notes on the current next branch, ignore any tags <=v2 to ensure that we always compare to a v3 tag (sorting by semver doesn't seem to work here) --- .chglog/release-config.yml | 1 + package.json | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.chglog/release-config.yml b/.chglog/release-config.yml index e967ddb0b..d56659f1c 100755 --- a/.chglog/release-config.yml +++ b/.chglog/release-config.yml @@ -3,6 +3,7 @@ template: RELEASE.tpl.md info: repository_url: https://github.com/SAP/ui5-builder options: + tag_filter_pattern: '^v[^012]' # For release notes ignore versions below v3 to that we always compare the _last v3+_ tag with the current release commits: filters: Type: diff --git a/package.json b/package.json index a726f1d0c..c5eaa0415 100644 --- a/package.json +++ b/package.json @@ -37,9 +37,9 @@ "jsdoc-generate": "jsdoc -c ./jsdoc.json -t $(node -p 'path.dirname(require.resolve(\"docdash\"))') ./lib/ || (echo 'Error during JSDoc generation! Check log.' && exit 1)", "jsdoc-watch": "npm run jsdoc && chokidar \"./lib/**/*.js\" -c \"npm run jsdoc-generate\"", "preversion": "npm test", - "version": "git-chglog --next-tag v$npm_package_version -o CHANGELOG.md && git add CHANGELOG.md", + "version": "git-chglog --sort semver --next-tag v$npm_package_version -o CHANGELOG.md && git add CHANGELOG.md", "postversion": "git push --follow-tags", - "release-note": "git-chglog -c .chglog/release-config.yml v$npm_package_version", + "release-note": "git-chglog --sort semver -c .chglog/release-config.yml v$npm_package_version", "depcheck": "depcheck --ignores docdash" }, "files": [ From e5998066be9c9982d75716b6d075a7de0aa8d430 Mon Sep 17 00:00:00 2001 From: thuyboehm <56580402+thuyboehm@users.noreply.github.com> Date: Mon, 21 Feb 2022 16:33:28 +0100 Subject: [PATCH 40/74] [INTERNAL] generateFlexChangesBundle: Fix minUI5Version check for UI5 v1.100.0+ Up-port of #706 (cherry picked from commit fb1217ac536c20da81526f82f2ecb03686815942) --- lib/tasks/bundlers/generateFlexChangesBundle.js | 5 +++-- test/expected/build/application.i/dest/Component-preload.js | 2 +- test/expected/build/application.i/dest/manifest.json | 1 + .../application.j/dest-resources-json/Component-preload.js | 2 +- .../build/application.j/dest-resources-json/manifest.json | 2 +- .../build/application.j/dest-resources-json/resources.json | 4 ++-- test/expected/build/application.j/dest/Component-preload.js | 2 +- test/expected/build/application.j/dest/manifest.json | 2 +- test/fixtures/application.i/webapp/manifest.json | 1 + test/fixtures/application.j/webapp/manifest.json | 2 +- 10 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/tasks/bundlers/generateFlexChangesBundle.js b/lib/tasks/bundlers/generateFlexChangesBundle.js index 81d1f88b2..3bd3b37be 100644 --- a/lib/tasks/bundlers/generateFlexChangesBundle.js +++ b/lib/tasks/bundlers/generateFlexChangesBundle.js @@ -1,5 +1,6 @@ const log = require("@ui5/logger").getLogger("builder:tasks:bundlers:generateFlexChangesBundle"); const flexChangesBundler = require("../../processors/bundlers/flexChangesBundler"); +const semver = require("semver"); /** * Task to create changesBundle.json file containing all changes stored in the /changes folder for easier consumption @@ -68,9 +69,9 @@ module.exports = async function({workspace, taskUtil, options: {namespace}}) { const allResources = await workspace.byGlob( `${pathPrefix}/changes/*.{change,variant,ctrl_variant,ctrl_variant_change,ctrl_variant_management_change}`); if (allResources.length > 0) { - const version = await readManifestMinUI5Version(); + const version = semver.coerce(await readManifestMinUI5Version()); let hasFlexBundleVersion = false; - if (parseFloat(version) >= 1.73) { + if (semver.compare(version, "1.73.0") >= 0) { hasFlexBundleVersion = true; } const processedResources = await flexChangesBundler({ diff --git a/test/expected/build/application.i/dest/Component-preload.js b/test/expected/build/application.i/dest/Component-preload.js index a23378704..b974b8084 100644 --- a/test/expected/build/application.i/dest/Component-preload.js +++ b/test/expected/build/application.i/dest/Component-preload.js @@ -10,6 +10,6 @@ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.exte sap.ui.define([],function(){return{}}); }, "application/i/changes/fragments/MyFragment.fragment.xml":'', - "application/i/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.i","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{}}}}}' + "application/i/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.i","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.72","libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{}}}}}' }}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.i/dest/manifest.json b/test/expected/build/application.i/dest/manifest.json index 73ea616ee..b40142f30 100644 --- a/test/expected/build/application.i/dest/manifest.json +++ b/test/expected/build/application.i/dest/manifest.json @@ -14,6 +14,7 @@ }, "sap.ui5": { "dependencies": { + "minUI5Version": "1.72", "libs": { "sap.ui.layout": {}, "sap.ui.core": {}, diff --git a/test/expected/build/application.j/dest-resources-json/Component-preload.js b/test/expected/build/application.j/dest-resources-json/Component-preload.js index 62fee9e16..23cbb1b7d 100644 --- a/test/expected/build/application.j/dest-resources-json/Component-preload.js +++ b/test/expected/build/application.j/dest-resources-json/Component-preload.js @@ -10,6 +10,6 @@ sap.ui.define([],function(){return{}}); }, "application/j/changes/flexibility-bundle.json":'{"changes":[{"fileName":"id_456_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2023-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}},{"fileName":"id_123_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"CUSTOMER","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"Max Mustermann"}}],"compVariants":[{"fileName":"id_111_compVariants","fileType":"variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"appDescriptorChange":false}],"variants":[{"fileName":"id_111_test","fileType":"ctrl_variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantDependentControlChanges":[{"fileName":"id_111_variantDependentControlChange","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"variantReference":"someting here"}],"variantManagementChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_management_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}]}', "application/j/changes/fragments/MyFragment.fragment.xml":'', - "application/j/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.j","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.73.2","libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{"lazy":false}}}}}' + "application/j/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.j","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.100.2","libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{"lazy":false}}}}}' }}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.j/dest-resources-json/manifest.json b/test/expected/build/application.j/dest-resources-json/manifest.json index f82703903..e9fe49460 100644 --- a/test/expected/build/application.j/dest-resources-json/manifest.json +++ b/test/expected/build/application.j/dest-resources-json/manifest.json @@ -14,7 +14,7 @@ }, "sap.ui5": { "dependencies": { - "minUI5Version": "1.73.2", + "minUI5Version": "1.100.2", "libs": { "sap.ui.layout": {}, "sap.ui.core": {}, diff --git a/test/expected/build/application.j/dest-resources-json/resources.json b/test/expected/build/application.j/dest-resources-json/resources.json index 7612bf68d..268fb7365 100644 --- a/test/expected/build/application.j/dest-resources-json/resources.json +++ b/test/expected/build/application.j/dest-resources-json/resources.json @@ -17,7 +17,7 @@ { "name": "Component-preload.js", "module": "application/j/Component-preload.js", - "size": 3730, + "size": 3731, "merged": true, "required": [ "sap/m/library.js", @@ -79,7 +79,7 @@ { "name": "manifest.json", "module": "application/j/manifest.json", - "size": 423 + "size": 424 }, { "name": "resources.json", diff --git a/test/expected/build/application.j/dest/Component-preload.js b/test/expected/build/application.j/dest/Component-preload.js index 62fee9e16..23cbb1b7d 100644 --- a/test/expected/build/application.j/dest/Component-preload.js +++ b/test/expected/build/application.j/dest/Component-preload.js @@ -10,6 +10,6 @@ sap.ui.define([],function(){return{}}); }, "application/j/changes/flexibility-bundle.json":'{"changes":[{"fileName":"id_456_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2023-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}},{"fileName":"id_123_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"CUSTOMER","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"Max Mustermann"}}],"compVariants":[{"fileName":"id_111_compVariants","fileType":"variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"appDescriptorChange":false}],"variants":[{"fileName":"id_111_test","fileType":"ctrl_variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantDependentControlChanges":[{"fileName":"id_111_variantDependentControlChange","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"variantReference":"someting here"}],"variantManagementChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_management_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}]}', "application/j/changes/fragments/MyFragment.fragment.xml":'', - "application/j/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.j","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.73.2","libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{"lazy":false}}}}}' + "application/j/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.j","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.100.2","libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{"lazy":false}}}}}' }}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.j/dest/manifest.json b/test/expected/build/application.j/dest/manifest.json index f82703903..e9fe49460 100644 --- a/test/expected/build/application.j/dest/manifest.json +++ b/test/expected/build/application.j/dest/manifest.json @@ -14,7 +14,7 @@ }, "sap.ui5": { "dependencies": { - "minUI5Version": "1.73.2", + "minUI5Version": "1.100.2", "libs": { "sap.ui.layout": {}, "sap.ui.core": {}, diff --git a/test/fixtures/application.i/webapp/manifest.json b/test/fixtures/application.i/webapp/manifest.json index 557627fd4..d9da4a8b9 100644 --- a/test/fixtures/application.i/webapp/manifest.json +++ b/test/fixtures/application.i/webapp/manifest.json @@ -12,6 +12,7 @@ }, "sap.ui5": { "dependencies": { + "minUI5Version": "1.72", "libs": { "sap.ui.layout": {}, "sap.ui.core": {}, diff --git a/test/fixtures/application.j/webapp/manifest.json b/test/fixtures/application.j/webapp/manifest.json index 97ce1c9a7..dd82248ac 100644 --- a/test/fixtures/application.j/webapp/manifest.json +++ b/test/fixtures/application.j/webapp/manifest.json @@ -12,7 +12,7 @@ }, "sap.ui5": { "dependencies": { - "minUI5Version": "1.73.2", + "minUI5Version": "1.100.2", "libs": { "sap.ui.layout": {}, "sap.ui.core": {}, From 9955a0ca4af5e1709357826a22a7d4b03fa05061 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Fri, 25 Feb 2022 10:16:09 +0000 Subject: [PATCH 41/74] Release 3.0.0-alpha.2 --- CHANGELOG.md | 13 ++++++++++++- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5d4c8d74..582023d4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,17 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.1...HEAD). +A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.2...HEAD). + + +## [v3.0.0-alpha.2] - 2022-02-21 +### Bug Fixes +- **XMLTemplateAnalyzer:** Analyze core:require of FragmentDefinition [`af075ed`](https://github.com/SAP/ui5-builder/commit/af075edf784d9f1ba162a34f0bf150dbcbc0f479) + +### Features +- Generate source maps for bundles ([#695](https://github.com/SAP/ui5-builder/issues/695)) [`8a20c42`](https://github.com/SAP/ui5-builder/commit/8a20c4257a1ebe4d613b0595be93cd45d900f580) +- **replaceVersion/Copyright:** Also process test-resources ([#693](https://github.com/SAP/ui5-builder/issues/693)) [`a0d4bc2`](https://github.com/SAP/ui5-builder/commit/a0d4bc2a80d61e042786207af4bdbda6c3ddfe31) + ## [v3.0.0-alpha.1] - 2022-01-25 @@ -677,6 +687,7 @@ to load the custom bundle file instead. - Add ability to configure component preloads and custom bundles [`2241e5f`](https://github.com/SAP/ui5-builder/commit/2241e5ff98fd95f1f80cc74959655ae7a9c660e7) +[v3.0.0-alpha.2]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.1...v3.0.0-alpha.2 [v3.0.0-alpha.1]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.0...v3.0.0-alpha.1 [v3.0.0-alpha.0]: https://github.com/SAP/ui5-builder/compare/v2.11.2...v3.0.0-alpha.0 [v2.11.2]: https://github.com/SAP/ui5-builder/compare/v2.11.1...v2.11.2 diff --git a/package-lock.json b/package-lock.json index aac04c030..b889efa1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.1", + "version": "3.0.0-alpha.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ui5/builder", - "version": "3.0.0-alpha.1", + "version": "3.0.0-alpha.2", "license": "Apache-2.0", "dependencies": { "@ui5/fs": "^3.0.0-alpha.2", diff --git a/package.json b/package.json index c5eaa0415..59afef882 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.1", + "version": "3.0.0-alpha.2", "description": "UI5 Tooling - Builder", "author": { "name": "SAP SE", From 1b7f93f4988340d7a6575be3191a02e6c295ebd0 Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Wed, 9 Mar 2022 10:40:18 +0100 Subject: [PATCH 42/74] [FIX] LocatorResourcePool: Wait for resources in prepare step (#719) Issue was introduced with #695. --- lib/lbt/resources/LocatorResourcePool.js | 2 +- test/lib/lbt/resources/LocatorResourcePool.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/lbt/resources/LocatorResourcePool.js b/lib/lbt/resources/LocatorResourcePool.js index af6994c17..8d56a36e4 100644 --- a/lib/lbt/resources/LocatorResourcePool.js +++ b/lib/lbt/resources/LocatorResourcePool.js @@ -10,7 +10,7 @@ class LocatorResourcePool extends ResourcePool { if (!moduleName) { moduleName = resource.getPath().slice("/resources/".length); } - this.addResource(new LocatorResource(this, resource, moduleName)); + return this.addResource(new LocatorResource(this, resource, moduleName)); }).filter(Boolean) ); } diff --git a/test/lib/lbt/resources/LocatorResourcePool.js b/test/lib/lbt/resources/LocatorResourcePool.js index f23e16bc4..8da25b42d 100644 --- a/test/lib/lbt/resources/LocatorResourcePool.js +++ b/test/lib/lbt/resources/LocatorResourcePool.js @@ -1,8 +1,24 @@ const test = require("ava"); const LocatorResourcePool = require("../../../../lib/lbt/resources/LocatorResourcePool"); +const Resource = require("@ui5/fs").Resource; test("getIgnoreMissingModules", async (t) => { const resourcePool = new LocatorResourcePool({ignoreMissingModules: true}); t.true(resourcePool.getIgnoreMissingModules(), "ignoreMissingModules is true"); }); +test("wait for resources to finish prepare", async (t) => { + let promiseResolved = false; + const promise = new Promise((resolve) => { + setTimeout(() => { + promiseResolved = true; + resolve(); + }, 10); + }); + const resourcePool = new LocatorResourcePool(); + resourcePool.addResource = () => promise; + return resourcePool.prepare([new Resource({path: "mypath"})]).then(() => { + t.true(promiseResolved, "addResources promise is resolved before prepare promise is resolved"); + }); +}); + From a43f9baeee81e4c72367b664361263060e0afc3e Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Wed, 9 Mar 2022 13:44:57 +0000 Subject: [PATCH 43/74] In-range update of npm dependencies --- package-lock.json | 192 +++++++++++++++++++++++----------------------- 1 file changed, 98 insertions(+), 94 deletions(-) diff --git a/package-lock.json b/package-lock.json index b889efa1f..6d1b8b091 100644 --- a/package-lock.json +++ b/package-lock.json @@ -506,9 +506,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", - "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", + "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -580,9 +580,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -1379,13 +1379,13 @@ } }, "node_modules/browserslist": { - "version": "4.19.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz", - "integrity": "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.0.tgz", + "integrity": "sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001312", - "electron-to-chromium": "^1.4.71", + "caniuse-lite": "^1.0.30001313", + "electron-to-chromium": "^1.4.76", "escalade": "^3.1.1", "node-releases": "^2.0.2", "picocolors": "^1.0.0" @@ -1534,9 +1534,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", + "version": "1.0.30001314", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz", + "integrity": "sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw==", "dev": true, "funding": { "type": "opencollective", @@ -2651,9 +2651,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", - "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==", + "version": "1.4.78", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.78.tgz", + "integrity": "sha512-o61+D/Lx7j/E0LIin/efOqeHpXhwi1TaQco9vUcRmr91m25SfZY6L5hWJDv/r+6kNjboFKgBw1LbfM0lbhuK6Q==", "dev": true }, "node_modules/emittery": { @@ -2709,13 +2709,17 @@ } }, "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "version": "0.10.57", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.57.tgz", + "integrity": "sha512-L7cCNoPwTkAp7IBHxrKLsh7NKiVFkcdxlP9vbVw9QUvb7gF0Mz9bEBN0WY9xqdTjGF907EMT/iG013vnbqwu1Q==", + "hasInstallScript": true, "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" } }, "node_modules/es6-error": { @@ -2847,12 +2851,12 @@ } }, "node_modules/eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", + "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.1.0", + "@eslint/eslintrc": "^1.2.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -2911,9 +2915,9 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "37.9.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.4.tgz", - "integrity": "sha512-VxCyGgUNNnj2T4bb1OqltkbsPp3ehRzR5onIfh6zGrAvISmvgX/sbxUlh3YyGqWtjOTSBCURdKdmelSXEIHnlA==", + "version": "37.9.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz", + "integrity": "sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.20.1", @@ -4642,12 +4646,12 @@ } }, "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, "dependencies": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" } }, "node_modules/make-dir": { @@ -5004,9 +5008,9 @@ "dev": true }, "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, "node_modules/nise": { "version": "5.1.1", @@ -5767,12 +5771,12 @@ } }, "node_modules/postcss": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", - "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "version": "8.4.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.8.tgz", + "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", "dev": true, "dependencies": { - "nanoid": "^3.2.0", + "nanoid": "^3.3.1", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -6333,9 +6337,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/sass": { - "version": "1.49.8", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.8.tgz", - "integrity": "sha512-NoGOjvDDOU9og9oAxhRnap71QaTjjlzrvLnKecUJ3GxhaQBrV6e7gPuSPF28u1OcVAArVojPAe4ZhOXwwC4tGw==", + "version": "1.49.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", + "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -7068,9 +7072,9 @@ } }, "node_modules/terser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", - "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.0.tgz", + "integrity": "sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A==", "dependencies": { "acorn": "^8.5.0", "commander": "^2.20.0", @@ -8018,9 +8022,9 @@ } }, "@eslint/eslintrc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", - "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", + "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -8073,9 +8077,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -8723,13 +8727,13 @@ } }, "browserslist": { - "version": "4.19.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.3.tgz", - "integrity": "sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.0.tgz", + "integrity": "sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001312", - "electron-to-chromium": "^1.4.71", + "caniuse-lite": "^1.0.30001313", + "electron-to-chromium": "^1.4.76", "escalade": "^3.1.1", "node-releases": "^2.0.2", "picocolors": "^1.0.0" @@ -8828,9 +8832,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001312", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz", - "integrity": "sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==", + "version": "1.0.30001314", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz", + "integrity": "sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw==", "dev": true }, "catharsis": { @@ -9702,9 +9706,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz", - "integrity": "sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==", + "version": "1.4.78", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.78.tgz", + "integrity": "sha512-o61+D/Lx7j/E0LIin/efOqeHpXhwi1TaQco9vUcRmr91m25SfZY6L5hWJDv/r+6kNjboFKgBw1LbfM0lbhuK6Q==", "dev": true }, "emittery": { @@ -9748,13 +9752,13 @@ } }, "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "version": "0.10.57", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.57.tgz", + "integrity": "sha512-L7cCNoPwTkAp7IBHxrKLsh7NKiVFkcdxlP9vbVw9QUvb7gF0Mz9bEBN0WY9xqdTjGF907EMT/iG013vnbqwu1Q==", "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" } }, "es6-error": { @@ -9870,12 +9874,12 @@ } }, "eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", + "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.1.0", + "@eslint/eslintrc": "^1.2.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -9961,9 +9965,9 @@ "requires": {} }, "eslint-plugin-jsdoc": { - "version": "37.9.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.4.tgz", - "integrity": "sha512-VxCyGgUNNnj2T4bb1OqltkbsPp3ehRzR5onIfh6zGrAvISmvgX/sbxUlh3YyGqWtjOTSBCURdKdmelSXEIHnlA==", + "version": "37.9.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz", + "integrity": "sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.20.1", @@ -11219,12 +11223,12 @@ } }, "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" } }, "make-dir": { @@ -11480,9 +11484,9 @@ "dev": true }, "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, "nise": { "version": "5.1.1", @@ -12063,12 +12067,12 @@ } }, "postcss": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", - "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "version": "8.4.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.8.tgz", + "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", "dev": true, "requires": { - "nanoid": "^3.2.0", + "nanoid": "^3.3.1", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -12486,9 +12490,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "sass": { - "version": "1.49.8", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.8.tgz", - "integrity": "sha512-NoGOjvDDOU9og9oAxhRnap71QaTjjlzrvLnKecUJ3GxhaQBrV6e7gPuSPF28u1OcVAArVojPAe4ZhOXwwC4tGw==", + "version": "1.49.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", + "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -13064,9 +13068,9 @@ } }, "terser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", - "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.0.tgz", + "integrity": "sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A==", "requires": { "acorn": "^8.5.0", "commander": "^2.20.0", From 860b392b0ba45afeadf94de616098212cb859ac3 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 24 Feb 2022 13:24:01 +0100 Subject: [PATCH 44/74] [INTERNAL] minify task: Add more test cases --- test/lib/tasks/minify.js | 129 +++++++++++++++++++++++++++++++++------ 1 file changed, 112 insertions(+), 17 deletions(-) diff --git a/test/lib/tasks/minify.js b/test/lib/tasks/minify.js index 358a126c1..cea4f7db1 100644 --- a/test/lib/tasks/minify.js +++ b/test/lib/tasks/minify.js @@ -6,6 +6,22 @@ const ui5Fs = require("@ui5/fs"); const resourceFactory = ui5Fs.resourceFactory; const DuplexCollection = ui5Fs.DuplexCollection; +// Node.js itself tries to parse sourceMappingURLs in all JavaScript files. This is unwanted and might even lead to +// obscure errors when dynamically generating Data-URI soruceMappingURL values. +// Therefore use this constant to never write the actual string. +const SOURCE_MAPPING_URL = "//" + "# sourceMappingURL"; + +function createWorkspace() { + const reader = resourceFactory.createAdapter({ + virBasePath: "/" + }); + const writer = resourceFactory.createAdapter({ + virBasePath: "/" + }); + const workspace = new DuplexCollection({reader: reader, writer: writer}); + return {reader, writer, workspace}; +} + test.afterEach.always((t) => { sinon.restore(); }); @@ -19,13 +35,7 @@ test("integration: minify", async (t) => { OmitFromBuildResult: "3️⃣" } }; - const reader = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const writer = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const duplexCollection = new DuplexCollection({reader: reader, writer: writer}); + const {reader, writer, workspace} = createWorkspace(); const content = ` function test(paramA) { var variableA = paramA; @@ -39,7 +49,7 @@ test();`; await reader.write(testResource); await minify({ - workspace: duplexCollection, + workspace, taskUtil, options: { pattern: "/test.js" @@ -88,13 +98,7 @@ test("integration: minify omitSourceMapResources=false", async (t) => { OmitFromBuildResult: "3️⃣" } }; - const reader = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const writer = resourceFactory.createAdapter({ - virBasePath: "/" - }); - const duplexCollection = new DuplexCollection({reader: reader, writer: writer}); + const {reader, writer, workspace} = createWorkspace(); const content = ` function test(paramA) { var variableA = paramA; @@ -108,7 +112,7 @@ test();`; await reader.write(testResource); await minify({ - workspace: duplexCollection, + workspace, taskUtil, options: { pattern: "/test.js", @@ -117,7 +121,7 @@ test();`; }); const expected = `function test(t){var o=t;console.log(o)}test(); -//# sourceMappingURL=test.js.map`; +${SOURCE_MAPPING_URL}=test.js.map`; const res = await writer.byPath("/test.js"); if (!res) { t.fail("Could not find /test.js in target locator"); @@ -148,3 +152,94 @@ test();`; "Third taskUtil.setTag call with expected arguments"); }); +test("integration: minify (without taskUtil)", async (t) => { + const {reader, writer, workspace} = createWorkspace(); + const content = ` +function test(paramA) { + var variableA = paramA; + console.log(variableA); +} +test();`; + const testResource = resourceFactory.createResource({ + path: "/test.js", + string: content + }); + await reader.write(testResource); + + await minify({ + workspace, + options: { + pattern: "/test.js" + } + }); + + const expected = `function test(t){var o=t;console.log(o)}test();`; + const res = await writer.byPath("/test.js"); + if (!res) { + t.fail("Could not find /test.js in target locator"); + } + t.deepEqual(await res.getString(), expected, "Correct file content"); + + const resDbg = await writer.byPath("/test-dbg.js"); + if (!resDbg) { + t.fail("Could not find /test-dbg.js in target locator"); + } + t.deepEqual(await resDbg.getString(), content, "Correct debug-file content"); + + const expectedSourceMap = + `{"version":3,"sources":["test-dbg.js"],"names":["test","paramA","variableA","console","log"],` + + `"mappings":"AACA,SAASA,KAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"}`; + + const resSourceMap = await writer.byPath("/test.js.map"); + if (!resSourceMap) { + t.fail("Could not find /test-dbg.js.map in target locator"); + } + t.deepEqual(await resSourceMap.getString(), expectedSourceMap, "Correct source map content"); +}); + +test("integration: minify omitSourceMapResources=false (without taskUtil)", async (t) => { + const {reader, writer, workspace} = createWorkspace(); + const content = ` +function test(paramA) { + var variableA = paramA; + console.log(variableA); +} +test();`; + const testResource = resourceFactory.createResource({ + path: "/test.js", + string: content + }); + await reader.write(testResource); + + await minify({ + workspace, + options: { + pattern: "/test.js", + omitSourceMapResources: false + } + }); + + const expected = `function test(t){var o=t;console.log(o)}test(); +${SOURCE_MAPPING_URL}=test.js.map`; + const res = await writer.byPath("/test.js"); + if (!res) { + t.fail("Could not find /test.js in target locator"); + } + t.deepEqual(await res.getString(), expected, "Correct file content"); + + const resDbg = await writer.byPath("/test-dbg.js"); + if (!resDbg) { + t.fail("Could not find /test-dbg.js in target locator"); + } + t.deepEqual(await resDbg.getString(), content, "Correct debug-file content"); + + const expectedSourceMap = + `{"version":3,"sources":["test-dbg.js"],"names":["test","paramA","variableA","console","log"],` + + `"mappings":"AACA,SAASA,KAAKC,GACb,IAAIC,EAAYD,EAChBE,QAAQC,IAAIF,GAEbF","file":"test.js"}`; + + const resSourceMap = await writer.byPath("/test.js.map"); + if (!resSourceMap) { + t.fail("Could not find /test-dbg.js.map in target locator"); + } + t.deepEqual(await resSourceMap.getString(), expectedSourceMap, "Correct source map content"); +}); From 23e4752ef1dcf05a0c5e192ad17c79f151b663e7 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 24 Feb 2022 16:34:57 +0100 Subject: [PATCH 45/74] [INTERNAL] moduleBundler: Fix JSDoc returns type --- lib/processors/bundlers/moduleBundler.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/processors/bundlers/moduleBundler.js b/lib/processors/bundlers/moduleBundler.js index e4080b2df..9ecf93b54 100644 --- a/lib/processors/bundlers/moduleBundler.js +++ b/lib/processors/bundlers/moduleBundler.js @@ -124,7 +124,8 @@ const log = require("@ui5/logger").getLogger("builder:processors:bundlers:module Optional mapping of resource paths to module name in order to overwrite the default determination * @param {ModuleBundleDefinition} parameters.options.bundleDefinition Module bundle definition * @param {ModuleBundleOptions} [parameters.options.bundleOptions] Module bundle options - * @returns {Promise} Promise resolving with module bundle resources + * @returns {Promise} + * Promise resolving with module bundle resources */ module.exports = function({resources, options: {bundleDefinition, bundleOptions, moduleNameMapping}}) { // Apply defaults without modifying the passed object From 6ce2d6f20344d1a75bbaf9e67d6e6c43cd2fefd3 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 24 Feb 2022 17:47:58 +0100 Subject: [PATCH 46/74] [INTERNAL] Remove unused commented code --- lib/lbt/resources/LocatorResource.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/lbt/resources/LocatorResource.js b/lib/lbt/resources/LocatorResource.js index a39fbb37e..cb73c721e 100644 --- a/lib/lbt/resources/LocatorResource.js +++ b/lib/lbt/resources/LocatorResource.js @@ -1,9 +1,5 @@ const Resource = require("./Resource"); -// function extractName(path) { -// return path.slice( "/resources/".length); -// } - class LocatorResource extends Resource { constructor(pool, resource, moduleName) { super(pool, moduleName, null, resource.getStatInfo()); From f63a1d7c49ed066562ce53d12c585c1e95eeefd5 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 24 Feb 2022 17:49:28 +0100 Subject: [PATCH 47/74] [INTERNAL] generateBundle: Add unit test --- test/lib/tasks/bundlers/generateBundle.js | 292 ++++++++++++++++++++++ 1 file changed, 292 insertions(+) create mode 100644 test/lib/tasks/bundlers/generateBundle.js diff --git a/test/lib/tasks/bundlers/generateBundle.js b/test/lib/tasks/bundlers/generateBundle.js new file mode 100644 index 000000000..dc59f6e39 --- /dev/null +++ b/test/lib/tasks/bundlers/generateBundle.js @@ -0,0 +1,292 @@ +const test = require("ava"); +const sinon = require("sinon"); +const mock = require("mock-require"); + +test.beforeEach((t) => { + t.context.log = { + warn: sinon.stub(), + verbose: sinon.stub(), + error: sinon.stub() + }; + + t.context.taskUtil = { + getTag: sinon.stub(), + setTag: sinon.stub(), + clearTag: sinon.stub(), + STANDARD_TAGS: { + HasDebugVariant: "", + IsDebugVariant: "", + OmitFromBuildResult: "" + } + }; + + t.context.workspace = { + byGlob: sinon.stub().resolves([]), + write: sinon.stub().resolves() + }; + t.context.dependencies = {}; + t.context.combo = { + byGlob: sinon.stub().resolves([]), + filter: sinon.stub() + }; + + t.context.ReaderCollectionPrioritizedStub = sinon.stub(); + t.context.ReaderCollectionPrioritizedStub.returns(t.context.combo); + mock("@ui5/fs", { + ReaderCollectionPrioritized: t.context.ReaderCollectionPrioritizedStub + }); + + t.context.moduleBundlerStub = sinon.stub().resolves([]); + mock("../../../../lib/processors/bundlers/moduleBundler", t.context.moduleBundlerStub); + + t.context.generateBundle = mock.reRequire("../../../../lib/tasks/bundlers/generateBundle"); +}); + +test.afterEach.always(() => { + sinon.restore(); + mock.stopAll(); +}); + +test.serial("generateBundle: No taskUtil, no bundleOptions", async (t) => { + const { + generateBundle, moduleBundlerStub, ReaderCollectionPrioritizedStub, + workspace, dependencies, combo + } = t.context; + + const resources = [ + {"fake": "resource"} + ]; + combo.byGlob.resolves(resources); + + moduleBundlerStub.resolves([ + { + name: "my/app/customBundle.js", + bundle: {"fake": "bundle"}, + sourceMap: {"fake": "sourceMap"} + } + ]); + + // bundleDefinition can be empty here as the moduleBundler is mocked + const bundleDefinition = {}; + + await generateBundle({ + workspace, + dependencies, + options: { + projectName: "Test Application", + bundleDefinition + } + }); + + t.is(moduleBundlerStub.callCount, 1, "moduleBundler should have been called once"); + t.deepEqual(moduleBundlerStub.getCall(0).args, [{ + options: { + bundleDefinition, + bundleOptions: undefined, + moduleNameMapping: {} + }, + resources + }]); + + t.is(combo.byGlob.callCount, 1, + "combo.byGlob should have been called once"); + t.deepEqual(combo.byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], + "combo.byGlob should have been called with expected pattern"); + + t.is(combo.filter.callCount, 0, + "combo.filter should not have been called"); + + t.is(ReaderCollectionPrioritizedStub.callCount, 1, + "ReaderCollectionPrioritized should have been called once"); + t.true(ReaderCollectionPrioritizedStub.calledWithNew(), + "ReaderCollectionPrioritized should have been called with 'new'"); + + const bundleResources = await moduleBundlerStub.getCall(0).returnValue; + t.is(workspace.write.callCount, 2, + "workspace.write should have been called twice"); + t.deepEqual(workspace.write.getCall(0).args, [bundleResources[0].bundle], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(0).args[0], bundleResources[0].bundle, + "workspace.write should have been called with exact resource returned by moduleBundler"); + t.deepEqual(workspace.write.getCall(1).args, [bundleResources[0].sourceMap], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(1).args[0], bundleResources[0].sourceMap, + "workspace.write should have been called with exact resource returned by moduleBundler"); +}); + +test.serial("generateBundle: No bundleOptions, with taskUtil", async (t) => { + const { + generateBundle, moduleBundlerStub, ReaderCollectionPrioritizedStub, + workspace, dependencies, combo, + taskUtil + } = t.context; + + const resources = [ + {"fake": "resource"} + ]; + + const filteredCombo = { + byGlob: sinon.stub().resolves(resources) + }; + combo.filter.returns(filteredCombo); + + moduleBundlerStub.resolves([ + { + name: "my/app/customBundle.js", + bundle: {"fake": "bundle"}, + sourceMap: {"fake": "sourceMap"} + } + ]); + + // bundleDefinition can be empty here as the moduleBundler is mocked + const bundleDefinition = {}; + + await generateBundle({ + workspace, + dependencies, + taskUtil, + options: { + projectName: "Test Application", + bundleDefinition + } + }); + + t.is(moduleBundlerStub.callCount, 1, "moduleBundler should have been called once"); + t.deepEqual(moduleBundlerStub.getCall(0).args, [{ + options: { + bundleDefinition, + bundleOptions: undefined, + moduleNameMapping: {} + }, + resources + }]); + + t.is(combo.byGlob.callCount, 0, + "combo.byGlob should not have been called"); + + t.is(combo.filter.callCount, 1, + "combo.filter should have been called once"); + t.is(combo.filter.getCall(0).args.length, 1, + "combo.filter should have been called with one argument"); + t.is(typeof combo.filter.getCall(0).args[0], "function", + "combo.filter should have been called with a function"); + + t.is(filteredCombo.byGlob.callCount, 1, + "filteredCombo.byGlob should have been called once"); + t.deepEqual(filteredCombo.byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], + "filteredCombo.byGlob should have been called with expected pattern"); + + t.is(ReaderCollectionPrioritizedStub.callCount, 1, + "ReaderCollectionPrioritized should have been called once"); + t.true(ReaderCollectionPrioritizedStub.calledWithNew(), + "ReaderCollectionPrioritized should have been called with 'new'"); + + const bundleResources = await moduleBundlerStub.getCall(0).returnValue; + t.is(workspace.write.callCount, 2, + "workspace.write should have been called twice"); + t.deepEqual(workspace.write.getCall(0).args, [bundleResources[0].bundle], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(0).args[0], bundleResources[0].bundle, + "workspace.write should have been called with exact resource returned by moduleBundler"); + t.deepEqual(workspace.write.getCall(1).args, [bundleResources[0].sourceMap], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(1).args[0], bundleResources[0].sourceMap, + "workspace.write should have been called with exact resource returned by moduleBundler"); +}); + +test.serial("generateBundle: bundleOptions: optimize=false, with taskUtil", async (t) => { + const { + generateBundle, moduleBundlerStub, ReaderCollectionPrioritizedStub, + workspace, dependencies, combo, + taskUtil + } = t.context; + + const resources = [ + { + getPath: sinon.stub().returns("/resources/my/app/module-dbg.js") + }, + { + getPath: sinon.stub().returns("/resources/my/app/Main.view.xml") + } + ]; + + const filteredCombo = { + byGlob: sinon.stub().resolves(resources) + }; + combo.filter.returns(filteredCombo); + + taskUtil.getTag.returns(false) + .withArgs("/resources/my/app/module-dbg.js", taskUtil.STANDARD_TAGS.IsDebugVariant) + .returns(true); + + moduleBundlerStub.resolves([ + { + name: "my/app/customBundle.js", + bundle: {"fake": "bundle"}, + sourceMap: {"fake": "sourceMap"} + } + ]); + + // bundleDefinition can be empty here as the moduleBundler is mocked + const bundleDefinition = {}; + const bundleOptions = {optimize: false}; + + await generateBundle({ + workspace, + dependencies, + taskUtil, + options: { + projectName: "Test Application", + bundleDefinition, + bundleOptions + } + }); + + t.is(moduleBundlerStub.callCount, 1, "moduleBundler should have been called once"); + t.deepEqual(moduleBundlerStub.getCall(0).args, [{ + options: { + bundleDefinition, + bundleOptions, + moduleNameMapping: { + "/resources/my/app/module-dbg.js": "my/app/module.js" + } + }, + resources + }]); + + t.is(combo.byGlob.callCount, 0, + "combo.byGlob should not have been called"); + + t.is(combo.filter.callCount, 1, + "combo.filter should have been called once"); + t.is(combo.filter.getCall(0).args.length, 1, + "combo.filter should have been called with one argument"); + t.is(typeof combo.filter.getCall(0).args[0], "function", + "combo.filter should have been called with a function"); + + t.is(filteredCombo.byGlob.callCount, 1, + "filteredCombo.byGlob should have been called once"); + t.deepEqual(filteredCombo.byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], + "filteredCombo.byGlob should have been called with expected pattern"); + + t.is(ReaderCollectionPrioritizedStub.callCount, 1, + "ReaderCollectionPrioritized should have been called once"); + t.true(ReaderCollectionPrioritizedStub.calledWithNew(), + "ReaderCollectionPrioritized should have been called with 'new'"); + + const bundleResources = await moduleBundlerStub.getCall(0).returnValue; + t.is(workspace.write.callCount, 2, + "workspace.write should have been called twice"); + t.deepEqual(workspace.write.getCall(0).args, [bundleResources[0].bundle], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(0).args[0], bundleResources[0].bundle, + "workspace.write should have been called with exact resource returned by moduleBundler"); + t.deepEqual(workspace.write.getCall(1).args, [bundleResources[0].sourceMap], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(1).args[0], bundleResources[0].sourceMap, + "workspace.write should have been called with exact resource returned by moduleBundler"); +}); + +// TODO: Test filter function (optimize true/false) + +// TODO: Empty bundle ([undefined]). skipIfEmpty?! From 77a59d8a64d04bcf2b656e18d6433d21c420a772 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Fri, 25 Feb 2022 13:02:19 +0100 Subject: [PATCH 48/74] [INTERNAL] moduleBundler: Fix 'sourceMap' option default --- lib/processors/bundlers/moduleBundler.js | 4 ++-- test/lib/processors/bundlers/moduleBundler.js | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/processors/bundlers/moduleBundler.js b/lib/processors/bundlers/moduleBundler.js index 9ecf93b54..b9edca580 100644 --- a/lib/processors/bundlers/moduleBundler.js +++ b/lib/processors/bundlers/moduleBundler.js @@ -90,8 +90,7 @@ const log = require("@ui5/logger").getLogger("builder:processors:bundlers:module * @public * @typedef {object} ModuleBundleOptions * @property {boolean} [optimize=true] Whether the module bundle gets minified - * @property {boolean} [sourceMap] Whether to generate a source map file for the bundle. - * Defaults to true if optimize is set to true + * @property {boolean} [sourceMap=true] Whether to generate a source map file for the bundle * @property {boolean} [decorateBootstrapModule=false] If set to 'false', the module won't be decorated * with an optimization marker * @property {boolean} [addTryCatchRestartWrapper=false] Whether to wrap bootable module bundles with @@ -131,6 +130,7 @@ module.exports = function({resources, options: {bundleDefinition, bundleOptions, // Apply defaults without modifying the passed object bundleOptions = Object.assign({}, { optimize: true, + sourceMap: true, decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false, diff --git a/test/lib/processors/bundlers/moduleBundler.js b/test/lib/processors/bundlers/moduleBundler.js index 174a95bec..aa01b37df 100644 --- a/test/lib/processors/bundlers/moduleBundler.js +++ b/test/lib/processors/bundlers/moduleBundler.js @@ -98,6 +98,7 @@ test.serial("Builder returns single bundle", async (t) => { t.deepEqual(builder.createBundle.getCall(0).args[1], { // default bundleOptions optimize: true, + sourceMap: true, decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false, @@ -209,6 +210,7 @@ test.serial("Builder returns multiple bundles", async (t) => { t.deepEqual(builder.createBundle.getCall(0).args[1], { // default bundleOptions optimize: true, + sourceMap: true, decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false, @@ -297,6 +299,7 @@ test.serial("bundleOptions default (no options passed)", async (t) => { t.deepEqual(builder.createBundle.getCall(0).args[1], { // default bundleOptions optimize: true, + sourceMap: true, decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false, @@ -361,6 +364,7 @@ test.serial("bundleOptions default (empty options passed)", async (t) => { t.deepEqual(builder.createBundle.getCall(0).args[1], { // default bundleOptions optimize: true, + sourceMap: true, decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false, @@ -383,6 +387,7 @@ test.serial("bundleOptions (all options passed)", async (t) => { }; const bundleOptions = { optimize: false, + sourceMap: false, decorateBootstrapModule: true, addTryCatchRestartWrapper: true, usePredefineCalls: true, @@ -440,6 +445,7 @@ test.serial("Passes ignoreMissingModules bundleOption to LocatorResourcePool", a const effectiveBundleOptions = { // Defaults "optimize": true, + "sourceMap": true, "decorateBootstrapModule": false, "addTryCatchRestartWrapper": false, "usePredefineCalls": false, @@ -527,6 +533,7 @@ test.serial("Verbose Logging", async (t) => { const effectiveBundleOptions = { // Defaults "optimize": true, + "sourceMap": true, "decorateBootstrapModule": false, "addTryCatchRestartWrapper": false, "usePredefineCalls": false, From debcb9e45fc4f8b9ed576b657cd403297e725007 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Fri, 25 Feb 2022 13:50:33 +0100 Subject: [PATCH 49/74] [INTERNAL] minifier: Add missing 'options' parameter --- lib/processors/minifier.js | 8 ++- lib/tasks/minify.js | 4 +- test/lib/processors/minifier.js | 94 ++++++++++++++++++++++++++++++--- 3 files changed, 96 insertions(+), 10 deletions(-) diff --git a/lib/processors/minifier.js b/lib/processors/minifier.js index 1a583fd23..25a2b3575 100644 --- a/lib/processors/minifier.js +++ b/lib/processors/minifier.js @@ -34,12 +34,16 @@ const debugFileRegex = /((?:\.view|\.fragment|\.controller|\.designtime|\.suppor * @alias module:@ui5/builder.processors.minifier * @param {object} parameters Parameters * @param {module:@ui5/fs.Resource[]} parameters.resources List of resources to be processed - * @param {boolean} [parameters.addSourceMappingUrl=true] + * @param {object} [parameters.options] Options + * @param {boolean} [parameters.options.addSourceMappingUrl=true] * Whether to add a sourceMappingURL reference to the end of the minified resource * @returns {Promise} * Promise resolving with object of resource, dbgResource and sourceMap */ -module.exports = async function({resources, addSourceMappingUrl = true}) { +module.exports = async function({resources, options: {addSourceMappingUrl} = {}}) { + if (addSourceMappingUrl === undefined) { + addSourceMappingUrl = true; + } return Promise.all(resources.map(async (resource) => { const dbgPath = resource.getPath().replace(debugFileRegex, "-dbg$1"); const dbgResource = await resource.clone(); diff --git a/lib/tasks/minify.js b/lib/tasks/minify.js index 3fe5c6ddf..c9e409ebf 100644 --- a/lib/tasks/minify.js +++ b/lib/tasks/minify.js @@ -18,7 +18,9 @@ module.exports = async function({workspace, taskUtil, options: {pattern, omitSou const resources = await workspace.byGlob(pattern); const processedResources = await minifier({ resources, - addSourceMappingUrl: !omitSourceMapResources + options: { + addSourceMappingUrl: !omitSourceMapResources + } }); return Promise.all(processedResources.map(async ({resource, dbgResource, sourceMapResource}) => { diff --git a/test/lib/processors/minifier.js b/test/lib/processors/minifier.js index e204ca268..3007b3a5c 100644 --- a/test/lib/processors/minifier.js +++ b/test/lib/processors/minifier.js @@ -4,6 +4,12 @@ const minifier = require("../../../lib/processors/minifier"); const ui5Fs = require("@ui5/fs"); const resourceFactory = ui5Fs.resourceFactory; +// Node.js itself tries to parse sourceMappingURLs in all JavaScript files. This is unwanted and might even lead to +// obscure errors when dynamically generating Data-URI soruceMappingURL values. +// Therefore use this constant to never write the actual string. +const SOURCE_MAPPING_URL = "//" + "# sourceMappingURL"; + + test("Basic minifier", async (t) => { const content = `/*! * \${copyright} @@ -26,7 +32,7 @@ myFun(); * \${copyright} */ function myFunc(e){jQuery.sap.require("something");console.log("Something required")}myFun(); -//# sourceMappingURL=test.controller.js.map`; +${SOURCE_MAPPING_URL}=test.controller.js.map`; t.deepEqual(await resource.getString(), expected, "Correct minified content"); t.deepEqual(await dbgResource.getString(), content, "Correct debug content"); const expectedSourceMap = `{"version":3,"sources":["test-dbg.controller.js"],` + @@ -76,11 +82,11 @@ test3();`; }); const expectedMinified1 = `function test1(t){var o=t;console.log(o)}test1(); -//# sourceMappingURL=test1.controller.js.map`; +${SOURCE_MAPPING_URL}=test1.controller.js.map`; const expectedMinified2 = `function test2(t){var o=t;console.log(o)}test2(); -//# sourceMappingURL=test2.fragment.js.map`; +${SOURCE_MAPPING_URL}=test2.fragment.js.map`; const expectedMinified3 = `function test3(t){var o=t;console.log(o)}test3(); -//# sourceMappingURL=test3.designtime.js.map`; +${SOURCE_MAPPING_URL}=test3.designtime.js.map`; const expectedSourceMap1 = `{"version":3,"sources":["test1-dbg.controller.js"],"names":["test1","paramA","variableA","console","log"],` + @@ -149,7 +155,7 @@ test(); * Copyright SAPUI5 Developers and other contributors */ function test(t){var o=t;console.log(o)}test(); -//# sourceMappingURL=test.view.js.map`; +${SOURCE_MAPPING_URL}=test.view.js.map`; t.deepEqual(await resource.getString(), expected, "Correct minified content"); t.deepEqual(await dbgResource.getString(), content, "Correct debug content"); const expectedSourceMap = @@ -177,7 +183,7 @@ test();`; const expected = `//@ui5-bundle-raw-include sap/ui/my/module.js function test(t){var o=t;console.log(o)}test(); -//# sourceMappingURL=test.js.map`; +${SOURCE_MAPPING_URL}=test.js.map`; t.deepEqual(await resource.getString(), expected, "Correct minified content"); }); @@ -200,10 +206,84 @@ test();`; const expected = `//@ui5-bundle sap/ui/my/module.js function test(t){var o=t;console.log(o)}test(); -//# sourceMappingURL=test.js.map`; +${SOURCE_MAPPING_URL}=test.js.map`; + t.deepEqual(await resource.getString(), expected, "Correct minified content"); +}); + +test("addSourceMappingUrl=false", async (t) => { + const content = ` +//@ui5-bundle sap/ui/my/module.js +function test(paramA) { + var variableA = paramA; + console.log(variableA); +} +test();`; + + const testResource = resourceFactory.createResource({ + path: "/test.js", + string: content + }); + const [{resource}] = await minifier({ + resources: [testResource], + options: { + addSourceMappingUrl: false + } + }); + + const expected = `//@ui5-bundle sap/ui/my/module.js +function test(t){var o=t;console.log(o)}test();`; + t.deepEqual(await resource.getString(), expected, "Correct minified content"); +}); + +test("addSourceMappingUrl=true", async (t) => { + const content = ` +//@ui5-bundle sap/ui/my/module.js +function test(paramA) { + var variableA = paramA; + console.log(variableA); +} +test();`; + + const testResource = resourceFactory.createResource({ + path: "/test.js", + string: content + }); + const [{resource}] = await minifier({ + resources: [testResource], + options: { + addSourceMappingUrl: true + } + }); + + const expected = `//@ui5-bundle sap/ui/my/module.js +function test(t){var o=t;console.log(o)}test(); +${SOURCE_MAPPING_URL}=test.js.map`; t.deepEqual(await resource.getString(), expected, "Correct minified content"); }); +test("empty options object (addSourceMappingUrl defaults to true)", async (t) => { + const content = ` +//@ui5-bundle sap/ui/my/module.js +function test(paramA) { + var variableA = paramA; + console.log(variableA); +} +test();`; + + const testResource = resourceFactory.createResource({ + path: "/test.js", + string: content + }); + const [{resource}] = await minifier({ + resources: [testResource], + options: {} + }); + + const expected = `//@ui5-bundle sap/ui/my/module.js +function test(t){var o=t;console.log(o)}test(); +${SOURCE_MAPPING_URL}=test.js.map`; + t.deepEqual(await resource.getString(), expected, "Correct minified content"); +}); test("minification error", async (t) => { const content = ` From 8b09c6495122cdc5cacae3954d6129f654021eb8 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Fri, 25 Feb 2022 14:23:29 +0100 Subject: [PATCH 50/74] [INTERNAL] generateBundle: Fix empty bundle, add more tests --- lib/tasks/bundlers/generateBundle.js | 6 +- test/lib/tasks/bundlers/generateBundle.js | 243 +++++++++++++++++++++- 2 files changed, 244 insertions(+), 5 deletions(-) diff --git a/lib/tasks/bundlers/generateBundle.js b/lib/tasks/bundlers/generateBundle.js index 2d83d1f43..3a6c50086 100644 --- a/lib/tasks/bundlers/generateBundle.js +++ b/lib/tasks/bundlers/generateBundle.js @@ -109,7 +109,11 @@ module.exports = function({ }, resources }).then((bundles) => { - return Promise.all(bundles.map(({bundle, sourceMap}) => { + return Promise.all(bundles.map(({bundle, sourceMap} = {}) => { + if (!bundle) { + // Skip empty bundles + return; + } if (taskUtil) { taskUtil.setTag(bundle, taskUtil.STANDARD_TAGS.IsBundle); if (sourceMap) { diff --git a/test/lib/tasks/bundlers/generateBundle.js b/test/lib/tasks/bundlers/generateBundle.js index dc59f6e39..defed6bac 100644 --- a/test/lib/tasks/bundlers/generateBundle.js +++ b/test/lib/tasks/bundlers/generateBundle.js @@ -168,7 +168,8 @@ test.serial("generateBundle: No bundleOptions, with taskUtil", async (t) => { "combo.filter should have been called once"); t.is(combo.filter.getCall(0).args.length, 1, "combo.filter should have been called with one argument"); - t.is(typeof combo.filter.getCall(0).args[0], "function", + const filterFunction = combo.filter.getCall(0).args[0]; + t.is(typeof filterFunction, "function", "combo.filter should have been called with a function"); t.is(filteredCombo.byGlob.callCount, 1, @@ -176,6 +177,11 @@ test.serial("generateBundle: No bundleOptions, with taskUtil", async (t) => { t.deepEqual(filteredCombo.byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], "filteredCombo.byGlob should have been called with expected pattern"); + t.is(taskUtil.clearTag.callCount, 1); + t.deepEqual(taskUtil.clearTag.getCall(0).args, + [{"fake": "sourceMap"}, taskUtil.STANDARD_TAGS.OmitFromBuildResult], + "OmitFromBuildResult tag should be cleared on source map resource"); + t.is(ReaderCollectionPrioritizedStub.callCount, 1, "ReaderCollectionPrioritized should have been called once"); t.true(ReaderCollectionPrioritizedStub.calledWithNew(), @@ -192,6 +198,24 @@ test.serial("generateBundle: No bundleOptions, with taskUtil", async (t) => { "workspace.write should have been called with expected args"); t.is(workspace.write.getCall(1).args[0], bundleResources[0].sourceMap, "workspace.write should have been called with exact resource returned by moduleBundler"); + + t.is(taskUtil.getTag.callCount, 0, "taskUtil.getTag should not have been called by the task"); + + // Testing the combo.filter function + + const resourceForFilterTest = {}; + taskUtil.getTag.returns(true); + t.false(filterFunction(resourceForFilterTest), + "Filter function should return false if the tag is set"); + taskUtil.getTag.returns(false); + t.true(filterFunction(resourceForFilterTest), + "Filter function should return true if the tag is not set"); + + t.is(taskUtil.getTag.callCount, 2); + t.deepEqual(taskUtil.getTag.getCall(0).args, [resourceForFilterTest, taskUtil.STANDARD_TAGS.IsDebugVariant], + "Resource filtering should be done for debug variants as optimize=true is the default"); + t.deepEqual(taskUtil.getTag.getCall(1).args, [resourceForFilterTest, taskUtil.STANDARD_TAGS.IsDebugVariant], + "Resource filtering should be done for debug variants as optimize=true is the default"); }); test.serial("generateBundle: bundleOptions: optimize=false, with taskUtil", async (t) => { @@ -261,7 +285,8 @@ test.serial("generateBundle: bundleOptions: optimize=false, with taskUtil", asyn "combo.filter should have been called once"); t.is(combo.filter.getCall(0).args.length, 1, "combo.filter should have been called with one argument"); - t.is(typeof combo.filter.getCall(0).args[0], "function", + const filterFunction = combo.filter.getCall(0).args[0]; + t.is(typeof filterFunction, "function", "combo.filter should have been called with a function"); t.is(filteredCombo.byGlob.callCount, 1, @@ -269,6 +294,19 @@ test.serial("generateBundle: bundleOptions: optimize=false, with taskUtil", asyn t.deepEqual(filteredCombo.byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], "filteredCombo.byGlob should have been called with expected pattern"); + t.is(taskUtil.getTag.callCount, 2); + t.deepEqual(taskUtil.getTag.getCall(0).args, + ["/resources/my/app/Main.view.xml", taskUtil.STANDARD_TAGS.IsDebugVariant], + "First resource should be checked whether it is a debug variant"); + t.deepEqual(taskUtil.getTag.getCall(1).args, + ["/resources/my/app/module-dbg.js", taskUtil.STANDARD_TAGS.IsDebugVariant], + "Second resource should be checked whether it is a debug variant"); + + t.is(taskUtil.clearTag.callCount, 1); + t.deepEqual(taskUtil.clearTag.getCall(0).args, + [{"fake": "sourceMap"}, taskUtil.STANDARD_TAGS.OmitFromBuildResult], + "OmitFromBuildResult tag should be cleared on source map resource"); + t.is(ReaderCollectionPrioritizedStub.callCount, 1, "ReaderCollectionPrioritized should have been called once"); t.true(ReaderCollectionPrioritizedStub.calledWithNew(), @@ -285,8 +323,205 @@ test.serial("generateBundle: bundleOptions: optimize=false, with taskUtil", asyn "workspace.write should have been called with expected args"); t.is(workspace.write.getCall(1).args[0], bundleResources[0].sourceMap, "workspace.write should have been called with exact resource returned by moduleBundler"); + + taskUtil.getTag.reset(); // Reset stub as it has already been called by generateBundle + t.is(taskUtil.getTag.callCount, 0); + + // Testing the combo.filter function + + const resourceForFilterTest = {}; + taskUtil.getTag.returns(true); + t.false(filterFunction(resourceForFilterTest), + "Filter function should return false if the tag is set"); + taskUtil.getTag.returns(false); + t.true(filterFunction(resourceForFilterTest), + "Filter function should return true if the tag is not set"); + + t.is(taskUtil.getTag.callCount, 2); + t.deepEqual(taskUtil.getTag.getCall(0).args, [resourceForFilterTest, taskUtil.STANDARD_TAGS.HasDebugVariant], + "Resource filtering should be done for resources that have a debug variant, as optimize=false is set"); + t.deepEqual(taskUtil.getTag.getCall(1).args, [resourceForFilterTest, taskUtil.STANDARD_TAGS.HasDebugVariant], + "Resource filtering should be done for resources that have a debug variant, as optimize=false is set"); }); -// TODO: Test filter function (optimize true/false) +test.serial("generateBundle: bundleOptions: sourceMap=false, with taskUtil", async (t) => { + const { + generateBundle, moduleBundlerStub, ReaderCollectionPrioritizedStub, + workspace, dependencies, combo, + taskUtil + } = t.context; + + const resources = [ + { + getPath: sinon.stub().returns("/resources/my/app/module-dbg.js") + }, + { + getPath: sinon.stub().returns("/resources/my/app/Main.view.xml") + } + ]; + + const filteredCombo = { + byGlob: sinon.stub().resolves(resources) + }; + combo.filter.returns(filteredCombo); + + taskUtil.getTag.returns(false) + .withArgs("/resources/my/app/module-dbg.js", taskUtil.STANDARD_TAGS.IsDebugVariant) + .returns(true); + + moduleBundlerStub.resolves([ + { + name: "my/app/customBundle.js", + bundle: {"fake": "bundle"} + } + ]); + + // bundleDefinition can be empty here as the moduleBundler is mocked + const bundleDefinition = {}; + const bundleOptions = {sourceMap: false}; + + await generateBundle({ + workspace, + dependencies, + taskUtil, + options: { + projectName: "Test Application", + bundleDefinition, + bundleOptions + } + }); + + t.is(moduleBundlerStub.callCount, 1, "moduleBundler should have been called once"); + t.deepEqual(moduleBundlerStub.getCall(0).args, [{ + options: { + bundleDefinition, + bundleOptions, + moduleNameMapping: {} + }, + resources + }]); + + t.is(combo.byGlob.callCount, 0, + "combo.byGlob should not have been called"); + + t.is(combo.filter.callCount, 1, + "combo.filter should have been called once"); + t.is(combo.filter.getCall(0).args.length, 1, + "combo.filter should have been called with one argument"); + const filterFunction = combo.filter.getCall(0).args[0]; + t.is(typeof filterFunction, "function", + "combo.filter should have been called with a function"); + + t.is(filteredCombo.byGlob.callCount, 1, + "filteredCombo.byGlob should have been called once"); + t.deepEqual(filteredCombo.byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], + "filteredCombo.byGlob should have been called with expected pattern"); -// TODO: Empty bundle ([undefined]). skipIfEmpty?! + t.is(taskUtil.getTag.callCount, 0); + + t.is(taskUtil.clearTag.callCount, 0, + "clearTag should not be called as no source map resource is created"); + + t.is(ReaderCollectionPrioritizedStub.callCount, 1, + "ReaderCollectionPrioritized should have been called once"); + t.true(ReaderCollectionPrioritizedStub.calledWithNew(), + "ReaderCollectionPrioritized should have been called with 'new'"); + + const bundleResources = await moduleBundlerStub.getCall(0).returnValue; + t.is(workspace.write.callCount, 1, + "workspace.write should have been called once"); + t.deepEqual(workspace.write.getCall(0).args, [bundleResources[0].bundle], + "workspace.write should have been called with expected args"); + t.is(workspace.write.getCall(0).args[0], bundleResources[0].bundle, + "workspace.write should have been called with exact resource returned by moduleBundler"); + + taskUtil.getTag.reset(); // Reset stub as it has already been called by generateBundle + t.is(taskUtil.getTag.callCount, 0); + + // Testing the combo.filter function + + const resourceForFilterTest = {}; + taskUtil.getTag.returns(true); + t.false(filterFunction(resourceForFilterTest), + "Filter function should return false if the tag is set"); + taskUtil.getTag.returns(false); + t.true(filterFunction(resourceForFilterTest), + "Filter function should return true if the tag is not set"); + + t.is(taskUtil.getTag.callCount, 2); + t.deepEqual(taskUtil.getTag.getCall(0).args, [resourceForFilterTest, taskUtil.STANDARD_TAGS.IsDebugVariant], + "Resource filtering should be done for debug variants as optimize=true is the default"); + t.deepEqual(taskUtil.getTag.getCall(1).args, [resourceForFilterTest, taskUtil.STANDARD_TAGS.IsDebugVariant], + "Resource filtering should be done for debug variants as optimize=true is the default"); +}); + +test.serial("generateBundle: Empty bundle (skipIfEmpty=true)", async (t) => { + const { + generateBundle, moduleBundlerStub, ReaderCollectionPrioritizedStub, + workspace, dependencies, combo, + taskUtil + } = t.context; + + const resources = []; + + const filteredCombo = { + byGlob: sinon.stub().resolves(resources) + }; + combo.filter.returns(filteredCombo); + + moduleBundlerStub.resolves([undefined]); + + // bundleDefinition can be empty here as the moduleBundler is mocked + const bundleDefinition = {}; + const bundleOptions = {skipIfEmpty: true}; + + await generateBundle({ + workspace, + dependencies, + taskUtil, + options: { + projectName: "Test Application", + bundleDefinition, + bundleOptions + } + }); + + t.is(moduleBundlerStub.callCount, 1, "moduleBundler should have been called once"); + t.deepEqual(moduleBundlerStub.getCall(0).args, [{ + options: { + bundleDefinition, + bundleOptions, + moduleNameMapping: {} + }, + resources + }]); + + t.is(combo.byGlob.callCount, 0, + "combo.byGlob should not have been called"); + + t.is(combo.filter.callCount, 1, + "combo.filter should have been called once"); + t.is(combo.filter.getCall(0).args.length, 1, + "combo.filter should have been called with one argument"); + const filterFunction = combo.filter.getCall(0).args[0]; + t.is(typeof filterFunction, "function", + "combo.filter should have been called with a function"); + + t.is(filteredCombo.byGlob.callCount, 1, + "filteredCombo.byGlob should have been called once"); + t.deepEqual(filteredCombo.byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], + "filteredCombo.byGlob should have been called with expected pattern"); + + t.is(taskUtil.getTag.callCount, 0); + + t.is(taskUtil.clearTag.callCount, 0, + "clearTag should not be called as no source map resource is created"); + + t.is(ReaderCollectionPrioritizedStub.callCount, 1, + "ReaderCollectionPrioritized should have been called once"); + t.true(ReaderCollectionPrioritizedStub.calledWithNew(), + "ReaderCollectionPrioritized should have been called with 'new'"); + + t.is(workspace.write.callCount, 0, + "workspace.write should have been called once"); +}); From 7e05d64705c224faf8439a05354b335f2f551679 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Fri, 25 Feb 2022 14:34:03 +0100 Subject: [PATCH 51/74] [INTERNAL] generateBundle: Fix ReaderCollection name --- lib/tasks/bundlers/generateBundle.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/bundlers/generateBundle.js b/lib/tasks/bundlers/generateBundle.js index 3a6c50086..b6922b47b 100644 --- a/lib/tasks/bundlers/generateBundle.js +++ b/lib/tasks/bundlers/generateBundle.js @@ -21,7 +21,7 @@ module.exports = function({ workspace, dependencies, taskUtil, options: {projectName, bundleDefinition, bundleOptions} }) { let combo = new ReaderCollectionPrioritized({ - name: `libraryBundler - prioritize workspace over dependencies: ${projectName}`, + name: `generateBundle - prioritize workspace over dependencies: ${projectName}`, readers: [workspace, dependencies] }); From 4132eee8d37aa0b7916d496519159db7fdaa6678 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Fri, 25 Feb 2022 14:46:28 +0100 Subject: [PATCH 52/74] [INTERNAL] generateBundle: Add test for exception --- test/lib/tasks/bundlers/generateBundle.js | 42 +++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/test/lib/tasks/bundlers/generateBundle.js b/test/lib/tasks/bundlers/generateBundle.js index defed6bac..fb2619cdc 100644 --- a/test/lib/tasks/bundlers/generateBundle.js +++ b/test/lib/tasks/bundlers/generateBundle.js @@ -1,6 +1,7 @@ const test = require("ava"); const sinon = require("sinon"); const mock = require("mock-require"); +const ModuleName = require("../../../../lib/lbt/utils/ModuleName"); test.beforeEach((t) => { t.context.log = { @@ -525,3 +526,44 @@ test.serial("generateBundle: Empty bundle (skipIfEmpty=true)", async (t) => { t.is(workspace.write.callCount, 0, "workspace.write should have been called once"); }); + +test.serial("generateBundle: Throws error when non-debug name can't be resolved", async (t) => { + const { + generateBundle, moduleBundlerStub, + workspace, dependencies, combo, + taskUtil + } = t.context; + + const resources = [ + { + getPath: sinon.stub().returns("/resources/my/app/module.js") + } + ]; + + const filteredCombo = { + byGlob: sinon.stub().resolves(resources) + }; + combo.filter.returns(filteredCombo); + + moduleBundlerStub.resolves([undefined]); + + // bundleDefinition can be empty here as the moduleBundler is mocked + const bundleDefinition = {}; + const bundleOptions = {optimize: false}; + + taskUtil.getTag.returns(true); + sinon.stub(ModuleName, "getNonDebugName").returns(false); + + await t.throwsAsync(generateBundle({ + workspace, + dependencies, + taskUtil, + options: { + projectName: "Test Application", + bundleDefinition, + bundleOptions + } + }), { + message: "Failed to resolve non-debug name for /resources/my/app/module.js" + }); +}); From 34399d818d3d68ee6ab60a4cd0df34e9fdfa4125 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Tue, 8 Mar 2022 15:42:23 +0100 Subject: [PATCH 53/74] [INTERNAL] Enhance generateStandaloneAppBundle tests --- .../bundlers/generateStandaloneAppBundle.js | 154 +++++++++++++++++- 1 file changed, 149 insertions(+), 5 deletions(-) diff --git a/test/lib/tasks/bundlers/generateStandaloneAppBundle.js b/test/lib/tasks/bundlers/generateStandaloneAppBundle.js index b7a4e9766..a24329633 100644 --- a/test/lib/tasks/bundlers/generateStandaloneAppBundle.js +++ b/test/lib/tasks/bundlers/generateStandaloneAppBundle.js @@ -9,9 +9,20 @@ let generateStandaloneAppBundle = require("../../../../lib/tasks/bundlers/genera test.beforeEach((t) => { // Stubbing processors/bundlers/moduleBundler t.context.moduleBundlerStub = sinon.stub(); - t.context.moduleBundlerStub.resolves(["I am a resource"]); + t.context.moduleBundlerStub.resolves([{bundle: "I am a resource", sourceMap: "I am a source map"}]); mock("../../../../lib/processors/bundlers/moduleBundler", t.context.moduleBundlerStub); + t.context.taskUtil = { + getTag: sinon.stub().returns(false), + setTag: sinon.stub(), + clearTag: sinon.stub(), + STANDARD_TAGS: { + HasDebugVariant: "", + IsDebugVariant: "", + OmitFromBuildResult: "" + } + }; + // Re-require tested module generateStandaloneAppBundle = mock.reRequire("../../../../lib/tasks/bundlers/generateStandaloneAppBundle"); }); @@ -24,7 +35,7 @@ test.afterEach.always((t) => { function createDummyResource(id) { return { getPath: function() { - return "ponyPath" + id; + return "/resources/ponyPath" + id; } }; } @@ -48,7 +59,7 @@ test.serial("execute module bundler and write results", async (t) => { }; await generateStandaloneAppBundle(params); - t.deepEqual(t.context.moduleBundlerStub.callCount, 2, "moduleBundler should be called once"); + t.deepEqual(t.context.moduleBundlerStub.callCount, 2); const {resources, options} = t.context.moduleBundlerStub.getCall(0).args[0]; t.deepEqual(resources.length, 4, "moduleBundler got supplied with 4 resources"); @@ -94,7 +105,7 @@ test.serial("execute module bundler and write results without namespace", async }; await generateStandaloneAppBundle(params); - t.deepEqual(t.context.moduleBundlerStub.callCount, 2, "moduleBundler should be called once"); + t.deepEqual(t.context.moduleBundlerStub.callCount, 2); const {resources, options} = t.context.moduleBundlerStub.getCall(0).args[0]; t.deepEqual(resources.length, 4, "moduleBundler got supplied with 4 resources"); @@ -140,7 +151,7 @@ test.serial("execute module bundler and write results in evo mode", async (t) => }; await generateStandaloneAppBundle(params); - t.deepEqual(t.context.moduleBundlerStub.callCount, 2, "moduleBundler should be called once"); + t.deepEqual(t.context.moduleBundlerStub.callCount, 2); const {resources, options} = t.context.moduleBundlerStub.getCall(0).args[0]; t.deepEqual(resources.length, 4, "moduleBundler got supplied with 4 resources"); @@ -156,3 +167,136 @@ test.serial("execute module bundler and write results in evo mode", async (t) => "sap/ui/core/Core.js" ], "Correct filter in second bundle definition section"); }); + +test.serial("execute module bundler with taskUtil", async (t) => { + const {taskUtil} = t.context; + + const dummyResource1 = createDummyResource("1.js"); + const dummyResource2 = createDummyResource("2-dbg.js"); + const dummyResource3 = createDummyResource("3.js"); + const dummyResource4 = createDummyResource("4-dbg.js"); + + taskUtil.getTag.withArgs(dummyResource1, taskUtil.STANDARD_TAGS.HasDebugVariant).returns(true); + taskUtil.getTag.withArgs(dummyResource2.getPath(), taskUtil.STANDARD_TAGS.IsDebugVariant).returns(true); + + const ui5LoaderDummyResource = { + getPath: function() { + return "/resources/ui5loader.js"; // Triggers evo mode + } + }; + const dummyReaderWriter = { + _byGlob: async function() { + return [ + ui5LoaderDummyResource, + dummyResource1, + dummyResource2, + dummyResource3, + dummyResource4, + ]; + }, + write: function() {} + }; + sinon.stub(dummyReaderWriter, "write").resolves(); + const params = { + workspace: dummyReaderWriter, + dependencies: dummyReaderWriter, + taskUtil, + options: { + projectName: "some.project.name", + namespace: "some/project/namespace" + } + }; + await generateStandaloneAppBundle(params); + + t.is(t.context.moduleBundlerStub.callCount, 2); + + t.is(t.context.moduleBundlerStub.getCall(0).args.length, 1); + t.deepEqual(t.context.moduleBundlerStub.getCall(0).args[0].options, { + bundleDefinition: { + defaultFileTypes: [ + ".js", + ".control.xml", + ".fragment.html", + ".fragment.json", + ".fragment.xml", + ".view.html", + ".view.json", + ".view.xml", + ".properties", + ], + name: "sap-ui-custom.js", + sections: [ + { + declareModules: false, + filters: [ + "ui5loader-autoconfig.js", + ], + mode: "raw", + resolve: true, + sort: true, + }, + { + filters: [ + "some/project/namespace/", + "some/project/namespace/**/manifest.json", + "some/project/namespace/changes/changes-bundle.json", + "some/project/namespace/changes/flexibility-bundle.json", + "!some/project/namespace/test/", + "sap/ui/core/Core.js", + ], + mode: "preload", + renderer: true, + resolve: true, + resolveConditional: true, + }, + { + filters: [ + "sap/ui/core/Core.js", + ], + mode: "require", + }, + ], + } + }); + + t.is(t.context.moduleBundlerStub.getCall(1).args.length, 1); + t.deepEqual(t.context.moduleBundlerStub.getCall(1).args[0].options, { + bundleDefinition: { + defaultFileTypes: [ + ".js", + ".control.xml", + ".fragment.html", + ".fragment.json", + ".fragment.xml", + ".view.html", + ".view.json", + ".view.xml", + ".properties", + ], + name: "sap-ui-custom-dbg.js", + sections: [ + { + declareModules: false, + filters: [ + "ui5loader-autoconfig.js", + ], + mode: "raw", + resolve: true, + sort: true, + }, + { + filters: [ + "sap/ui/core/Core.js", + ], + mode: "require", + }, + ], + }, + bundleOptions: { + optimize: false + }, + moduleNameMapping: { + "/resources/ponyPath2-dbg.js": "ponyPath2.js" + } + }); +}); From 3e4334294f8d2876db110435b6ca2441ea62e0fd Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Wed, 9 Mar 2022 14:02:53 +0100 Subject: [PATCH 54/74] [INTERNAL] Add tests for error handling --- .../tasks/bundlers/generateLibraryPreload.js | 49 +++++++++++++++++-- .../bundlers/generateStandaloneAppBundle.js | 32 ++++++++++++ 2 files changed, 78 insertions(+), 3 deletions(-) diff --git a/test/lib/tasks/bundlers/generateLibraryPreload.js b/test/lib/tasks/bundlers/generateLibraryPreload.js index b28c78d45..30f87a6ae 100644 --- a/test/lib/tasks/bundlers/generateLibraryPreload.js +++ b/test/lib/tasks/bundlers/generateLibraryPreload.js @@ -18,10 +18,13 @@ test.beforeEach((t) => { t.context.dependencies = {}; t.context.comboByGlob = sinon.stub().resolves([]); + t.context.combo = { + byGlob: t.context.comboByGlob, + }; + t.context.combo.filter = sinon.stub().returns(t.context.combo); + t.context.ReaderCollectionPrioritizedStub = sinon.stub(); - t.context.ReaderCollectionPrioritizedStub.returns({ - byGlob: t.context.comboByGlob - }); + t.context.ReaderCollectionPrioritizedStub.returns(t.context.combo); mock("@ui5/fs", { ReaderCollectionPrioritized: t.context.ReaderCollectionPrioritizedStub }); @@ -1367,6 +1370,46 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio "ReaderCollectionPrioritized should have been called with 'new'"); }); +test.serial("Error: Failed to resolve non-debug name", async (t) => { + const { + generateLibraryPreload, + workspace, dependencies, comboByGlob + } = t.context; + const resources = [ + {getPath: sinon.stub().returns("/resources/resource-tagged-as-debug-variant.js")} + ]; + comboByGlob.resolves(resources); + + workspace.byGlob.resolves([ + {getPath: sinon.stub().returns("/resources/sap/ui/core/.library")} + ]); + + const taskUtil = { + getTag: sinon.stub().returns(false), + STANDARD_TAGS: { + HasDebugVariant: "", + IsDebugVariant: "", + OmitFromBuildResult: "" + } + }; + taskUtil.getTag + .withArgs("/resources/resource-tagged-as-debug-variant.js", taskUtil.STANDARD_TAGS.IsDebugVariant) + .returns(true); + + await t.throwsAsync(generateLibraryPreload({ + workspace, + dependencies, + taskUtil, + options: { + projectName: "sap.ui.core", + // Should be ignored for hardcoded sap.ui.core bundle configuration + excludes: ["sap/ui/core/**"] + } + }), { + message: "Failed to resolve non-debug name for /resources/resource-tagged-as-debug-variant.js" + }); +}); + test.serial("generateLibraryPreload with excludes", async (t) => { const { generateLibraryPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, diff --git a/test/lib/tasks/bundlers/generateStandaloneAppBundle.js b/test/lib/tasks/bundlers/generateStandaloneAppBundle.js index a24329633..3d70ee55a 100644 --- a/test/lib/tasks/bundlers/generateStandaloneAppBundle.js +++ b/test/lib/tasks/bundlers/generateStandaloneAppBundle.js @@ -300,3 +300,35 @@ test.serial("execute module bundler with taskUtil", async (t) => { } }); }); + +test.serial("Error: Failed to resolve non-debug name", async (t) => { + // NOTE: This scenario is not expected to happen as the "minify" task sets the IsDebugVariant tag + // only for resources that adhere to the debug file name pattern + + const {taskUtil} = t.context; + const dummyResource1 = createDummyResource("1.js"); + taskUtil.getTag.withArgs(dummyResource1.getPath(), taskUtil.STANDARD_TAGS.IsDebugVariant).returns(true); + + const dummyReaderWriter = { + _byGlob: async function() { + return [ + dummyResource1, + ]; + }, + write: function() {} + }; + sinon.stub(dummyReaderWriter, "write").resolves(); + const params = { + workspace: dummyReaderWriter, + dependencies: dummyReaderWriter, + taskUtil, + options: { + projectName: "some.project.name", + namespace: "some/project/namespace" + } + }; + + await t.throwsAsync(generateStandaloneAppBundle(params), { + message: "Failed to resolve non-debug name for /resources/ponyPath1.js" + }); +}); From 35cebf1a11ced58c93c289465c550ba0c8c6e846 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Wed, 9 Mar 2022 14:22:07 +0100 Subject: [PATCH 55/74] [INTERNAL] Refactor code to create moduleNameMapping --- lib/tasks/bundlers/generateBundle.js | 30 +++---------------- lib/tasks/bundlers/generateLibraryPreload.js | 24 ++++----------- .../bundlers/generateStandaloneAppBundle.js | 24 ++++----------- .../bundlers/utils/createModuleNameMapping.js | 30 +++++++++++++++++++ test/lib/tasks/bundlers/generateBundle.js | 12 +++----- .../tasks/bundlers/generateLibraryPreload.js | 18 ++++------- 6 files changed, 56 insertions(+), 82 deletions(-) create mode 100644 lib/tasks/bundlers/utils/createModuleNameMapping.js diff --git a/lib/tasks/bundlers/generateBundle.js b/lib/tasks/bundlers/generateBundle.js index b6922b47b..02b9040fd 100644 --- a/lib/tasks/bundlers/generateBundle.js +++ b/lib/tasks/bundlers/generateBundle.js @@ -1,5 +1,5 @@ const moduleBundler = require("../../processors/bundlers/moduleBundler"); -const ModuleName = require("../../lbt/utils/ModuleName"); +const createModuleNameMapping = require("./utils/createModuleNameMapping"); const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritized; /** @@ -82,33 +82,11 @@ module.exports = function({ } return combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library,js.map}").then((resources) => { - const moduleNameMapping = {}; + const options = {bundleDefinition, bundleOptions}; if (!optimize && taskUtil) { - // For "unoptimized" bundles, the non-debug files have already been filtered out above. - // Now we need to create a mapping from the debug-variant resource path to the respective module name, - // which is basically the non-debug resource path, minus the "/resources/"" prefix. - // This mapping overwrites internal logic of the LocatorResourcePool which would otherwise determine - // the module name from the resource path, which would contain "-dbg" in this case. That would be - // incorrect since debug-variants should still keep the original module name. - for (let i = resources.length - 1; i >= 0; i--) { - const resourcePath = resources[i].getPath(); - if (taskUtil.getTag(resourcePath, taskUtil.STANDARD_TAGS.IsDebugVariant)) { - const nonDbgPath = ModuleName.getNonDebugName(resourcePath); - if (!nonDbgPath) { - throw new Error(`Failed to resolve non-debug name for ${resourcePath}`); - } - moduleNameMapping[resourcePath] = nonDbgPath.slice("/resources/".length); - } - } + options.moduleNameMapping = createModuleNameMapping({resources, taskUtil}); } - return moduleBundler({ - options: { - bundleDefinition, - bundleOptions, - moduleNameMapping - }, - resources - }).then((bundles) => { + return moduleBundler({options, resources}).then((bundles) => { return Promise.all(bundles.map(({bundle, sourceMap} = {}) => { if (!bundle) { // Skip empty bundles diff --git a/lib/tasks/bundlers/generateLibraryPreload.js b/lib/tasks/bundlers/generateLibraryPreload.js index 654aa65ca..0a027620a 100644 --- a/lib/tasks/bundlers/generateLibraryPreload.js +++ b/lib/tasks/bundlers/generateLibraryPreload.js @@ -2,7 +2,7 @@ const log = require("@ui5/logger").getLogger("builder:tasks:bundlers:generateLib const moduleBundler = require("../../processors/bundlers/moduleBundler"); const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritized; const {negateFilters} = require("../../lbt/resources/ResourceFilterList"); -const ModuleName = require("../../lbt/utils/ModuleName"); +const createModuleNameMapping = require("./utils/createModuleNameMapping"); function getDefaultLibraryPreloadFilters(namespace, excludes) { const filters = [ @@ -311,7 +311,7 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN return resource.getPath() === "/resources/ui5loader.js"; }); - const unoptimizedModuleNameMapping = {}; + let unoptimizedModuleNameMapping; let unoptimizedResources = resources; if (taskUtil) { unoptimizedResources = await new ReaderCollectionPrioritized({ @@ -322,22 +322,10 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.HasDebugVariant); }).byGlob("/**/*.{js,json,xml,html,properties,library,js.map}"); - // For "unoptimized" bundles, the non-debug files have already been filtered out above. - // Now we need to create a mapping from the debug-variant resource path to the respective module - // name, which is basically the non-debug resource path, minus the "/resources/"" prefix. - // This mapping overwrites internal logic of the LocatorResourcePool which would otherwise determine - // the module name from the resource path, which would contain "-dbg" in this case. That would be - // incorrect since debug-variants should still keep the original module name. - for (let i = unoptimizedResources.length - 1; i >= 0; i--) { - const resourcePath = unoptimizedResources[i].getPath(); - if (taskUtil.getTag(resourcePath, taskUtil.STANDARD_TAGS.IsDebugVariant)) { - const nonDbgPath = ModuleName.getNonDebugName(resourcePath); - if (!nonDbgPath) { - throw new Error(`Failed to resolve non-debug name for ${resourcePath}`); - } - unoptimizedModuleNameMapping[resourcePath] = nonDbgPath.slice("/resources/".length); - } - } + unoptimizedModuleNameMapping = createModuleNameMapping({ + resources: unoptimizedResources, + taskUtil + }); } let filters; diff --git a/lib/tasks/bundlers/generateStandaloneAppBundle.js b/lib/tasks/bundlers/generateStandaloneAppBundle.js index 7621c447c..59ad6c0c2 100644 --- a/lib/tasks/bundlers/generateStandaloneAppBundle.js +++ b/lib/tasks/bundlers/generateStandaloneAppBundle.js @@ -1,7 +1,7 @@ const log = require("@ui5/logger").getLogger("builder:tasks:bundlers:generateStandaloneAppBundle"); const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritized; const moduleBundler = require("../../processors/bundlers/moduleBundler"); -const ModuleName = require("../../lbt/utils/ModuleName"); +const createModuleNameMapping = require("./utils/createModuleNameMapping"); function getBundleDefinition(config) { const bundleDefinition = { @@ -101,7 +101,7 @@ module.exports = async function({workspace, dependencies, taskUtil, options: {pr filters = ["jquery.sap.global.js"]; } - const unoptimizedModuleNameMapping = {}; + let unoptimizedModuleNameMapping; let unoptimizedResources = resources; if (taskUtil) { unoptimizedResources = await new ReaderCollectionPrioritized({ @@ -112,22 +112,10 @@ module.exports = async function({workspace, dependencies, taskUtil, options: {pr return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.HasDebugVariant); }).byGlob("/resources/**/*.{js,json,xml,html,properties,library,js.map}"); - // For "unoptimized" bundles, the non-debug files have already been filtered out above. - // Now we need to create a mapping from the debug-variant resource path to the respective module name, - // which is basically the non-debug resource path, minus the "/resources/"" prefix. - // This mapping overwrites internal logic of the LocatorResourcePool which would otherwise determine - // the module name from the resource path, which would contain "-dbg" in this case. That would be - // incorrect since debug-variants should still keep the original module name. - for (let i = unoptimizedResources.length - 1; i >= 0; i--) { - const resourcePath = unoptimizedResources[i].getPath(); - if (taskUtil.getTag(resourcePath, taskUtil.STANDARD_TAGS.IsDebugVariant)) { - const nonDbgPath = ModuleName.getNonDebugName(resourcePath); - if (!nonDbgPath) { - throw new Error(`Failed to resolve non-debug name for ${resourcePath}`); - } - unoptimizedModuleNameMapping[resourcePath] = nonDbgPath.slice("/resources/".length); - } - } + unoptimizedModuleNameMapping = createModuleNameMapping({ + resources: unoptimizedResources, + taskUtil + }); } await Promise.all([ diff --git a/lib/tasks/bundlers/utils/createModuleNameMapping.js b/lib/tasks/bundlers/utils/createModuleNameMapping.js new file mode 100644 index 000000000..23544ab37 --- /dev/null +++ b/lib/tasks/bundlers/utils/createModuleNameMapping.js @@ -0,0 +1,30 @@ +const ModuleName = require("../../../lbt/utils/ModuleName"); + +/** + * For "unoptimized" bundles, the non-debug files have already been filtered out above. + * Now we need to create a mapping from the debug-variant resource path to the respective module + * name, which is basically the non-debug resource path, minus the "/resources/"" prefix. + * This mapping overwrites internal logic of the LocatorResourcePool which would otherwise determine + * the module name from the resource path, which would contain "-dbg" in this case. That would be + * incorrect since debug-variants should still keep the original module name. + * + * @private + * @param {object} parameters Parameters + * @param {module:@ui5/fs.Resource[]} parameters.resources List of resources + * @param {module:@ui5/builder.tasks.TaskUtil|object} parameters.taskUtil TaskUtil + * @returns {object} Module name mapping + */ +module.exports = function({resources, taskUtil}) { + const moduleNameMapping = {}; + for (let i = resources.length - 1; i >= 0; i--) { + const resourcePath = resources[i].getPath(); + if (taskUtil.getTag(resourcePath, taskUtil.STANDARD_TAGS.IsDebugVariant)) { + const nonDbgPath = ModuleName.getNonDebugName(resourcePath); + if (!nonDbgPath) { + throw new Error(`Failed to resolve non-debug name for ${resourcePath}`); + } + moduleNameMapping[resourcePath] = nonDbgPath.slice("/resources/".length); + } + } + return moduleNameMapping; +}; diff --git a/test/lib/tasks/bundlers/generateBundle.js b/test/lib/tasks/bundlers/generateBundle.js index fb2619cdc..e29478769 100644 --- a/test/lib/tasks/bundlers/generateBundle.js +++ b/test/lib/tasks/bundlers/generateBundle.js @@ -83,8 +83,7 @@ test.serial("generateBundle: No taskUtil, no bundleOptions", async (t) => { t.deepEqual(moduleBundlerStub.getCall(0).args, [{ options: { bundleDefinition, - bundleOptions: undefined, - moduleNameMapping: {} + bundleOptions: undefined }, resources }]); @@ -156,8 +155,7 @@ test.serial("generateBundle: No bundleOptions, with taskUtil", async (t) => { t.deepEqual(moduleBundlerStub.getCall(0).args, [{ options: { bundleDefinition, - bundleOptions: undefined, - moduleNameMapping: {} + bundleOptions: undefined }, resources }]); @@ -396,8 +394,7 @@ test.serial("generateBundle: bundleOptions: sourceMap=false, with taskUtil", asy t.deepEqual(moduleBundlerStub.getCall(0).args, [{ options: { bundleDefinition, - bundleOptions, - moduleNameMapping: {} + bundleOptions }, resources }]); @@ -491,8 +488,7 @@ test.serial("generateBundle: Empty bundle (skipIfEmpty=true)", async (t) => { t.deepEqual(moduleBundlerStub.getCall(0).args, [{ options: { bundleDefinition, - bundleOptions, - moduleNameMapping: {} + bundleOptions }, resources }]); diff --git a/test/lib/tasks/bundlers/generateLibraryPreload.js b/test/lib/tasks/bundlers/generateLibraryPreload.js index 30f87a6ae..4130f7098 100644 --- a/test/lib/tasks/bundlers/generateLibraryPreload.js +++ b/test/lib/tasks/bundlers/generateLibraryPreload.js @@ -253,8 +253,7 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - }, - moduleNameMapping: {} + } }, resources }]); @@ -345,8 +344,7 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - }, - moduleNameMapping: {} + } }, resources }]); @@ -515,8 +513,7 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - }, - moduleNameMapping: {} + } }, resources }]); @@ -607,8 +604,7 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - }, - moduleNameMapping: {} + } }, resources }]); @@ -835,8 +831,7 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - }, - moduleNameMapping: {} + } }, resources }]); @@ -927,8 +922,7 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined decorateBootstrapModule: false, addTryCatchRestartWrapper: false, usePredefineCalls: false - }, - moduleNameMapping: {} + } }, resources }]); From daa2943eb8dd5e04a8ae8750ebab9fdcbc51cda7 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 10 Mar 2022 12:01:29 +0100 Subject: [PATCH 56/74] [INTERNAL] minifier: Adopt default param handling --- lib/processors/minifier.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/processors/minifier.js b/lib/processors/minifier.js index 25a2b3575..bc1768ee9 100644 --- a/lib/processors/minifier.js +++ b/lib/processors/minifier.js @@ -40,10 +40,7 @@ const debugFileRegex = /((?:\.view|\.fragment|\.controller|\.designtime|\.suppor * @returns {Promise} * Promise resolving with object of resource, dbgResource and sourceMap */ -module.exports = async function({resources, options: {addSourceMappingUrl} = {}}) { - if (addSourceMappingUrl === undefined) { - addSourceMappingUrl = true; - } +module.exports = async function({resources, options: {addSourceMappingUrl = true} = {}}) { return Promise.all(resources.map(async (resource) => { const dbgPath = resource.getPath().replace(debugFileRegex, "-dbg$1"); const dbgResource = await resource.clone(); From 81c00cf7a3ed512d0248647a4b037db9eee27565 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 10 Mar 2022 12:25:24 +0100 Subject: [PATCH 57/74] [INTERNAL] replaceVersion: Also process css files Follow-up of https://github.com/SAP/ui5-builder/pull/693 There are use cases for a version placeholder in *.css files. This also adds some basic tests for placeholder replacements during a library build. --- lib/types/library/LibraryBuilder.js | 2 +- .../build/library.e/dest/resources/library/e/library-dbg.js | 2 ++ .../build/library.e/dest/test-resources/library/e/Test.css | 6 ++++++ .../build/library.e/dest/test-resources/library/e/Test.html | 6 ++++++ .../build/library.e/dest/test-resources/library/e/Test.js | 6 ++++++ test/fixtures/library.e/src/library/e/library.js | 2 ++ test/fixtures/library.e/src/library/e/manifest.json | 2 +- test/fixtures/library.e/test/library/e/Test.css | 4 ++++ test/fixtures/library.e/test/library/e/Test.html | 4 ++++ test/fixtures/library.e/test/library/e/Test.js | 4 ++++ 10 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 test/expected/build/library.e/dest/test-resources/library/e/Test.css create mode 100644 test/expected/build/library.e/dest/test-resources/library/e/Test.js create mode 100644 test/fixtures/library.e/test/library/e/Test.css create mode 100644 test/fixtures/library.e/test/library/e/Test.js diff --git a/lib/types/library/LibraryBuilder.js b/lib/types/library/LibraryBuilder.js index 031bad706..13e322217 100644 --- a/lib/types/library/LibraryBuilder.js +++ b/lib/types/library/LibraryBuilder.js @@ -38,7 +38,7 @@ class LibraryBuilder extends AbstractBuilder { workspace: resourceCollections.workspace, options: { version: project.version, - pattern: "/**/*.{js,json,library,less,theme,html}" + pattern: "/**/*.{js,json,library,css,less,theme,html}" } }); }); diff --git a/test/expected/build/library.e/dest/resources/library/e/library-dbg.js b/test/expected/build/library.e/dest/resources/library/e/library-dbg.js index 653942f85..e45381daf 100644 --- a/test/expected/build/library.e/dest/resources/library/e/library-dbg.js +++ b/test/expected/build/library.e/dest/resources/library/e/library-dbg.js @@ -4,3 +4,5 @@ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ console.log('HelloWorld'); + +// 1.0.0 diff --git a/test/expected/build/library.e/dest/test-resources/library/e/Test.css b/test/expected/build/library.e/dest/test-resources/library/e/Test.css new file mode 100644 index 000000000..0c074af62 --- /dev/null +++ b/test/expected/build/library.e/dest/test-resources/library/e/Test.css @@ -0,0 +1,6 @@ +/* +UI development toolkit for HTML5 (OpenUI5) + * (c) Copyright 2009-xxx SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. +1.0.0 +*/ diff --git a/test/expected/build/library.e/dest/test-resources/library/e/Test.html b/test/expected/build/library.e/dest/test-resources/library/e/Test.html index e69de29bb..5a1a4014b 100644 --- a/test/expected/build/library.e/dest/test-resources/library/e/Test.html +++ b/test/expected/build/library.e/dest/test-resources/library/e/Test.html @@ -0,0 +1,6 @@ + diff --git a/test/expected/build/library.e/dest/test-resources/library/e/Test.js b/test/expected/build/library.e/dest/test-resources/library/e/Test.js new file mode 100644 index 000000000..0c074af62 --- /dev/null +++ b/test/expected/build/library.e/dest/test-resources/library/e/Test.js @@ -0,0 +1,6 @@ +/* +UI development toolkit for HTML5 (OpenUI5) + * (c) Copyright 2009-xxx SAP SE or an SAP affiliate company. + * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. +1.0.0 +*/ diff --git a/test/fixtures/library.e/src/library/e/library.js b/test/fixtures/library.e/src/library/e/library.js index 719155d1e..e6676c815 100644 --- a/test/fixtures/library.e/src/library/e/library.js +++ b/test/fixtures/library.e/src/library/e/library.js @@ -2,3 +2,5 @@ * ${copyright} */ console.log('HelloWorld'); + +// ${version} diff --git a/test/fixtures/library.e/src/library/e/manifest.json b/test/fixtures/library.e/src/library/e/manifest.json index 6ff551fd1..01221dedc 100644 --- a/test/fixtures/library.e/src/library/e/manifest.json +++ b/test/fixtures/library.e/src/library/e/manifest.json @@ -5,7 +5,7 @@ "type": "library", "embeds": [], "applicationVersion": { - "version": "1.0.0" + "version": "${version}" }, "title": "Library E", "description": "Library E", diff --git a/test/fixtures/library.e/test/library/e/Test.css b/test/fixtures/library.e/test/library/e/Test.css new file mode 100644 index 000000000..3f46b4c60 --- /dev/null +++ b/test/fixtures/library.e/test/library/e/Test.css @@ -0,0 +1,4 @@ +/* +${copyright} +${version} +*/ diff --git a/test/fixtures/library.e/test/library/e/Test.html b/test/fixtures/library.e/test/library/e/Test.html index e69de29bb..be546dc05 100644 --- a/test/fixtures/library.e/test/library/e/Test.html +++ b/test/fixtures/library.e/test/library/e/Test.html @@ -0,0 +1,4 @@ + diff --git a/test/fixtures/library.e/test/library/e/Test.js b/test/fixtures/library.e/test/library/e/Test.js new file mode 100644 index 000000000..3f46b4c60 --- /dev/null +++ b/test/fixtures/library.e/test/library/e/Test.js @@ -0,0 +1,4 @@ +/* +${copyright} +${version} +*/ From ebb93f52cc24102f2759fdc8caae5804596198eb Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 10 Mar 2022 16:08:48 +0000 Subject: [PATCH 58/74] Release 3.0.0-alpha.3 --- CHANGELOG.md | 11 +++++++++-- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 582023d4e..f3c5d568e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,16 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.2...HEAD). +A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.3...HEAD). + + +## [v3.0.0-alpha.3] - 2022-03-10 +### Bug Fixes +- **LocatorResourcePool:** Wait for resources in prepare step ([#719](https://github.com/SAP/ui5-builder/issues/719)) [`1b7f93f`](https://github.com/SAP/ui5-builder/commit/1b7f93f4988340d7a6575be3191a02e6c295ebd0) + -## [v3.0.0-alpha.2] - 2022-02-21 +## [v3.0.0-alpha.2] - 2022-02-25 ### Bug Fixes - **XMLTemplateAnalyzer:** Analyze core:require of FragmentDefinition [`af075ed`](https://github.com/SAP/ui5-builder/commit/af075edf784d9f1ba162a34f0bf150dbcbc0f479) @@ -687,6 +693,7 @@ to load the custom bundle file instead. - Add ability to configure component preloads and custom bundles [`2241e5f`](https://github.com/SAP/ui5-builder/commit/2241e5ff98fd95f1f80cc74959655ae7a9c660e7) +[v3.0.0-alpha.3]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.2...v3.0.0-alpha.3 [v3.0.0-alpha.2]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.1...v3.0.0-alpha.2 [v3.0.0-alpha.1]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.0...v3.0.0-alpha.1 [v3.0.0-alpha.0]: https://github.com/SAP/ui5-builder/compare/v2.11.2...v3.0.0-alpha.0 diff --git a/package-lock.json b/package-lock.json index 6d1b8b091..ae492a7ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.2", + "version": "3.0.0-alpha.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ui5/builder", - "version": "3.0.0-alpha.2", + "version": "3.0.0-alpha.3", "license": "Apache-2.0", "dependencies": { "@ui5/fs": "^3.0.0-alpha.2", diff --git a/package.json b/package.json index 59afef882..58aafc8cb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.2", + "version": "3.0.0-alpha.3", "description": "UI5 Tooling - Builder", "author": { "name": "SAP SE", From 62acf53f05c2d0029fca6626f2ad539a5f638b31 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Wed, 30 Mar 2022 15:27:02 +0200 Subject: [PATCH 59/74] [INTERNAL] Azure: Re-run coverage test only ESLint and other checks are covered via GH Actions. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 75fd5c3e5..4124dc77d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -53,6 +53,6 @@ steps: codeCoverageTool: 'cobertura' summaryFileLocation: '$(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml' -- script: npm run test +- script: npm run coverage displayName: Run Test Natively in Case of Failures condition: failed() From 9f4ab6dea44a035b25551d51d94d50643f5ef57e Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Mon, 4 Apr 2022 11:42:55 +0000 Subject: [PATCH 60/74] In-range update of npm dependencies --- package-lock.json | 545 +++++++++++++++++++++++----------------------- 1 file changed, 271 insertions(+), 274 deletions(-) diff --git a/package-lock.json b/package-lock.json index ae492a7ed..a48463039 100644 --- a/package-lock.json +++ b/package-lock.json @@ -80,27 +80,27 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", "@babel/template": "^7.16.7", "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0", @@ -119,9 +119,9 @@ } }, "node_modules/@babel/core/node_modules/@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -140,9 +140,9 @@ } }, "node_modules/@babel/generator": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", "dev": true, "dependencies": { "@babel/types": "^7.17.0", @@ -154,12 +154,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.16.4", + "@babel/compat-data": "^7.17.7", "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" @@ -243,14 +243,14 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", - "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", @@ -262,12 +262,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -304,13 +304,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", "dev": true, "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", + "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0" }, "engines": { @@ -413,9 +413,9 @@ } }, "node_modules/@babel/template/node_modules/@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -446,9 +446,9 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -506,16 +506,16 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", - "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.1", "globals": "^13.9.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.0.4", @@ -532,9 +532,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -546,15 +546,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -793,9 +784,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", "dev": true, "optional": true }, @@ -1379,13 +1370,23 @@ } }, "node_modules/browserslist": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.0.tgz", - "integrity": "sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==", + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001313", - "electron-to-chromium": "^1.4.76", + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", "escalade": "^3.1.1", "node-releases": "^2.0.2", "picocolors": "^1.0.0" @@ -1395,10 +1396,6 @@ }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/buffer": { @@ -1534,14 +1531,20 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001314", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz", - "integrity": "sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw==", + "version": "1.0.30001325", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz", + "integrity": "sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/catharsis": { "version": "0.9.0", @@ -1667,15 +1670,15 @@ } }, "node_modules/cheerio-select": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz", - "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", + "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", "dependencies": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", + "css-select": "^4.3.0", + "css-what": "^6.0.1", "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" + "domhandler": "^4.3.1", + "domutils": "^2.8.0" }, "funding": { "url": "https://github.com/sponsors/fb55" @@ -1727,9 +1730,9 @@ } }, "node_modules/chokidar-cli/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, "engines": { "node": ">=6" @@ -2225,13 +2228,13 @@ } }, "node_modules/css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dependencies": { "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" }, @@ -2240,9 +2243,9 @@ } }, "node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "engines": { "node": ">= 6" }, @@ -2292,9 +2295,9 @@ } }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -2561,9 +2564,9 @@ ] }, "node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dependencies": { "domelementtype": "^2.2.0" }, @@ -2651,9 +2654,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.78", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.78.tgz", - "integrity": "sha512-o61+D/Lx7j/E0LIin/efOqeHpXhwi1TaQco9vUcRmr91m25SfZY6L5hWJDv/r+6kNjboFKgBw1LbfM0lbhuK6Q==", + "version": "1.4.103", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz", + "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==", "dev": true }, "node_modules/emittery": { @@ -2709,9 +2712,9 @@ } }, "node_modules/es5-ext": { - "version": "0.10.57", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.57.tgz", - "integrity": "sha512-L7cCNoPwTkAp7IBHxrKLsh7NKiVFkcdxlP9vbVw9QUvb7gF0Mz9bEBN0WY9xqdTjGF907EMT/iG013vnbqwu1Q==", + "version": "0.10.59", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.59.tgz", + "integrity": "sha512-cOgyhW0tIJyQY1Kfw6Kr0viu9ZlUctVchRMZ7R0HiH3dxTSp5zJDLecwxUqPUrGKMsgBI1wd1FL+d9Jxfi4cLw==", "hasInstallScript": true, "dependencies": { "es6-iterator": "^2.0.3", @@ -2851,12 +2854,12 @@ } }, "node_modules/eslint": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", - "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", + "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.0", + "@eslint/eslintrc": "^1.2.1", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -3012,9 +3015,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -4336,9 +4339,9 @@ } }, "node_modules/jsdoc-type-pratt-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.3.tgz", - "integrity": "sha512-QPyxq62Q8veBSDtDrWmqaEPjSCeknUV9dH/OAGt3q9an8qC8UQDqitQiw1NvoMskIESpoRZ6qzt4H3rlK0xo8A==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz", + "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==", "dev": true, "engines": { "node": ">=12.0.0" @@ -4395,13 +4398,10 @@ "dev": true }, "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, "bin": { "json5": "lib/cli.js" }, @@ -4839,12 +4839,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -4900,9 +4900,9 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "node_modules/minimist-options": { @@ -4990,9 +4990,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", + "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -5771,10 +5771,20 @@ } }, "node_modules/postcss": { - "version": "8.4.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.8.tgz", - "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], "dependencies": { "nanoid": "^3.3.1", "picocolors": "^1.0.0", @@ -5782,10 +5792,6 @@ }, "engines": { "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/prelude-ls": { @@ -6337,9 +6343,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/sass": { - "version": "1.49.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", - "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", + "version": "1.49.11", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.11.tgz", + "integrity": "sha512-wvS/geXgHUGs6A/4ud5BFIWKO1nKd7wYIGimDk4q4GFkJicILActpv9ueMT4eRGSsp1BdKHuw1WwAHXbhsJELQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -7072,9 +7078,9 @@ } }, "node_modules/terser": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.0.tgz", - "integrity": "sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", "dependencies": { "acorn": "^8.5.0", "commander": "^2.20.0", @@ -7702,24 +7708,24 @@ } }, "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", + "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", "dev": true }, "@babel/core": { - "version": "7.17.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.5.tgz", - "integrity": "sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", + "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.3", + "@babel/generator": "^7.17.7", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.8", + "@babel/parser": "^7.17.8", "@babel/template": "^7.16.7", "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0", @@ -7731,9 +7737,9 @@ }, "dependencies": { "@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "dev": true }, "semver": { @@ -7745,9 +7751,9 @@ } }, "@babel/generator": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.3.tgz", - "integrity": "sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", "dev": true, "requires": { "@babel/types": "^7.17.0", @@ -7756,12 +7762,12 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", + "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", "dev": true, "requires": { - "@babel/compat-data": "^7.16.4", + "@babel/compat-data": "^7.17.7", "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" @@ -7823,14 +7829,14 @@ } }, "@babel/helper-module-transforms": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz", - "integrity": "sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", + "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", @@ -7839,12 +7845,12 @@ } }, "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", + "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-split-export-declaration": { @@ -7869,13 +7875,13 @@ "dev": true }, "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", + "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", "dev": true, "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", + "@babel/traverse": "^7.17.3", "@babel/types": "^7.17.0" } }, @@ -7950,9 +7956,9 @@ }, "dependencies": { "@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "dev": true } } @@ -7976,9 +7982,9 @@ }, "dependencies": { "@babel/parser": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.3.tgz", - "integrity": "sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==", + "version": "7.17.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", + "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", "dev": true } } @@ -8022,16 +8028,16 @@ } }, "@eslint/eslintrc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.0.tgz", - "integrity": "sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.1", "globals": "^13.9.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.0.4", @@ -8045,20 +8051,14 @@ "dev": true }, "globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -8259,9 +8259,9 @@ "dev": true }, "@types/node": { - "version": "17.0.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", - "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", "dev": true, "optional": true }, @@ -8727,13 +8727,13 @@ } }, "browserslist": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.0.tgz", - "integrity": "sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==", + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001313", - "electron-to-chromium": "^1.4.76", + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", "escalade": "^3.1.1", "node-releases": "^2.0.2", "picocolors": "^1.0.0" @@ -8832,9 +8832,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001314", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz", - "integrity": "sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw==", + "version": "1.0.30001325", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz", + "integrity": "sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ==", "dev": true }, "catharsis": { @@ -8927,15 +8927,15 @@ } }, "cheerio-select": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz", - "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz", + "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==", "requires": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", + "css-select": "^4.3.0", + "css-what": "^6.0.1", "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" + "domhandler": "^4.3.1", + "domutils": "^2.8.0" } }, "chokidar": { @@ -8967,9 +8967,9 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true }, "ansi-styles": { @@ -9372,21 +9372,21 @@ } }, "css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "requires": { "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" } }, "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, "currently-unhandled": { "version": "0.4.1", @@ -9416,9 +9416,9 @@ } }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -9626,9 +9626,9 @@ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" }, "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "requires": { "domelementtype": "^2.2.0" } @@ -9706,9 +9706,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.78", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.78.tgz", - "integrity": "sha512-o61+D/Lx7j/E0LIin/efOqeHpXhwi1TaQco9vUcRmr91m25SfZY6L5hWJDv/r+6kNjboFKgBw1LbfM0lbhuK6Q==", + "version": "1.4.103", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz", + "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==", "dev": true }, "emittery": { @@ -9752,9 +9752,9 @@ } }, "es5-ext": { - "version": "0.10.57", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.57.tgz", - "integrity": "sha512-L7cCNoPwTkAp7IBHxrKLsh7NKiVFkcdxlP9vbVw9QUvb7gF0Mz9bEBN0WY9xqdTjGF907EMT/iG013vnbqwu1Q==", + "version": "0.10.59", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.59.tgz", + "integrity": "sha512-cOgyhW0tIJyQY1Kfw6Kr0viu9ZlUctVchRMZ7R0HiH3dxTSp5zJDLecwxUqPUrGKMsgBI1wd1FL+d9Jxfi4cLw==", "requires": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -9874,12 +9874,12 @@ } }, "eslint": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.10.0.tgz", - "integrity": "sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", + "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.0", + "@eslint/eslintrc": "^1.2.1", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -9932,9 +9932,9 @@ } }, "globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", + "version": "13.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", + "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -10980,9 +10980,9 @@ } }, "jsdoc-type-pratt-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.3.tgz", - "integrity": "sha512-QPyxq62Q8veBSDtDrWmqaEPjSCeknUV9dH/OAGt3q9an8qC8UQDqitQiw1NvoMskIESpoRZ6qzt4H3rlK0xo8A==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz", + "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==", "dev": true }, "jsesc": { @@ -11022,13 +11022,10 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true }, "just-extend": { "version": "4.2.1", @@ -11362,12 +11359,12 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime": { @@ -11402,9 +11399,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "minimist-options": { @@ -11472,9 +11469,9 @@ } }, "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", + "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", "dev": true }, "natural-compare": { @@ -12067,9 +12064,9 @@ } }, "postcss": { - "version": "8.4.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.8.tgz", - "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", "dev": true, "requires": { "nanoid": "^3.3.1", @@ -12490,9 +12487,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "sass": { - "version": "1.49.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", - "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", + "version": "1.49.11", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.11.tgz", + "integrity": "sha512-wvS/geXgHUGs6A/4ud5BFIWKO1nKd7wYIGimDk4q4GFkJicILActpv9ueMT4eRGSsp1BdKHuw1WwAHXbhsJELQ==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -13068,9 +13065,9 @@ } }, "terser": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.0.tgz", - "integrity": "sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A==", + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", + "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", "requires": { "acorn": "^8.5.0", "commander": "^2.20.0", From 30d58e1081c1bdc665f13952ecbe5c400b5f4ed7 Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Tue, 5 Apr 2022 14:20:34 +0200 Subject: [PATCH 61/74] [FEATURE] builder: Add cssVariables option (#728) BLI: CPOUI5FOUNDATION-346 --- lib/builder/BuildContext.js | 8 ++- lib/builder/ProjectBuildContext.js | 4 ++ lib/builder/builder.js | 10 ++- lib/tasks/TaskUtil.js | 12 ++++ lib/types/library/LibraryBuilder.js | 3 +- lib/types/themeLibrary/ThemeLibraryBuilder.js | 3 +- .../theme/j/themes/somefancytheme/Button.less | 3 + .../j/themes/somefancytheme/css_variables.css | 3 + .../somefancytheme/css_variables.source.less | 5 ++ .../j/themes/somefancytheme/library-RTL.css | 3 + .../somefancytheme/library-parameters.json | 1 + .../theme/j/themes/somefancytheme/library.css | 3 + .../themes/somefancytheme/library.source.less | 2 + .../somefancytheme/library_skeleton-RTL.css | 1 + .../somefancytheme/library_skeleton.css | 1 + .../theme/library/e/themes/my_theme/.theme | 9 +++ .../theme/library/e/themes}/my_theme/.theming | 0 .../e/themes/my_theme/css_variables.css | 3 + .../themes/my_theme/css_variables.source.less | 5 ++ .../library/e/themes/my_theme/library-RTL.css | 5 ++ .../e/themes/my_theme/library-parameters.json | 1 + .../library/e/themes/my_theme/library.css | 5 ++ .../e/themes/my_theme/library.source.less | 9 +++ .../themes/my_theme/library_skeleton-RTL.css | 3 + .../e/themes/my_theme/library_skeleton.css | 3 + .../test-resources/theme/library/e/Test.html | 0 .../library/e/my_theme/library.source.less | 18 ----- .../library/e/{ => themes}/my_theme/.theme | 0 .../theme/library/e/themes/my_theme/.theming | 27 ++++++++ .../e/themes/my_theme/library.source.less | 9 +++ test/lib/builder/BuildContext.js | 19 +++++ test/lib/builder/ProjectBuildContext.js | 14 ++++ test/lib/builder/builder.js | 69 +++++++++++++++++++ test/lib/tasks/TaskUtil.js | 15 ++++ .../types/themeLibrary/ThemeLibraryBuilder.js | 3 + 35 files changed, 255 insertions(+), 24 deletions(-) create mode 100644 test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/Button.less create mode 100644 test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/css_variables.css create mode 100644 test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/css_variables.source.less create mode 100644 test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library-RTL.css create mode 100644 test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library-parameters.json create mode 100644 test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library.css create mode 100644 test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library.source.less create mode 100644 test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css create mode 100644 test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library_skeleton.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/.theme rename test/{fixtures/theme.library.e/src/theme/library/e => expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes}/my_theme/.theming (100%) create mode 100644 test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/css_variables.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/css_variables.source.less create mode 100644 test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library-RTL.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library-parameters.json create mode 100644 test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library.source.less create mode 100644 test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library_skeleton-RTL.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library_skeleton.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables/test-resources/theme/library/e/Test.html delete mode 100644 test/fixtures/theme.library.e/src/theme/library/e/my_theme/library.source.less rename test/fixtures/theme.library.e/src/theme/library/e/{ => themes}/my_theme/.theme (100%) create mode 100644 test/fixtures/theme.library.e/src/theme/library/e/themes/my_theme/.theming create mode 100644 test/fixtures/theme.library.e/src/theme/library/e/themes/my_theme/library.source.less diff --git a/lib/builder/BuildContext.js b/lib/builder/BuildContext.js index e445602dc..6ed64a0ab 100644 --- a/lib/builder/BuildContext.js +++ b/lib/builder/BuildContext.js @@ -15,22 +15,26 @@ const GLOBAL_TAGS = Object.freeze({ * @memberof module:@ui5/builder.builder */ class BuildContext { - constructor({rootProject}) { + constructor({rootProject, options = {}}) { if (!rootProject) { throw new Error(`Missing parameter 'rootProject'`); } this.rootProject = rootProject; this.projectBuildContexts = []; - this._resourceTagCollection = new ResourceTagCollection({ allowedTags: Object.values(GLOBAL_TAGS) }); + this.options = options; } getRootProject() { return this.rootProject; } + getOption(key) { + return this.options[key]; + } + createProjectContext({project, resources}) { const projectBuildContext = new ProjectBuildContext({ buildContext: this, diff --git a/lib/builder/ProjectBuildContext.js b/lib/builder/ProjectBuildContext.js index fc1a1c426..5f8bc5ab1 100644 --- a/lib/builder/ProjectBuildContext.js +++ b/lib/builder/ProjectBuildContext.js @@ -39,6 +39,10 @@ class ProjectBuildContext { return this._project === this._buildContext.getRootProject(); } + getOption(key) { + return this._buildContext.getOption(key); + } + registerCleanupTask(callback) { this.queues.cleanup.push(callback); } diff --git a/lib/builder/builder.js b/lib/builder/builder.js index d48d9f527..e32137529 100644 --- a/lib/builder/builder.js +++ b/lib/builder/builder.js @@ -224,6 +224,7 @@ module.exports = { * @param {boolean} [parameters.dev=false] * Decides whether a development build should be activated (skips non-essential and time-intensive tasks) * @param {boolean} [parameters.selfContained=false] Flag to activate self contained build + * @param {boolean} [parameters.cssVariables=false] Flag to activate CSS variables generation * @param {boolean} [parameters.jsdoc=false] Flag to activate JSDoc build * @param {Array.} [parameters.includedTasks=[]] List of tasks to be included * @param {Array.} [parameters.excludedTasks=[]] List of tasks to be excluded. @@ -234,7 +235,7 @@ module.exports = { async build({ tree, destPath, cleanDest = false, buildDependencies = false, includedDependencies = [], excludedDependencies = [], - dev = false, selfContained = false, jsdoc = false, + dev = false, selfContained = false, cssVariables = false, jsdoc = false, includedTasks = [], excludedTasks = [], devExcludeProject = [] }) { const startTime = process.hrtime(); @@ -249,7 +250,12 @@ module.exports = { virBasePath: "/" }); - const buildContext = new BuildContext({rootProject: tree}); + const buildContext = new BuildContext({ + rootProject: tree, + options: { + cssVariables: cssVariables + } + }); const cleanupSigHooks = registerCleanupSigHooks(buildContext); const projects = {}; // Unique project index to prevent building the same project multiple times diff --git a/lib/tasks/TaskUtil.js b/lib/tasks/TaskUtil.js index 9e397a62e..f751617c5 100644 --- a/lib/tasks/TaskUtil.js +++ b/lib/tasks/TaskUtil.js @@ -108,6 +108,18 @@ class TaskUtil { return this._projectBuildContext.isRootProject(); } + /** + * Retrieves a build option defined by its keykey is stored, undefined is returned. + * + * @param {string} key The option key + * @returns {any|undefined} The build option (or undefined) + * @private + */ + getBuildOption(key) { + return this._projectBuildContext.getOption(key); + } + /** * Register a function that must be executed once the build is finished. This can be used to, for example, * clean up files temporarily created on the file system. If the callback returns a Promise, it will be waited for. diff --git a/lib/types/library/LibraryBuilder.js b/lib/types/library/LibraryBuilder.js index 13e322217..01c79e96a 100644 --- a/lib/types/library/LibraryBuilder.js +++ b/lib/types/library/LibraryBuilder.js @@ -198,7 +198,8 @@ class LibraryBuilder extends AbstractBuilder { projectName: project.metadata.name, librariesPattern: !taskUtil.isRootProject() ? "/resources/**/(*.library|library.js)" : undefined, themesPattern: !taskUtil.isRootProject() ? "/resources/sap/ui/core/themes/*" : undefined, - inputPattern + inputPattern, + cssVariables: taskUtil.getBuildOption("cssVariables") } }); }); diff --git a/lib/types/themeLibrary/ThemeLibraryBuilder.js b/lib/types/themeLibrary/ThemeLibraryBuilder.js index 1404357a1..e9de714c8 100644 --- a/lib/types/themeLibrary/ThemeLibraryBuilder.js +++ b/lib/types/themeLibrary/ThemeLibraryBuilder.js @@ -31,7 +31,8 @@ class ThemeLibraryBuilder extends AbstractBuilder { projectName: project.metadata.name, librariesPattern: !taskUtil.isRootProject() ? "/resources/**/(*.library|library.js)" : undefined, themesPattern: !taskUtil.isRootProject() ? "/resources/sap/ui/core/themes/*" : undefined, - inputPattern: "/resources/**/themes/*/library.source.less" + inputPattern: "/resources/**/themes/*/library.source.less", + cssVariables: taskUtil.getBuildOption("cssVariables") } }); }); diff --git a/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/Button.less b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/Button.less new file mode 100644 index 000000000..ca968183f --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/Button.less @@ -0,0 +1,3 @@ +.someClass { + color: @someColor +} diff --git a/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/css_variables.css b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/css_variables.css new file mode 100644 index 000000000..6232d9e35 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/css_variables.css @@ -0,0 +1,3 @@ +:root{--someColor:#000} +/* Inline theming parameters */ +#sap-ui-theme-theme\.j{background-image:url('data:text/plain;utf-8,%7B%22someColor%22%3A%22%23000%22%7D')} diff --git a/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/css_variables.source.less b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/css_variables.source.less new file mode 100644 index 000000000..5a6ce08e9 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/css_variables.source.less @@ -0,0 +1,5 @@ +@someColor: #000000; + +:root { +--someColor: @someColor; +} diff --git a/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library-RTL.css b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library-RTL.css new file mode 100644 index 000000000..5009ca50e --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library-RTL.css @@ -0,0 +1,3 @@ +.someClass{color:#000} +/* Inline theming parameters */ +#sap-ui-theme-theme\.j{background-image:url('data:text/plain;utf-8,%7B%22someColor%22%3A%22%23000%22%7D')} diff --git a/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library-parameters.json b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library-parameters.json new file mode 100644 index 000000000..a190cda03 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library-parameters.json @@ -0,0 +1 @@ +{"someColor":"#000"} \ No newline at end of file diff --git a/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library.css b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library.css new file mode 100644 index 000000000..5009ca50e --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library.css @@ -0,0 +1,3 @@ +.someClass{color:#000} +/* Inline theming parameters */ +#sap-ui-theme-theme\.j{background-image:url('data:text/plain;utf-8,%7B%22someColor%22%3A%22%23000%22%7D')} diff --git a/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library.source.less b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library.source.less new file mode 100644 index 000000000..834de919e --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library.source.less @@ -0,0 +1,2 @@ +@someColor: black; +@import "Button.less"; diff --git a/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css new file mode 100644 index 000000000..7db086289 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css @@ -0,0 +1 @@ +.someClass{color:var(--someColor)} \ No newline at end of file diff --git a/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library_skeleton.css b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library_skeleton.css new file mode 100644 index 000000000..7db086289 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables/resources/theme/j/themes/somefancytheme/library_skeleton.css @@ -0,0 +1 @@ +.someClass{color:var(--someColor)} \ No newline at end of file diff --git a/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/.theme b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/.theme new file mode 100644 index 000000000..4b4b1cf98 --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/.theme @@ -0,0 +1,9 @@ + + + + my_theme + me + Some fancy copyright + 1.0.0 + + \ No newline at end of file diff --git a/test/fixtures/theme.library.e/src/theme/library/e/my_theme/.theming b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/.theming similarity index 100% rename from test/fixtures/theme.library.e/src/theme/library/e/my_theme/.theming rename to test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/.theming diff --git a/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/css_variables.css b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/css_variables.css new file mode 100644 index 000000000..48bb66a3e --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/css_variables.css @@ -0,0 +1,3 @@ +:root{--mycolor:#00f} +/* Inline theming parameters */ +#sap-ui-theme-theme\.library\.e{background-image:url('data:text/plain;utf-8,%7B%22mycolor%22%3A%22%2300f%22%7D')} diff --git a/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/css_variables.source.less b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/css_variables.source.less new file mode 100644 index 000000000..28ed8727a --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/css_variables.source.less @@ -0,0 +1,5 @@ +@mycolor: #0000ff; + +:root { +--mycolor: @mycolor; +} diff --git a/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library-RTL.css b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library-RTL.css new file mode 100644 index 000000000..5eac03f06 --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library-RTL.css @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */.sapUiBody{background-color:#00f} +/* Inline theming parameters */ +#sap-ui-theme-theme\.library\.e{background-image:url('data:text/plain;utf-8,%7B%22mycolor%22%3A%22%2300f%22%7D')} diff --git a/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library-parameters.json b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library-parameters.json new file mode 100644 index 000000000..a0c491380 --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library-parameters.json @@ -0,0 +1 @@ +{"mycolor":"#00f"} \ No newline at end of file diff --git a/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library.css b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library.css new file mode 100644 index 000000000..5eac03f06 --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library.css @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */.sapUiBody{background-color:#00f} +/* Inline theming parameters */ +#sap-ui-theme-theme\.library\.e{background-image:url('data:text/plain;utf-8,%7B%22mycolor%22%3A%22%2300f%22%7D')} diff --git a/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library.source.less b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library.source.less new file mode 100644 index 000000000..d864e666d --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library.source.less @@ -0,0 +1,9 @@ +/*! + * Some fancy copyright + */ + +@mycolor: blue; + +.sapUiBody { + background-color: @mycolor; +} diff --git a/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library_skeleton-RTL.css b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library_skeleton-RTL.css new file mode 100644 index 000000000..654b3877e --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library_skeleton-RTL.css @@ -0,0 +1,3 @@ +/*! + * Some fancy copyright + */.sapUiBody{background-color:var(--mycolor)} \ No newline at end of file diff --git a/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library_skeleton.css b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library_skeleton.css new file mode 100644 index 000000000..654b3877e --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables/resources/theme/library/e/themes/my_theme/library_skeleton.css @@ -0,0 +1,3 @@ +/*! + * Some fancy copyright + */.sapUiBody{background-color:var(--mycolor)} \ No newline at end of file diff --git a/test/expected/build/theme.library.e/dest-css-variables/test-resources/theme/library/e/Test.html b/test/expected/build/theme.library.e/dest-css-variables/test-resources/theme/library/e/Test.html new file mode 100644 index 000000000..e69de29bb diff --git a/test/fixtures/theme.library.e/src/theme/library/e/my_theme/library.source.less b/test/fixtures/theme.library.e/src/theme/library/e/my_theme/library.source.less deleted file mode 100644 index ba66d46d7..000000000 --- a/test/fixtures/theme.library.e/src/theme/library/e/my_theme/library.source.less +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * ${copyright} - */ - -* { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-touch-callout: none; - -webkit-text-size-adjust: none; - -ms-text-size-adjust: none; -} - -.sapUiBody { - width: 100%; - height: 100%; - margin: 0; - font-family: @sapUiFontFamily; - font-size: 1rem; -} diff --git a/test/fixtures/theme.library.e/src/theme/library/e/my_theme/.theme b/test/fixtures/theme.library.e/src/theme/library/e/themes/my_theme/.theme similarity index 100% rename from test/fixtures/theme.library.e/src/theme/library/e/my_theme/.theme rename to test/fixtures/theme.library.e/src/theme/library/e/themes/my_theme/.theme diff --git a/test/fixtures/theme.library.e/src/theme/library/e/themes/my_theme/.theming b/test/fixtures/theme.library.e/src/theme/library/e/themes/my_theme/.theming new file mode 100644 index 000000000..83b6c785a --- /dev/null +++ b/test/fixtures/theme.library.e/src/theme/library/e/themes/my_theme/.theming @@ -0,0 +1,27 @@ +{ + "sEntity": "Theme", + "sId": "sap_belize", + "oExtends": "base", + "sVendor": "SAP", + "aBundled": ["sap_belize_plus"], + "mCssScopes": { + "library": { + "sBaseFile": "library", + "sEmbeddingMethod": "APPEND", + "aScopes": [ + { + "sLabel": "Contrast", + "sSelector": "sapContrast", + "sEmbeddedFile": "sap_belize_plus.library", + "sEmbeddedCompareFile": "library", + "sThemeIdSuffix": "Contrast", + "sThemability": "PUBLIC", + "aThemabilityFilter": [ + "Color" + ], + "rExcludeSelector": "\\.sapContrastPlus\\W" + } + ] + } + } +} diff --git a/test/fixtures/theme.library.e/src/theme/library/e/themes/my_theme/library.source.less b/test/fixtures/theme.library.e/src/theme/library/e/themes/my_theme/library.source.less new file mode 100644 index 000000000..d3286002b --- /dev/null +++ b/test/fixtures/theme.library.e/src/theme/library/e/themes/my_theme/library.source.less @@ -0,0 +1,9 @@ +/*! + * ${copyright} + */ + +@mycolor: blue; + +.sapUiBody { + background-color: @mycolor; +} diff --git a/test/lib/builder/BuildContext.js b/test/lib/builder/BuildContext.js index 7b6af6aea..83af09a80 100644 --- a/test/lib/builder/BuildContext.js +++ b/test/lib/builder/BuildContext.js @@ -25,6 +25,25 @@ test("getRootProject", (t) => { t.is(buildContext.getRootProject(), "pony", "Returned correct value"); }); +test("getBuildOption", (t) => { + const buildContext = new BuildContext({ + rootProject: "root_project", + options: { + a: true, + b: "Pony", + c: 235, + d: { + d1: "Bee" + } + } + }); + + t.is(buildContext.getOption("a"), true, "Returned 'boolean' value is correct"); + t.is(buildContext.getOption("b"), "Pony", "Returned 'String' value is correct"); + t.is(buildContext.getOption("c"), 235, "Returned 'Number' value is correct"); + t.deepEqual(buildContext.getOption("d"), {d1: "Bee"}, "Returned 'object' value is correct"); +}); + test.serial("createProjectContext", (t) => { class DummyProjectContext { constructor({buildContext, project, resources, globalTags}) { diff --git a/test/lib/builder/ProjectBuildContext.js b/test/lib/builder/ProjectBuildContext.js index 911ef92a0..987318d7b 100644 --- a/test/lib/builder/ProjectBuildContext.js +++ b/test/lib/builder/ProjectBuildContext.js @@ -56,6 +56,20 @@ test("isRootProject: false", (t) => { t.false(projectBuildContext.isRootProject(), "Correctly identified non-root project"); }); +test("getBuildOption", (t) => { + const projectBuildContext = new ProjectBuildContext({ + buildContext: { + getOption: () => "Pony", + getResourceTagCollection: () => t.context.resourceTagCollection + }, + globalTags: {MyTag: "me:MyTag"}, + project: "my project", + resources: "resources" + }); + + t.deepEqual(projectBuildContext.getOption("a"), "Pony", "Returned value is correct"); +}); + test("registerCleanupTask", (t) => { const projectBuildContext = new ProjectBuildContext({ buildContext: { diff --git a/test/lib/builder/builder.js b/test/lib/builder/builder.js index 6b9403a1a..1561f4e80 100644 --- a/test/lib/builder/builder.js +++ b/test/lib/builder/builder.js @@ -31,6 +31,7 @@ const libraryØPath = path.join(__dirname, "..", "..", "fixtures", "library.ø") const libraryCore = path.join(__dirname, "..", "..", "fixtures", "sap.ui.core-evo"); const libraryCoreBuildtime = path.join(__dirname, "..", "..", "fixtures", "sap.ui.core-buildtime"); const themeJPath = path.join(__dirname, "..", "..", "fixtures", "theme.j"); +const themeLibraryEPath = path.join(__dirname, "..", "..", "fixtures", "theme.library.e"); const recursive = require("recursive-readdir"); @@ -111,9 +112,11 @@ test.serial("Build", async (t) => { getTag: getTagStub }); const isRootProjectStub = sinon.stub().returns(true); + const getOptionStub = sinon.stub().returns("Pony"); const dummyProjectContext = { getResourceTagCollection: getResourceTagCollectionStub, isRootProject: isRootProjectStub, + getOption: getOptionStub, STANDARD_TAGS: { OmitFromBuildResult: "👻" } @@ -930,6 +933,44 @@ test.serial("Build library.coreBuildtime: replaceBuildtime", (t) => { }); }); +test.serial("Build library with theme configured for CSS variables", (t) => { + const destPath = "./test/tmp/build/theme.j/dest-css-variables"; + const expectedPath = "./test/expected/build/theme.j/dest-css-variables"; + return builder.build({ + tree: themeJTree, + cssVariables: true, + destPath + }).then(() => { + return findFiles(expectedPath); + }).then((expectedFiles) => { + // Check for all directories and files + assert.directoryDeepEqual(destPath, expectedPath); + + return checkFileContentsIgnoreLineFeeds(t, expectedFiles, expectedPath, destPath); + }).then(() => { + t.pass(); + }); +}); + +test.serial("Build theme-library with CSS variables", (t) => { + const destPath = "./test/tmp/build/theme.library.e/dest-css-variables"; + const expectedPath = "./test/expected/build/theme.library.e/dest-css-variables"; + return builder.build({ + tree: themeLibraryETree, + cssVariables: true, + destPath + }).then(() => { + return findFiles(expectedPath); + }).then((expectedFiles) => { + // Check for all directories and files + assert.directoryDeepEqual(destPath, expectedPath); + + return checkFileContentsIgnoreLineFeeds(t, expectedFiles, expectedPath, destPath); + }).then(() => { + t.pass(); + }); +}); + test.serial("Cleanup", async (t) => { const BuildContext = require("../../../lib/builder/BuildContext"); const createProjectContextStub = sinon.spy(BuildContext.prototype, "createProjectContext"); @@ -1939,3 +1980,31 @@ const themeJTree = { } } }; + +const themeLibraryETree = { + "id": "theme.library.e.id", + "version": "1.0.0", + "path": themeLibraryEPath, + "dependencies": [], + "_level": 0, + "_isRoot": true, + "specVersion": "1.1", + "type": "theme-library", + "metadata": { + "name": "theme.library.e", + "namespace": "theme/library/e", + "copyright": "Some fancy copyright" + }, + "resources": { + "configuration": { + "paths": { + "src": "src", + "test": "test" + } + }, + "pathMappings": { + "/resources/": "src", + "/test-resources/": "test" + } + } +}; diff --git a/test/lib/tasks/TaskUtil.js b/test/lib/tasks/TaskUtil.js index 5f2aba82c..cdb2c3dc5 100644 --- a/test/lib/tasks/TaskUtil.js +++ b/test/lib/tasks/TaskUtil.js @@ -93,6 +93,21 @@ test("isRootProject", async (t) => { t.is(res, true, "Correct result"); }); +test("getBuildOption", (t) => { + const getOptionStub = sinon.stub().returns("Pony"); + const taskUtil = new TaskUtil({ + projectBuildContext: { + STANDARD_TAGS: ["some tag"], + getOption: getOptionStub + } + }); + + const res = taskUtil.getBuildOption("friend"); + + t.is(getOptionStub.callCount, 1, "ProjectBuildContext#getBuildOption got called once"); + t.is(res, "Pony", "Correct result"); +}); + test("registerCleanupTask", async (t) => { const registerCleanupTaskStub = sinon.stub(); const taskUtil = new TaskUtil({ diff --git a/test/lib/types/themeLibrary/ThemeLibraryBuilder.js b/test/lib/types/themeLibrary/ThemeLibraryBuilder.js index 687d77966..a20bad8f3 100644 --- a/test/lib/types/themeLibrary/ThemeLibraryBuilder.js +++ b/test/lib/types/themeLibrary/ThemeLibraryBuilder.js @@ -44,6 +44,9 @@ test("tasks", async (t) => { taskUtil: { isRootProject: () => { return true; + }, + getBuildOption: (key) => { + return key; } } }); From 1369dc5efe736e63fc182402e42883109d505506 Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Tue, 5 Apr 2022 12:31:12 +0000 Subject: [PATCH 62/74] Release 3.0.0-alpha.4 --- CHANGELOG.md | 9 ++++++++- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3c5d568e..ff5e3136f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,13 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.3...HEAD). +A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.4...HEAD). + + +## [v3.0.0-alpha.4] - 2022-04-05 +### Features +- **builder:** Add cssVariables option ([#728](https://github.com/SAP/ui5-builder/issues/728)) [`30d58e1`](https://github.com/SAP/ui5-builder/commit/30d58e1081c1bdc665f13952ecbe5c400b5f4ed7) + ## [v3.0.0-alpha.3] - 2022-03-10 @@ -693,6 +699,7 @@ to load the custom bundle file instead. - Add ability to configure component preloads and custom bundles [`2241e5f`](https://github.com/SAP/ui5-builder/commit/2241e5ff98fd95f1f80cc74959655ae7a9c660e7) +[v3.0.0-alpha.4]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.3...v3.0.0-alpha.4 [v3.0.0-alpha.3]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.2...v3.0.0-alpha.3 [v3.0.0-alpha.2]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.1...v3.0.0-alpha.2 [v3.0.0-alpha.1]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.0...v3.0.0-alpha.1 diff --git a/package-lock.json b/package-lock.json index a48463039..0db0cfee3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.3", + "version": "3.0.0-alpha.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ui5/builder", - "version": "3.0.0-alpha.3", + "version": "3.0.0-alpha.4", "license": "Apache-2.0", "dependencies": { "@ui5/fs": "^3.0.0-alpha.2", diff --git a/package.json b/package.json index 58aafc8cb..fc7d615ca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.3", + "version": "3.0.0-alpha.4", "description": "UI5 Tooling - Builder", "author": { "name": "SAP SE", From d2c269f037946b1bbfce2589c44544e310cf1921 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Tue, 29 Mar 2022 10:29:07 +0200 Subject: [PATCH 63/74] [INTERNAL] ApplicationBuilder: Align task order of "minify" In the LibraryBuilder the task is executed before the generateManifestBundle and before any of the bundle tasks. Therefore, the minify task should be executed right after the replaceVersion task. --- lib/types/application/ApplicationBuilder.js | 42 +++++++++---------- .../types/application/ApplicationBuilder.js | 10 ++--- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/lib/types/application/ApplicationBuilder.js b/lib/types/application/ApplicationBuilder.js index d82d05a8b..debd7fb01 100644 --- a/lib/types/application/ApplicationBuilder.js +++ b/lib/types/application/ApplicationBuilder.js @@ -43,6 +43,27 @@ class ApplicationBuilder extends AbstractBuilder { }); }); + // Support rules should not be minified to have readable code in the Support Assistant + const minificationPattern = ["/**/*.js", "!**/*.support.js"]; + if (["2.6"].includes(project.specVersion)) { + const minificationExcludes = project.builder && project.builder.minification && + project.builder.minification.excludes; + if (minificationExcludes) { + // TODO 3.0: namespaces should become mandatory, see existing check above + const patternPrefix = project.metadata.namespace ? "/resources/" : "/"; + this.enhancePatternWithExcludes(minificationPattern, minificationExcludes, patternPrefix); + } + } + this.addTask("minify", async () => { + return getTask("minify").task({ + workspace: resourceCollections.workspace, + taskUtil, + options: { + pattern: minificationPattern + } + }); + }); + this.addTask("generateFlexChangesBundle", async () => { const generateFlexChangesBundle = getTask("generateFlexChangesBundle").task; return generateFlexChangesBundle({ @@ -67,27 +88,6 @@ class ApplicationBuilder extends AbstractBuilder { }); } - // Support rules should not be minified to have readable code in the Support Assistant - const minificationPattern = ["/**/*.js", "!**/*.support.js"]; - if (["2.6"].includes(project.specVersion)) { - const minificationExcludes = project.builder && project.builder.minification && - project.builder.minification.excludes; - if (minificationExcludes) { - // TODO 3.0: namespaces should become mandatory, see existing check above - const patternPrefix = project.metadata.namespace ? "/resources/" : "/"; - this.enhancePatternWithExcludes(minificationPattern, minificationExcludes, patternPrefix); - } - } - this.addTask("minify", async () => { - return getTask("minify").task({ - workspace: resourceCollections.workspace, - taskUtil, - options: { - pattern: minificationPattern - } - }); - }); - const componentPreload = project.builder && project.builder.componentPreload; if (componentPreload && (componentPreload.namespaces || componentPreload.paths)) { this.addTask("generateComponentPreload", async () => { diff --git a/test/lib/types/application/ApplicationBuilder.js b/test/lib/types/application/ApplicationBuilder.js index 4bf00ac38..0e6185d6b 100644 --- a/test/lib/types/application/ApplicationBuilder.js +++ b/test/lib/types/application/ApplicationBuilder.js @@ -60,9 +60,9 @@ test("Instantiation", (t) => { "escapeNonAsciiCharacters", "replaceCopyright", "replaceVersion", + "minify", "generateFlexChangesBundle", "generateManifestBundle", - "minify", "generateComponentPreload", "generateStandaloneAppBundle", "transformBootstrapHtml", @@ -83,9 +83,9 @@ test("Instantiation without component preload project configuration", (t) => { "escapeNonAsciiCharacters", "replaceCopyright", "replaceVersion", + "minify", "generateFlexChangesBundle", "generateManifestBundle", - "minify", "generateComponentPreload", "generateStandaloneAppBundle", "transformBootstrapHtml", @@ -107,8 +107,8 @@ test("Instantiation without project namespace", (t) => { "escapeNonAsciiCharacters", "replaceCopyright", "replaceVersion", - "generateFlexChangesBundle", "minify", + "generateFlexChangesBundle", "generateStandaloneAppBundle", "transformBootstrapHtml", "generateBundle", @@ -131,10 +131,10 @@ test("Instantiation with custom tasks", (t) => { "replaceCopyright", "minify--1", "replaceVersion", - "generateFlexChangesBundle", - "generateManifestBundle", "minify", "replaceVersion--1", + "generateFlexChangesBundle", + "generateManifestBundle", "generateComponentPreload", "generateStandaloneAppBundle", "transformBootstrapHtml", From aea061d9d6c2ac0c11484dcc08bdcda23ab62986 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Tue, 12 Apr 2022 17:33:28 +0200 Subject: [PATCH 64/74] [FIX] LibraryBuilder: Align task order of "generateComponentPreload" Task should be executed after generateManifestBundle, to align with the current documentation and ApplicationBuilder implementation. BREAKING CHANGE: For library projects, the task "generateComponentPreload" is now executed after tasks "generateLibraryManifest" and "generateManifestBundle" instead of before them. --- lib/types/library/LibraryBuilder.js | 34 +++--- test/lib/types/library/LibraryBuilder.js | 129 ++++++++++++++++++++++- 2 files changed, 143 insertions(+), 20 deletions(-) diff --git a/lib/types/library/LibraryBuilder.js b/lib/types/library/LibraryBuilder.js index 01c79e96a..34236bbb0 100644 --- a/lib/types/library/LibraryBuilder.js +++ b/lib/types/library/LibraryBuilder.js @@ -109,23 +109,6 @@ class LibraryBuilder extends AbstractBuilder { }); }); - const componentPreload = project.builder && project.builder.componentPreload; - if (componentPreload) { - this.addTask("generateComponentPreload", async () => { - return getTask("generateComponentPreload").task({ - workspace: resourceCollections.workspace, - dependencies: resourceCollections.dependencies, - taskUtil, - options: { - projectName: project.metadata.name, - paths: componentPreload.paths, - namespaces: componentPreload.namespaces, - excludes: componentPreload.excludes - } - }); - }); - } - this.addTask("generateLibraryManifest", async () => { return getTask("generateLibraryManifest").task({ workspace: resourceCollections.workspace, @@ -150,6 +133,23 @@ class LibraryBuilder extends AbstractBuilder { }); } + const componentPreload = project.builder && project.builder.componentPreload; + if (componentPreload) { + this.addTask("generateComponentPreload", async () => { + return getTask("generateComponentPreload").task({ + workspace: resourceCollections.workspace, + dependencies: resourceCollections.dependencies, + taskUtil, + options: { + projectName: project.metadata.name, + paths: componentPreload.paths, + namespaces: componentPreload.namespaces, + excludes: componentPreload.excludes + } + }); + }); + } + this.addTask("generateLibraryPreload", async () => { return getTask("generateLibraryPreload").task({ workspace: resourceCollections.workspace, diff --git a/test/lib/types/library/LibraryBuilder.js b/test/lib/types/library/LibraryBuilder.js index 4afcbbac7..2baadc5f5 100644 --- a/test/lib/types/library/LibraryBuilder.js +++ b/test/lib/types/library/LibraryBuilder.js @@ -11,9 +11,9 @@ function clone(o) { test("Instantiation", (t) => { const project = clone(libraryETree); - const appBuilder = new LibraryBuilder({parentLogger, project}); - t.truthy(appBuilder); - t.deepEqual(appBuilder.taskExecutionOrder, [ + const libraryBuilder = new LibraryBuilder({parentLogger, project}); + t.truthy(libraryBuilder); + t.deepEqual(libraryBuilder.taskExecutionOrder, [ "escapeNonAsciiCharacters", "replaceCopyright", "replaceVersion", @@ -30,6 +30,29 @@ test("Instantiation", (t) => { ], "LibraryBuilder is instantiated with standard tasks"); }); +test("Instantiation of project with sub-components and custom bundle", (t) => { + const project = clone(libraryHTree); + const libraryBuilder = new LibraryBuilder({parentLogger, project}); + t.truthy(libraryBuilder); + t.deepEqual(libraryBuilder.taskExecutionOrder, [ + "escapeNonAsciiCharacters", + "replaceCopyright", + "replaceVersion", + "replaceBuildtime", + "generateJsdoc", + "executeJsdocSdkTransformation", + "minify", + "generateLibraryManifest", + "generateManifestBundle", + "generateComponentPreload", + "generateLibraryPreload", + "generateBundle", + "buildThemes", + "generateThemeDesignerResources", + "generateResourcesJson" + ], "LibraryBuilder is instantiated with standard tasks"); +}); + const libraryEPath = path.join(__dirname, "..", "..", "..", "fixtures", "library.e"); const libraryETree = { id: "library.e.id", @@ -54,3 +77,103 @@ const libraryETree = { } } }; + +const libraryHPath = path.join(__dirname, "..", "..", "..", "fixtures", "library.h"); + +const libraryHTree = { + "id": "library.h", + "version": "1.0.0", + "path": libraryHPath, + "dependencies": [], + "_level": 0, + "_isRoot": true, + "specVersion": "0.1", + "type": "library", + "metadata": { + "name": "library.h", + "namespace": "library/h", + "copyright": "Some fancy copyright" + }, + "resources": { + "configuration": { + "paths": { + "src": "main/src", + "test": "main/test" + }, + "propertiesFileSourceEncoding": "ISO-8859-1" + }, + "pathMappings": { + "/resources/": "main/src", + "/test-resources/": "main/test" + } + }, + "builder": { + "bundles": [{ + "bundleDefinition": { + "name": "library/h/customBundle.js", + "defaultFileTypes": [".js"], + "sections": [{ + "mode": "preload", + "filters": [ + "library/h/some.js", + "library/h/library.js", + "library/h/fi*.js", + "!library/h/components/" + ], + "resolve": false, + "renderer": false + }, { + "mode": "raw", + "filters": [ + "library/h/not.js" + ], + "resolve": true, + "declareModules": false, + "sort": true, + "renderer": false + }] + }, + "bundleOptions": { + "optimize": true, + "usePredefinedCalls": true + } + }, { + "bundleDefinition": { + "name": "library/h/customBundle-dbg.js", + "defaultFileTypes": [".js"], + "sections": [{ + "mode": "preload", + "filters": [ + "library/h/some.js", + "library/h/library.js", + "library/h/fi*.js", + "!library/h/components/" + ], + "resolve": false, + "renderer": false + }, { + "mode": "raw", + "filters": [ + "library/h/not.js" + ], + "resolve": true, + "declareModules": false, + "sort": true, + "renderer": false + }] + }, + "bundleOptions": { + "optimize": false, + "usePredefinedCalls": true + } + }], + "componentPreload": { + "namespaces": [ + "library/h/components", + "library/h/components/subcomponent1", + "library/h/components/subcomponent2", + "library/h/components/subcomponent3" + ] + } + } +}; From 34e69be95fc8ec1961b24b7e2580c2c993d814d3 Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Thu, 14 Apr 2022 10:35:23 +0200 Subject: [PATCH 65/74] [FEATURE] generateThemeDesignerResources task: Create css_variables.less (#730) BLI: CPOUI5FOUNDATION-487 --- lib/tasks/generateThemeDesignerResources.js | 110 ++++++ .../resources/theme/j/.theming | 5 + .../theme/j/themes/somefancytheme/.theming | 6 + .../theme/j/themes/somefancytheme/Button.less | 3 + .../j/themes/somefancytheme/css_variables.css | 3 + .../themes/somefancytheme/css_variables.less | 14 + .../somefancytheme/css_variables.source.less | 5 + .../j/themes/somefancytheme/library-RTL.css | 3 + .../somefancytheme/library-parameters.json | 1 + .../theme/j/themes/somefancytheme/library.css | 3 + .../j/themes/somefancytheme/library.less | 10 + .../themes/somefancytheme/library.source.less | 2 + .../somefancytheme/library_skeleton-RTL.css | 1 + .../somefancytheme/library_skeleton.css | 1 + .../theme/library/e/themes/my_theme/.theme | 9 + .../theme/library/e/themes/my_theme/.theming | 6 + .../e/themes/my_theme/css_variables.css | 3 + .../e/themes/my_theme/css_variables.less | 14 + .../themes/my_theme/css_variables.source.less | 5 + .../library/e/themes/my_theme/library-RTL.css | 5 + .../e/themes/my_theme/library-parameters.json | 1 + .../library/e/themes/my_theme/library.css | 5 + .../library/e/themes/my_theme/library.less | 11 + .../e/themes/my_theme/library.source.less | 9 + .../themes/my_theme/library_skeleton-RTL.css | 3 + .../e/themes/my_theme/library_skeleton.css | 3 + .../test-resources/theme/library/e/Test.html | 0 test/lib/builder/builder.js | 40 +++ .../tasks/generateThemeDesignerResources.js | 323 ++++++++++++++++++ 29 files changed, 604 insertions(+) create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/.theming create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/.theming create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/Button.less create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.css create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.less create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.source.less create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-RTL.css create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-parameters.json create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.css create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.less create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.source.less create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css create mode 100644 test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/.theme create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/.theming create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.less create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.source.less create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library-RTL.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library-parameters.json create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.less create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.source.less create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library_skeleton-RTL.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library_skeleton.css create mode 100644 test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/test-resources/theme/library/e/Test.html diff --git a/lib/tasks/generateThemeDesignerResources.js b/lib/tasks/generateThemeDesignerResources.js index 94cf720b6..f8f75c4fa 100644 --- a/lib/tasks/generateThemeDesignerResources.js +++ b/lib/tasks/generateThemeDesignerResources.js @@ -3,6 +3,37 @@ const log = require("@ui5/logger").getLogger("builder:tasks:generateThemeDesigne const libraryLessGenerator = require("../processors/libraryLessGenerator"); const {ReaderCollectionPrioritized, Resource, fsInterface} = require("@ui5/fs"); +/** + * Returns a relative path from the given themeFolder to the root namespace. + * + * When combining the given themeFolder with the returned relative path it + * resolves to "/resources/". However the "/resources/" part is not important + * here as it doesn't exist within the theming engine environment where the + * UI5 resources are part of a "UI5" folder (e.g. "UI5/sap/ui/core/") that + * is next to a "Base" folder. + * + * @example + * getPathToRoot("/resources/sap/ui/foo/themes/base") + * > "../../../../../" + * + * @param {string} themeFolder Virtual path including /resources/ + * @returns {string} Relative path to root namespace + */ +function getPathToRoot(themeFolder) { + // -2 for initial "/"" and "resources/" + return "../".repeat(themeFolder.split("/").length - 2); +} + +/** + * Generates an less import statement for the given filePath + * + * @param {string} filePath The path to the desired file + * @returns {string} The less import statement + */ +function lessImport(filePath) { + return `@import "${filePath}";\n`; +} + function generateLibraryDotTheming({namespace, version, hasThemes}) { const dotTheming = { sEntity: "Library", @@ -80,6 +111,82 @@ async function generateThemeDotTheming({workspace, combo, themeFolder}) { return newDotThemingResource; } +async function createCssVariablesLessResource({workspace, combo, themeFolder}) { + const pathToRoot = getPathToRoot(themeFolder); + const cssVariablesSourceLessFile = "css_variables.source.less"; + const cssVariablesLessFile = "css_variables.less"; + + // posix as it is a virtual path (separated with /) + const themeName = posixPath.basename(themeFolder); + // The "base" theme of the baseLib is called "baseTheme" + const baseLibThemeName = themeName === "base" ? "baseTheme" : themeName; + + // Some themes do not have a base.less file (e.g. sap_hcb) + const hasBaseLess = !!(await combo.byPath(`/resources/sap/ui/core/themes/${themeName}/base.less`)); + + let cssVariablesLess = +`/* NOTE: This file was generated as an optimized version of "${cssVariablesSourceLessFile}" \ +for the Theme Designer. */\n\n`; + + if (themeName !== "base") { + const cssVariablesSourceLessResource = await workspace.byPath( + posixPath.join(themeFolder, cssVariablesSourceLessFile) + ); + + if (!cssVariablesSourceLessResource) { + throw new Error(`Could not find file "${cssVariablesSourceLessFile}" in theme "${themeFolder}"`); + } + + const cssVariablesSourceLess = await cssVariablesSourceLessResource.getString(); + + cssVariablesLess += lessImport(`../base/${cssVariablesLessFile}`); + cssVariablesLess += ` +/* START "${cssVariablesSourceLessFile}" */ +${cssVariablesSourceLess} +/* END "${cssVariablesSourceLessFile}" */ + +`; + } + + if (hasBaseLess) { + cssVariablesLess += lessImport(`${pathToRoot}../Base/baseLib/${baseLibThemeName}/base.less`); + } + cssVariablesLess += lessImport(`${pathToRoot}sap/ui/core/themes/${themeName}/global.less`); + + return new Resource({ + path: posixPath.join(themeFolder, cssVariablesLessFile), + string: cssVariablesLess + }); +} + +async function generateCssVariablesLess({workspace, combo, namespace}) { + let cssVariablesSourceLessResourcePattern; + if (namespace) { + // In case of a library only check for themes directly below the namespace + cssVariablesSourceLessResourcePattern = `/resources/${namespace}/themes/*/css_variables.source.less`; + } else { + // In case of a theme-library check for all "themes" + cssVariablesSourceLessResourcePattern = `/resources/**/themes/*/css_variables.source.less`; + } + + const cssVariablesSourceLessResource = await workspace.byGlob(cssVariablesSourceLessResourcePattern); + + const hasCssVariables = cssVariablesSourceLessResource.length > 0; + + if (hasCssVariables) { + await Promise.all( + cssVariablesSourceLessResource.map(async (cssVariableSourceLess) => { + const themeFolder = posixPath.dirname(cssVariableSourceLess.getPath()); + log.verbose(`Generating css_variables.less for theme ${themeFolder}`); + const r = await createCssVariablesLessResource({ + workspace, combo, themeFolder + }); + return await workspace.write(r); + }) + ); + } +} + /** * Generates resources required for integration with the SAP Theme Designer. * @@ -163,4 +270,7 @@ module.exports = async function({workspace, dependencies, options: {projectName, await Promise.all( libraryLessResources.map((resource) => workspace.write(resource)) ); + + // css_variables.less + await generateCssVariablesLess({workspace, combo, namespace}); }; diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/.theming b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/.theming new file mode 100644 index 000000000..d4edad9a4 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/.theming @@ -0,0 +1,5 @@ +{ + "sEntity": "Library", + "sId": "theme/j", + "sVersion": "1.0.0" +} \ No newline at end of file diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/.theming b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/.theming new file mode 100644 index 000000000..4878adda8 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/.theming @@ -0,0 +1,6 @@ +{ + "sEntity": "Theme", + "sId": "somefancytheme", + "sVendor": "SAP", + "oExtends": "base" +} \ No newline at end of file diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/Button.less b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/Button.less new file mode 100644 index 000000000..ca968183f --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/Button.less @@ -0,0 +1,3 @@ +.someClass { + color: @someColor +} diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.css b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.css new file mode 100644 index 000000000..6232d9e35 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.css @@ -0,0 +1,3 @@ +:root{--someColor:#000} +/* Inline theming parameters */ +#sap-ui-theme-theme\.j{background-image:url('data:text/plain;utf-8,%7B%22someColor%22%3A%22%23000%22%7D')} diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.less b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.less new file mode 100644 index 000000000..91ce28694 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.less @@ -0,0 +1,14 @@ +/* NOTE: This file was generated as an optimized version of "css_variables.source.less" for the Theme Designer. */ + +@import "../base/css_variables.less"; + +/* START "css_variables.source.less" */ +@someColor: #000000; + +:root { +--someColor: @someColor; +} + +/* END "css_variables.source.less" */ + +@import "../../../../sap/ui/core/themes/somefancytheme/global.less"; diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.source.less b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.source.less new file mode 100644 index 000000000..5a6ce08e9 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/css_variables.source.less @@ -0,0 +1,5 @@ +@someColor: #000000; + +:root { +--someColor: @someColor; +} diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-RTL.css b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-RTL.css new file mode 100644 index 000000000..5009ca50e --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-RTL.css @@ -0,0 +1,3 @@ +.someClass{color:#000} +/* Inline theming parameters */ +#sap-ui-theme-theme\.j{background-image:url('data:text/plain;utf-8,%7B%22someColor%22%3A%22%23000%22%7D')} diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-parameters.json b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-parameters.json new file mode 100644 index 000000000..a190cda03 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library-parameters.json @@ -0,0 +1 @@ +{"someColor":"#000"} \ No newline at end of file diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.css b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.css new file mode 100644 index 000000000..5009ca50e --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.css @@ -0,0 +1,3 @@ +.someClass{color:#000} +/* Inline theming parameters */ +#sap-ui-theme-theme\.j{background-image:url('data:text/plain;utf-8,%7B%22someColor%22%3A%22%23000%22%7D')} diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.less b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.less new file mode 100644 index 000000000..24c4ca167 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.less @@ -0,0 +1,10 @@ +/* NOTE: This file was generated as an optimized version of "library.source.less" for the Theme Designer. */ + +@someColor: black; +/* START "Button.less" */ +.someClass { + color: @someColor +} + +/* END "Button.less" */ + diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.source.less b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.source.less new file mode 100644 index 000000000..834de919e --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library.source.less @@ -0,0 +1,2 @@ +@someColor: black; +@import "Button.less"; diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css new file mode 100644 index 000000000..7db086289 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton-RTL.css @@ -0,0 +1 @@ +.someClass{color:var(--someColor)} \ No newline at end of file diff --git a/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton.css b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton.css new file mode 100644 index 000000000..7db086289 --- /dev/null +++ b/test/expected/build/theme.j/dest-css-variables-theme-designer-resources/resources/theme/j/themes/somefancytheme/library_skeleton.css @@ -0,0 +1 @@ +.someClass{color:var(--someColor)} \ No newline at end of file diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/.theme b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/.theme new file mode 100644 index 000000000..4b4b1cf98 --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/.theme @@ -0,0 +1,9 @@ + + + + my_theme + me + Some fancy copyright + 1.0.0 + + \ No newline at end of file diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/.theming b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/.theming new file mode 100644 index 000000000..184073476 --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/.theming @@ -0,0 +1,6 @@ +{ + "sEntity": "Theme", + "sId": "my_theme", + "sVendor": "SAP", + "oExtends": "base" +} \ No newline at end of file diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.css b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.css new file mode 100644 index 000000000..48bb66a3e --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.css @@ -0,0 +1,3 @@ +:root{--mycolor:#00f} +/* Inline theming parameters */ +#sap-ui-theme-theme\.library\.e{background-image:url('data:text/plain;utf-8,%7B%22mycolor%22%3A%22%2300f%22%7D')} diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.less b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.less new file mode 100644 index 000000000..41b1dc48e --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.less @@ -0,0 +1,14 @@ +/* NOTE: This file was generated as an optimized version of "css_variables.source.less" for the Theme Designer. */ + +@import "../base/css_variables.less"; + +/* START "css_variables.source.less" */ +@mycolor: #0000ff; + +:root { +--mycolor: @mycolor; +} + +/* END "css_variables.source.less" */ + +@import "../../../../../sap/ui/core/themes/my_theme/global.less"; diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.source.less b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.source.less new file mode 100644 index 000000000..28ed8727a --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/css_variables.source.less @@ -0,0 +1,5 @@ +@mycolor: #0000ff; + +:root { +--mycolor: @mycolor; +} diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library-RTL.css b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library-RTL.css new file mode 100644 index 000000000..5eac03f06 --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library-RTL.css @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */.sapUiBody{background-color:#00f} +/* Inline theming parameters */ +#sap-ui-theme-theme\.library\.e{background-image:url('data:text/plain;utf-8,%7B%22mycolor%22%3A%22%2300f%22%7D')} diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library-parameters.json b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library-parameters.json new file mode 100644 index 000000000..a0c491380 --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library-parameters.json @@ -0,0 +1 @@ +{"mycolor":"#00f"} \ No newline at end of file diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.css b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.css new file mode 100644 index 000000000..5eac03f06 --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.css @@ -0,0 +1,5 @@ +/*! + * Some fancy copyright + */.sapUiBody{background-color:#00f} +/* Inline theming parameters */ +#sap-ui-theme-theme\.library\.e{background-image:url('data:text/plain;utf-8,%7B%22mycolor%22%3A%22%2300f%22%7D')} diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.less b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.less new file mode 100644 index 000000000..f3fda6d3e --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.less @@ -0,0 +1,11 @@ +/* NOTE: This file was generated as an optimized version of "library.source.less" for the Theme Designer. */ + +/*! + * Some fancy copyright + */ + +@mycolor: blue; + +.sapUiBody { + background-color: @mycolor; +} diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.source.less b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.source.less new file mode 100644 index 000000000..d864e666d --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library.source.less @@ -0,0 +1,9 @@ +/*! + * Some fancy copyright + */ + +@mycolor: blue; + +.sapUiBody { + background-color: @mycolor; +} diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library_skeleton-RTL.css b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library_skeleton-RTL.css new file mode 100644 index 000000000..654b3877e --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library_skeleton-RTL.css @@ -0,0 +1,3 @@ +/*! + * Some fancy copyright + */.sapUiBody{background-color:var(--mycolor)} \ No newline at end of file diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library_skeleton.css b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library_skeleton.css new file mode 100644 index 000000000..654b3877e --- /dev/null +++ b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/resources/theme/library/e/themes/my_theme/library_skeleton.css @@ -0,0 +1,3 @@ +/*! + * Some fancy copyright + */.sapUiBody{background-color:var(--mycolor)} \ No newline at end of file diff --git a/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/test-resources/theme/library/e/Test.html b/test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources/test-resources/theme/library/e/Test.html new file mode 100644 index 000000000..e69de29bb diff --git a/test/lib/builder/builder.js b/test/lib/builder/builder.js index 1561f4e80..6153b353b 100644 --- a/test/lib/builder/builder.js +++ b/test/lib/builder/builder.js @@ -952,6 +952,26 @@ test.serial("Build library with theme configured for CSS variables", (t) => { }); }); +test.serial("Build library with theme configured for CSS variables and theme designer resources", (t) => { + const destPath = "./test/tmp/build/theme.j/dest-css-variables-theme-designer-resources"; + const expectedPath = "./test/expected/build/theme.j/dest-css-variables-theme-designer-resources"; + return builder.build({ + tree: themeJTree, + cssVariables: true, + destPath, + includedTasks: ["generateThemeDesignerResources"] + }).then(() => { + return findFiles(expectedPath); + }).then((expectedFiles) => { + // Check for all directories and files + assert.directoryDeepEqual(destPath, expectedPath); + + return checkFileContentsIgnoreLineFeeds(t, expectedFiles, expectedPath, destPath); + }).then(() => { + t.pass(); + }); +}); + test.serial("Build theme-library with CSS variables", (t) => { const destPath = "./test/tmp/build/theme.library.e/dest-css-variables"; const expectedPath = "./test/expected/build/theme.library.e/dest-css-variables"; @@ -971,6 +991,26 @@ test.serial("Build theme-library with CSS variables", (t) => { }); }); +test.serial("Build theme-library with CSS variables and theme designer resources", (t) => { + const destPath = "./test/tmp/build/theme.library.e/dest-css-variables-theme-designer-resources"; + const expectedPath = "./test/expected/build/theme.library.e/dest-css-variables-theme-designer-resources"; + return builder.build({ + tree: themeLibraryETree, + cssVariables: true, + destPath, + includedTasks: ["generateThemeDesignerResources"] + }).then(() => { + return findFiles(expectedPath); + }).then((expectedFiles) => { + // Check for all directories and files + assert.directoryDeepEqual(destPath, expectedPath); + + return checkFileContentsIgnoreLineFeeds(t, expectedFiles, expectedPath, destPath); + }).then(() => { + t.pass(); + }); +}); + test.serial("Cleanup", async (t) => { const BuildContext = require("../../../lib/builder/BuildContext"); const createProjectContextStub = sinon.spy(BuildContext.prototype, "createProjectContext"); diff --git a/test/lib/tasks/generateThemeDesignerResources.js b/test/lib/tasks/generateThemeDesignerResources.js index 5961ca6d4..3f4a20b14 100644 --- a/test/lib/tasks/generateThemeDesignerResources.js +++ b/test/lib/tasks/generateThemeDesignerResources.js @@ -409,6 +409,329 @@ test.serial("generateThemeDesignerResources: Theme-Library", async (t) => { "workspace.write should be called with libraryLessResource"); }); +test.serial("generateThemeDesignerResources: Theme-Library with CSS Variables", async (t) => { + const {generateThemeDesignerResources, libraryLessGeneratorStub, ResourceStub} = t.context; + + const librarySourceLessResource = { + getPath: sinon.stub().returns("/resources/sap/ui/demo/lib/themes/my_theme/library.source.less") + }; + + const cssVariablesSourceResource = { + getString: sinon.stub().returns("My Content"), + }; + + const cssVariableSourceLessResource = { + getPath: sinon.stub().returns("/resources/sap/ui/demo/lib/themes/my_theme/css_variables.source.less") + }; + + const workspace = { + byGlob: sinon.stub().callsFake(async (globPattern) => { + if (globPattern === "/resources/**/themes/*/library.source.less") { + return [librarySourceLessResource]; + } else if (globPattern === "/resources/**/themes/*/css_variables.source.less") { + return [cssVariableSourceLessResource]; + } else { + return []; + } + }), + byPath: sinon.stub().callsFake(async (virPath) => { + if (virPath === "/resources/sap/ui/demo/lib/themes/my_theme/css_variables.source.less") { + return cssVariablesSourceResource; + } else { + return []; + } + }), + write: sinon.stub() + }; + const dependencies = {}; + + const libraryLessResource = {}; + + libraryLessGeneratorStub.resolves([libraryLessResource]); + + await generateThemeDesignerResources({ + workspace, + dependencies, + options: { + projectName: "sap.ui.demo.lib", + version: "1.2.3" + } + }); + + t.is(ResourceStub.callCount, 2); + t.true(ResourceStub.alwaysCalledWithNew()); + + t.deepEqual(ResourceStub.getCall(1).args, [{ + path: "/resources/sap/ui/demo/lib/themes/my_theme/css_variables.less", + string: +`/* NOTE: This file was generated as an optimized version of "css_variables.source.less" for the Theme Designer. */ + +@import "../base/css_variables.less"; + +/* START "css_variables.source.less" */ +My Content +/* END "css_variables.source.less" */ + +@import "../../../../../../sap/ui/core/themes/my_theme/global.less"; +` + }]); + const cssVariableResource = ResourceStub.getCall(1).returnValue; + + t.is(workspace.write.callCount, 3); + t.is(workspace.write.getCall(2).args.length, 1, + "workspace.write for cssVariableResource should be called with 1 argument"); + t.is(workspace.write.getCall(2).args[0], cssVariableResource, + "workspace.write should be called with cssVariableResource"); +}); + +test.serial("generateThemeDesignerResources: Theme-Library with CSS Variables with namespace", async (t) => { + const {generateThemeDesignerResources, libraryLessGeneratorStub, ResourceStub} = t.context; + + const librarySourceLessResource = { + getPath: sinon.stub().returns("/resources/sap/ui/demo/lib/themes/my_theme/library.source.less") + }; + + const cssVariablesSourceResource = { + getString: sinon.stub().returns("My Content from Namespace"), + }; + + const cssVariableSourceLessResource = { + getPath: sinon.stub().returns("/resources/sap/ui/demo/lib/themes/my_theme/css_variables.source.less") + }; + + const workspace = { + byGlob: sinon.stub().callsFake(async (globPattern) => { + if (globPattern === "/resources/sap/ui/demo/lib/themes/*/library.source.less") { + return [librarySourceLessResource]; + } else if (globPattern === "/resources/sap/ui/demo/lib/themes/*/css_variables.source.less") { + return [cssVariableSourceLessResource]; + } else { + return []; + } + }), + byPath: sinon.stub().callsFake(async (virPath) => { + if (virPath === "/resources/sap/ui/demo/lib/themes/my_theme/css_variables.source.less") { + return cssVariablesSourceResource; + } else { + return []; + } + }), + write: sinon.stub() + }; + const dependencies = {}; + + const libraryLessResource = {}; + + libraryLessGeneratorStub.resolves([libraryLessResource]); + + await generateThemeDesignerResources({ + workspace, + dependencies, + options: { + projectName: "sap.ui.demo.lib", + version: "1.2.3", + namespace: "sap/ui/demo/lib" + } + }); + + t.is(t.context.ReaderCollectionPrioritizedStub.callCount, 1, "ReaderCollectionPrioritized should be created once"); + t.deepEqual(t.context.ReaderCollectionPrioritizedStub.getCall(0).args, [{ + name: `generateThemeDesignerResources - prioritize workspace over dependencies: sap.ui.demo.lib`, + readers: [workspace, dependencies] + }]); + + t.is(ResourceStub.callCount, 3); + t.true(ResourceStub.alwaysCalledWithNew()); + + t.deepEqual(ResourceStub.getCall(2).args, [{ + path: "/resources/sap/ui/demo/lib/themes/my_theme/css_variables.less", + string: +`/* NOTE: This file was generated as an optimized version of "css_variables.source.less" for the Theme Designer. */ + +@import "../base/css_variables.less"; + +/* START "css_variables.source.less" */ +My Content from Namespace +/* END "css_variables.source.less" */ + +@import "../../../../../../sap/ui/core/themes/my_theme/global.less"; +` + }]); + const cssVariableResource = ResourceStub.getCall(2).returnValue; + + t.is(workspace.write.callCount, 4); + t.is(workspace.write.getCall(3).args.length, 1, + "workspace.write for cssVariableResource should be called with 1 argument"); + t.is(workspace.write.getCall(3).args[0], cssVariableResource, + "workspace.write should be called with cssVariableResource"); +}); + +test.serial("generateThemeDesignerResources: Theme-Library with CSS Variables with base theme", async (t) => { + const { + generateThemeDesignerResources, + libraryLessGeneratorStub, + ResourceStub, + ReaderCollectionPrioritizedStub + } = t.context; + + const librarySourceLessResource = { + getPath: sinon.stub().returns("/resources/sap/ui/demo/lib/themes/my_theme/library.source.less") + }; + + const cssVariablesSourceResource = { + getString: sinon.stub().returns("My Content with Base Theme"), + }; + + const cssVariableSourceLessResource = { + getPath: sinon.stub().returns("/resources/sap/ui/demo/lib/themes/my_theme/css_variables.source.less") + }; + + const baseLessResource = {}; + + ReaderCollectionPrioritizedStub.returns({ + byPath: sinon.stub().callsFake(async (virPath) => { + if (virPath === "/resources/sap/ui/core/themes/my_theme/base.less") { + return baseLessResource; + } else { + return null; + } + }) + }); + + const workspace = { + byGlob: sinon.stub().callsFake(async (globPattern) => { + if (globPattern === "/resources/**/themes/*/library.source.less") { + return [librarySourceLessResource]; + } else if (globPattern === "/resources/**/themes/*/css_variables.source.less") { + return [cssVariableSourceLessResource]; + } else { + return []; + } + }), + byPath: sinon.stub().callsFake(async (virPath) => { + if (virPath === "/resources/sap/ui/demo/lib/themes/my_theme/css_variables.source.less") { + return cssVariablesSourceResource; + } else { + return []; + } + }), + write: sinon.stub() + }; + const dependencies = {}; + + const libraryLessResource = {}; + + libraryLessGeneratorStub.resolves([libraryLessResource]); + + await generateThemeDesignerResources({ + workspace, + dependencies, + options: { + projectName: "sap.ui.demo.lib", + version: "1.2.3" + } + }); + + t.is(ResourceStub.callCount, 2); + t.true(ResourceStub.alwaysCalledWithNew()); + + t.deepEqual(ResourceStub.getCall(1).args, [{ + path: "/resources/sap/ui/demo/lib/themes/my_theme/css_variables.less", + string: +`/* NOTE: This file was generated as an optimized version of "css_variables.source.less" for the Theme Designer. */ + +@import "../base/css_variables.less"; + +/* START "css_variables.source.less" */ +My Content with Base Theme +/* END "css_variables.source.less" */ + +@import "../../../../../../../Base/baseLib/my_theme/base.less"; +@import "../../../../../../sap/ui/core/themes/my_theme/global.less"; +` + }]); + const cssVariableResource = ResourceStub.getCall(1).returnValue; + + t.is(workspace.write.callCount, 3); + t.is(workspace.write.getCall(2).args.length, 1, + "workspace.write for cssVariableResource should be called with 1 argument"); + t.is(workspace.write.getCall(2).args[0], cssVariableResource, + "workspace.write should be called with cssVariableResource"); +}); + +test.serial("generateThemeDesignerResources: Base Theme-Library with CSS Variables", async (t) => { + const { + generateThemeDesignerResources, + libraryLessGeneratorStub, + ResourceStub + } = t.context; + + const librarySourceLessResource = { + getPath: sinon.stub().returns("/resources/sap/ui/demo/lib/themes/base/library.source.less") + }; + + const cssVariablesSourceResource = { + getString: sinon.stub().returns("My Base Theme Content"), + }; + + const cssVariableSourceLessResource = { + getPath: sinon.stub().returns("/resources/sap/ui/demo/lib/themes/base/css_variables.source.less") + }; + + const workspace = { + byGlob: sinon.stub().callsFake(async (globPattern) => { + if (globPattern === "/resources/**/themes/*/library.source.less") { + return [librarySourceLessResource]; + } else if (globPattern === "/resources/**/themes/*/css_variables.source.less") { + return [cssVariableSourceLessResource]; + } else { + return []; + } + }), + byPath: sinon.stub().callsFake(async (virPath) => { + if (virPath === "/resources/sap/ui/demo/lib/themes/my_theme/css_variables.source.less") { + return cssVariablesSourceResource; + } else { + return []; + } + }), + write: sinon.stub() + }; + const dependencies = {}; + + const libraryLessResource = {}; + + libraryLessGeneratorStub.resolves([libraryLessResource]); + + await generateThemeDesignerResources({ + workspace, + dependencies, + options: { + projectName: "sap.ui.demo.lib", + version: "1.2.3" + } + }); + + t.is(ResourceStub.callCount, 2); + t.true(ResourceStub.alwaysCalledWithNew()); + + t.deepEqual(ResourceStub.getCall(1).args, [{ + path: "/resources/sap/ui/demo/lib/themes/base/css_variables.less", + string: +`/* NOTE: This file was generated as an optimized version of "css_variables.source.less" for the Theme Designer. */ + +@import "../../../../../../sap/ui/core/themes/base/global.less"; +` + }]); + const cssVariableResource = ResourceStub.getCall(1).returnValue; + + t.is(workspace.write.callCount, 3); + t.is(workspace.write.getCall(2).args.length, 1, + "workspace.write for cssVariableResource should be called with 1 argument"); + t.is(workspace.write.getCall(2).args[0], cssVariableResource, + "workspace.write should be called with cssVariableResource"); +}); + test.serial("generateThemeDesignerResources: .theming file missing in sap.ui.core library source`", async (t) => { const {generateThemeDesignerResources, libraryLessGeneratorStub, ResourceStub} = t.context; From 4493b1321af16c50ff064fa41d1585c269e07806 Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Thu, 14 Apr 2022 10:05:21 +0000 Subject: [PATCH 66/74] Release 3.0.0-alpha.5 --- CHANGELOG.md | 18 +++++++++++++++++- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff5e3136f..a09ab335b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,22 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.4...HEAD). +A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.5...HEAD). + + +## [v3.0.0-alpha.5] - 2022-04-14 +### Bug Fixes +- **LibraryBuilder:** Align task order of "generateComponentPreload" [`aea061d`](https://github.com/SAP/ui5-builder/commit/aea061d9d6c2ac0c11484dcc08bdcda23ab62986) + +### Features +- **generateThemeDesignerResources task:** Create css_variables.less ([#730](https://github.com/SAP/ui5-builder/issues/730)) [`34e69be`](https://github.com/SAP/ui5-builder/commit/34e69be95fc8ec1961b24b7e2580c2c993d814d3) + +### BREAKING CHANGE + +For library projects, the task "generateComponentPreload" is now +executed after tasks "generateLibraryManifest" and +"generateManifestBundle" instead of before them. + ## [v3.0.0-alpha.4] - 2022-04-05 @@ -699,6 +714,7 @@ to load the custom bundle file instead. - Add ability to configure component preloads and custom bundles [`2241e5f`](https://github.com/SAP/ui5-builder/commit/2241e5ff98fd95f1f80cc74959655ae7a9c660e7) +[v3.0.0-alpha.5]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.4...v3.0.0-alpha.5 [v3.0.0-alpha.4]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.3...v3.0.0-alpha.4 [v3.0.0-alpha.3]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.2...v3.0.0-alpha.3 [v3.0.0-alpha.2]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.1...v3.0.0-alpha.2 diff --git a/package-lock.json b/package-lock.json index 0db0cfee3..6d3bb23c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.4", + "version": "3.0.0-alpha.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ui5/builder", - "version": "3.0.0-alpha.4", + "version": "3.0.0-alpha.5", "license": "Apache-2.0", "dependencies": { "@ui5/fs": "^3.0.0-alpha.2", diff --git a/package.json b/package.json index fc7d615ca..2335481da 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.4", + "version": "3.0.0-alpha.5", "description": "UI5 Tooling - Builder", "author": { "name": "SAP SE", From 1e38f2e243c280ff13a676dd57ca62f5204b2d32 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Thu, 21 Apr 2022 13:59:59 +0200 Subject: [PATCH 67/74] [INTERNAL] generateLibraryManifest: Ignore dependency resources (#735) --- lib/tasks/generateLibraryManifest.js | 10 ++-------- lib/types/library/LibraryBuilder.js | 1 - test/lib/tasks/generateLibraryManifest.js | 19 +------------------ 3 files changed, 3 insertions(+), 27 deletions(-) diff --git a/lib/tasks/generateLibraryManifest.js b/lib/tasks/generateLibraryManifest.js index 015f72e08..46d30c092 100644 --- a/lib/tasks/generateLibraryManifest.js +++ b/lib/tasks/generateLibraryManifest.js @@ -2,7 +2,6 @@ const log = require("@ui5/logger").getLogger("builder:tasks:generateLibraryManifest"); const manifestCreator = require("../processors/manifestCreator"); -const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritized; /** @@ -12,23 +11,18 @@ const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritiz * @alias module:@ui5/builder.tasks.generateLibraryManifest * @param {object} parameters Parameters * @param {module:@ui5/fs.DuplexCollection} parameters.workspace DuplexCollection to read and write files - * @param {module:@ui5/fs.AbstractReader} parameters.dependencies Reader or Collection to read dependency files * @param {object} parameters.options Options * @param {string} parameters.options.projectName Project name * @returns {Promise} Promise resolving with undefined once data has been written */ -module.exports = function({workspace, dependencies, options: {projectName}}) { - const combo = new ReaderCollectionPrioritized({ - name: `libraryManifestGenerator - prioritize workspace over dependencies: ${projectName}`, - readers: [workspace, dependencies] - }); +module.exports = function({workspace, options: {projectName}}) { // Note: // *.library files are needed to identify libraries // *.json files are needed to avoid overwriting them // *.js files are needed to identify nested components // *.less, *.css, *.theming and *.theme files are needed to identify supported themes // *.properties to identify existence of i18n bundles (e.g. messagebundle.properties) - return combo.byGlob("/**/*.{js,json,library,less,css,theming,theme,properties}").then((resources) => { + return workspace.byGlob("/resources/**/*.{js,json,library,less,css,theming,theme,properties}").then((resources) => { // Find all libraries and create a manifest.json file return workspace.byGlob("/resources/**/.library").then((libraryIndicatorResources) => { if (libraryIndicatorResources.length < 1) { diff --git a/lib/types/library/LibraryBuilder.js b/lib/types/library/LibraryBuilder.js index 34236bbb0..31e2e1cb2 100644 --- a/lib/types/library/LibraryBuilder.js +++ b/lib/types/library/LibraryBuilder.js @@ -112,7 +112,6 @@ class LibraryBuilder extends AbstractBuilder { this.addTask("generateLibraryManifest", async () => { return getTask("generateLibraryManifest").task({ workspace: resourceCollections.workspace, - dependencies: resourceCollections.dependencies, taskUtil, options: { projectName: project.metadata.name diff --git a/test/lib/tasks/generateLibraryManifest.js b/test/lib/tasks/generateLibraryManifest.js index fb33de921..6d6c1b2c8 100644 --- a/test/lib/tasks/generateLibraryManifest.js +++ b/test/lib/tasks/generateLibraryManifest.js @@ -1,7 +1,6 @@ const test = require("ava"); const generateLibraryManifest = require("../../../lib/tasks/generateLibraryManifest"); -const path = require("path"); const ui5Fs = require("@ui5/fs"); const resourceFactory = ui5Fs.resourceFactory; @@ -25,21 +24,13 @@ function createWorkspace() { }); } -function createDependencies() { - return resourceFactory.createAdapter({ - fsBasePath: path.join(__dirname, "..", "..", "fixtures", "sap.ui.core-evo", "main", "src"), - virBasePath: "/resources" - }); -} - async function assertCreatedManifest(t, oExpectedManifest) { - const {workspace, dependencies, resources} = t.context; + const {workspace, resources} = t.context; await Promise.all(resources.map((resource) => workspace.write(resource))); await generateLibraryManifest({ workspace, - dependencies, options: { projectName: "Test Lib" } @@ -57,8 +48,6 @@ async function assertCreatedManifest(t, oExpectedManifest) { test("integration: Library without i18n bundle file", async (t) => { t.context.workspace = createWorkspace(); - t.context.dependencies = createDependencies(); - t.context.resources = []; t.context.resources.push(resourceFactory.createResource({ path: "/resources/test/lib/.library", @@ -110,7 +99,6 @@ test("integration: Library without i18n bundle file", async (t) => { test("integration: Library with i18n bundle file (messagebundle.properties)", async (t) => { t.context.workspace = createWorkspace(); - t.context.dependencies = createDependencies(); t.context.resources = []; t.context.resources.push(resourceFactory.createResource({ @@ -171,7 +159,6 @@ test("integration: Library with i18n bundle file (messagebundle.properties)", as test("integration: Library with i18n=true declared in .library", async (t) => { t.context.workspace = createWorkspace(); - t.context.dependencies = createDependencies(); t.context.resources = []; t.context.resources.push(resourceFactory.createResource({ @@ -241,7 +228,6 @@ test("integration: Library with i18n=true declared in .library", async (t) => { test("integration: Library with i18n=false declared in .library", async (t) => { t.context.workspace = createWorkspace(); - t.context.dependencies = createDependencies(); t.context.resources = []; t.context.resources.push(resourceFactory.createResource({ @@ -304,7 +290,6 @@ test("integration: Library with i18n=false declared in .library", async (t) => { test("integration: Library with i18n=foo.properties declared in .library", async (t) => { t.context.workspace = createWorkspace(); - t.context.dependencies = createDependencies(); t.context.resources = []; t.context.resources.push(resourceFactory.createResource({ @@ -374,7 +359,6 @@ test("integration: Library with i18n=foo.properties declared in .library", async test("integration: Library with css=true declared in .library", async (t) => { t.context.workspace = createWorkspace(); - t.context.dependencies = createDependencies(); t.context.resources = []; t.context.resources.push(resourceFactory.createResource({ @@ -437,7 +421,6 @@ test("integration: Library with css=true declared in .library", async (t) => { test("integration: Library with css=false declared in .library", async (t) => { t.context.workspace = createWorkspace(); - t.context.dependencies = createDependencies(); t.context.resources = []; t.context.resources.push(resourceFactory.createResource({ From 7bf23023ae008f50a360aa87338878c2cfa99975 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Thu, 21 Apr 2022 15:34:44 +0000 Subject: [PATCH 68/74] In-range update of npm dependencies --- package-lock.json | 495 ++++++++++++++++++++++------------------------ 1 file changed, 236 insertions(+), 259 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6d3bb23c1..74a6286da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,25 +89,25 @@ } }, "node_modules/@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", + "@babel/generator": "^7.17.9", "@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", + "@babel/traverse": "^7.17.9", "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", + "json5": "^2.2.1", "semver": "^6.3.0" }, "engines": { @@ -119,9 +119,9 @@ } }, "node_modules/@babel/core/node_modules/@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -140,9 +140,9 @@ } }, "node_modules/@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", "dev": true, "dependencies": { "@babel/types": "^7.17.0", @@ -193,26 +193,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" @@ -304,13 +291,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "dev": true, "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", + "@babel/traverse": "^7.17.9", "@babel/types": "^7.17.0" }, "engines": { @@ -318,9 +305,9 @@ } }, "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", @@ -413,9 +400,9 @@ } }, "node_modules/@babel/template/node_modules/@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -425,18 +412,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", + "@babel/generator": "^7.17.9", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", + "@babel/parser": "^7.17.9", "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" @@ -446,9 +433,9 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -649,9 +636,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -784,9 +771,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==", "dev": true, "optional": true }, @@ -803,9 +790,9 @@ "dev": true }, "node_modules/@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", "dev": true, "optional": true, "dependencies": { @@ -845,13 +832,13 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz", - "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.33.tgz", + "integrity": "sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.31", + "@vue/shared": "3.2.33", "estree-walker": "^2.0.2", "source-map": "^0.6.1" } @@ -866,27 +853,27 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", - "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.33.tgz", + "integrity": "sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.2.31", - "@vue/shared": "3.2.31" + "@vue/compiler-core": "3.2.33", + "@vue/shared": "3.2.33" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz", - "integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.33.tgz", + "integrity": "sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.31", - "@vue/compiler-dom": "3.2.31", - "@vue/compiler-ssr": "3.2.31", - "@vue/reactivity-transform": "3.2.31", - "@vue/shared": "3.2.31", + "@vue/compiler-core": "3.2.33", + "@vue/compiler-dom": "3.2.33", + "@vue/compiler-ssr": "3.2.33", + "@vue/reactivity-transform": "3.2.33", + "@vue/shared": "3.2.33", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -903,32 +890,32 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz", - "integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.33.tgz", + "integrity": "sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.2.31", - "@vue/shared": "3.2.31" + "@vue/compiler-dom": "3.2.33", + "@vue/shared": "3.2.33" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz", - "integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.33.tgz", + "integrity": "sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==", "dev": true, "dependencies": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.31", - "@vue/shared": "3.2.31", + "@vue/compiler-core": "3.2.33", + "@vue/shared": "3.2.33", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "node_modules/@vue/shared": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz", - "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.33.tgz", + "integrity": "sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==", "dev": true }, "node_modules/acorn": { @@ -1531,9 +1518,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001325", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz", - "integrity": "sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ==", + "version": "1.0.30001332", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", "dev": true, "funding": [ { @@ -2540,9 +2527,9 @@ } }, "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -2553,9 +2540,9 @@ } }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "funding": [ { "type": "github", @@ -2654,9 +2641,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.103", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz", - "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==", + "version": "1.4.117", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.117.tgz", + "integrity": "sha512-ypZHxY+Sf/PXu7LVN+xoeanyisnJeSOy8Ki439L/oLueZb4c72FI45zXcK3gPpmTwyufh9m6NnbMLXnJh/0Fxg==", "dev": true }, "node_modules/emittery": { @@ -2712,9 +2699,9 @@ } }, "node_modules/es5-ext": { - "version": "0.10.59", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.59.tgz", - "integrity": "sha512-cOgyhW0tIJyQY1Kfw6Kr0viu9ZlUctVchRMZ7R0HiH3dxTSp5zJDLecwxUqPUrGKMsgBI1wd1FL+d9Jxfi4cLw==", + "version": "0.10.61", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz", + "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==", "hasInstallScript": true, "dependencies": { "es6-iterator": "^2.0.3", @@ -2854,9 +2841,9 @@ } }, "node_modules/eslint": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", - "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", + "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.2.1", @@ -3627,9 +3614,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/hard-rejection": { "version": "2.1.0", @@ -3925,9 +3912,9 @@ } }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -4716,9 +4703,9 @@ } }, "node_modules/markdown-it-anchor": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", - "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.2.tgz", + "integrity": "sha512-JNaekTlIwwyYGBN3zifZDxgz4bSL8sbEj58fdTZGmPSMMGXBZapFjcZk2I33Jy79c1fvCKHpF7MA/67FOTjvzA==", "peerDependencies": { "@types/markdown-it": "*", "markdown-it": "*" @@ -4738,9 +4725,9 @@ } }, "node_modules/marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.14.tgz", + "integrity": "sha512-HL5sSPE/LP6U9qKgngIIPTthuxC0jrfxpYMZ3LdGDD3vTnLs59m2Z7r6+LNDR3ToqEQdkKd6YaaEfJhodJmijQ==", "bin": { "marked": "bin/marked.js" }, @@ -4990,9 +4977,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", - "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -5038,9 +5025,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", "dev": true }, "node_modules/normalize-package-data": { @@ -6343,9 +6330,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/sass": { - "version": "1.49.11", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.11.tgz", - "integrity": "sha512-wvS/geXgHUGs6A/4ud5BFIWKO1nKd7wYIGimDk4q4GFkJicILActpv9ueMT4eRGSsp1BdKHuw1WwAHXbhsJELQ==", + "version": "1.50.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz", + "integrity": "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -6377,9 +6364,9 @@ } }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -7714,32 +7701,32 @@ "dev": true }, "@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.9.tgz", + "integrity": "sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", + "@babel/generator": "^7.17.9", "@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.9", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", + "@babel/traverse": "^7.17.9", "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", + "json5": "^2.2.1", "semver": "^6.3.0" }, "dependencies": { "@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", "dev": true }, "semver": { @@ -7751,9 +7738,9 @@ } }, "@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.9.tgz", + "integrity": "sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ==", "dev": true, "requires": { "@babel/types": "^7.17.0", @@ -7791,23 +7778,13 @@ } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.17.0" } }, "@babel/helper-hoist-variables": { @@ -7875,20 +7852,20 @@ "dev": true }, "@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", + "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "dev": true, "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", + "@babel/traverse": "^7.17.9", "@babel/types": "^7.17.0" } }, "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", + "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -7956,35 +7933,35 @@ }, "dependencies": { "@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", "dev": true } } }, "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.9.tgz", + "integrity": "sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", + "@babel/generator": "^7.17.9", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", + "@babel/parser": "^7.17.9", "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { "@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.9.tgz", + "integrity": "sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg==", "dev": true } } @@ -8139,9 +8116,9 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -8259,9 +8236,9 @@ "dev": true }, "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz", + "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==", "dev": true, "optional": true }, @@ -8278,9 +8255,9 @@ "dev": true }, "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", "dev": true, "optional": true, "requires": { @@ -8312,13 +8289,13 @@ } }, "@vue/compiler-core": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.31.tgz", - "integrity": "sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.33.tgz", + "integrity": "sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.31", + "@vue/shared": "3.2.33", "estree-walker": "^2.0.2", "source-map": "^0.6.1" }, @@ -8332,27 +8309,27 @@ } }, "@vue/compiler-dom": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.31.tgz", - "integrity": "sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.33.tgz", + "integrity": "sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==", "dev": true, "requires": { - "@vue/compiler-core": "3.2.31", - "@vue/shared": "3.2.31" + "@vue/compiler-core": "3.2.33", + "@vue/shared": "3.2.33" } }, "@vue/compiler-sfc": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.31.tgz", - "integrity": "sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.33.tgz", + "integrity": "sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.31", - "@vue/compiler-dom": "3.2.31", - "@vue/compiler-ssr": "3.2.31", - "@vue/reactivity-transform": "3.2.31", - "@vue/shared": "3.2.31", + "@vue/compiler-core": "3.2.33", + "@vue/compiler-dom": "3.2.33", + "@vue/compiler-ssr": "3.2.33", + "@vue/reactivity-transform": "3.2.33", + "@vue/shared": "3.2.33", "estree-walker": "^2.0.2", "magic-string": "^0.25.7", "postcss": "^8.1.10", @@ -8368,32 +8345,32 @@ } }, "@vue/compiler-ssr": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.31.tgz", - "integrity": "sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.33.tgz", + "integrity": "sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==", "dev": true, "requires": { - "@vue/compiler-dom": "3.2.31", - "@vue/shared": "3.2.31" + "@vue/compiler-dom": "3.2.33", + "@vue/shared": "3.2.33" } }, "@vue/reactivity-transform": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.31.tgz", - "integrity": "sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.33.tgz", + "integrity": "sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==", "dev": true, "requires": { "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.31", - "@vue/shared": "3.2.31", + "@vue/compiler-core": "3.2.33", + "@vue/shared": "3.2.33", "estree-walker": "^2.0.2", "magic-string": "^0.25.7" } }, "@vue/shared": { - "version": "3.2.31", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.31.tgz", - "integrity": "sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==", + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.33.tgz", + "integrity": "sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==", "dev": true }, "acorn": { @@ -8832,9 +8809,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001325", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz", - "integrity": "sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ==", + "version": "1.0.30001332", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", + "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", "dev": true }, "catharsis": { @@ -9611,9 +9588,9 @@ } }, "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -9621,9 +9598,9 @@ } }, "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" }, "domhandler": { "version": "4.3.1", @@ -9706,9 +9683,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.103", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz", - "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==", + "version": "1.4.117", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.117.tgz", + "integrity": "sha512-ypZHxY+Sf/PXu7LVN+xoeanyisnJeSOy8Ki439L/oLueZb4c72FI45zXcK3gPpmTwyufh9m6NnbMLXnJh/0Fxg==", "dev": true }, "emittery": { @@ -9752,9 +9729,9 @@ } }, "es5-ext": { - "version": "0.10.59", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.59.tgz", - "integrity": "sha512-cOgyhW0tIJyQY1Kfw6Kr0viu9ZlUctVchRMZ7R0HiH3dxTSp5zJDLecwxUqPUrGKMsgBI1wd1FL+d9Jxfi4cLw==", + "version": "0.10.61", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz", + "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==", "requires": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -9874,9 +9851,9 @@ } }, "eslint": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz", - "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.13.0.tgz", + "integrity": "sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ==", "dev": true, "requires": { "@eslint/eslintrc": "^1.2.1", @@ -10454,9 +10431,9 @@ } }, "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "hard-rejection": { "version": "2.1.0", @@ -10667,9 +10644,9 @@ } }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "requires": { "has": "^1.0.3" @@ -11283,15 +11260,15 @@ } }, "markdown-it-anchor": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", - "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.2.tgz", + "integrity": "sha512-JNaekTlIwwyYGBN3zifZDxgz4bSL8sbEj58fdTZGmPSMMGXBZapFjcZk2I33Jy79c1fvCKHpF7MA/67FOTjvzA==", "requires": {} }, "marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==" + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.14.tgz", + "integrity": "sha512-HL5sSPE/LP6U9qKgngIIPTthuxC0jrfxpYMZ3LdGDD3vTnLs59m2Z7r6+LNDR3ToqEQdkKd6YaaEfJhodJmijQ==" }, "matcher": { "version": "3.0.0", @@ -11469,9 +11446,9 @@ } }, "nanoid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz", - "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, "natural-compare": { @@ -11508,9 +11485,9 @@ } }, "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.3.tgz", + "integrity": "sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw==", "dev": true }, "normalize-package-data": { @@ -12487,9 +12464,9 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "sass": { - "version": "1.49.11", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.11.tgz", - "integrity": "sha512-wvS/geXgHUGs6A/4ud5BFIWKO1nKd7wYIGimDk4q4GFkJicILActpv9ueMT4eRGSsp1BdKHuw1WwAHXbhsJELQ==", + "version": "1.50.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.50.1.tgz", + "integrity": "sha512-noTnY41KnlW2A9P8sdwESpDmo+KBNkukI1i8+hOK3footBUcohNHtdOJbckp46XO95nuvcHDDZ+4tmOnpK3hjw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -12512,9 +12489,9 @@ } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" } From 3b918e83bfd38342778ecd4c58e648e99ad7cffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20O=C3=9Fwald?= <1410947+matz3@users.noreply.github.com> Date: Mon, 25 Apr 2022 16:11:53 +0200 Subject: [PATCH 69/74] [FIX] generateResourcesJson: Add raw-module info for debug bundles (#736) The raw-module info within .library is only maintained using the non-debug name (module name). Therefore, the analysis must use that name when running with debug bundles. Furthermore the handling of the "module" property for debug resources has been changed to only take place within the ResourceCollector. JIRA: CPOUI5FOUNDATION-480 --- lib/lbt/resources/ResourceCollector.js | 37 +++-- lib/lbt/resources/ResourceInfoList.js | 1 - lib/lbt/resources/ResourcePool.js | 13 +- test/lib/lbt/resources/ResourceCollector.js | 147 ++++++++++++++++++++ test/lib/lbt/resources/ResourceInfoList.js | 3 +- 5 files changed, 178 insertions(+), 23 deletions(-) diff --git a/lib/lbt/resources/ResourceCollector.js b/lib/lbt/resources/ResourceCollector.js index a715f28cb..5534ed4df 100644 --- a/lib/lbt/resources/ResourceCollector.js +++ b/lib/lbt/resources/ResourceCollector.js @@ -110,10 +110,11 @@ class ResourceCollector { } async enrichWithDependencyInfo(resourceInfo) { - return this._pool.getModuleInfo(resourceInfo.name).then(async (moduleInfo) => { - if ( moduleInfo.name ) { + return this._pool.getModuleInfo(resourceInfo.name, resourceInfo.module).then(async (moduleInfo) => { + if ( !resourceInfo.module && moduleInfo.name ) { resourceInfo.module = moduleInfo.name; } + if ( moduleInfo.dynamicDependencies ) { resourceInfo.dynRequired = true; } @@ -279,37 +280,43 @@ class ResourceCollector { await Promise.all(promises); - const debugBundlePromises = []; - - for (let i = debugResourcesInfo.length - 1; i >= 0; i--) { - const dbgInfo = debugResourcesInfo[i]; - const nonDebugName = ResourceInfoList.getNonDebugName(dbgInfo.name); + await Promise.all(debugResourcesInfo.map(async (dbgInfo) => { + const debugName = dbgInfo.name; + const nonDebugName = ResourceInfoList.getNonDebugName(debugName); const nonDbgInfo = this._resources.get(nonDebugName); // FIXME: "merged" property is only calculated in ResourceInfo#copyFrom // Therefore using the same logic here to compute it. + + // TODO: Idea: Use IsDebugVariant tag to decide whether to analyze the resource + // If the tag is set, we don't expect different analysis results so we can copy the info (else-path) + // Only when the tag is not set, we analyze the resource with its name (incl. -dbg) + if (!nonDbgInfo || (nonDbgInfo.included != null && nonDbgInfo.included.size > 0)) { // We need to analyze the dbg resource if there is no non-dbg variant or // it is a bundle because we will (usually) have different content. - debugBundlePromises.push( - this.enrichWithDependencyInfo(dbgInfo) - ); + + if (nonDbgInfo) { + // Always use the non-debug module name, if available + dbgInfo.module = nonDbgInfo.module; + } + await this.enrichWithDependencyInfo(dbgInfo); } else { // If the non-dbg resource is not a bundle, we can just copy over the info and skip // analyzing the dbg variant as both should have the same info. - const newDbgInfo = new ResourceInfo(dbgInfo.name); + const newDbgInfo = new ResourceInfo(debugName); // First copy info of analysis from non-dbg file (included, required, condRequired, ...) newDbgInfo.copyFrom(null, nonDbgInfo); // Then copy over info from dbg file to properly set name, isDebug, etc. newDbgInfo.copyFrom(null, dbgInfo); + // Finally, set the module name to the non-dbg name + newDbgInfo.module = nonDbgInfo.module; - this._resources.set(dbgInfo.name, newDbgInfo); + this._resources.set(debugName, newDbgInfo); } - } - - await Promise.all(debugBundlePromises); + })); } createOrphanFilters() { diff --git a/lib/lbt/resources/ResourceInfoList.js b/lib/lbt/resources/ResourceInfoList.js index 1a87b2f8e..0501269aa 100644 --- a/lib/lbt/resources/ResourceInfoList.js +++ b/lib/lbt/resources/ResourceInfoList.js @@ -48,7 +48,6 @@ class ResourceInfoList { if ( myInfo == null ) { myInfo = new ResourceInfo(relativeName); myInfo.size = info.size; - myInfo.module = ResourceInfoList.getNonDebugName(info.name); this.resources.push(myInfo); this.resourcesByName.set(relativeName, myInfo); } diff --git a/lib/lbt/resources/ResourcePool.js b/lib/lbt/resources/ResourcePool.js index 5b92bb931..af3c8e7ac 100644 --- a/lib/lbt/resources/ResourcePool.js +++ b/lib/lbt/resources/ResourcePool.js @@ -176,17 +176,18 @@ class ResourcePool { /** * Retrieves the module info * - * @param {string} name module name + * @param {string} resourceName resource/module name + * @param {string} [moduleName] module name, in case it differs from the resource name (e.g. for -dbg resources) * @returns {Promise} */ - async getModuleInfo(name) { - let info = this._dependencyInfos.get(name); + async getModuleInfo(resourceName, moduleName) { + let info = this._dependencyInfos.get(resourceName); if ( info == null ) { info = Promise.resolve().then(async () => { - const resource = await this.findResource(name); - return determineDependencyInfo( resource, this._rawModuleInfos.get(name), this ); + const resource = await this.findResource(resourceName); + return determineDependencyInfo( resource, this._rawModuleInfos.get(moduleName || resourceName), this ); }); - this._dependencyInfos.set(name, info); + this._dependencyInfos.set(resourceName, info); } return info; } diff --git a/test/lib/lbt/resources/ResourceCollector.js b/test/lib/lbt/resources/ResourceCollector.js index 5f0bd6204..12633136f 100644 --- a/test/lib/lbt/resources/ResourceCollector.js +++ b/test/lib/lbt/resources/ResourceCollector.js @@ -1,6 +1,8 @@ const test = require("ava"); const sinon = require("sinon"); const mock = require("mock-require"); +const {Resource} = require("@ui5/fs"); +const LocatorResourcePool = require("../../../../lib/lbt/resources/LocatorResourcePool"); let ResourceCollector = require("../../../../lib/lbt/resources/ResourceCollector"); @@ -286,3 +288,148 @@ test.serial("enrichWithDependencyInfo: add infos to resourceinfo", async (t) => requiresTopLevelScope: true }, "all information gets used for the resourceInfo"); }); + +test.serial("integration: Raw Module Info for debug variant", async (t) => { + const resources = [ + new Resource({ + path: "/resources/mylib/myRawModuleBundle.js", + string: `define('a', () => 'a');define('b', ['a'], (a) => a + 'b');` + }), + new Resource({ + path: "/resources/mylib/externalDependency.js", + string: `console.log('Foo');` + }), + new Resource({ + path: "/resources/mylib/myRawModuleBundle-dbg.js", + string: ` +define('a', () => 'a'); +define('b', ['a'], (a) => a + 'b'); +` + }), + new Resource({ + path: "/resources/mylib/.library", + string: ` + + + mylib + Me + mylib + 1.0.0 + mylib + + + sap.ui.core + + + + + + + + + + ` + }), + ]; + + const pool = new LocatorResourcePool(); + await pool.prepare( resources ); + + const collector = new ResourceCollector(pool); + await Promise.all(resources.map((resource) => collector.visitResource(resource))); + + await collector.determineResourceDetails({ + debugResources: ["**/*-dbg.js"] + }); + + collector.groupResourcesByComponents(); + + const resourceInfoList = collector.components.get("mylib/"); + + const myRawModuleBundle = resourceInfoList.resourcesByName.get("myRawModuleBundle.js"); + t.is(myRawModuleBundle.name, "myRawModuleBundle.js"); + t.is(myRawModuleBundle.module, "mylib/myRawModuleBundle.js"); + t.is(myRawModuleBundle.format, "raw"); + t.is(myRawModuleBundle.requiresTopLevelScope, false); + t.deepEqual(myRawModuleBundle.included, + new Set(["a.js", "b.js"])); + t.deepEqual(myRawModuleBundle.required, + new Set(["mylib/externalDependency.js"])); + + const myRawModuleBundleDbg = resourceInfoList.resourcesByName.get("myRawModuleBundle-dbg.js"); + t.is(myRawModuleBundleDbg.name, "myRawModuleBundle-dbg.js"); + t.is(myRawModuleBundleDbg.module, "mylib/myRawModuleBundle.js"); + t.is(myRawModuleBundleDbg.format, "raw"); + t.is(myRawModuleBundleDbg.requiresTopLevelScope, false); + t.deepEqual(myRawModuleBundleDbg.included, + new Set(["a.js", "b.js"])); + t.deepEqual(myRawModuleBundleDbg.required, + new Set(["mylib/externalDependency.js"])); +}); + +test.serial("integration: Analyze debug bundle", async (t) => { + const resources = [ + new Resource({ + path: "/resources/mylib/myBundle.js", + string: `sap.ui.predefine('a', () => 'a');sap.ui.predefine('b', ['a'], (a) => a + 'b');` + }), + new Resource({ + path: "/resources/mylib/myBundle-dbg.js", + string: `sap.ui.predefine('a', () => 'a');` + }), + new Resource({ + path: "/resources/mylib/.library", + string: ` + + + mylib + Me + mylib + 1.0.0 + mylib + + + sap.ui.core + + + ` + }), + ]; + + const pool = new LocatorResourcePool(); + await pool.prepare( resources ); + + const collector = new ResourceCollector(pool); + await Promise.all(resources.map((resource) => collector.visitResource(resource))); + + await collector.determineResourceDetails({ + debugResources: ["**/*-dbg.js"] + }); + + collector.groupResourcesByComponents(); + + const resourceInfoList = collector.components.get("mylib/"); + + const myRawModuleBundle = resourceInfoList.resourcesByName.get("myBundle.js"); + t.is(myRawModuleBundle.name, "myBundle.js"); + t.is(myRawModuleBundle.module, "mylib/myBundle.js"); + t.is(myRawModuleBundle.format, null); + t.is(myRawModuleBundle.requiresTopLevelScope, false); + t.deepEqual(myRawModuleBundle.included, + new Set(["a.js", "b.js"])); + t.deepEqual(myRawModuleBundle.required, + new Set([])); + + const myRawModuleBundleDbg = resourceInfoList.resourcesByName.get("myBundle-dbg.js"); + t.is(myRawModuleBundleDbg.name, "myBundle-dbg.js"); + t.is(myRawModuleBundleDbg.module, "mylib/myBundle.js"); + t.is(myRawModuleBundleDbg.format, null); + t.is(myRawModuleBundleDbg.requiresTopLevelScope, false); + t.deepEqual(myRawModuleBundleDbg.included, + new Set(["a.js"])); + t.deepEqual(myRawModuleBundleDbg.required, + new Set()); +}); diff --git a/test/lib/lbt/resources/ResourceInfoList.js b/test/lib/lbt/resources/ResourceInfoList.js index a11d19ac1..8521859b7 100644 --- a/test/lib/lbt/resources/ResourceInfoList.js +++ b/test/lib/lbt/resources/ResourceInfoList.js @@ -36,7 +36,8 @@ test("add: add debug resources", (t) => { t.is(resourceInfoList.resources.length, 1, "one resource added"); const resultDbg = resourceInfoList.resourcesByName.get("../myfile-dbg.js"); - t.is(resultDbg.module, "myfile.js", "module is set"); + // Note: "module" will be set properly for debug resources within ResourceCollector#determineResourceDetails + t.is(resultDbg.module, undefined, "module is not set"); t.deepEqual(resultDbg.required, new Set(["some-dep.js"]), "module is set"); }); From aaeafd4a1fd194dd08e5ae47c29d90f0b4c7d197 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20O=C3=9Fwald?= <1410947+matz3@users.noreply.github.com> Date: Mon, 25 Apr 2022 17:03:04 +0200 Subject: [PATCH 70/74] [FIX] JSModuleAnalyzer: Fix detection of bundle name (#705) JIRA: CPOUI5FOUNDATION-485 --- lib/lbt/analyzer/JSModuleAnalyzer.js | 15 ++++- test/lib/lbt/analyzer/JSModuleAnalyzer.js | 75 +++++++++++++++++++++++ 2 files changed, 88 insertions(+), 2 deletions(-) diff --git a/lib/lbt/analyzer/JSModuleAnalyzer.js b/lib/lbt/analyzer/JSModuleAnalyzer.js index da1c494ad..c7053b3b0 100644 --- a/lib/lbt/analyzer/JSModuleAnalyzer.js +++ b/lib/lbt/analyzer/JSModuleAnalyzer.js @@ -301,6 +301,9 @@ class JSModuleAnalyzer { */ let bIsUi5Module = false; + // Module name via @ui5-bundle comment in first line. Overrides all other main module candidates. + let firstLineBundleName; + // first analyze the whole AST... visit(ast, false); @@ -314,7 +317,12 @@ class JSModuleAnalyzer { log.verbose(`bundle include directive ${subModule}`); } else if ( comment.value.startsWith("@ui5-bundle ") ) { const bundleName = comment.value.slice("@ui5-bundle ".length); - setMainModuleInfo(bundleName, null); + if (comment.start === 0) { + // Remember the name from the first line to use it as final name + firstLineBundleName = bundleName; + } else { + setMainModuleInfo(bundleName, null); + } log.verbose(`bundle name directive ${bundleName}`); } else { log.warn(`unrecognized bundle directive ${comment.value}`); @@ -324,7 +332,10 @@ class JSModuleAnalyzer { } // ...and finally take conclusions about the file's content - if ( !mainModuleFound ) { + if ( firstLineBundleName ) { + // If the first line has a bundle name, use it and override all other found names + info.name = firstLineBundleName; + } else if ( !mainModuleFound ) { // if there's exactly one module definition in this file but it didn't // immediately qualify as main module, make it now the main module if ( candidateName != null && nModuleDeclarations == 1 ) { diff --git a/test/lib/lbt/analyzer/JSModuleAnalyzer.js b/test/lib/lbt/analyzer/JSModuleAnalyzer.js index 10b5da6e5..139431eed 100644 --- a/test/lib/lbt/analyzer/JSModuleAnalyzer.js +++ b/test/lib/lbt/analyzer/JSModuleAnalyzer.js @@ -684,3 +684,78 @@ jQuery.sap.registerPreloadedModules({ t.deepEqual(info.subModules, ["foo/bar.js"], "submodule from jQuery.sap.registerPreloadedModules"); }); + +test("Module that contains jQuery.sap.declare should be derived as subModule", (t) => { + const content = ` +sap.ui.define([], function() { + jQuery.sap.declare("foo.bar"); +}); +`; + const info = analyzeString(content, "modules/module-with-jquery-sap-declare.js"); + t.is(info.name, "modules/module-with-jquery-sap-declare.js"); + t.is(info.rawModule, false); + t.is(info.format, "ui5-declare"); // FIXME: Format should actually be ui5-define + t.is(info.requiresTopLevelScope, false); + t.deepEqual(info.subModules, ["foo/bar.js"], + "jQuery.sap.declare subModule should be detected"); + t.deepEqual(info.dependencies, ["jquery.sap.global.js"], "Implicit dependency"); +}); + +test("Bundle that contains jQuery.sap.declare (sap.ui.predefine) should not be derived as module name", (t) => { + const content = `//@ui5-bundle test1/library-preload.js +sap.ui.predefine("test1/module1", [], function() { + jQuery.sap.declare("foo.bar"); +}); +`; + const info = analyzeString(content, "modules/bundle-with-jquery-sap-declare.js"); + t.is(info.name, "test1/library-preload.js", "Module name should be taken from @ui5-bundle comment"); + t.is(info.rawModule, false); + t.is(info.format, "ui5-declare"); // FIXME: Format should actually be ui5-define + t.is(info.requiresTopLevelScope, false); + // Note: foo/bar.js is not listed as the predefine body is not analyzed + t.deepEqual(info.subModules, ["test1/module1.js"], + "subModule via sap.ui.predefine should be detected"); + t.deepEqual(info.dependencies, ["jquery.sap.global.js"], "Implicit dependency"); +}); + +test("Bundle that contains jQuery.sap.declare (sap.ui.require.preload) should not be derived as module name", (t) => { + const content = `//@ui5-bundle test1/library-preload.js +sap.ui.require.preload({ + "test1/module1.js": function() { + sap.ui.define([], function() { + jQuery.sap.declare("foo.bar"); + }); + } +}); + +`; + const info = analyzeString(content, "modules/bundle-with-jquery-sap-declare.js"); + t.is(info.name, "test1/library-preload.js", "Module name should be taken from @ui5-bundle comment"); + t.is(info.rawModule, false); + t.is(info.format, "ui5-define"); + t.is(info.requiresTopLevelScope, false); + // Note: foo/bar.js is not listed as the sap.ui.define body is not analyzed + t.deepEqual(info.subModules, ["test1/module1.js"], + "subModule via sap.ui.predefine should be detected"); + t.deepEqual(info.dependencies, ["ui5loader-autoconfig.js"], "Implicit dependency"); +}); + +test("@ui5-bundle comment: Multiple comments", (t) => { + const content = `//@ui5-bundle test/bundle1.js +//@ui5-bundle test/bundle2.js +`; + const info = analyzeString(content, "modules/ui5-bundle-comments.js"); + t.is(info.name, "test/bundle1.js", "Comment from first line should be used"); + t.deepEqual(info.subModules, []); + t.deepEqual(info.dependencies, []); +}); + +test("@ui5-bundle comment: Multiple comments (Not in first line)", (t) => { + const content = `console.log('Foo'); +//@ui5-bundle test/bundle1.js +//@ui5-bundle test/bundle2.js +`; + t.throws(() => analyzeString(content, "modules/ui5-bundle-comments.js"), { + message: "conflicting main modules found (unnamed + named)" + }); +}); From 133fb5048abfa80c648dbead8f483a8569783d36 Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Tue, 26 Apr 2022 08:09:51 +0000 Subject: [PATCH 71/74] [INTERNAL] Bump @ui5/fs from 3.0.0-alpha.2 to 3.0.0-alpha.3 Changelog of this version: https://github.com/SAP/ui5-fs/blob/v3.0.0-alpha.3/CHANGELOG.md --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 74a6286da..5fb02fc51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "3.0.0-alpha.5", "license": "Apache-2.0", "dependencies": { - "@ui5/fs": "^3.0.0-alpha.2", + "@ui5/fs": "^3.0.0-alpha.3", "@ui5/logger": "^3.0.1-alpha.1", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", @@ -800,9 +800,9 @@ } }, "node_modules/@ui5/fs": { - "version": "3.0.0-alpha.2", - "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.2.tgz", - "integrity": "sha512-GCcTUiI0Kjqab6mVWK8aHt9wMjMzSoRJx9pGZsbSdXLFR9C7A7x41OW7WL9pjeuiqUFcydC2Ia1+DdKe6TOrgw==", + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.3.tgz", + "integrity": "sha512-kDnk8qf9nB3ny8B7RBNJHMIQiMADf0jdasiYUUCUQPSE4KUf9mJytkYaoRltcyDyYjAaOScccBhpx8qeZhUsqA==", "dependencies": { "@ui5/logger": "^3.0.1-alpha.1", "clone": "^2.1.0", @@ -8265,9 +8265,9 @@ } }, "@ui5/fs": { - "version": "3.0.0-alpha.2", - "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.2.tgz", - "integrity": "sha512-GCcTUiI0Kjqab6mVWK8aHt9wMjMzSoRJx9pGZsbSdXLFR9C7A7x41OW7WL9pjeuiqUFcydC2Ia1+DdKe6TOrgw==", + "version": "3.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@ui5/fs/-/fs-3.0.0-alpha.3.tgz", + "integrity": "sha512-kDnk8qf9nB3ny8B7RBNJHMIQiMADf0jdasiYUUCUQPSE4KUf9mJytkYaoRltcyDyYjAaOScccBhpx8qeZhUsqA==", "requires": { "@ui5/logger": "^3.0.1-alpha.1", "clone": "^2.1.0", diff --git a/package.json b/package.json index 2335481da..47321858d 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "url": "git@github.com:SAP/ui5-builder.git" }, "dependencies": { - "@ui5/fs": "^3.0.0-alpha.2", + "@ui5/fs": "^3.0.0-alpha.3", "@ui5/logger": "^3.0.1-alpha.1", "cheerio": "1.0.0-rc.9", "escape-unicode": "^0.2.0", From be03519fb339ba89d09261175191aa57ea346271 Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Tue, 26 Apr 2022 08:14:14 +0000 Subject: [PATCH 72/74] Release 3.0.0-alpha.6 --- CHANGELOG.md | 10 +++++++++- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a09ab335b..e46106730 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,14 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.5...HEAD). +A list of unreleased changes can be found [here](https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.6...HEAD). + + +## [v3.0.0-alpha.6] - 2022-04-26 +### Bug Fixes +- **JSModuleAnalyzer:** Fix detection of bundle name ([#705](https://github.com/SAP/ui5-builder/issues/705)) [`aaeafd4`](https://github.com/SAP/ui5-builder/commit/aaeafd4a1fd194dd08e5ae47c29d90f0b4c7d197) +- **generateResourcesJson:** Add raw-module info for debug bundles ([#736](https://github.com/SAP/ui5-builder/issues/736)) [`3b918e8`](https://github.com/SAP/ui5-builder/commit/3b918e83bfd38342778ecd4c58e648e99ad7cffc) + ## [v3.0.0-alpha.5] - 2022-04-14 @@ -714,6 +721,7 @@ to load the custom bundle file instead. - Add ability to configure component preloads and custom bundles [`2241e5f`](https://github.com/SAP/ui5-builder/commit/2241e5ff98fd95f1f80cc74959655ae7a9c660e7) +[v3.0.0-alpha.6]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.5...v3.0.0-alpha.6 [v3.0.0-alpha.5]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.4...v3.0.0-alpha.5 [v3.0.0-alpha.4]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.3...v3.0.0-alpha.4 [v3.0.0-alpha.3]: https://github.com/SAP/ui5-builder/compare/v3.0.0-alpha.2...v3.0.0-alpha.3 diff --git a/package-lock.json b/package-lock.json index 5fb02fc51..5dde6b7a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.5", + "version": "3.0.0-alpha.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ui5/builder", - "version": "3.0.0-alpha.5", + "version": "3.0.0-alpha.6", "license": "Apache-2.0", "dependencies": { "@ui5/fs": "^3.0.0-alpha.3", diff --git a/package.json b/package.json index 47321858d..8e20873f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ui5/builder", - "version": "3.0.0-alpha.5", + "version": "3.0.0-alpha.6", "description": "UI5 Tooling - Builder", "author": { "name": "SAP SE", From 97cfa6cd3eadff57bcc18816534c7751551ebdb8 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Wed, 27 Apr 2022 14:20:32 +0200 Subject: [PATCH 73/74] [FEATURE] Enable modern preload bundles without dependencies (#739) --- lib/lbt/bundle/Builder.js | 54 +----- lib/processors/bundlers/moduleBundler.js | 4 +- .../bundlers/generateComponentPreload.js | 17 +- lib/tasks/bundlers/generateLibraryPreload.js | 19 +-- lib/types/application/ApplicationBuilder.js | 2 - lib/types/library/LibraryBuilder.js | 2 - .../cachebuster/Component-preload.js | 6 +- .../cachebuster/Component-preload.js.map | 2 +- .../cachebuster_hash/Component-preload.js | 6 +- .../cachebuster_hash/Component-preload.js.map | 2 +- .../application.g/dest/Component-preload.js | 6 +- .../dest/Component-preload.js.map | 2 +- .../dest/subcomponentA/Component-preload.js | 6 +- .../subcomponentA/Component-preload.js.map | 2 +- .../dest/subcomponentB/Component-preload.js | 6 +- .../subcomponentB/Component-preload.js.map | 2 +- .../application.g/dest2/Component-preload.js | 6 +- .../dest2/Component-preload.js.map | 2 +- .../dest2/subcomponentA/Component-preload.js | 6 +- .../subcomponentA/Component-preload.js.map | 2 +- .../dest2/subcomponentB/Component-preload.js | 6 +- .../subcomponentB/Component-preload.js.map | 2 +- .../dest/sectionsA/customBundle.js | 6 +- .../dest/sectionsA/customBundle.js.map | 2 +- .../dest/sectionsB/customBundle.js | 6 +- .../dest/sectionsB/customBundle.js.map | 2 +- .../no-minify/sectionsA/customBundle.js | 6 +- .../no-minify/sectionsA/customBundle.js.map | 2 +- .../no-minify/sectionsB/customBundle.js | 6 +- .../no-minify/sectionsB/customBundle.js.map | 2 +- .../application.i/dest/Component-preload.js | 6 +- .../dest/Component-preload.js.map | 2 +- .../dest-resources-json/Component-preload.js | 6 +- .../Component-preload.js.map | 2 +- .../dest-resources-json/resources.json | 4 +- .../application.j/dest/Component-preload.js | 6 +- .../dest/Component-preload.js.map | 2 +- .../Component-preload.js | 6 +- .../Component-preload.js.map | 2 +- .../application.k/dest/Component-preload.js | 6 +- .../dest/Component-preload.js.map | 2 +- .../dest/subcomponentA/Component-preload.js | 6 +- .../subcomponentA/Component-preload.js.map | 2 +- .../dest/subcomponentB/Component-preload.js | 6 +- .../subcomponentB/Component-preload.js.map | 2 +- .../resources/library/d/library-preload.js | 6 +- .../library/d/library-preload.js.map | 2 +- test/lib/lbt/bundle/Builder.js | 11 +- .../bundlers/generateComponentPreload.js | 80 +++------ .../tasks/bundlers/generateLibraryPreload.js | 157 +++++++----------- 50 files changed, 176 insertions(+), 334 deletions(-) diff --git a/lib/lbt/bundle/Builder.js b/lib/lbt/bundle/Builder.js index cd68b2a24..687c2d3b8 100644 --- a/lib/lbt/bundle/Builder.js +++ b/lib/lbt/bundle/Builder.js @@ -40,38 +40,6 @@ function isEmptyBundle(resolvedBundle) { return resolvedBundle.sections.every((section) => section.modules.length === 0); } -const UI5BundleFormat = { - beforePreloads(section) { - let str = `jQuery.sap.registerPreloadedModules({\n`; - if ( section.name ) { - str += `"name":"${section.name}",\n`; - } - str += `"version":"2.0",\n`; - str += `"modules":{\n`; - return str; - }, - - afterPreloads(section) { - return `}});\n`; - }, - - beforeBundleInfo() { - return `"unsupported"; /* 'bundleInfo' section mode not supported (requires ui5loader)\n`; - }, - - afterBundleInfo() { - return "*/\n"; - }, - - requireSync(moduleName) { - return `sap.ui.requireSync("${ModuleName.toRequireJSName(moduleName)}");\n`; - }, - - shouldDecorate(resolvedModule) { - return resolvedModule.executes(UI5ClientConstants.MODULE__JQUERY_SAP_GLOBAL); - } -}; - const EVOBundleFormat = { beforePreloads(section) { return `sap.ui.require.preload({\n`; @@ -115,7 +83,6 @@ class BundleBuilder { } async createBundle(module, options) { - await this._prepare(); if ( options.numberOfParts > 1 ) { const bundleInfos = []; const submodules = await this.splitter.run( module, options ); @@ -128,17 +95,6 @@ class BundleBuilder { } } - _prepare() { - return Promise.all([ - // check whether the resource pool contains debug and optimized sources - this.pool.findResource( ModuleName.getDebugName(UI5ClientConstants.MODULE__JQUERY_SAP_GLOBAL) ). - then( () => this.optimizedSources = true, () => this.optimizedSources = false ), - // check whether EVO modules are available. If so, use EVO APIs, else use old UI5 APIs. - this.pool.findResource(UI5ClientConstants.EVO_MARKER_RESOURCE). - then( () => this.targetBundleFormat = EVOBundleFormat, () => this.targetBundleFormat = UI5BundleFormat ) - ]); - } - async _createBundle(module, options) { const resolvedModule = await this.resolver.resolve(module); if ( options.skipIfEmpty && isEmptyBundle(resolvedModule) ) { @@ -153,11 +109,13 @@ class BundleBuilder { this.options.sourceMap = true; } - // when decorateBootstrapModule is set to false, we don't write the optimized flag - // and don't write the try catch wrapper + // Since UI5 Tooling 3.0: Always use modern API + this.targetBundleFormat = EVOBundleFormat; + + // when decorateBootstrapModule is false, + // we don't write the optimized flag and don't write the try catch wrapper this.shouldDecorate = this.options.decorateBootstrapModule && - (((this.optimizedSources && !this.options.debugMode) || this.optimize) && - this.targetBundleFormat.shouldDecorate(resolvedModule)); + this.targetBundleFormat.shouldDecorate(resolvedModule); // TODO is the following condition ok or should the availability of jquery.sap.global.js be configurable? this.jqglobalAvailable = !resolvedModule.containsGlobal; this.openModule(resolvedModule.name); diff --git a/lib/processors/bundlers/moduleBundler.js b/lib/processors/bundlers/moduleBundler.js index b9edca580..ff643cd8b 100644 --- a/lib/processors/bundlers/moduleBundler.js +++ b/lib/processors/bundlers/moduleBundler.js @@ -91,9 +91,9 @@ const log = require("@ui5/logger").getLogger("builder:processors:bundlers:module * @typedef {object} ModuleBundleOptions * @property {boolean} [optimize=true] Whether the module bundle gets minified * @property {boolean} [sourceMap=true] Whether to generate a source map file for the bundle - * @property {boolean} [decorateBootstrapModule=false] If set to 'false', the module won't be decorated + * @property {boolean} [decorateBootstrapModule=false] If set to 'false', bootable bundles won't be decorated * with an optimization marker - * @property {boolean} [addTryCatchRestartWrapper=false] Whether to wrap bootable module bundles with + * @property {boolean} [addTryCatchRestartWrapper=false] Whether to wrap bootable bundles with * a try/catch to filter out "Restart" errors * @property {boolean} [usePredefineCalls=false] If set to 'true', sap.ui.predefine is used for UI5 modules * @property {number} [numberOfParts=1] The number of parts the module bundle should be splitted diff --git a/lib/tasks/bundlers/generateComponentPreload.js b/lib/tasks/bundlers/generateComponentPreload.js index 0bae96d79..d76e81d87 100644 --- a/lib/tasks/bundlers/generateComponentPreload.js +++ b/lib/tasks/bundlers/generateComponentPreload.js @@ -1,7 +1,6 @@ const path = require("path"); const moduleBundler = require("../../processors/bundlers/moduleBundler"); const log = require("@ui5/logger").getLogger("builder:tasks:bundlers:generateComponentPreload"); -const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritized; const {negateFilters} = require("../../lbt/resources/ResourceFilterList"); /** @@ -11,7 +10,6 @@ const {negateFilters} = require("../../lbt/resources/ResourceFilterList"); * @alias module:@ui5/builder.tasks.generateComponentPreload * @param {object} parameters Parameters * @param {module:@ui5/fs.DuplexCollection} parameters.workspace DuplexCollection to read and write files - * @param {module:@ui5/fs.AbstractReader} parameters.dependencies Reader or Collection to read dependency files * @param {module:@ui5/builder.tasks.TaskUtil|object} [parameters.taskUtil] TaskUtil * @param {object} parameters.options Options * @param {string} parameters.options.projectName Project name @@ -26,29 +24,24 @@ const {negateFilters} = require("../../lbt/resources/ResourceFilterList"); * @returns {Promise} Promise resolving with undefined once data has been written */ module.exports = function({ - workspace, dependencies, taskUtil, options: {projectName, paths, namespaces, excludes = []} + workspace, taskUtil, options: {projectName, paths, namespaces, excludes = []} }) { - let combo = new ReaderCollectionPrioritized({ - name: `generateComponentPreload - prioritize workspace over dependencies: ${projectName}`, - readers: [workspace, dependencies] - }); - + let nonDbgWorkspace = workspace; if (taskUtil) { - combo = combo.filter(function(resource) { + nonDbgWorkspace = workspace.filter(function(resource) { // Remove any debug variants return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.IsDebugVariant); }); } - // TODO 3.0: Limit to workspace resources? - return combo.byGlob("/resources/**/*.{js,json,xml,html,properties,library,js.map}") + return nonDbgWorkspace.byGlob("/resources/**/*.{js,json,xml,html,properties,library,js.map}") .then(async (resources) => { let allNamespaces = []; if (paths) { allNamespaces = await Promise.all(paths.map(async (componentPath) => { const globPath = "/resources/" + componentPath; log.verbose(`Globbing for Components directories with configured path ${globPath}...`); - const components = await combo.byGlob(globPath); // TODO 3.0: Limit to workspace resources? + const components = await nonDbgWorkspace.byGlob(globPath); return components.map((component) => { const compDir = path.dirname(component.getPath()).replace(/^\/resources\//i, ""); log.verbose(`Found component namespace ${compDir}`); diff --git a/lib/tasks/bundlers/generateLibraryPreload.js b/lib/tasks/bundlers/generateLibraryPreload.js index 0a027620a..c12a8973f 100644 --- a/lib/tasks/bundlers/generateLibraryPreload.js +++ b/lib/tasks/bundlers/generateLibraryPreload.js @@ -1,6 +1,5 @@ const log = require("@ui5/logger").getLogger("builder:tasks:bundlers:generateLibraryPreload"); const moduleBundler = require("../../processors/bundlers/moduleBundler"); -const ReaderCollectionPrioritized = require("@ui5/fs").ReaderCollectionPrioritized; const {negateFilters} = require("../../lbt/resources/ResourceFilterList"); const createModuleNameMapping = require("./utils/createModuleNameMapping"); @@ -266,7 +265,6 @@ function getSapUiCoreBunDef(name, filters, preload) { * @alias module:@ui5/builder.tasks.generateLibraryPreload * @param {object} parameters Parameters * @param {module:@ui5/fs.DuplexCollection} parameters.workspace DuplexCollection to read and write files - * @param {module:@ui5/fs.AbstractReader} parameters.dependencies Reader or Collection to read dependency files * @param {module:@ui5/builder.tasks.TaskUtil|object} [parameters.taskUtil] TaskUtil * @param {string[]} [parameters.options.excludes=[]] List of modules declared as glob patterns (resource name patterns) * that should be excluded from the library-preload.js bundle. @@ -278,20 +276,16 @@ function getSapUiCoreBunDef(name, filters, preload) { * @param {string} parameters.options.projectName Project name * @returns {Promise} Promise resolving with undefined once data has been written */ -module.exports = function({workspace, dependencies, taskUtil, options: {projectName, excludes = []}}) { - let combo = new ReaderCollectionPrioritized({ - name: `libraryBundler - prioritize workspace over dependencies: ${projectName}`, - readers: [workspace, dependencies] - }); - +module.exports = function({workspace, taskUtil, options: {projectName, excludes = []}}) { + let nonDbgWorkspace = workspace; if (taskUtil) { - combo = combo.filter(function(resource) { + nonDbgWorkspace = workspace.filter(function(resource) { // Remove any debug variants return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.IsDebugVariant); }); } - return combo.byGlob("/**/*.{js,json,xml,html,properties,library,js.map}").then(async (resources) => { + return nonDbgWorkspace.byGlob("/**/*.{js,json,xml,html,properties,library,js.map}").then(async (resources) => { // Find all libraries and create a library-preload.js bundle let p = Promise.resolve(); @@ -314,10 +308,7 @@ module.exports = function({workspace, dependencies, taskUtil, options: {projectN let unoptimizedModuleNameMapping; let unoptimizedResources = resources; if (taskUtil) { - unoptimizedResources = await new ReaderCollectionPrioritized({ - name: `libraryBundler - prioritize workspace over dependencies: ${projectName}`, - readers: [workspace, dependencies] - }).filter(function(resource) { + unoptimizedResources = await workspace.filter(function(resource) { // Remove any non-debug variants return !taskUtil.getTag(resource, taskUtil.STANDARD_TAGS.HasDebugVariant); }).byGlob("/**/*.{js,json,xml,html,properties,library,js.map}"); diff --git a/lib/types/application/ApplicationBuilder.js b/lib/types/application/ApplicationBuilder.js index debd7fb01..a8ff35da4 100644 --- a/lib/types/application/ApplicationBuilder.js +++ b/lib/types/application/ApplicationBuilder.js @@ -93,7 +93,6 @@ class ApplicationBuilder extends AbstractBuilder { this.addTask("generateComponentPreload", async () => { return getTask("generateComponentPreload").task({ workspace: resourceCollections.workspace, - dependencies: resourceCollections.dependencies, taskUtil, options: { projectName: project.metadata.name, @@ -108,7 +107,6 @@ class ApplicationBuilder extends AbstractBuilder { this.addTask("generateComponentPreload", async () => { return getTask("generateComponentPreload").task({ workspace: resourceCollections.workspace, - dependencies: resourceCollections.dependencies, taskUtil, options: { projectName: project.metadata.name, diff --git a/lib/types/library/LibraryBuilder.js b/lib/types/library/LibraryBuilder.js index 31e2e1cb2..025682c03 100644 --- a/lib/types/library/LibraryBuilder.js +++ b/lib/types/library/LibraryBuilder.js @@ -137,7 +137,6 @@ class LibraryBuilder extends AbstractBuilder { this.addTask("generateComponentPreload", async () => { return getTask("generateComponentPreload").task({ workspace: resourceCollections.workspace, - dependencies: resourceCollections.dependencies, taskUtil, options: { projectName: project.metadata.name, @@ -152,7 +151,6 @@ class LibraryBuilder extends AbstractBuilder { this.addTask("generateLibraryPreload", async () => { return getTask("generateLibraryPreload").task({ workspace: resourceCollections.workspace, - dependencies: resourceCollections.dependencies, taskUtil, options: { projectName: project.metadata.name, diff --git a/test/expected/build/application.g/cachebuster/Component-preload.js b/test/expected/build/application.g/cachebuster/Component-preload.js index b1f089a2a..2834902bd 100644 --- a/test/expected/build/application.g/cachebuster/Component-preload.js +++ b/test/expected/build/application.g/cachebuster/Component-preload.js @@ -1,7 +1,5 @@ //@ui5-bundle application/g/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/g/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); }, @@ -14,5 +12,5 @@ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.exte sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/cachebuster/Component-preload.js.map b/test/expected/build/application.g/cachebuster/Component-preload.js.map index 407e4420d..068ca7499 100644 --- a/test/expected/build/application.g/cachebuster/Component-preload.js.map +++ b/test/expected/build/application.g/cachebuster/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentA"}},{"offset":{"line":13,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentB"}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":7,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentA"}},{"offset":{"line":11,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentB"}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/cachebuster_hash/Component-preload.js b/test/expected/build/application.g/cachebuster_hash/Component-preload.js index b1f089a2a..2834902bd 100644 --- a/test/expected/build/application.g/cachebuster_hash/Component-preload.js +++ b/test/expected/build/application.g/cachebuster_hash/Component-preload.js @@ -1,7 +1,5 @@ //@ui5-bundle application/g/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/g/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); }, @@ -14,5 +12,5 @@ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.exte sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/cachebuster_hash/Component-preload.js.map b/test/expected/build/application.g/cachebuster_hash/Component-preload.js.map index 407e4420d..068ca7499 100644 --- a/test/expected/build/application.g/cachebuster_hash/Component-preload.js.map +++ b/test/expected/build/application.g/cachebuster_hash/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentA"}},{"offset":{"line":13,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentB"}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":7,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentA"}},{"offset":{"line":11,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":"subcomponentB"}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/Component-preload.js b/test/expected/build/application.g/dest/Component-preload.js index a186e8cc7..54dc2a0cb 100644 --- a/test/expected/build/application.g/dest/Component-preload.js +++ b/test/expected/build/application.g/dest/Component-preload.js @@ -1,10 +1,8 @@ //@ui5-bundle application/g/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/g/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); }, "application/g/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g","type":"application","applicationVersion":{"version":"1.0.0"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"Some fancy copyright"}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest/Component-preload.js.map b/test/expected/build/application.g/dest/Component-preload.js.map index a7a60e6f3..cf93d8189 100644 --- a/test/expected/build/application.g/dest/Component-preload.js.map +++ b/test/expected/build/application.g/dest/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentA/Component-preload.js b/test/expected/build/application.g/dest/subcomponentA/Component-preload.js index 63ae65bd3..d3064774c 100644 --- a/test/expected/build/application.g/dest/subcomponentA/Component-preload.js +++ b/test/expected/build/application.g/dest/subcomponentA/Component-preload.js @@ -1,10 +1,8 @@ //@ui5-bundle application/g/subcomponentA/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/g/subcomponentA/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest/subcomponentA/Component-preload.js.map b/test/expected/build/application.g/dest/subcomponentA/Component-preload.js.map index 86937b5b0..87321f7f7 100644 --- a/test/expected/build/application.g/dest/subcomponentA/Component-preload.js.map +++ b/test/expected/build/application.g/dest/subcomponentA/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest/subcomponentB/Component-preload.js b/test/expected/build/application.g/dest/subcomponentB/Component-preload.js index ec2301f6d..058cabe75 100644 --- a/test/expected/build/application.g/dest/subcomponentB/Component-preload.js +++ b/test/expected/build/application.g/dest/subcomponentB/Component-preload.js @@ -1,10 +1,8 @@ //@ui5-bundle application/g/subcomponentB/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/g/subcomponentB/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest/subcomponentB/Component-preload.js.map b/test/expected/build/application.g/dest/subcomponentB/Component-preload.js.map index 86937b5b0..87321f7f7 100644 --- a/test/expected/build/application.g/dest/subcomponentB/Component-preload.js.map +++ b/test/expected/build/application.g/dest/subcomponentB/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/Component-preload.js b/test/expected/build/application.g/dest2/Component-preload.js index a186e8cc7..54dc2a0cb 100644 --- a/test/expected/build/application.g/dest2/Component-preload.js +++ b/test/expected/build/application.g/dest2/Component-preload.js @@ -1,10 +1,8 @@ //@ui5-bundle application/g/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/g/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.Component",{metadata:{manifest:"json"}})}); }, "application/g/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g","type":"application","applicationVersion":{"version":"1.0.0"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"Some fancy copyright"}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest2/Component-preload.js.map b/test/expected/build/application.g/dest2/Component-preload.js.map index a7a60e6f3..cf93d8189 100644 --- a/test/expected/build/application.g/dest2/Component-preload.js.map +++ b/test/expected/build/application.g/dest2/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js b/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js index 63ae65bd3..d3064774c 100644 --- a/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js +++ b/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js @@ -1,10 +1,8 @@ //@ui5-bundle application/g/subcomponentA/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/g/subcomponentA/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentA.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js.map b/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js.map index 86937b5b0..87321f7f7 100644 --- a/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js.map +++ b/test/expected/build/application.g/dest2/subcomponentA/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js b/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js index ec2301f6d..058cabe75 100644 --- a/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js +++ b/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js @@ -1,10 +1,8 @@ //@ui5-bundle application/g/subcomponentB/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/g/subcomponentB/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.g.subcomponentB.Component",{metadata:{manifest:"json"}})}); }, "application/g/subcomponentB/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.g.subcomponentB","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js.map b/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js.map index 86937b5b0..87321f7f7 100644 --- a/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js.map +++ b/test/expected/build/application.g/dest2/subcomponentB/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,wCAAyC,CAClEC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsA/customBundle.js b/test/expected/build/application.h/dest/sectionsA/customBundle.js index 50d9eba4b..8bac1d2ad 100644 --- a/test/expected/build/application.h/dest/sectionsA/customBundle.js +++ b/test/expected/build/application.h/dest/sectionsA/customBundle.js @@ -1,12 +1,10 @@ //@ui5-bundle application/h/sectionsA/customBundle.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/h/sectionsA/section1.js":function(){ sap.ui.define(["sap/m/Button"],function(n){console.log("Section 1 included")}); }, "application/h/sectionsA/section3.js":function(){ sap.ui.define(["sap/m/Button"],function(n){console.log("Section 3 included")}); } -}}); +}); //# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/application.h/dest/sectionsA/customBundle.js.map b/test/expected/build/application.h/dest/sectionsA/customBundle.js.map index d4d5782ad..0fcd3f3a5 100644 --- a/test/expected/build/application.h/dest/sectionsA/customBundle.js.map +++ b/test/expected/build/application.h/dest/sectionsA/customBundle.js.map @@ -1 +1 @@ -{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["section1-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section1.js","sourceRoot":""}},{"offset":{"line":8,"column":0},"map":{"version":3,"sources":["section3-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section3.js","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["section1-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section1.js","sourceRoot":""}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["section3-dbg.js"],"names":["sap","ui","define","Button","console","log"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,gBAAiB,SAASC,GACxCC,QAAQC,IAAI","file":"section3.js","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.h/dest/sectionsB/customBundle.js b/test/expected/build/application.h/dest/sectionsB/customBundle.js index ab1c24af1..0966b8950 100644 --- a/test/expected/build/application.h/dest/sectionsB/customBundle.js +++ b/test/expected/build/application.h/dest/sectionsB/customBundle.js @@ -1,7 +1,5 @@ //@ui5-bundle application/h/sectionsB/customBundle.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/h/sectionsB/section1.js":function(){ sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 1 included"); @@ -17,5 +15,5 @@ sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 3 included"); }); } -}}); +}); //# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/application.h/dest/sectionsB/customBundle.js.map b/test/expected/build/application.h/dest/sectionsB/customBundle.js.map index a4a89d247..2971d0fc9 100644 --- a/test/expected/build/application.h/dest/sectionsB/customBundle.js.map +++ b/test/expected/build/application.h/dest/sectionsB/customBundle.js.map @@ -1 +1 @@ -{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["section1-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":10,"column":0},"map":{"version":3,"sources":["section2-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":15,"column":0},"map":{"version":3,"sources":["section3-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["section1-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":8,"column":0},"map":{"version":3,"sources":["section2-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":13,"column":0},"map":{"version":3,"sources":["section3-dbg.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.h/no-minify/sectionsA/customBundle.js b/test/expected/build/application.h/no-minify/sectionsA/customBundle.js index 3512dedd4..d2e9ee83a 100644 --- a/test/expected/build/application.h/no-minify/sectionsA/customBundle.js +++ b/test/expected/build/application.h/no-minify/sectionsA/customBundle.js @@ -1,7 +1,5 @@ //@ui5-bundle application/h/sectionsA/customBundle.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/h/sectionsA/section1.js":function(){ sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 1 included"); @@ -12,5 +10,5 @@ sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 3 included"); }); } -}}); +}); //# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/application.h/no-minify/sectionsA/customBundle.js.map b/test/expected/build/application.h/no-minify/sectionsA/customBundle.js.map index fb67f722e..9bc29a29f 100644 --- a/test/expected/build/application.h/no-minify/sectionsA/customBundle.js.map +++ b/test/expected/build/application.h/no-minify/sectionsA/customBundle.js.map @@ -1 +1 @@ -{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["section1.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":10,"column":0},"map":{"version":3,"sources":["section3.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["section1.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":8,"column":0},"map":{"version":3,"sources":["section3.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.h/no-minify/sectionsB/customBundle.js b/test/expected/build/application.h/no-minify/sectionsB/customBundle.js index ab1c24af1..0966b8950 100644 --- a/test/expected/build/application.h/no-minify/sectionsB/customBundle.js +++ b/test/expected/build/application.h/no-minify/sectionsB/customBundle.js @@ -1,7 +1,5 @@ //@ui5-bundle application/h/sectionsB/customBundle.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/h/sectionsB/section1.js":function(){ sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 1 included"); @@ -17,5 +15,5 @@ sap.ui.define(["sap/m/Button"], function(Button) { console.log("Section 3 included"); }); } -}}); +}); //# sourceMappingURL=customBundle.js.map diff --git a/test/expected/build/application.h/no-minify/sectionsB/customBundle.js.map b/test/expected/build/application.h/no-minify/sectionsB/customBundle.js.map index f42d1805c..bf32af899 100644 --- a/test/expected/build/application.h/no-minify/sectionsB/customBundle.js.map +++ b/test/expected/build/application.h/no-minify/sectionsB/customBundle.js.map @@ -1 +1 @@ -{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["section1.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":10,"column":0},"map":{"version":3,"sources":["section2.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":15,"column":0},"map":{"version":3,"sources":["section3.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"customBundle.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["customBundle.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["section1.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":8,"column":0},"map":{"version":3,"sources":["section2.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":13,"column":0},"map":{"version":3,"sources":["section3.js"],"mappings":"AAAA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.i/dest/Component-preload.js b/test/expected/build/application.i/dest/Component-preload.js index b974b8084..3faa565a4 100644 --- a/test/expected/build/application.i/dest/Component-preload.js +++ b/test/expected/build/application.i/dest/Component-preload.js @@ -1,7 +1,5 @@ //@ui5-bundle application/i/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/i/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.i.Component",{metadata:{manifest:"json"}})}); }, @@ -11,5 +9,5 @@ sap.ui.define([],function(){return{}}); }, "application/i/changes/fragments/MyFragment.fragment.xml":'', "application/i/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.i","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.72","libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{}}}}}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.i/dest/Component-preload.js.map b/test/expected/build/application.i/dest/Component-preload.js.map index adda28edc..dd7d07098 100644 --- a/test/expected/build/application.i/dest/Component-preload.js.map +++ b/test/expected/build/application.i/dest/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":9,"column":0},"map":{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js","sourceRoot":"changes/coding"}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":7,"column":0},"map":{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js","sourceRoot":"changes/coding"}}]} \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/Component-preload.js b/test/expected/build/application.j/dest-resources-json/Component-preload.js index 23cbb1b7d..7e4eadce0 100644 --- a/test/expected/build/application.j/dest-resources-json/Component-preload.js +++ b/test/expected/build/application.j/dest-resources-json/Component-preload.js @@ -1,7 +1,5 @@ //@ui5-bundle application/j/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/j/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); }, @@ -11,5 +9,5 @@ sap.ui.define([],function(){return{}}); "application/j/changes/flexibility-bundle.json":'{"changes":[{"fileName":"id_456_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2023-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}},{"fileName":"id_123_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"CUSTOMER","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"Max Mustermann"}}],"compVariants":[{"fileName":"id_111_compVariants","fileType":"variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"appDescriptorChange":false}],"variants":[{"fileName":"id_111_test","fileType":"ctrl_variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantDependentControlChanges":[{"fileName":"id_111_variantDependentControlChange","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"variantReference":"someting here"}],"variantManagementChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_management_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}]}', "application/j/changes/fragments/MyFragment.fragment.xml":'', "application/j/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.j","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.100.2","libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{"lazy":false}}}}}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.j/dest-resources-json/Component-preload.js.map b/test/expected/build/application.j/dest-resources-json/Component-preload.js.map index a7bfb3e24..4697c6628 100644 --- a/test/expected/build/application.j/dest-resources-json/Component-preload.js.map +++ b/test/expected/build/application.j/dest-resources-json/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":8,"column":0},"map":{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js","sourceRoot":"changes/coding"}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js","sourceRoot":"changes/coding"}}]} \ No newline at end of file diff --git a/test/expected/build/application.j/dest-resources-json/resources.json b/test/expected/build/application.j/dest-resources-json/resources.json index 268fb7365..1f0f18d89 100644 --- a/test/expected/build/application.j/dest-resources-json/resources.json +++ b/test/expected/build/application.j/dest-resources-json/resources.json @@ -17,7 +17,7 @@ { "name": "Component-preload.js", "module": "application/j/Component-preload.js", - "size": 3731, + "size": 3688, "merged": true, "required": [ "sap/m/library.js", @@ -36,7 +36,7 @@ }, { "name": "Component-preload.js.map", - "size": 836, + "size": 776, "isDebug": true }, { diff --git a/test/expected/build/application.j/dest/Component-preload.js b/test/expected/build/application.j/dest/Component-preload.js index 23cbb1b7d..7e4eadce0 100644 --- a/test/expected/build/application.j/dest/Component-preload.js +++ b/test/expected/build/application.j/dest/Component-preload.js @@ -1,7 +1,5 @@ //@ui5-bundle application/j/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/j/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"],function(n){"use strict";return n.extend("application.j.Component",{metadata:{manifest:"json"}})}); }, @@ -11,5 +9,5 @@ sap.ui.define([],function(){return{}}); "application/j/changes/flexibility-bundle.json":'{"changes":[{"fileName":"id_456_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2023-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}},{"fileName":"id_123_addField","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"CUSTOMER","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"Max Mustermann"}}],"compVariants":[{"fileName":"id_111_compVariants","fileType":"variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"appDescriptorChange":false}],"variants":[{"fileName":"id_111_test","fileType":"ctrl_variant","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}],"variantDependentControlChanges":[{"fileName":"id_111_variantDependentControlChange","fileType":"change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"},"variantReference":"someting here"}],"variantManagementChanges":[{"fileName":"id_111_test","fileType":"ctrl_variant_management_change","changeType":"hideControl","component":"application.j.Component","content":{},"selector":{"id":"control1"},"layer":"VENDOR","texts":{},"namespace":"apps/application.j.Component/changes","creation":"2025-10-30T13:52:40.4754350Z","originalLanguage":"","conditions":{},"support":{"generator":"did it","user":"SAP"}}]}', "application/j/changes/fragments/MyFragment.fragment.xml":'', "application/j/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.j","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"},"sap.ui5":{"dependencies":{"minUI5Version":"1.100.2","libs":{"sap.ui.layout":{},"sap.ui.core":{},"sap.m":{},"sap.ui.fl":{"lazy":false}}}}}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.j/dest/Component-preload.js.map b/test/expected/build/application.j/dest/Component-preload.js.map index a7bfb3e24..4697c6628 100644 --- a/test/expected/build/application.j/dest/Component-preload.js.map +++ b/test/expected/build/application.j/dest/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":8,"column":0},"map":{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js","sourceRoot":"changes/coding"}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component-dbg.js"],"names":["sap","ui","define","UIComponent","extend","metadata","manifest"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,CAAC,2BAA4B,SAASC,GACnD,aACA,OAAOA,EAAYC,OAAO,0BAA2B,CACpDC,SAAU,CACTC,SAAU","file":"Component.js","sourceRoot":""}},{"offset":{"line":6,"column":0},"map":{"version":3,"sources":["MyExtension-dbg.js"],"names":["sap","ui","define"],"mappings":"AAAAA,IAAIC,GAAGC,OAAO,GAAG,WAChB,MAAO","file":"MyExtension.js","sourceRoot":"changes/coding"}}]} \ No newline at end of file diff --git a/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js b/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js index 07f1270d6..35422ab9a 100644 --- a/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js +++ b/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js @@ -1,7 +1,5 @@ //@ui5-bundle application/k/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/k/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; @@ -38,5 +36,5 @@ sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "application/k/subcomponentB/thirdparty/lib.js":function(){ console.log("subcomponentB/thirdparty/lib.js"); } -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js.map b/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js.map index 721564654..4931f0ded 100644 --- a/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js.map +++ b/test/expected/build/application.k/dest-package-subcomponents/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":16,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":"subcomponentA"}},{"offset":{"line":27,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":"subcomponentB"}},{"offset":{"line":38,"column":0},"map":{"version":3,"sources":["lib.js"],"mappings":"AAAA;AACA","sourceRoot":"subcomponentB/thirdparty"}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":14,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":"subcomponentA"}},{"offset":{"line":25,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":"subcomponentB"}},{"offset":{"line":36,"column":0},"map":{"version":3,"sources":["lib.js"],"mappings":"AAAA;AACA","sourceRoot":"subcomponentB/thirdparty"}}]} \ No newline at end of file diff --git a/test/expected/build/application.k/dest/Component-preload.js b/test/expected/build/application.k/dest/Component-preload.js index 9eefb8942..619739027 100644 --- a/test/expected/build/application.k/dest/Component-preload.js +++ b/test/expected/build/application.k/dest/Component-preload.js @@ -1,7 +1,5 @@ //@ui5-bundle application/k/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/k/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; @@ -13,5 +11,5 @@ sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ }); }, "application/k/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k","type":"application","applicationVersion":{"version":"${version}"},"embeds":["embedded"],"title":"{{title}}"},"customCopyrightString":"${copyright}"}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.k/dest/Component-preload.js.map b/test/expected/build/application.k/dest/Component-preload.js.map index 61c83ce28..bdf7961dc 100644 --- a/test/expected/build/application.k/dest/Component-preload.js.map +++ b/test/expected/build/application.k/dest/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.k/dest/subcomponentA/Component-preload.js b/test/expected/build/application.k/dest/subcomponentA/Component-preload.js index cb50c4d55..a096cb54d 100644 --- a/test/expected/build/application.k/dest/subcomponentA/Component-preload.js +++ b/test/expected/build/application.k/dest/subcomponentA/Component-preload.js @@ -1,7 +1,5 @@ //@ui5-bundle application/k/subcomponentA/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/k/subcomponentA/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; @@ -13,5 +11,5 @@ sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ }); }, "application/k/subcomponentA/manifest.json":'{"_version":"1.1.0","sap.app":{"_version":"1.1.0","id":"application.k.subcomponentA","type":"application","applicationVersion":{"version":"1.2.2"},"embeds":["embedded"],"title":"{{title}}"}}' -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.k/dest/subcomponentA/Component-preload.js.map b/test/expected/build/application.k/dest/subcomponentA/Component-preload.js.map index 61c83ce28..bdf7961dc 100644 --- a/test/expected/build/application.k/dest/subcomponentA/Component-preload.js.map +++ b/test/expected/build/application.k/dest/subcomponentA/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/expected/build/application.k/dest/subcomponentB/Component-preload.js b/test/expected/build/application.k/dest/subcomponentB/Component-preload.js index e09fbb22e..7af57880b 100644 --- a/test/expected/build/application.k/dest/subcomponentB/Component-preload.js +++ b/test/expected/build/application.k/dest/subcomponentB/Component-preload.js @@ -1,7 +1,5 @@ //@ui5-bundle application/k/subcomponentB/Component-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "application/k/subcomponentB/Component.js":function(){ sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "use strict"; @@ -16,5 +14,5 @@ sap.ui.define(["sap/ui/core/UIComponent"], function(UIComponent){ "application/k/subcomponentB/thirdparty/lib.js":function(){ console.log("subcomponentB/thirdparty/lib.js"); } -}}); +}); //# sourceMappingURL=Component-preload.js.map diff --git a/test/expected/build/application.k/dest/subcomponentB/Component-preload.js.map b/test/expected/build/application.k/dest/subcomponentB/Component-preload.js.map index 555d13778..be0090fdf 100644 --- a/test/expected/build/application.k/dest/subcomponentB/Component-preload.js.map +++ b/test/expected/build/application.k/dest/subcomponentB/Component-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":16,"column":0},"map":{"version":3,"sources":["lib.js"],"mappings":"AAAA;AACA","sourceRoot":"thirdparty"}}]} \ No newline at end of file +{"version":3,"file":"Component-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["Component-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["Component.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}},{"offset":{"line":14,"column":0},"map":{"version":3,"sources":["lib.js"],"mappings":"AAAA;AACA","sourceRoot":"thirdparty"}}]} \ No newline at end of file diff --git a/test/expected/build/library.d/preload/resources/library/d/library-preload.js b/test/expected/build/library.d/preload/resources/library/d/library-preload.js index 12b0a1cb5..4a740e861 100644 --- a/test/expected/build/library.d/preload/resources/library/d/library-preload.js +++ b/test/expected/build/library.d/preload/resources/library/d/library-preload.js @@ -1,7 +1,5 @@ //@ui5-bundle library/d/library-preload.js -jQuery.sap.registerPreloadedModules({ -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "library/d/some.js":function(){ /*! * ${copyright} @@ -11,5 +9,5 @@ jQuery.sap.registerPreloadedModules({ console.log('Hello ' + someNonUglifiedVariable); })(); } -}}); +}); //# sourceMappingURL=library-preload.js.map diff --git a/test/expected/build/library.d/preload/resources/library/d/library-preload.js.map b/test/expected/build/library.d/preload/resources/library/d/library-preload.js.map index 75adb2fe2..fe612c788 100644 --- a/test/expected/build/library.d/preload/resources/library/d/library-preload.js.map +++ b/test/expected/build/library.d/preload/resources/library/d/library-preload.js.map @@ -1 +1 @@ -{"version":3,"file":"library-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["library-preload.js?bundle-code-0"],"mappings":"AAAA;AACA;AACA;AACA","sourcesContent":["jQuery.sap.registerPreloadedModules({\n\"version\":\"2.0\",\n\"modules\":{\n"],"sourceRoot":""}},{"offset":{"line":5,"column":0},"map":{"version":3,"sources":["some.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file +{"version":3,"file":"library-preload.js","sections":[{"offset":{"line":1,"column":0},"map":{"version":3,"sources":["library-preload.js?bundle-code-0"],"mappings":"AAAA;AACA","sourcesContent":["sap.ui.require.preload({\n"],"sourceRoot":""}},{"offset":{"line":3,"column":0},"map":{"version":3,"sources":["some.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}}]} \ No newline at end of file diff --git a/test/lib/lbt/bundle/Builder.js b/test/lib/lbt/bundle/Builder.js index 19dd58518..974440161 100644 --- a/test/lib/lbt/bundle/Builder.js +++ b/test/lib/lbt/bundle/Builder.js @@ -110,6 +110,7 @@ test("integration: createBundle with exposedGlobals", async (t) => { const oResult = await builder.createBundle(bundleDefinition, {numberOfParts: 1, decorateBootstrapModule: true}); t.deepEqual(oResult.name, "library-preload.js"); const expectedContent = `//@ui5-bundle library-preload.js +window["sap-ui-optimized"] = true; sap.ui.require.preload({ "a.js":function(){ function One(){return 1;} @@ -523,7 +524,7 @@ ${SOURCE_MAPPING_URL}=bootstrap.js.map "bundle info subModules are correct"); }); -test("integration: createBundle UI5BundleFormat (non ui5loader.js)", async (t) => { +test("integration: Legacy test: createBundle without ui5loader.js presence also uses modern API", async (t) => { const pool = new ResourcePool(); pool.addResource({ name: "sap-ui-core.js", @@ -572,14 +573,11 @@ test("integration: createBundle UI5BundleFormat (non ui5loader.js)", async (t) = const oResult = await builder.createBundle(bundleDefinition, {numberOfParts: 1, decorateBootstrapModule: true}); t.deepEqual(oResult.name, "Component-preload.js"); const expectedContent = `//@ui5-bundle Component-preload.js -jQuery.sap.registerPreloadedModules({ -"name":"preload-section", -"version":"2.0", -"modules":{ +sap.ui.require.preload({ "jquery.sap.global-dbg.js":function(){ sap.ui.define([], function(){/* comment */ return {};}); } -}}); +},"preload-section"); //@ui5-bundle-raw-include myModule.js (function(){window.mine = {};}()); sap.ui.requireSync("sap-ui-core"); @@ -767,6 +765,7 @@ test.serial("integration: createBundle with bundleInfo", async (t) => { const oResult = await builder.createBundle(bundleDefinition, {numberOfParts: 1, decorateBootstrapModule: true}); t.deepEqual(oResult.name, "library-preload.js"); const expectedContent = `//@ui5-bundle library-preload.js +window["sap-ui-optimized"] = true; sap.ui.require.preload({ "a.js":function(){ function One(){return 1;} diff --git a/test/lib/tasks/bundlers/generateComponentPreload.js b/test/lib/tasks/bundlers/generateComponentPreload.js index 4cd92f9a9..58a93f448 100644 --- a/test/lib/tasks/bundlers/generateComponentPreload.js +++ b/test/lib/tasks/bundlers/generateComponentPreload.js @@ -15,16 +15,10 @@ test.beforeEach((t) => { byGlob: sinon.stub().resolves([]), write: sinon.stub().resolves() }; - t.context.dependencies = {}; - t.context.comboByGlob = sinon.stub().resolves([]); + t.context.workspace.filter = () => t.context.workspace; - t.context.ReaderCollectionPrioritizedStub = sinon.stub(); - t.context.ReaderCollectionPrioritizedStub.returns({ - byGlob: t.context.comboByGlob - }); - mock("@ui5/fs", { - ReaderCollectionPrioritized: t.context.ReaderCollectionPrioritizedStub - }); + t.context.dependencies = {}; + t.context.byGlob = t.context.workspace.byGlob; t.context.moduleBundlerStub = sinon.stub().resolves([]); mock("../../../../lib/processors/bundlers/moduleBundler", t.context.moduleBundlerStub); @@ -39,14 +33,14 @@ test.afterEach.always(() => { test.serial("generateComponentPreload - one namespace", async (t) => { const { - generateComponentPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateComponentPreload, moduleBundlerStub, + workspace, dependencies, byGlob } = t.context; const resources = [ {"fake": "resource"} ]; - comboByGlob.resolves(resources); + byGlob.resolves(resources); moduleBundlerStub.resolves([ { @@ -105,16 +99,11 @@ test.serial("generateComponentPreload - one namespace", async (t) => { resources }]); - t.is(comboByGlob.callCount, 1, + t.is(byGlob.callCount, 1, "combo.byGlob should have been called once"); - t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], + t.deepEqual(byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], "combo.byGlob should have been called with expected pattern"); - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); - const bundleResources = await moduleBundlerStub.getCall(0).returnValue; t.is(workspace.write.callCount, 2, "workspace.write should have been called twice"); @@ -130,14 +119,14 @@ test.serial("generateComponentPreload - one namespace", async (t) => { test.serial("generateComponentPreload - one namespace - excludes", async (t) => { const { - generateComponentPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateComponentPreload, moduleBundlerStub, + workspace, dependencies, byGlob } = t.context; const resources = [ {"fake": "resource"} ]; - comboByGlob.resolves(resources); + byGlob.resolves(resources); moduleBundlerStub.resolves([ { @@ -202,16 +191,11 @@ test.serial("generateComponentPreload - one namespace - excludes", async (t) => resources }]); - t.is(comboByGlob.callCount, 1, + t.is(byGlob.callCount, 1, "combo.byGlob should have been called once"); - t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], + t.deepEqual(byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], "combo.byGlob should have been called with expected pattern"); - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); - const bundleResources = await moduleBundlerStub.getCall(0).returnValue; t.is(workspace.write.callCount, 2, "workspace.write should have been called twice"); @@ -227,14 +211,14 @@ test.serial("generateComponentPreload - one namespace - excludes", async (t) => test.serial("generateComponentPreload - one namespace - excludes w/o namespace", async (t) => { const { - generateComponentPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateComponentPreload, moduleBundlerStub, + workspace, dependencies, byGlob } = t.context; const resources = [ {"fake": "resource"} ]; - comboByGlob.resolves(resources); + byGlob.resolves(resources); moduleBundlerStub.resolves([ { @@ -298,16 +282,11 @@ test.serial("generateComponentPreload - one namespace - excludes w/o namespace", resources }]); - t.is(comboByGlob.callCount, 1, + t.is(byGlob.callCount, 1, "combo.byGlob should have been called once"); - t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], + t.deepEqual(byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], "combo.byGlob should have been called with expected pattern"); - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); - const bundleResources = await moduleBundlerStub.getCall(0).returnValue; t.is(workspace.write.callCount, 2, "workspace.write should have been called twice"); @@ -323,14 +302,14 @@ test.serial("generateComponentPreload - one namespace - excludes w/o namespace", test.serial("generateComponentPreload - multiple namespaces - excludes", async (t) => { const { - generateComponentPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateComponentPreload, moduleBundlerStub, + workspace, dependencies, byGlob } = t.context; const resources = [ {"fake": "resource"} ]; - comboByGlob.resolves(resources); + byGlob.resolves(resources); moduleBundlerStub.onFirstCall().resolves([ { @@ -449,16 +428,11 @@ test.serial("generateComponentPreload - multiple namespaces - excludes", async ( resources }]); - t.is(comboByGlob.callCount, 1, + t.is(byGlob.callCount, 1, "combo.byGlob should have been called once"); - t.deepEqual(comboByGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], + t.deepEqual(byGlob.getCall(0).args, ["/resources/**/*.{js,json,xml,html,properties,library,js.map}"], "combo.byGlob should have been called with expected pattern"); - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); - const bundleObj1 = await moduleBundlerStub.getCall(0).returnValue; const bundleObj2 = await moduleBundlerStub.getCall(1).returnValue; @@ -487,14 +461,14 @@ test.serial("generateComponentPreload - multiple namespaces - excludes", async ( test.serial("generateComponentPreload - one namespace - invalid exclude", async (t) => { const { generateComponentPreload, - workspace, dependencies, comboByGlob, + workspace, dependencies, byGlob, log } = t.context; const resources = [ {"fake": "resource"} ]; - comboByGlob.resolves(resources); + byGlob.resolves(resources); await generateComponentPreload({ workspace, @@ -525,14 +499,14 @@ test.serial("generateComponentPreload - one namespace - invalid exclude", async test.serial("generateComponentPreload - nested namespaces - excludes", async (t) => { const { generateComponentPreload, moduleBundlerStub, - workspace, dependencies, comboByGlob, + workspace, dependencies, byGlob, log } = t.context; const resources = [ {"fake": "resource"} ]; - comboByGlob.resolves(resources); + byGlob.resolves(resources); await generateComponentPreload({ workspace, diff --git a/test/lib/tasks/bundlers/generateLibraryPreload.js b/test/lib/tasks/bundlers/generateLibraryPreload.js index 4130f7098..624626f9b 100644 --- a/test/lib/tasks/bundlers/generateLibraryPreload.js +++ b/test/lib/tasks/bundlers/generateLibraryPreload.js @@ -15,19 +15,10 @@ test.beforeEach((t) => { byGlob: sinon.stub().resolves([]), write: sinon.stub().resolves() }; - t.context.dependencies = {}; - t.context.comboByGlob = sinon.stub().resolves([]); - - t.context.combo = { - byGlob: t.context.comboByGlob, - }; - t.context.combo.filter = sinon.stub().returns(t.context.combo); + t.context.workspace.filter = () => t.context.workspace; - t.context.ReaderCollectionPrioritizedStub = sinon.stub(); - t.context.ReaderCollectionPrioritizedStub.returns(t.context.combo); - mock("@ui5/fs", { - ReaderCollectionPrioritized: t.context.ReaderCollectionPrioritizedStub - }); + t.context.dependencies = {}; + t.context.firstByGlob = t.context.workspace.byGlob.onFirstCall(); t.context.moduleBundlerStub = sinon.stub().resolves([]); mock("../../../../lib/processors/bundlers/moduleBundler", t.context.moduleBundlerStub); @@ -42,14 +33,14 @@ test.afterEach.always(() => { test.serial("generateLibraryPreload", async (t) => { const { - generateLibraryPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateLibraryPreload, moduleBundlerStub, + workspace, dependencies, firstByGlob } = t.context; const resources = [ {getPath: sinon.stub().returns("/resources/my/lib/.library")} ]; - comboByGlob.resolves(resources); + firstByGlob.resolves(resources); workspace.byGlob.resolves([ {getPath: sinon.stub().returns("/resources/my/lib/.library")} @@ -150,28 +141,25 @@ test.serial("generateLibraryPreload", async (t) => { resources }]); - t.is(workspace.byGlob.callCount, 1, - "workspace.byGlob should have been called once"); - t.deepEqual(workspace.byGlob.getCall(0).args, ["/resources/**/.library"], + t.is(workspace.byGlob.callCount, 2, + "workspace.byGlob should have been called twice"); + t.deepEqual(workspace.byGlob.getCall(0).args, ["/**/*.{js,json,xml,html,properties,library,js.map}"], + "workspace.byGlob should have been called with expected pattern"); + t.deepEqual(workspace.byGlob.getCall(1).args, ["/resources/**/.library"], "workspace.byGlob should have been called with expected pattern"); - - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); }); test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async (t) => { const { - generateLibraryPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateLibraryPreload, moduleBundlerStub, + workspace, dependencies, firstByGlob } = t.context; const resources = [ {getPath: sinon.stub().returns("/resources/sap/ui/core/.library")}, {getPath: sinon.stub().returns("/resources/sap-ui-core.js")} ]; - comboByGlob.resolves(resources); + firstByGlob.resolves(resources); workspace.byGlob.resolves([ {getPath: sinon.stub().returns("/resources/sap/ui/core/.library")} @@ -408,22 +396,19 @@ test.serial("generateLibraryPreload for sap.ui.core (w/o ui5loader.js)", async ( resources }]); - t.is(workspace.byGlob.callCount, 1, - "workspace.byGlob should have been called once"); - t.deepEqual(workspace.byGlob.getCall(0).args, ["/resources/**/.library"], + t.is(workspace.byGlob.callCount, 2, + "workspace.byGlob should have been called twice"); + t.deepEqual(workspace.byGlob.getCall(0).args, ["/**/*.{js,json,xml,html,properties,library,js.map}"], + "workspace.byGlob should have been called with expected pattern"); + t.deepEqual(workspace.byGlob.getCall(1).args, ["/resources/**/.library"], "workspace.byGlob should have been called with expected pattern"); - - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); }); test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t) => { const { - generateLibraryPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateLibraryPreload, moduleBundlerStub, + workspace, dependencies, firstByGlob } = t.context; const resources = [ @@ -431,7 +416,7 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t {getPath: sinon.stub().returns("/resources/ui5loader.js")}, {getPath: sinon.stub().returns("/resources/sap-ui-core.js")} ]; - comboByGlob.resolves(resources); + firstByGlob.resolves(resources); workspace.byGlob.resolves([ {getPath: sinon.stub().returns("/resources/sap/ui/core/.library")} @@ -724,21 +709,18 @@ test.serial("generateLibraryPreload for sap.ui.core (/w ui5loader.js)", async (t resources }]); - t.is(workspace.byGlob.callCount, 1, - "workspace.byGlob should have been called once"); - t.deepEqual(workspace.byGlob.getCall(0).args, ["/resources/**/.library"], + t.is(workspace.byGlob.callCount, 2, + "workspace.byGlob should have been called twice"); + t.deepEqual(workspace.byGlob.getCall(0).args, ["/**/*.{js,json,xml,html,properties,library,js.map}"], + "workspace.byGlob should have been called with expected pattern"); + t.deepEqual(workspace.byGlob.getCall(1).args, ["/resources/**/.library"], "workspace.byGlob should have been called with expected pattern"); - - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); }); test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined (/w ui5loader.js)", async (t) => { const { - generateLibraryPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateLibraryPreload, moduleBundlerStub, + workspace, dependencies, firstByGlob } = t.context; const coreProject = { @@ -749,7 +731,7 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined {getPath: sinon.stub().returns("/resources/ui5loader.js")}, {getPath: sinon.stub().returns("/resources/sap-ui-core.js")} ]; - comboByGlob.resolves(resources); + firstByGlob.resolves(resources); workspace.byGlob.resolves([ {getPath: sinon.stub().returns("/resources/sap/ui/core/.library")} @@ -1042,21 +1024,18 @@ test.serial("generateLibraryPreload for sap.ui.core with old specVersion defined resources }]); - t.is(workspace.byGlob.callCount, 1, - "workspace.byGlob should have been called once"); - t.deepEqual(workspace.byGlob.getCall(0).args, ["/resources/**/.library"], + t.is(workspace.byGlob.callCount, 2, + "workspace.byGlob should have been called twice"); + t.deepEqual(workspace.byGlob.getCall(0).args, ["/**/*.{js,json,xml,html,properties,library,js.map}"], + "workspace.byGlob should have been called with expected pattern"); + t.deepEqual(workspace.byGlob.getCall(1).args, ["/resources/**/.library"], "workspace.byGlob should have been called with expected pattern"); - - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); }); test.serial("generateLibraryPreload for sap.ui.core with own bundle configuration (w/o ui5loader.js)", async (t) => { const { - generateLibraryPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateLibraryPreload, moduleBundlerStub, + workspace, dependencies, firstByGlob } = t.context; const coreProject = { @@ -1066,7 +1045,7 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio {getPath: sinon.stub().returns("/resources/sap/ui/core/.library"), _project: coreProject}, {getPath: sinon.stub().returns("/resources/sap-ui-core.js")} ]; - comboByGlob.resolves(resources); + firstByGlob.resolves(resources); workspace.byGlob.resolves([ {getPath: sinon.stub().returns("/resources/sap/ui/core/.library")} @@ -1197,21 +1176,18 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio resources }]); - t.is(workspace.byGlob.callCount, 1, - "workspace.byGlob should have been called once"); - t.deepEqual(workspace.byGlob.getCall(0).args, ["/resources/**/.library"], + t.is(workspace.byGlob.callCount, 2, + "workspace.byGlob should have been called twice"); + t.deepEqual(workspace.byGlob.getCall(0).args, ["/**/*.{js,json,xml,html,properties,library,js.map}"], + "workspace.byGlob should have been called with expected pattern"); + t.deepEqual(workspace.byGlob.getCall(1).args, ["/resources/**/.library"], "workspace.byGlob should have been called with expected pattern"); - - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); }); test.serial("generateLibraryPreload for sap.ui.core with own bundle configuration (/w ui5loader.js)", async (t) => { const { - generateLibraryPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateLibraryPreload, moduleBundlerStub, + workspace, dependencies, firstByGlob } = t.context; const coreProject = { @@ -1222,7 +1198,7 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio {getPath: sinon.stub().returns("/resources/ui5loader.js")}, {getPath: sinon.stub().returns("/resources/sap-ui-core.js")} ]; - comboByGlob.resolves(resources); + firstByGlob.resolves(resources); workspace.byGlob.resolves([ {getPath: sinon.stub().returns("/resources/sap/ui/core/.library")} @@ -1353,26 +1329,24 @@ test.serial("generateLibraryPreload for sap.ui.core with own bundle configuratio resources }]); - t.is(workspace.byGlob.callCount, 1, - "workspace.byGlob should have been called once"); - t.deepEqual(workspace.byGlob.getCall(0).args, ["/resources/**/.library"], + t.is(workspace.byGlob.callCount, 2, + "workspace.byGlob should have been called twice"); + t.deepEqual(workspace.byGlob.getCall(0).args, ["/**/*.{js,json,xml,html,properties,library,js.map}"], + "workspace.byGlob should have been called with expected pattern"); + t.deepEqual(workspace.byGlob.getCall(1).args, ["/resources/**/.library"], "workspace.byGlob should have been called with expected pattern"); - - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); }); test.serial("Error: Failed to resolve non-debug name", async (t) => { const { generateLibraryPreload, - workspace, dependencies, comboByGlob + workspace, dependencies } = t.context; const resources = [ {getPath: sinon.stub().returns("/resources/resource-tagged-as-debug-variant.js")} ]; - comboByGlob.resolves(resources); + t.context.workspace.byGlob.onFirstCall().resolves(resources); + t.context.workspace.byGlob.onSecondCall().resolves(resources); workspace.byGlob.resolves([ {getPath: sinon.stub().returns("/resources/sap/ui/core/.library")} @@ -1406,14 +1380,14 @@ test.serial("Error: Failed to resolve non-debug name", async (t) => { test.serial("generateLibraryPreload with excludes", async (t) => { const { - generateLibraryPreload, moduleBundlerStub, ReaderCollectionPrioritizedStub, - workspace, dependencies, comboByGlob + generateLibraryPreload, moduleBundlerStub, + workspace, dependencies, firstByGlob } = t.context; const resources = [ {getPath: sinon.stub().returns("/resources/my/lib/.library")} ]; - comboByGlob.resolves(resources); + firstByGlob.resolves(resources); workspace.byGlob.resolves([ {getPath: sinon.stub().returns("/resources/my/lib/.library")} @@ -1466,28 +1440,25 @@ test.serial("generateLibraryPreload with excludes", async (t) => { resources }]); - t.is(workspace.byGlob.callCount, 1, - "workspace.byGlob should have been called once"); - t.deepEqual(workspace.byGlob.getCall(0).args, ["/resources/**/.library"], + t.is(workspace.byGlob.callCount, 2, + "workspace.byGlob should have been called twice"); + t.deepEqual(workspace.byGlob.getCall(0).args, ["/**/*.{js,json,xml,html,properties,library,js.map}"], + "workspace.byGlob should have been called with expected pattern"); + t.deepEqual(workspace.byGlob.getCall(1).args, ["/resources/**/.library"], "workspace.byGlob should have been called with expected pattern"); - - t.is(ReaderCollectionPrioritizedStub.callCount, 1, - "ReaderCollectionPrioritized should have been called once"); - t.true(ReaderCollectionPrioritizedStub.calledWithNew(), - "ReaderCollectionPrioritized should have been called with 'new'"); }); test.serial("generateLibraryPreload with invalid excludes", async (t) => { const { generateLibraryPreload, moduleBundlerStub, - workspace, dependencies, comboByGlob, log + workspace, dependencies, firstByGlob, log } = t.context; const resources = [ {getPath: sinon.stub().returns("/resources/my/lib/.library")} ]; - comboByGlob.resolves(resources); + firstByGlob.resolves(resources); workspace.byGlob.resolves([ {getPath: sinon.stub().returns("/resources/my/lib/.library")} From aa3e82d192678a52563db347a1140020f41e4088 Mon Sep 17 00:00:00 2001 From: Florian Vogt Date: Wed, 4 May 2022 05:30:46 +0200 Subject: [PATCH 74/74] [INTERNAL] JSDoc generation: enable links with prefix 'demo:' Allows using the following JSDoc syntax {@link demo:my/module/page/demo.html My Demo} --- lib/processors/jsdoc/lib/transformApiJson.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/processors/jsdoc/lib/transformApiJson.js b/lib/processors/jsdoc/lib/transformApiJson.js index 837c5487d..f7d5b5bb0 100644 --- a/lib/processors/jsdoc/lib/transformApiJson.js +++ b/lib/processors/jsdoc/lib/transformApiJson.js @@ -1386,13 +1386,16 @@ function transformer(sInputFile, sOutputFile, sLibraryFile, vDependencyAPIFiles, }, + formatUrlToLink: function(sTarget, sText, bSAPHosted){ + return `${sText} + `; + }, + handleExternalUrl: function (sTarget, sText) { // Check if the external domain is SAP hosted let bSAPHosted = /^https?:\/\/([\w.]*\.)?(?:sap|hana\.ondemand|sapfioritrial)\.com/.test(sTarget); - - return `${sText} -`; + return this.formatUrlToLink(sTarget, sText, bSAPHosted); }, /** @@ -1599,6 +1602,12 @@ title="Information published on ${bSAPHosted ? '' : 'non '}SAP site" class="sapU return '' + sText + ''; } + // demo:xxx Demo, open the demonstration page in a new window + aMatch = sTarget.match(/^demo:([a-zA-Z0-9\/.]*)$/); + if (aMatch) { + return this.formatUrlToLink("test-resources/" + aMatch[1], sText, true); + } + // sap.x.Xxx.prototype.xxx - In case of prototype we have a link to method aMatch = sTarget.match(/([a-zA-Z0-9.$_]+?)\.prototype\.([a-zA-Z0-9.$_]+)$/); if (aMatch) {