You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2023/01/09 03:38:40 UTC
[sling-org-apache-sling-app-cms] branch master updated: Fixing use if sling:encode
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
The following commit(s) were added to refs/heads/master by this push:
new 540be07c Fixing use if sling:encode
540be07c is described below
commit 540be07c6fd0af01c8ddb6fca39b06d8e9a60e5c
Author: Dan Klco <kl...@adobe.com>
AuthorDate: Sun Jan 8 22:38:26 2023 -0500
Fixing use if sling:encode
---
it/{cypress/support/index.js => cypress.config.js} | 21 +-
it/cypress.json | 7 -
it/cypress/e2e/admin.cy.js | 184 ++
.../{integration/auth.spec.js => e2e/auth.cy.js} | 16 +-
it/cypress/e2e/authoring.cy.js | 116 ++
it/cypress/e2e/editor.cy.js | 138 ++
it/cypress/e2e/reference/form.cy.js | 153 ++
it/cypress/e2e/reference/general.cy.js | 99 +
it/cypress/e2e/reference/utils.js | 76 +
.../taxonomy.spec.js => e2e/taxonomy.cy.js} | 41 +-
it/cypress/e2e/ugc.cy.js | 111 ++
it/cypress/fixtures/example.json | 5 -
.../__image_snapshots__/auth--401-page #0.png | Bin 31196 -> 0 bytes
.../__image_snapshots__/auth--403-page #0.png | Bin 31196 -> 0 bytes
.../__image_snapshots__/auth--home-page #0.png | Bin 68613 -> 0 bytes
.../__image_snapshots__/auth--login-page #0.png | Bin 49213 -> 0 bytes
.../__image_snapshots__/authoring--index #0.png | Bin 182505 -> 0 bytes
.../__image_snapshots__/taxonomy--delete #0.png | Bin 44123 -> 0 bytes
.../__image_snapshots__/taxonomy--edit #0.png | Bin 55684 -> 0 bytes
.../taxonomy--edit-dialog #0.png | Bin 40967 -> 0 bytes
.../__image_snapshots__/taxonomy--list #0.png | Bin 54060 -> 0 bytes
.../taxonomy--new-tag-dialog #0.png | Bin 43908 -> 0 bytes
.../__image_snapshots__/taxonomy--save #0.png | Bin 27230 -> 0 bytes
.../taxonomy--with-new-item #0.png | Bin 64213 -> 0 bytes
it/cypress/integration/authoring.spec.js | 71 -
it/cypress/support/{commands.js => e2e.js} | 4 +-
it/cypress/util/component-test-helper.js | 118 ++
.../{plugins/index.js => util/test-helper.js} | 36 +-
it/package-lock.json | 1883 +++++++++-----------
it/package.json | 14 +-
.../forms/actions/sendemail/sendemail.jsp | 8 +-
.../forms/actions/updateprofile/updateprofile.jsp | 2 +-
.../usergeneratedcontent/usergeneratedcontent.jsp | 18 +-
.../components/forms/fields/honeypot/honeypot.jsp | 6 +-
.../components/forms/fields/selection/edit.json | 5 +-
.../forms/fields/selection/selection.jsp | 18 +-
.../components/forms/fields/textarea/textarea.jsp | 6 +-
.../forms/fields/textfield/textfield.jsp | 12 +-
.../apps/reference/components/forms/form/form.jsp | 16 +-
.../reference/components/forms/login/login.jsp | 18 +-
.../forms/providers/userprofile/userprofile.jsp | 2 +-
.../general/columncontrol/columncontrol.jsp | 4 +-
.../reference/components/general/image/image.jsp | 2 +-
.../reference/components/general/list/list.jsp | 4 +-
.../components/general/list/pagination.jsp | 20 +-
.../components/general/reference/types.jsp | 2 +-
.../reference/components/general/rss/rss.xml.jsp | 16 +-
.../components/general/search/pagination.jsp | 22 +-
.../reference/components/general/search/result.jsp | 6 +-
.../reference/components/general/search/search.jsp | 2 +-
.../components/general/searchform/searchform.jsp | 2 +-
.../components/general/sitemap/sitemap.xml.jsp | 4 +-
.../general/suffixheader/suffixheader.jsp | 4 +-
.../reference/components/general/tags/tags.jsp | 10 +-
.../apps/reference/components/pages/base/head.jsp | 2 +-
ui/bnd.bnd | 14 +-
ui/package-lock.json | 110 +-
ui/package.json | 4 +-
ui/src/main/frontend/scss/cms.scss | 4 +-
.../components/caconfig/rewriter/config/config.jsp | 4 +-
.../caconfig/sitesettings/config/config.jsp | 2 +-
.../components/cms/actions/basic/basic.jsp | 4 +-
.../components/cms/actions/modal/modal.jsp | 4 +-
.../cms/columns/localetitle/localetitle.jsp | 2 +-
.../sling-cms/components/cms/columns/text/text.jsp | 4 +-
.../cms/contentactions/contentactions.jsp | 12 +-
.../cms/contentbreadcrumb/contentbreadcrumb.jsp | 2 +-
.../components/cms/contentgrid/contentgrid.jsp | 10 +-
.../components/cms/contenttable/contenttable.jsp | 4 +-
.../sling-cms/components/cms/getform/getform.jsp | 2 +-
.../components/cms/i18ncontainer/i18ncontainer.jsp | 15 +-
.../components/cms/optimizefile/optimizefile.jsp | 2 +-
.../components/cms/pageeditbar/pageeditbar.jsp | 5 +-
.../components/cms/querydebug/querydebug.jsp | 120 +-
.../components/cms/references/references.jsp | 6 +-
.../components/cms/startcontent/search.jsp | 4 +-
.../components/cms/startcontent/startcontent.jsp | 2 +-
.../components/cms/staticnav/staticnav.jsp | 6 +-
.../components/cms/suffixswitch/suffixswitch.jsp | 2 +-
.../sling-cms/components/cms/tilecard/tilecard.jsp | 2 +-
.../cms/versionmanager/versionmanager.jsp | 6 +-
.../editor/fields/auth/members/options.jsp | 2 +-
.../editor/fields/auth/membership/options.jsp | 2 +-
.../components/editor/fields/base/base.jsp | 2 +-
.../components/editor/fields/combobox/options.jsp | 2 +-
.../components/editor/fields/combobox/values.jsp | 2 +-
.../components/editor/fields/labelfield/field.jsp | 2 +-
.../components/editor/fields/path/path.jsp | 2 +-
.../editor/fields/references/references.jsp | 10 +-
.../components/editor/fields/repeating/field.jsp | 5 +-
.../editor/fields/resourceparam/resourceparam.jsp | 2 +-
.../fields/richtext/toolbar/button/button.jsp | 8 +-
.../components/editor/fields/taxonomy/options.jsp | 4 +-
.../components/editor/fields/text/field.jsp | 2 +-
.../components/editor/fields/well/well.jsp | 6 +-
.../editor/scripts/componentConfigOptions.jsp | 2 +-
.../editor/scripts/configResourceTypeOptions.jsp | 4 +-
.../components/editor/scripts/localeOptions.jsp | 4 +-
.../editor/scripts/pageTemplateOptions.jsp | 4 +-
.../editor/scripts/resourceTypeOptions.jsp | 4 +-
.../components/editor/slingform/slingform.jsp | 4 +-
.../components/general/container/container.jsp | 2 +-
.../components/general/textelement/textelement.jsp | 6 +-
.../components/insights/insight/insight.jsp | 8 +-
.../libs/sling-cms/components/jobs/jobOptions.jsp | 5 +-
.../libs/sling-cms/components/jobs/list/list.jsp | 6 +-
.../libs/sling-cms/components/jobs/view/view.jsp | 7 +-
.../libs/sling-cms/components/pages/base/head.jsp | 26 +-
.../libs/sling-cms/components/pages/base/nav.jsp | 6 +-
.../libs/sling-cms/components/pages/error/body.jsp | 2 +-
.../libs/sling-cms/components/pages/error/nav.jsp | 2 +-
.../components/publication/agent/agent.jsp | 6 +-
.../publication/configuration/configuration.jsp | 2 +-
.../components/publication/exporter/exporter.jsp | 2 +-
.../sling-cms/components/publication/home/home.jsp | 2 +-
.../components/publication/importer/importer.jsp | 2 +-
.../thumbnails/transformation/config/config.jsp | 2 +-
117 files changed, 2241 insertions(+), 1574 deletions(-)
diff --git a/it/cypress/support/index.js b/it/cypress.config.js
similarity index 59%
rename from it/cypress/support/index.js
rename to it/cypress.config.js
index 45c6bcbd..93d8ce7c 100644
--- a/it/cypress/support/index.js
+++ b/it/cypress.config.js
@@ -16,10 +16,23 @@
* specific language governing permissions and limitations
* under the License.
*/
+const { defineConfig } = require("cypress");
+const { pa11y, prepareAudit } = require("@cypress-audit/pa11y");
-import "./commands";
-import "cypress-plugin-snapshots/commands";
+module.exports = defineConfig({
+ e2e: {
+ baseUrl: "http://localhost:8080",
+ viewportWidth: 1000,
+ viewportHeight: 660,
+ excludeSpecPattern: ["**/__snapshots__/*", "**/__image_snapshots__/*"],
+ setupNodeEvents(on, _config) {
+ on("before:browser:launch", (_browser = {}, launchOptions) => {
+ prepareAudit(launchOptions);
+ });
-Cypress.Cookies.defaults({
- preserve: "sling.formauth",
+ on("task", {
+ pa11y: pa11y(console.log.bind(console)),
+ });
+ },
+ },
});
diff --git a/it/cypress.json b/it/cypress.json
deleted file mode 100644
index 66d32621..00000000
--- a/it/cypress.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "baseUrl": "http://localhost:8080",
- "viewportWidth": 1000,
- "viewportHeight": 660,
- "ignoreTestFiles": ["**/__snapshots__/*", "**/__image_snapshots__/*"],
- "chromeWebSecurity": false
-}
diff --git a/it/cypress/e2e/admin.cy.js b/it/cypress/e2e/admin.cy.js
new file mode 100644
index 00000000..e5dbfb23
--- /dev/null
+++ b/it/cypress/e2e/admin.cy.js
@@ -0,0 +1,184 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+const { login } = require("../util/test-helper");
+const { doneLoading } = require("../utils");
+
+describe("Reference Component Tests", () => {
+ beforeEach(() => {
+ login();
+ });
+ describe("home", () => {
+ it("basic", () => {
+ cy.visit("/cms/start.html");
+ cy.get(
+ 'form[action="/mnt/overlay/sling-cms/content/start/jcr:content/container/scrollcontainer/recent.search.html"]'
+ ).should("be.visible");
+ cy.get('nav[aria-label="Manage"]').should("be.visible");
+ cy.get('nav[aria-label="Tools"]').should("be.visible");
+ cy.pa11y();
+ });
+
+ it("profile", () => {
+ cy.visit("/cms/start.html");
+ cy.get(".navbar-burger").click();
+ cy.get('.navbar a[data-title="User Profile"]').click();
+ doneLoading();
+ cy.get(".modal").should("be.visible");
+ });
+ });
+ describe("Tools", () => {
+ it("Bulk Replace", () => {
+ cy.visit("/cms/admin/bulkreplace.html");
+ cy.pa11y();
+
+ cy.get("input[name='suffix'").type("/content");
+ cy.get("button[type=submit]").click();
+
+ cy.get('input[name="updateProperties"]').type("haystack");
+ cy.get('input[name="find"]').type("noodle");
+ cy.get('input[name="find"]').type("needle");
+ cy.get("button[type=submit]").click();
+ doneLoading();
+ });
+
+ it("Config", () => {
+ cy.visit("/cms/config/configs.html/conf");
+ cy.get('a[data-title="Add Config Context"]').should("be.visible");
+
+ cy.visit("/cms/config/buckets.html/conf/global");
+ cy.get('a[data-title="Add Bucket"]').should("be.visible");
+
+ cy.visit("/cms/config/bucket.html/conf/global/files");
+ cy.get('a[data-title="Add Config"]').should("be.visible");
+
+ cy.visit("/cms/config/edit.html/conf/global/files/editors");
+ cy.get("a.action-button").should("be.visible");
+ cy.pa11y();
+
+ cy.visit("/cms/config/edit.html/conf/global/files/transformations");
+ cy.get('a[data-title="Add Transformation"]').should("be.visible");
+
+ cy.visit(
+ "/cms/transformations/edit.html/conf/global/files/transformations/sling-cms-thumbnail"
+ );
+ cy.get("a.action-button").should("be.visible");
+ cy.pa11y();
+
+ cy.visit("/cms/config/bucket.html/conf/global/site");
+ cy.get('a[data-title="Add Config"]').should("be.visible");
+
+ cy.visit("/cms/config/edit.html/conf/global/site/policies");
+ cy.get("a.action-button").should("be.visible");
+ cy.pa11y();
+
+ cy.visit("/cms/config/edit.html/conf/global/site/rewrite");
+ cy.get("a.action-button").should("be.visible");
+ cy.pa11y();
+
+ cy.visit("/cms/config/edit.html/conf/global/site/settings");
+ cy.get("a.action-button").should("be.visible");
+ cy.pa11y();
+
+ cy.visit("/cms/config/edit.html/conf/global/site/templates");
+ cy.get('a[data-title="Add Template"]').should("be.visible");
+
+ cy.visit("/cms/template/edit.html/conf/global/site/templates/fragment");
+ cy.get("a.action-button").should("be.visible");
+ cy.pa11y();
+ });
+
+ it("i18n", () => {
+ cy.visit("/cms/i18n/dictionaries.html/apps/reference");
+ cy.get('a[data-title="Add i18n Dictionary"]').should("be.visible");
+ cy.get("main td[data-value='/apps/reference/i18n'] a").click();
+
+ cy.get('a[data-title="Add Language"]').should("be.visible");
+ cy.get('a[data-title="Add Entry"]').should("be.visible");
+ cy.get("button.is-primary").should("be.visible");
+ });
+
+ it("Jobs", () => {
+ cy.visit("/cms/jobs/list.html");
+ cy.get('a[data-title="Add Start Job"]').click();
+ cy.get("select[name='_job']").select("Bulk Publication");
+
+ cy.get(".repeating__add").click();
+ cy.get(".repeating__container input[name=paths]").type(
+ "/content/not/a/path"
+ );
+ cy.get("button[type=submit]").click();
+ doneLoading();
+ cy.wait(2000);
+ cy.get(".modal .close-modal.is-primary").click();
+ cy.get(".Main-Content tbody tr:first-child td:nth-child(2) a").click();
+ cy.get("dl").should("be.visible");
+ cy.pa11y();
+ });
+
+ it("Load Content", () => {
+ cy.visit("/cms/admin/loadcontent.html");
+ cy.pa11y();
+
+ cy.get("input[name='suffix'").type("/content/it");
+ cy.get("button[type=submit]").click();
+
+ const text = JSON.stringify({ "jcr:primaryType": "sling:Folder" });
+ cy.get("textarea[name=':content']").type(text, {
+ parseSpecialCharSequences: false,
+ });
+ cy.get("button[type=submit]").click();
+ doneLoading();
+ cy.pa11y();
+ });
+
+ it("Publication", () => {
+ cy.visit("/cms/publication/home.html");
+ cy.pa11y();
+ });
+
+ it("Query Debugger", () => {
+ cy.visit("/cms/admin/querydebug.html");
+
+ cy.get('textarea[name="statement"]').type("SELECT * FROM [sling:Page]");
+ cy.get("button[type=submit]").click();
+
+ doneLoading();
+ cy.get("#query-debug dl").should("be.visible");
+ });
+
+ it("Static", () => {
+ cy.visit("/cms/static/content.html/static/clientlibs/sling-cms");
+ cy.get('a[data-title="Add File"]').should("be.visible");
+ cy.get('a[data-title="Add Folder"]').should("be.visible");
+ });
+
+ it("Users/Groups", () => {
+ cy.visit("/cms/auth/list.html/home/users");
+
+ cy.get('a[data-title="Add User"]').click();
+ cy.get(".modal").should("be.visible");
+
+ cy.visit("/cms/auth/list.html/home/groups");
+
+ cy.get('a[data-title="Add Group"]').click();
+ cy.get(".modal").should("be.visible");
+ });
+ });
+});
diff --git a/it/cypress/integration/auth.spec.js b/it/cypress/e2e/auth.cy.js
similarity index 80%
rename from it/cypress/integration/auth.spec.js
rename to it/cypress/e2e/auth.cy.js
index 0dc0325f..8736e939 100644
--- a/it/cypress/integration/auth.spec.js
+++ b/it/cypress/e2e/auth.cy.js
@@ -18,7 +18,7 @@
*/
const { expect } = require("chai");
-const lighthouseConfig = require("../lighthouse-cfg.json");
+const { login } = require("../utils");
describe("Authorization Tests", () => {
it("validate 403", () => {
@@ -28,31 +28,25 @@ describe("Authorization Tests", () => {
});
it("recieve error page", () => {
cy.visit("/", { failOnStatusCode: false });
- cy.document().toMatchImageSnapshot({ name: "auth--403-page" });
-
cy.pa11y();
});
it("can click to login", () => {
+ cy.visit("/", { failOnStatusCode: false });
cy.get("a").click();
- cy.document().toMatchImageSnapshot({ name: "auth--login-page" });
+ cy.url().should("contain", "/system/sling/form/login");
cy.pa11y();
- });
- it("can login", () => {
cy.get("input[name=j_username]").invoke("attr", "value", "admin");
cy.get("input[name=j_password]").invoke("attr", "value", "admin");
cy.get("form").submit();
cy.url().should("contain", "/cms/start.html");
- cy.document().toMatchImageSnapshot({ name: "auth--home-page" });
-
- cy.lighthouse(lighthouseConfig);
cy.pa11y();
});
it("can logout", () => {
+ login();
+ cy.visit("/cms/start.html");
cy.get(".navbar-burger").click();
cy.get(".navbar-menu").should("be.visible");
cy.get('a[href="/system/sling/logout"]').click();
- cy.document().toMatchImageSnapshot({ name: "auth--401-page" });
-
cy.pa11y();
});
});
diff --git a/it/cypress/e2e/authoring.cy.js b/it/cypress/e2e/authoring.cy.js
new file mode 100644
index 00000000..122d01a9
--- /dev/null
+++ b/it/cypress/e2e/authoring.cy.js
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+const { doneLoading } = require("../utils");
+const { login, sendPost } = require("../util/test-helper");
+
+describe("Authoring Tests", () => {
+ before(() => {
+ login();
+ sendPost("/content/apache/sling-apache-org/it", {
+ ":operation": "delete",
+ });
+ });
+ beforeEach(() => {
+ login();
+ });
+ it("validate editor", () => {
+ cy.visit("/cms/page/edit.html/content/apache/sling-apache-org/index");
+ cy.get("iframe").should("not.be.undefined");
+ });
+
+ it("validate site view", () => {
+ cy.visit("/cms/site/sites.html/content");
+ cy.pa11y();
+ });
+
+ it("validate contents view", () => {
+ cy.visit("/cms/site/sites.html/content/apache");
+ cy.pa11y();
+ });
+
+ it("validate add page", () => {
+ cy.visit("/cms/site/content.html/content/apache/sling-apache-org");
+
+ cy.get('.level .buttons a[data-title="Add Page"]').click();
+
+ doneLoading();
+ cy.get("select[name=pageTemplate]").select("Base Page");
+
+ cy.get("input[name=title]").type("Integration Test");
+ cy.get('input[name=":name"]').type("it");
+
+ cy.get(".modal .is-primary").click();
+ doneLoading();
+
+ cy.get(".modal .close-modal.is-primary").click();
+ doneLoading();
+ cy.get('.card[data-value="/content/apache/sling-apache-org/it"]').should(
+ "not.be.undefined"
+ );
+
+ cy.visit("/cms/site/content.html/content/apache/sling-apache-org");
+ cy.get('.card[data-value="/content/apache/sling-apache-org/it"]').click();
+ cy.get('.level a[data-title="Delete the specified page"]').click();
+ doneLoading();
+ cy.get(".modal .is-primary").click();
+ doneLoading();
+ cy.get(".modal .close-modal.is-primary").click();
+ });
+
+ it("can view page references", () => {
+ cy.visit("/cms/site/content.html/content/apache/sling-apache-org");
+ cy.get(
+ '.card[data-value="/content/apache/sling-apache-org/index"]'
+ ).click();
+ cy.get('.level .buttons a[data-title="References"]').click();
+ doneLoading();
+ cy.get(".modal .modal-title").should("not.be.undefined");
+ });
+
+ it("can manage page versions", () => {
+ cy.visit("/cms/site/content.html/content/apache/sling-apache-org");
+ cy.get(
+ '.card[data-value="/content/apache/sling-apache-org/index"]'
+ ).click();
+ cy.get('.level .buttons a[data-title="Manage Versions"]').click();
+ doneLoading();
+ cy.get(".modal .modal-title").should("not.be.undefined");
+ cy.get(".modal .versionmanager>form button[type=submit]").click();
+ doneLoading();
+ cy.get(".modal .close-modal.is-primary").click();
+ cy.get(
+ '.card[data-value="/content/apache/sling-apache-org/index"]'
+ ).click();
+ cy.get('.level .buttons a[data-title="Manage Versions"]').click();
+ cy.get(".modal .modal-title").should("not.be.undefined");
+ });
+
+ it("can view move/copy", () => {
+ cy.visit("/cms/site/content.html/content/apache/sling-apache-org");
+ cy.get(
+ '.card[data-value="/content/apache/sling-apache-org/index"]'
+ ).click();
+ cy.get('.level .buttons a[data-title="Move / Copy Page"]').click();
+ doneLoading();
+ cy.get(".modal .modal-title").should("not.be.undefined");
+ cy.get("input[name=':dest']").should("not.be.undefined");
+ cy.get("input[name=':operation']").should("not.be.undefined");
+ });
+});
diff --git a/it/cypress/e2e/editor.cy.js b/it/cypress/e2e/editor.cy.js
new file mode 100644
index 00000000..133b5298
--- /dev/null
+++ b/it/cypress/e2e/editor.cy.js
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+const { doneLoading } = require("../utils");
+const { login, sendPost } = require("../util/test-helper");
+
+function setupBasicTest(componentName, properties, subpath = "") {
+ const body = {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": "sling-cms/components/editor/slingform",
+ button: "Save",
+ "fields/jcr:primaryType": "nt:unstructured",
+ "fields/sling:resourceType": "sling-cms/components/general/container",
+ "fields/field/jcr:primaryType": "nt:unstructured",
+ "fields/field/sling:resourceType": `sling-cms/components/editor/fields/${subpath}${componentName}`,
+ };
+
+ Object.keys(properties).forEach((k) => {
+ body[`fields/field/${k}`] = properties[k];
+ });
+ sendPost(`/apps/it/${componentName}-basic`, body);
+
+ cy.visit(
+ `/cms/editor/edit.html/content/apache/sling-apache-org/it?editor=/apps/it/${componentName}-basic`
+ );
+}
+
+describe("Editor", () => {
+ before(() => {
+ login();
+ sendPost("/apps/it", {
+ ":operation": "delete",
+ });
+ sendPost("/apps/it", {
+ "jcr:primaryType": "sling:Folder",
+ });
+ sendPost("/content/apache/sling-apache-org/it", {
+ ":operation": "delete",
+ });
+ sendPost("/content/apache/sling-apache-org/it", {
+ "jcr:primaryType": "sling:Folder",
+ "jcr:content/jcr:primaryType": "nt:unstructured",
+ });
+ });
+ beforeEach(() => {
+ login();
+ });
+ describe("Fields", () => {
+ it("members", () => {
+ setupBasicTest("members", { name: "test" }, "auth/");
+ cy.get("input[name=test]").should("not.be.undefined");
+ });
+ it("membership", () => {
+ setupBasicTest("membership", { name: "test" }, "auth/");
+ cy.get("input[name=test]").should("not.be.undefined");
+ });
+ it("combobox", () => {
+ setupBasicTest("combobox", { label: "Test", name: "test" });
+ cy.get("input[name=test]").should("not.be.undefined");
+ cy.get("label[for=test]").should("not.be.undefined");
+ });
+ it("path", () => {
+ setupBasicTest("path", {
+ label: "Test",
+ name: "test",
+ basePath: "/content",
+ type: "page",
+ });
+ cy.get("input[name=test]").should("not.be.undefined");
+ cy.get("label[for=test]").should("not.be.undefined");
+ cy.get(".search-button").click();
+ doneLoading();
+ cy.get(".modal input[name=term]").type("apache");
+ cy.get(".modal select[name=type]").select("All");
+ cy.get(".modal button[type=submit]").click();
+ doneLoading();
+ cy.get(".modal .tile").should("not.be.undefined");
+ });
+ it("repeating", () => {
+ setupBasicTest("repeating", {
+ label: "Test",
+ name: "test",
+ });
+ cy.get("input[name=test]").should("not.be.undefined");
+ cy.get("label[for=test]").should("not.be.undefined");
+ cy.get("button.repeating__add").click();
+ cy.get(".repeating__container button.repeating__remove").click();
+ });
+ it("taxonomy", () => {
+ setupBasicTest("taxonomy", {
+ label: "Test",
+ name: "test",
+ basePath: "/etc/taxonomy",
+ });
+ cy.get("label[for=test]").should("not.be.undefined");
+ cy.get(".labelfield__field input[type=text]").type(
+ "/etc/taxonomy/reference"
+ );
+ cy.get(".labelfield__add").click();
+ cy.get('a[title="/etc/taxonomy/reference"]').should("not.be.undefined");
+ cy.get('a[title="/etc/taxonomy/reference"] button.delete').click();
+ });
+ it("text", () => {
+ setupBasicTest("text", {
+ label: "Test",
+ name: "test",
+ });
+ cy.get("label[for=test]").should("not.be.undefined");
+ cy.get("input[name=test]").should("not.be.undefined");
+ });
+ it("well", () => {
+ setupBasicTest("well", {
+ title: "Test",
+ collapse: "true",
+ "collapse@TypeHint": "Boolean",
+ });
+ cy.get(".card-content").should("not.be.visible");
+ cy.get(".card-header").click();
+ cy.get(".card-content").should("be.visible");
+ });
+ });
+});
diff --git a/it/cypress/e2e/reference/form.cy.js b/it/cypress/e2e/reference/form.cy.js
new file mode 100644
index 00000000..03e135ed
--- /dev/null
+++ b/it/cypress/e2e/reference/form.cy.js
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+const { setupBasicTest, xssTest } = require("./utils");
+const { login, sendPost } = require("../../util/test-helper");
+
+describe("Reference Form Component Tests", () => {
+ before(() => {
+ login();
+ sendPost("/content/apache/sling-apache-org/it", {
+ ":operation": "delete",
+ });
+
+ sendPost("/content/apache/sling-apache-org/it", {
+ "jcr:primaryType": "sling:Folder",
+ });
+ });
+ beforeEach(() => {
+ login();
+ });
+
+ describe("Actions", () => {
+ describe("sendemail", () => {
+ it("basic", () => {
+ setupBasicTest("sendemail", "forms/actions/sendemail");
+ });
+ it("xss", () => {
+ xssTest("sendemail", "forms/actions/sendemail");
+ });
+ });
+
+ describe("updateprofile", () => {
+ it("basic", () => {
+ setupBasicTest("updateprofile", "forms/actions/updateprofile");
+ });
+ it("xss", () => {
+ xssTest("updateprofile", "forms/actions/updateprofile");
+ });
+ });
+
+ describe("usergeneratedcontent", () => {
+ it("basic", () => {
+ setupBasicTest(
+ "usergeneratedcontent",
+ "forms/actions/usergeneratedcontent"
+ );
+ });
+ it("xss", () => {
+ xssTest(
+ "honeypousergeneratedcontent",
+ "forms/actions/usergeneratedcontent"
+ );
+ });
+ });
+ });
+
+ describe("Fields", () => {
+ describe("honeypot", () => {
+ it("basic", () => {
+ setupBasicTest("honeypot", "forms/fields/honeypot");
+ cy.get(".main .honeypot-basic textarea");
+ });
+ it("xss", () => {
+ xssTest("honeypot", "forms/fields/honeypot");
+ });
+ });
+
+ describe("selection", () => {
+ it("basic", () => {
+ setupBasicTest("selection", "forms/fields/selection");
+ cy.get(".main select[name=selection-basic]");
+ });
+ it("xss", () => {
+ xssTest("selection", "forms/fields/selection");
+ });
+ });
+
+ describe("textarea", () => {
+ it("basic", () => {
+ setupBasicTest("textarea", "forms/fields/textarea");
+ cy.get(".main textarea[name=textarea-basic]");
+ });
+ it("xss", () => {
+ xssTest("textarea", "forms/fields/textarea");
+ });
+ });
+
+ describe("textfield", () => {
+ it("basic", () => {
+ setupBasicTest("textfield", "forms/fields/textfield");
+ cy.get(".main input[name=textfield-basic]");
+ });
+ it("xss", () => {
+ xssTest("textfield", "forms/fields/textfield");
+ });
+ });
+ });
+
+ describe("Providers", () => {
+ describe("userprofile", () => {
+ it("basic", () => {
+ setupBasicTest("profile", "forms/providers/userprofile");
+ });
+ it("xss", () => {
+ xssTest("profile", "forms/providers/userprofile");
+ });
+ });
+ });
+
+ describe("fieldset", () => {
+ it("basic", () => {
+ setupBasicTest("fieldset", "forms/fieldset");
+ cy.get(".main fieldset");
+ });
+ it("xss", () => {
+ xssTest("fieldset", "forms/fieldset");
+ });
+ });
+ describe("form", () => {
+ it("basic", () => {
+ setupBasicTest("login", "forms/form");
+ cy.get(".main form[data-analytics-id]");
+ });
+ it("xss", () => {
+ xssTest("form", "forms/form");
+ });
+ });
+ describe("login", () => {
+ it("basic", () => {
+ setupBasicTest("login", "forms/login");
+ cy.get(".main form[data-analytics-id='Login Form']");
+ });
+ it("xss", () => {
+ xssTest("login", "forms/login");
+ });
+ });
+});
diff --git a/it/cypress/e2e/reference/general.cy.js b/it/cypress/e2e/reference/general.cy.js
new file mode 100644
index 00000000..be77d47f
--- /dev/null
+++ b/it/cypress/e2e/reference/general.cy.js
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+const { setupBasicTest, xssTest } = require("./utils");
+const {
+ createComponentPage,
+ configureComponentFromDialog,
+ COMPONENT_SUBPATH,
+} = require("../../util/component-test-helper");
+const { login, sendPost } = require("../../util/test-helper");
+
+describe("Reference General Component Tests", () => {
+ before(() => {
+ login();
+ sendPost("/content/apache/sling-apache-org/it", {
+ ":operation": "delete",
+ });
+
+ sendPost("/content/apache/sling-apache-org/it", {
+ "jcr:primaryType": "sling:Folder",
+ });
+ });
+ beforeEach(() => {
+ login();
+ });
+
+ describe("columncontrol", () => {
+ it("basic", () => {
+ setupBasicTest("columncontrol", "general/columncontrol");
+ });
+ it("xss", () => {
+ xssTest("columncontrol", "general/columncontrol");
+ });
+ });
+
+ describe("list", () => {
+ it("basic", () => {
+ setupBasicTest("list", "general/list", {
+ query: "SELECT * FROM [sling:Page]",
+ limit: "10",
+ tag: "div",
+ });
+ });
+ it("xss", () => {
+ xssTest("list", "general/list", {
+ query: "SELECT * FROM [sling:Page]",
+ limit: "10",
+ });
+ });
+ });
+
+ describe("RSS", () => {
+ it("basic", () => {
+ sendPost("/content/apache/sling-apache-org/it/feed-basic", {
+ "jcr:primaryType": "sling:Folder",
+ "sling:resourceType": "reference/components/general/rss",
+ });
+ cy.request("/content/apache/sling-apache-org/it/feed-basic.rss.xml").then(
+ (response) => {
+ const parser = new DOMParser();
+ parser.parseFromString(response.body, "text/xml");
+ }
+ );
+ });
+ });
+
+ describe("Search", () => {
+ it("basic", () => {
+ const page = createComponentPage(`search-basic`, {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": `reference/components/general/search`,
+ });
+ configureComponentFromDialog(
+ `${page}${COMPONENT_SUBPATH}`,
+ `/apps/reference/components/general/search/edit`,
+ "reference",
+ `search-basic`,
+ { limit: "2", basePath: "/content" }
+ );
+ cy.visit(`${page}.html?q=apache`);
+ });
+ });
+});
diff --git a/it/cypress/e2e/reference/utils.js b/it/cypress/e2e/reference/utils.js
new file mode 100644
index 00000000..fe5a434a
--- /dev/null
+++ b/it/cypress/e2e/reference/utils.js
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+const {
+ createComponentPage,
+ configureComponentFromDialog,
+ COMPONENT_SUBPATH,
+ XSS_PAYLOAD,
+} = require("../../util/component-test-helper");
+
+export function assertNoAlert() {
+ let spy = cy.spy(window, "alert");
+ cy.wait(500).then(() => {
+ expect(spy).to.haveOwnProperty("callCount");
+ expect(spy).to.not.be.called;
+ });
+}
+
+/**
+ * Sets up a basic test by creating a page with the single component on it
+ * @param {string} componentName the name of the component
+ * @param {string} subpath the path of the component under reference/components/
+ * @param {Record<string,string> | undefined} additionalProperties any additional properties to pass into the configuration step
+ */
+export function setupBasicTest(componentName, subpath, additionalProperties) {
+ const page = createComponentPage(`${componentName}-basic`, {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": `reference/components/${subpath}`,
+ });
+ configureComponentFromDialog(
+ `${page}${COMPONENT_SUBPATH}`,
+ `/apps/reference/components/${subpath}/edit`,
+ "reference",
+ `${componentName}-basic`,
+ additionalProperties
+ );
+ cy.visit(`${page}.html`);
+}
+
+/**
+ * Sets up a basic test using the XSS payload and verifies no alerts appear
+ * @param {string} componentName the name of the component
+ * @param {string} subpath the path of the component under reference/components/
+ * @param {Record<string,string> | undefined} additionalProperties any additional properties to pass into the configuration step
+ */
+export function xssTest(componentName, subpath, additionalProperties) {
+ const page = createComponentPage(`${componentName}-xss`, {
+ "jcr:primaryType": "nt:unstructured",
+ "sling:resourceType": `reference/components/${subpath}`,
+ });
+ configureComponentFromDialog(
+ `${page}${COMPONENT_SUBPATH}`,
+ `/apps/reference/components/${subpath}/edit`,
+ "reference",
+ XSS_PAYLOAD,
+ additionalProperties
+ );
+ cy.visit(`${page}.html`);
+ assertNoAlert();
+}
diff --git a/it/cypress/integration/taxonomy.spec.js b/it/cypress/e2e/taxonomy.cy.js
similarity index 73%
rename from it/cypress/integration/taxonomy.spec.js
rename to it/cypress/e2e/taxonomy.cy.js
index 542b0e98..35c71757 100644
--- a/it/cypress/integration/taxonomy.spec.js
+++ b/it/cypress/e2e/taxonomy.cy.js
@@ -17,23 +17,18 @@
* under the License.
*/
-const lighthouseConfig = require("../lighthouse-cfg.json");
-const { doneLoading, login } = require("../utils");
+const { login } = require("../util/test-helper");
+const { doneLoading } = require("../utils");
describe("Taxonomy Tests", () => {
beforeEach(() => {
login();
});
it("view taxonomy list", () => {
+ cy.visit("/cms/start.html");
cy.get(".toggle-Manage").click();
cy.get(".nav-link-Taxonomy").click();
cy.url().should("contain", "/cms/taxonomy/list.html/etc/taxonomy");
-
- cy.document().toMatchImageSnapshot({
- name: "taxonomy--list",
- blackout: ["td[data-property=lastModified]"],
- });
-
cy.pa11y();
});
it("show select taxonomy item", () => {
@@ -45,10 +40,6 @@ describe("Taxonomy Tests", () => {
"be.visible"
);
cy.get('.has-addons>a[title="Delete Taxonomy Item"]').should("be.visible");
- cy.document().toMatchImageSnapshot({
- name: "taxonomy--edit",
- blackout: ["td[data-property=lastModified]"],
- });
});
it("should show allow for editing", () => {
cy.visit("/cms/taxonomy/list.html/etc/taxonomy");
@@ -56,20 +47,12 @@ describe("Taxonomy Tests", () => {
cy.get('.has-addons>a[title="Edit Taxonomy Item"]').click();
cy.get('input[name="jcr:title"]').should("be.visible");
cy.pa11y();
- cy.document().toMatchImageSnapshot({
- name: "taxonomy--edit-dialog",
- blackout: ["td[data-property=lastModified]"],
- });
cy.get('input[name="jcr:title"]').invoke("attr", "value", "Reference2");
cy.get(".modal .Form-Ajax").submit();
cy.get(".close-modal.is-primary").should("be.visible");
- cy.document().toMatchImageSnapshot({
- name: "taxonomy--save",
- blackout: ["td[data-property=lastModified]"],
- });
- cy.lighthouse(lighthouseConfig);
+ cy.pa11y();
});
it("should show allow for adding new taxonomy item", () => {
cy.visit("/cms/taxonomy/list.html/etc/taxonomy");
@@ -82,19 +65,11 @@ describe("Taxonomy Tests", () => {
"A New Reference"
);
cy.get('input[name=":name"]').invoke("attr", "value", "new-reference");
- cy.document().toMatchImageSnapshot({
- name: "taxonomy--new-tag-dialog",
- blackout: ["td[data-property=lastModified]"],
- });
cy.get(".modal .Form-Ajax").submit();
cy.get(".close-modal.is-primary").should("be.visible");
cy.get(".close-modal.is-primary").click();
- doneLoading();
- cy.document().toMatchImageSnapshot({
- name: "taxonomy--with-new-item",
- blackout: ["td[data-property=lastModified]"],
- });
+ cy.pa11y();
});
it("should show allow for adding deleting a taxonomy item", () => {
cy.visit("/cms/taxonomy/list.html/etc/taxonomy");
@@ -103,14 +78,10 @@ describe("Taxonomy Tests", () => {
doneLoading();
cy.get(".modal").should("be.visible");
- cy.document().toMatchImageSnapshot({
- name: "taxonomy--delete",
- blackout: ["td[data-property=lastModified]"],
- });
cy.get(".modal .Form-Ajax").submit();
-
cy.get(".close-modal.is-primary").should("be.visible");
cy.get(".close-modal.is-primary").click();
doneLoading();
+ cy.pa11y();
});
});
diff --git a/it/cypress/e2e/ugc.cy.js b/it/cypress/e2e/ugc.cy.js
new file mode 100644
index 00000000..4fe13889
--- /dev/null
+++ b/it/cypress/e2e/ugc.cy.js
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+const { doneLoading } = require("../utils");
+const {
+ createComponentPage,
+ configureComponentFromDialog,
+ COMPONENT_SUBPATH,
+ XSS_PAYLOAD,
+} = require("../util/component-test-helper");
+const { login, sendPost } = require("../util/test-helper");
+
+describe("UGC Tests", () => {
+ before(() => {
+ login();
+ sendPost("/content/apache/sling-apache-org/it", {
+ ":operation": "delete",
+ });
+
+ sendPost("/content/apache/sling-apache-org/it", {
+ "jcr:primaryType": "sling:Folder",
+ });
+ });
+ beforeEach(() => {
+ login();
+ sendPost("/etc/usergenerated/it", {
+ ":operation": "delete",
+ });
+ });
+
+ it("Admin UI", () => {
+ cy.visit("/cms/usergenerated/content.html/etc/usergenerated");
+ cy.get('a[data-title="Add Bucket"]').click();
+
+ cy.get("input[name='jcr:content/jcr:title']").type("it");
+ cy.get("input[name=':name']").type("it");
+ cy.get(".modal button[type=submit]").click();
+
+ doneLoading();
+ cy.get(".modal .close-modal.is-primary").click();
+ });
+
+ it("Submission", () => {
+ const page = createComponentPage("ugc", {
+ "jcr:primaryType": "nt:unstructured",
+ submitText: "Submit",
+ successAction: "redirect",
+ successMessage: "Great Success!",
+ "sling:resourceType": "reference/components/forms/form",
+ fields: {
+ "jcr:primaryType": "nt:unstructured",
+ textfield: {
+ "jcr:primaryType": "nt:unstructured",
+ saveAs: "string",
+ required: true,
+ name: "name",
+ type: "text",
+ label: "Name",
+ "sling:resourceType": "reference/components/forms/fields/textfield",
+ },
+ },
+ actions: {
+ "jcr:primaryType": "nt:unstructured",
+ usergeneratedcontent: {
+ "jcr:primaryType": "nt:unstructured",
+ wrapPage: true,
+ bucket: "it",
+ pathDepth: "0",
+ contentType: "OTHER",
+ preview: "Preview!!",
+ name: "coolname",
+ targetPath: "/content",
+ approveAction: "MOVE",
+ "sling:resourceType":
+ "reference/components/forms/actions/usergeneratedcontent",
+ },
+ },
+ });
+
+ cy.visit(`${page}.html`);
+ cy.get('input[name="name"]').type("Hello World");
+ cy.get("button[type=submit]").click();
+ cy.get(".alert").should("be.visible");
+
+ cy.visit("/cms/usergenerated/content.html/etc/usergenerated/it");
+ cy.get("tbody tr:first-child").click();
+ cy.get(".buttons a[title='Review User Generated Content']")
+ .should("have.attr", "href")
+ .then((href) => {
+ cy.visit(href);
+ });
+
+ cy.get("form[data-callback=handleugc]").should("be.visible");
+ });
+});
diff --git a/it/cypress/fixtures/example.json b/it/cypress/fixtures/example.json
deleted file mode 100644
index 02e42543..00000000
--- a/it/cypress/fixtures/example.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "Using fixtures to represent data",
- "email": "hello@cypress.io",
- "body": "Fixtures are a great way to mock data for responses to routes"
-}
diff --git a/it/cypress/integration/__image_snapshots__/auth--401-page #0.png b/it/cypress/integration/__image_snapshots__/auth--401-page #0.png
deleted file mode 100644
index 5990ef01..00000000
Binary files a/it/cypress/integration/__image_snapshots__/auth--401-page #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/auth--403-page #0.png b/it/cypress/integration/__image_snapshots__/auth--403-page #0.png
deleted file mode 100644
index 5990ef01..00000000
Binary files a/it/cypress/integration/__image_snapshots__/auth--403-page #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/auth--home-page #0.png b/it/cypress/integration/__image_snapshots__/auth--home-page #0.png
deleted file mode 100644
index 0480b636..00000000
Binary files a/it/cypress/integration/__image_snapshots__/auth--home-page #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/auth--login-page #0.png b/it/cypress/integration/__image_snapshots__/auth--login-page #0.png
deleted file mode 100644
index a4148767..00000000
Binary files a/it/cypress/integration/__image_snapshots__/auth--login-page #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/authoring--index #0.png b/it/cypress/integration/__image_snapshots__/authoring--index #0.png
deleted file mode 100644
index 9b6aee93..00000000
Binary files a/it/cypress/integration/__image_snapshots__/authoring--index #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/taxonomy--delete #0.png b/it/cypress/integration/__image_snapshots__/taxonomy--delete #0.png
deleted file mode 100644
index 8049737e..00000000
Binary files a/it/cypress/integration/__image_snapshots__/taxonomy--delete #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/taxonomy--edit #0.png b/it/cypress/integration/__image_snapshots__/taxonomy--edit #0.png
deleted file mode 100644
index 98501eed..00000000
Binary files a/it/cypress/integration/__image_snapshots__/taxonomy--edit #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/taxonomy--edit-dialog #0.png b/it/cypress/integration/__image_snapshots__/taxonomy--edit-dialog #0.png
deleted file mode 100644
index 9758889b..00000000
Binary files a/it/cypress/integration/__image_snapshots__/taxonomy--edit-dialog #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/taxonomy--list #0.png b/it/cypress/integration/__image_snapshots__/taxonomy--list #0.png
deleted file mode 100644
index d3d6f099..00000000
Binary files a/it/cypress/integration/__image_snapshots__/taxonomy--list #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/taxonomy--new-tag-dialog #0.png b/it/cypress/integration/__image_snapshots__/taxonomy--new-tag-dialog #0.png
deleted file mode 100644
index 56b81cd9..00000000
Binary files a/it/cypress/integration/__image_snapshots__/taxonomy--new-tag-dialog #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/taxonomy--save #0.png b/it/cypress/integration/__image_snapshots__/taxonomy--save #0.png
deleted file mode 100644
index e212d3be..00000000
Binary files a/it/cypress/integration/__image_snapshots__/taxonomy--save #0.png and /dev/null differ
diff --git a/it/cypress/integration/__image_snapshots__/taxonomy--with-new-item #0.png b/it/cypress/integration/__image_snapshots__/taxonomy--with-new-item #0.png
deleted file mode 100644
index b0024ed4..00000000
Binary files a/it/cypress/integration/__image_snapshots__/taxonomy--with-new-item #0.png and /dev/null differ
diff --git a/it/cypress/integration/authoring.spec.js b/it/cypress/integration/authoring.spec.js
deleted file mode 100644
index 4ddee3f9..00000000
--- a/it/cypress/integration/authoring.spec.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-const { doneLoading, login } = require("../utils");
-
-describe("Authoring Tests", () => {
- beforeEach(() => {
- login();
- });
- it("validate basic", () => {
- cy.visit("/cms/page/edit.html/content/apache/sling-apache-org/index");
-
- cy.document().toMatchImageSnapshot({ name: "authoring--index" });
- });
-
- it("validate add page", () => {
- cy.request({
- url: "/cms/site/content.html/content/apache/sling-apache-org/it",
- failOnStatusCode: false,
- }).then((response) => {
- console.error(response);
- if (response.status === 200) {
- cy.visit("/cms/site/content.html/content/apache/sling-apache-org");
- cy.get(
- '.card[data-value="/content/apache/sling-apache-org/it"]'
- ).click();
- cy.get('.level a[data-title="Delete the specified page"]').click();
- doneLoading();
- cy.get(".modal .is-primary").click();
- doneLoading();
- cy.get(".modal .close-modal.is-primary").click();
- }
- });
-
- cy.visit("/cms/site/content.html/content/apache/sling-apache-org");
-
- cy.get('.level .buttons a[data-title="Add Page"]').click();
-
- doneLoading();
- cy.get("select[name=pageTemplate]").select("Base Page");
-
- cy.get("input[name=title]").type("Integration Test");
- cy.get('input[name=":name"]').type("it");
-
- cy.get(".modal .is-primary").click();
- doneLoading();
-
- cy.get(".modal .close-modal.is-primary").click();
- doneLoading();
- cy.get('.card[data-value="/content/apache/sling-apache-org/it"]').should(
- "not.be.undefined"
- );
- });
-
-});
diff --git a/it/cypress/support/commands.js b/it/cypress/support/e2e.js
similarity index 95%
rename from it/cypress/support/commands.js
rename to it/cypress/support/e2e.js
index fa6a59fc..ce45ac74 100644
--- a/it/cypress/support/commands.js
+++ b/it/cypress/support/e2e.js
@@ -16,6 +16,4 @@
* specific language governing permissions and limitations
* under the License.
*/
-
-import "cypress-audit/commands";
-
+import "@cypress-audit/pa11y/commands";
diff --git a/it/cypress/util/component-test-helper.js b/it/cypress/util/component-test-helper.js
new file mode 100644
index 00000000..6c865514
--- /dev/null
+++ b/it/cypress/util/component-test-helper.js
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+const { v4: uuid } = require("uuid");
+
+const { sendPost } = require("./test-helper");
+
+export const COMPONENT_SUBPATH = "/jcr:content/container/component";
+
+export const XSS_PAYLOAD = '"/><\x3Cscript>javascript:alert(1)</script>';
+
+/**
+ * Creates a page with a single component in it
+ * @param {string} prefix the test prefix
+ * @param {*} componentContent the JSON content for the component
+ * @returns the path to the page
+ */
+export function createComponentPage(prefix, componentContent) {
+ const id = `${prefix}-${uuid()}`;
+ const content = {
+ "jcr:primaryType": "sling:Page",
+ "jcr:content": {
+ "jcr:primaryType": "nt:unstructured",
+ "jcr:title": `IT - ${prefix}`,
+ "sling:template": "/conf/asf/site/templates/base-page",
+ "sling:resourceType": "reference/components/pages/base",
+ published: true,
+ container: {
+ "jcr:primaryType": "nt:unstructured",
+ component: componentContent,
+ },
+ },
+ };
+ const url = `/content/apache/sling-apache-org/it/${id}`;
+ sendPost(url, {
+ ":operation": "import",
+ ":content": JSON.stringify(content),
+ ":contentType": "json",
+ });
+ sendPost(url, {
+ "jcr:primaryType": "sling:Page",
+ });
+ return url;
+}
+
+/**
+ * Configures a component using the dialog values
+ *
+ * @param {string} path the path to the resource to edit
+ * @param {string} editor the editor to read
+ * @param {'ui'|'reference'} project the project to read the editor configuration from
+ * @param {string} defaultValue a value to use for populating fields
+ * @param {Record<string,string>} values a map of values
+ */
+export function configureComponentFromDialog(
+ path,
+ editor,
+ project,
+ defaultValue,
+ values = {}
+) {
+ cy.readFile(`../${project}/src/main/resources/jcr_root/${editor}.json`).then(
+ (dialog) => {
+ cy.visit(`/cms/editor/edit.html${path}?editor=${editor}`);
+ Object.keys(dialog.fields)
+ .filter((k) => !k.includes(":"))
+ .forEach((k) => {
+ const field = dialog.fields[k];
+ switch (field["sling:resourceType"]) {
+ case "sling-cms/components/editor/fields/textarea":
+ case "sling-cms/components/editor/fields/text":
+ cy.get(`*[name=${field.name}]`).type(
+ values[field.name] || defaultValue
+ );
+ break;
+ case "sling-cms/components/editor/fields/select":
+ if (field.options) {
+ const value =
+ values[field.name] ||
+ field.options[Object.keys(field.options)[0]].value.toString();
+ cy.get(`select[name=${field.name}]`).select(value);
+ }
+ break;
+ case "sling-cms/components/editor/fields/path":
+ cy.get(`*[name=${field.name}]`).type(
+ values[field.name] ||
+ `${field.basePath || "/content"}//${defaultValue}`
+ );
+ break;
+ case "sling-cms/components/editor/fields/hidden":
+ // do nothing for hidden fields
+ break;
+ default:
+ console.warn(
+ `Unsupported resource type ${field["sling:resourceType"]}.`
+ );
+ }
+ });
+ cy.get(".Form-Ajax").submit();
+ }
+ );
+}
diff --git a/it/cypress/plugins/index.js b/it/cypress/util/test-helper.js
similarity index 60%
rename from it/cypress/plugins/index.js
rename to it/cypress/util/test-helper.js
index 0c9ad273..93d00920 100644
--- a/it/cypress/plugins/index.js
+++ b/it/cypress/util/test-helper.js
@@ -17,19 +17,29 @@
* under the License.
*/
-const { lighthouse, pa11y, prepareAudit } = require("cypress-audit");
-const { initPlugin } = require("cypress-plugin-snapshots/plugin");
-module.exports = (on, config) => {
- initPlugin(on, config);
-
- on("before:browser:launch", (browser = {}, launchOptions) => {
- prepareAudit(launchOptions);
+/**
+ * Sends a post to the specified URL
+ * @param {string} url the URL to which to send the post
+ * @param {Record<string, string>} body the body of the post to send
+ */
+export function sendPost(url, body) {
+ cy.request({
+ method: "POST",
+ url,
+ form: true,
+ body,
+ headers: {
+ Referer: process.env.CYPRESS_BASE_URL || "http://localhost:8080",
+ },
});
-
- on("task", {
- lighthouse: lighthouse(), // calling the function is important
- pa11y: pa11y(), // calling the function is important
+}
+/**
+ * Login directly by posting to the login endpoint
+ */
+export function login() {
+ sendPost("/j_security_check", {
+ j_username: "admin",
+ j_password: "admin",
});
- return config;
-};
+}
diff --git a/it/package-lock.json b/it/package-lock.json
index d827f5de..ced1aff1 100644
--- a/it/package-lock.json
+++ b/it/package-lock.json
@@ -13,11 +13,30 @@
"regenerator-runtime": "^0.13.4"
}
},
+ "@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "optional": true
+ },
+ "@cypress-audit/pa11y": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@cypress-audit/pa11y/-/pa11y-1.3.1.tgz",
+ "integrity": "sha512-VdyCekQoHWrxQBO9nXYULuMfGsp980V9wmve9cKgh2uQv64xhTH9GyBPOpnEICJcc02vtglclrBqG/DrqjbL7w==",
+ "requires": {
+ "@cypress-audit/shared": "^1.3.1",
+ "pa11y": "^6.2.3"
+ }
+ },
+ "@cypress-audit/shared": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@cypress-audit/shared/-/shared-1.3.1.tgz",
+ "integrity": "sha512-iE4yGh5hw+ICrP3xZXYmDbNHECyAXyKbpRQ604FvMOxrXQVCBZq24MSKKLLUBAgpcAkv09XCW3utx39OYozVTA=="
+ },
"@cypress/request": {
- "version": "2.88.5",
- "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz",
- "integrity": "sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA==",
- "dev": true,
+ "version": "2.88.10",
+ "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz",
+ "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==",
"requires": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
@@ -26,26 +45,30 @@
"extend": "~3.0.2",
"forever-agent": "~0.6.1",
"form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
+ "http-signature": "~1.3.6",
"is-typedarray": "~1.0.0",
"isstream": "~0.1.2",
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
"performance-now": "^2.1.0",
"qs": "~6.5.2",
"safe-buffer": "^5.1.2",
"tough-cookie": "~2.5.0",
"tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
+ "uuid": "^8.3.2"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+ }
}
},
"@cypress/xvfb": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
"integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
- "dev": true,
"requires": {
"debug": "^3.1.0",
"lodash.once": "^4.1.1"
@@ -55,7 +78,6 @@
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
"requires": {
"ms": "^2.1.1"
}
@@ -495,26 +517,22 @@
"@types/node": {
"version": "14.14.41",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz",
- "integrity": "sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==",
- "dev": true
+ "integrity": "sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g=="
},
"@types/sinonjs__fake-timers": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz",
- "integrity": "sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg==",
- "dev": true
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
+ "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g=="
},
"@types/sizzle": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz",
- "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==",
- "dev": true
+ "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ=="
},
"@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,
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
"optional": true,
"requires": {
"@types/node": "*"
@@ -543,111 +561,63 @@
"dev": true
},
"agent-base": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
- "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
- "dev": true,
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"requires": {
- "es6-promisify": "^5.0.0"
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ }
}
},
"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,
"requires": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
}
},
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
"ansi-align": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
- "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
+ "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,
"requires": {
- "string-width": "^3.0.0"
- },
- "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==",
- "dev": true
- },
- "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
- },
- "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
- },
- "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,
- "requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- }
- },
- "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,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
+ "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
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="
},
"ansi-escapes": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
"integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dev": true,
"requires": {
"type-fest": "^0.21.3"
}
},
"ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "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": "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"
}
@@ -661,8 +631,7 @@
"arch": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
- "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
- "dev": true
+ "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ=="
},
"arraybuffer.slice": {
"version": "0.0.7",
@@ -671,10 +640,9 @@
"dev": true
},
"asn1": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
- "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
- "dev": true,
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"requires": {
"safer-buffer": "~2.1.0"
}
@@ -682,8 +650,7 @@
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="
},
"assertion-error": {
"version": "1.1.0",
@@ -694,50 +661,37 @@
"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
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
},
"async": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
- "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==",
- "dev": true
- },
- "async-limiter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
- "dev": true
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "dev": true
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "dev": true
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
},
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
- "dev": true
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="
},
"aws4": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
- "dev": true
+ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
},
"axe-core": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz",
- "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==",
- "dev": true
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.3.tgz",
+ "integrity": "sha512-pXnVMfJKSIWU2Ml4JHP7pZEPIrgBO1Fd3WGx+fPBsS+KRGhE4vxooD8XBGWbQOIVSZsVK7pUDBBkCicNu80yzQ=="
},
"backo2": {
"version": "1.0.2",
@@ -748,8 +702,7 @@
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dev": true
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"base64-arraybuffer": {
"version": "0.1.4",
@@ -760,8 +713,7 @@
"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
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"base64id": {
"version": "2.0.0",
@@ -772,21 +724,30 @@
"bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
- "dev": true,
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
"requires": {
"tweetnacl": "^0.14.3"
}
},
"bfj": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/bfj/-/bfj-4.2.4.tgz",
- "integrity": "sha1-hfeyNoPCr9wVhgOEotHD+sgO0zo=",
- "dev": true,
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz",
+ "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==",
+ "requires": {
+ "bluebird": "^3.5.5",
+ "check-types": "^11.1.1",
+ "hoopy": "^0.1.4",
+ "tryer": "^1.0.1"
+ }
+ },
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"requires": {
- "check-types": "^7.3.0",
- "hoopy": "^0.1.2",
- "tryer": "^1.0.0"
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
}
},
"blob": {
@@ -798,14 +759,12 @@
"blob-util": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
- "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==",
- "dev": true
+ "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ=="
},
"bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
- "dev": true
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
},
"bmp-js": {
"version": "0.1.0",
@@ -829,31 +788,6 @@
"widest-line": "^3.1.0"
},
"dependencies": {
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "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
- },
- "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,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
"type-fest": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
@@ -866,7 +800,6 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -876,7 +809,6 @@
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -885,8 +817,7 @@
"buffer-crc32": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
- "dev": true
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
},
"buffer-equal": {
"version": "0.0.1",
@@ -935,8 +866,7 @@
"cachedir": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz",
- "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==",
- "dev": true
+ "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw=="
},
"camelcase": {
"version": "5.3.1",
@@ -947,88 +877,64 @@
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
- "dev": true
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
},
"chai": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz",
- "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
+ "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==",
"dev": true,
"requires": {
"assertion-error": "^1.1.0",
"check-error": "^1.0.2",
- "deep-eql": "^3.0.1",
+ "deep-eql": "^4.1.2",
"get-func-name": "^2.0.0",
+ "loupe": "^2.3.1",
"pathval": "^1.1.1",
"type-detect": "^4.0.5"
}
},
"chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "dependencies": {
- "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,
- "requires": {
- "color-convert": "^1.9.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
- }
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
"charenc": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
- "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
+ "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
"dev": true
},
"check-error": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
"dev": true
},
"check-more-types": {
"version": "2.24.0",
"resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
- "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=",
- "dev": true
+ "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA=="
},
"check-types": {
- "version": "7.4.0",
- "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz",
- "integrity": "sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==",
- "dev": true
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz",
+ "integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA=="
+ },
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
},
"chrome-launcher": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.14.0.tgz",
- "integrity": "sha512-W//HpflaW6qBGrmuskup7g+XJZN6w03ko9QSIe5CtcTal2u0up5SeReK3Ll1Why4Ey8dPkv8XSodZyHPnGbVHQ==",
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.14.2.tgz",
+ "integrity": "sha512-Nk8DUCIfPR6p9WClPPFeP2ztpAdkT8xueoiDS03csea1uoJjm4w0p5Oy1hjykyjT1EQ0MMrEshLD3C8gHXyiZw==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -1054,8 +960,7 @@
"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
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="
},
"cli-boxes": {
"version": "2.2.1",
@@ -1067,19 +972,16 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
"integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
"requires": {
"restore-cursor": "^3.1.0"
}
},
"cli-table3": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz",
- "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==",
- "dev": true,
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
+ "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
"requires": {
- "colors": "^1.1.2",
- "object-assign": "^4.1.0",
+ "@colors/colors": "1.5.0",
"string-width": "^4.2.0"
}
},
@@ -1087,7 +989,6 @@
"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,
"requires": {
"slice-ansi": "^3.0.0",
"string-width": "^4.2.0"
@@ -1105,9 +1006,9 @@
}
},
"clone-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
- "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
"dev": true,
"requires": {
"mimic-response": "^1.0.0"
@@ -1117,7 +1018,6 @@
"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"
}
@@ -1125,42 +1025,30 @@
"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
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"colorette": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
- "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
- "dev": true
- },
- "colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "dev": true,
- "optional": true
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
+ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
"requires": {
"delayed-stream": "~1.0.0"
}
},
"commander": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
- "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==",
- "dev": true
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.0.0.tgz",
+ "integrity": "sha512-Xvf85aAtu6v22+E5hfVoLHqyul/jyxh91zvqk/ioJTQuJR7Z78n7H558vMPKanPSRgIEeZemT92I2g9Y8LPbSQ=="
},
"common-tags": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
- "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
- "dev": true
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
+ "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA=="
},
"component-bind": {
"version": "1.0.0",
@@ -1177,26 +1065,13 @@
"component-inherit": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
- "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
+ "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==",
"dev": true
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
- },
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"configstore": {
"version": "5.0.1",
@@ -1215,7 +1090,7 @@
"cookie": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
- "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
+ "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==",
"dev": true
},
"core-js": {
@@ -1227,14 +1102,12 @@
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "dev": true
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
},
"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,
"requires": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -1244,7 +1117,7 @@
"crypt": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
- "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
+ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
"dev": true
},
"crypto-random-string": {
@@ -1254,9 +1127,9 @@
"dev": true
},
"csp_evaluator": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.0.1.tgz",
- "integrity": "sha512-9L57/vkuwH1tJv9Sw9t13xKGKyRR7OKn/pizcLCHK/83WH+sqRav0JCFBmBLmpurQAcz5usU3efS1rabOPV/qA==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.0.tgz",
+ "integrity": "sha512-TcB+ZH9wZBG314jAUpKHPl1oYbRJV+nAT2YwZ9y4fmUN0FkEJa8e/hKZoOgzLYp1Z/CJdFhbhhGIGh0XG8W54Q==",
"dev": true
},
"cssom": {
@@ -1275,30 +1148,30 @@
}
},
"cypress": {
- "version": "7.7.0",
- "resolved": "https://registry.npmjs.org/cypress/-/cypress-7.7.0.tgz",
- "integrity": "sha512-uYBYXNoI5ym0UxROwhQXWTi8JbUEjpC6l/bzoGZNxoKGsLrC1SDPgIDJMgLX/MeEdPL0UInXLDUWN/rSyZUCjQ==",
- "dev": true,
+ "version": "12.2.0",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.2.0.tgz",
+ "integrity": "sha512-kvl95ri95KK8mAy++tEU/wUgzAOMiIciZSL97LQvnOinb532m7dGvwN0mDSIGbOd71RREtmT9o4h088RjK5pKw==",
"requires": {
- "@cypress/request": "^2.88.5",
+ "@cypress/request": "^2.88.10",
"@cypress/xvfb": "^1.2.4",
"@types/node": "^14.14.31",
- "@types/sinonjs__fake-timers": "^6.0.2",
+ "@types/sinonjs__fake-timers": "8.1.1",
"@types/sizzle": "^2.3.2",
"arch": "^2.2.0",
"blob-util": "^2.0.2",
"bluebird": "^3.7.2",
+ "buffer": "^5.6.0",
"cachedir": "^2.3.0",
"chalk": "^4.1.0",
"check-more-types": "^2.24.0",
"cli-cursor": "^3.1.0",
- "cli-table3": "~0.6.0",
+ "cli-table3": "~0.6.1",
"commander": "^5.1.0",
"common-tags": "^1.8.0",
"dayjs": "^1.10.4",
"debug": "^4.3.2",
"enquirer": "^2.3.6",
- "eventemitter2": "^6.4.3",
+ "eventemitter2": "6.4.7",
"execa": "4.1.0",
"executable": "^4.1.1",
"extract-zip": "2.0.1",
@@ -1311,23 +1184,22 @@
"listr2": "^3.8.3",
"lodash": "^4.17.21",
"log-symbols": "^4.0.0",
- "minimist": "^1.2.5",
+ "minimist": "^1.2.6",
"ospath": "^1.2.2",
"pretty-bytes": "^5.6.0",
- "ramda": "~0.27.1",
+ "proxy-from-env": "1.0.0",
"request-progress": "^3.0.0",
+ "semver": "^7.3.2",
"supports-color": "^8.1.1",
"tmp": "~0.2.1",
"untildify": "^4.0.0",
- "url": "^0.11.0",
"yauzl": "^2.10.0"
},
"dependencies": {
"chalk": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
- "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
- "dev": true,
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -1337,7 +1209,6 @@
"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,
"requires": {
"has-flag": "^4.0.0"
}
@@ -1345,143 +1216,84 @@
}
},
"ci-info": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.1.1.tgz",
- "integrity": "sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ==",
- "dev": true
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz",
+ "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog=="
},
"commander": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
- "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
- "dev": true
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="
},
"debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dev": true,
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
"ms": "2.1.2"
}
},
- "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,
- "requires": {
- "@types/yauzl": "^2.9.1",
- "debug": "^4.1.1",
- "get-stream": "^5.1.0",
- "yauzl": "^2.10.0"
- }
- },
- "fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
- "dev": true,
- "requires": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- }
- },
- "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"
- }
- },
"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,
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
"requires": {
"ini": "2.0.0"
}
},
- "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
- },
"ini": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
- "dev": true
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="
},
"is-ci": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz",
- "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==",
- "dev": true,
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
"requires": {
- "ci-info": "^3.1.1"
+ "ci-info": "^3.2.0"
}
},
"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,
"requires": {
"global-dirs": "^3.0.0",
"is-path-inside": "^3.0.2"
}
},
- "jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
+ "proxy-from-env": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
+ "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A=="
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"requires": {
- "graceful-fs": "^4.1.6",
- "universalify": "^2.0.0"
+ "lru-cache": "^6.0.0"
}
},
"supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
"requires": {
"has-flag": "^4.0.0"
}
- },
- "tmp": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
- "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
- "dev": true,
- "requires": {
- "rimraf": "^3.0.0"
- }
- },
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true
}
}
},
"cypress-audit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/cypress-audit/-/cypress-audit-1.0.0.tgz",
- "integrity": "sha512-netcgyTXr+rpc39nVh0ts4m41MT0htmY7esVRAlJDcPmmgAlX8YIgGubPN1/uEWCkrJVhtSOs/vbSezLcxzrDQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/cypress-audit/-/cypress-audit-1.1.0.tgz",
+ "integrity": "sha512-W/GvSOOYfI1zq+pyO3T9Juo4xCPBPbMkUZWApxsuD9r/g/fy9aonK1K7NiOYG0aMsL0PILl6Na5VAGS1CYOGlg==",
"dev": true,
"requires": {
- "lighthouse": "^8.0.0",
- "pa11y": "^5.3.0"
+ "lighthouse": "^8.5.1",
+ "pa11y": "^6.0.1"
}
},
"cypress-plugin-snapshots": {
@@ -1547,40 +1359,51 @@
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "dev": true,
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
"requires": {
"assert-plus": "^1.0.0"
}
},
+ "data-uri-to-buffer": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
+ "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA=="
+ },
"dayjs": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz",
- "integrity": "sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==",
- "dev": true
+ "version": "1.11.7",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz",
+ "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
},
"debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
- "ms": "2.1.2"
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
+ }
}
},
"decompress-response": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
"dev": true,
"requires": {
"mimic-response": "^1.0.0"
}
},
"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==",
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
+ "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
"dev": true,
"requires": {
"type-detect": "^4.0.0"
@@ -1601,8 +1424,12 @@
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "dev": true
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+ },
+ "devtools-protocol": {
+ "version": "0.0.869402",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz",
+ "integrity": "sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA=="
},
"diff2html": {
"version": "2.12.2",
@@ -1640,16 +1467,15 @@
}
},
"duplexer3": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==",
"dev": true
},
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
- "dev": true,
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
"requires": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
@@ -1658,59 +1484,20 @@
"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",
"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,
"requires": {
"once": "^1.4.0"
}
},
- "engine.io": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz",
- "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==",
- "dev": true,
- "requires": {
- "accepts": "~1.3.4",
- "base64id": "2.0.0",
- "cookie": "~0.4.1",
- "debug": "~4.1.0",
- "engine.io-parser": "~2.2.0",
- "ws": "~7.4.2"
- },
- "dependencies": {
- "cookie": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
- "dev": true
- },
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ws": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz",
- "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==",
- "dev": true
- }
- }
- },
"engine.io-client": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.1.tgz",
- "integrity": "sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ==",
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.3.tgz",
+ "integrity": "sha512-qsgyc/CEhJ6cgMUwxRRtOndGVhIu5hpL5tR4umSpmX/MvkFoIxUTM7oFMDQumHNzlNLwSVy6qhstFPoWTf7dOw==",
"dev": true,
"requires": {
"component-emitter": "~1.3.0",
@@ -1722,7 +1509,7 @@
"parseqs": "0.0.6",
"parseuri": "0.0.6",
"ws": "~7.4.2",
- "xmlhttprequest-ssl": "~1.5.4",
+ "xmlhttprequest-ssl": "~1.6.2",
"yeast": "0.1.2"
},
"dependencies": {
@@ -1738,13 +1525,13 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
},
"ws": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz",
- "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==",
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
"dev": true
}
}
@@ -1766,25 +1553,14 @@
"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"
}
},
- "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
- },
- "es6-promisify": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
- "dev": true,
- "requires": {
- "es6-promise": "^4.0.3"
- }
+ "envinfo": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
+ "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw=="
},
"escalade": {
"version": "3.1.1",
@@ -1801,20 +1577,17 @@
"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
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
},
"eventemitter2": {
- "version": "6.4.4",
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz",
- "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==",
- "dev": true
+ "version": "6.4.7",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz",
+ "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg=="
},
"execa": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
"integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
- "dev": true,
"requires": {
"cross-spawn": "^7.0.0",
"get-stream": "^5.0.0",
@@ -1831,7 +1604,6 @@
"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"
}
@@ -1842,7 +1614,6 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
"integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
- "dev": true,
"requires": {
"pify": "^2.2.0"
}
@@ -1856,70 +1627,63 @@
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"extract-zip": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
- "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
- "dev": true,
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
"requires": {
- "concat-stream": "^1.6.2",
- "debug": "^2.6.9",
- "mkdirp": "^0.5.4",
+ "@types/yauzl": "^2.9.1",
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
"yauzl": "^2.10.0"
},
"dependencies": {
"debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
- "ms": "2.0.0"
+ "ms": "2.1.2"
}
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
+ "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==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
}
}
},
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "dev": true
- },
- "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
- },
- "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
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="
},
"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,
"requires": {
"pend": "~1.2.0"
}
},
+ "fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "requires": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ }
+ },
"figures": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
"integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
"requires": {
"escape-string-regexp": "^1.0.5"
}
@@ -1930,34 +1694,79 @@
"integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==",
"dev": true
},
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "dev": true
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="
},
"form-data": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dev": true,
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
}
},
+ "formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "requires": {
+ "fetch-blob": "^3.1.2"
+ }
+ },
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "dependencies": {
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+ }
+ }
+ },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"get-caller-file": {
"version": "2.0.5",
@@ -1968,7 +1777,7 @@
"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=",
+ "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
"dev": true
},
"get-stream": {
@@ -1984,7 +1793,6 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz",
"integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==",
- "dev": true,
"requires": {
"async": "^3.2.0"
}
@@ -1992,8 +1800,7 @@
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "dev": true,
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
"requires": {
"assert-plus": "^1.0.0"
}
@@ -2002,7 +1809,6 @@
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -2053,30 +1859,12 @@
"graceful-fs": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
- "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
- "dev": true
- },
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
- "dev": true
- },
- "har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "dev": true,
- "requires": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- }
+ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
},
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
"requires": {
"function-bind": "^1.1.1"
}
@@ -2101,14 +1889,13 @@
"has-cors": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
- "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
+ "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==",
"dev": true
},
"has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"has-yarn": {
"version": "2.1.0",
@@ -2137,14 +1924,12 @@
"hoopy": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
- "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==",
- "dev": true
+ "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ=="
},
"html_codesniffer": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/html_codesniffer/-/html_codesniffer-2.4.1.tgz",
- "integrity": "sha512-7g4Z8+7agJFi7XJGu2r0onIqA7ig9b26vFEvUE6DgtFJlJzy1ELYEKzzd5Xwam4xjHiHQ/w8yHO7KTGNcXnwzg==",
- "dev": true
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/html_codesniffer/-/html_codesniffer-2.5.1.tgz",
+ "integrity": "sha512-vcz0yAaX/OaV6sdNHuT9alBOKkSxYb8h5Yq26dUqgi7XmCgGUSa7U9PiY1PBXQFMjKv1wVPs5/QzHlGuxPDUGg=="
},
"http-cache-semantics": {
"version": "4.1.0",
@@ -2155,37 +1940,34 @@
"http-link-header": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-0.8.0.tgz",
- "integrity": "sha1-oitBoMmx4tj6wb8baXxr1TLV9eQ=",
+ "integrity": "sha512-qsh/wKe1Mk1vtYEFr+LpQBFWTO1gxZQBdii2D0Umj+IUQ23r5sT088Rhpq4XzpSyIpaX7vwjB8Rrtx8u9JTg+Q==",
"dev": true
},
"http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "dev": true,
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz",
+ "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==",
"requires": {
"assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
+ "jsprim": "^2.0.2",
+ "sshpk": "^1.14.1"
}
},
"https-proxy-agent": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
- "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
- "dev": true,
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"requires": {
- "agent-base": "^4.3.0",
- "debug": "^3.1.0"
+ "agent-base": "6",
+ "debug": "4"
},
"dependencies": {
"debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
- "ms": "^2.1.1"
+ "ms": "2.1.2"
}
}
}
@@ -2193,14 +1975,12 @@
"human-signals": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
- "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
- "dev": true
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw=="
},
"ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"image-size": {
"version": "0.7.5",
@@ -2211,26 +1991,25 @@
"image-ssim": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz",
- "integrity": "sha1-g7Qsei5uS4VQVHf+aRf128VkIOU=",
+ "integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==",
"dev": true
},
"import-lazy": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
- "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
+ "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==",
"dev": true
},
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"dev": true
},
"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
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
},
"indexof": {
"version": "0.0.1",
@@ -2242,7 +2021,6 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
"requires": {
"once": "^1.3.0",
"wrappy": "1"
@@ -2251,8 +2029,7 @@
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ini": {
"version": "1.3.7",
@@ -2278,8 +2055,7 @@
"is": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz",
- "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==",
- "dev": true
+ "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg=="
},
"is-buffer": {
"version": "1.1.6",
@@ -2305,8 +2081,7 @@
"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
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
},
"is-function": {
"version": "1.0.2",
@@ -2339,20 +2114,22 @@
"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
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
},
"is-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
- "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
- "dev": true
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "dev": true
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "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=="
},
"is-wsl": {
"version": "2.2.0",
@@ -2369,23 +2146,15 @@
"integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
"dev": true
},
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
- "dev": true
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
},
"jimp": {
"version": "0.10.3",
@@ -2402,9 +2171,9 @@
}
},
"jpeg-js": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz",
- "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==",
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz",
+ "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==",
"dev": true
},
"js-base64": {
@@ -2414,40 +2183,31 @@
"dev": true
},
"js-library-detector": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.4.0.tgz",
- "integrity": "sha512-NB2sYpmgqiTd7PNNhgp6bnEZmjvTUdAbzxABvYXWLpTL/t158T6mPnD8uYNd0FDP73YWyMrTYDvPxqdvCTbv2g==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.5.0.tgz",
+ "integrity": "sha512-Kq7VckJ5kb26kHMAu1sDO8t2qr7M5Uw6Gf7fVGtu1YceoHdqTcobwnB5kStcktusPuPmiCE8PbCaiLzhiBsSAw==",
"dev": true
},
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "dev": true
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
},
"json-buffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==",
"dev": true
},
"json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
- "dev": true
- },
- "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
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
},
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
- "dev": true
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
},
"jsonfile": {
"version": "4.0.0",
@@ -2459,14 +2219,13 @@
}
},
"jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "dev": true,
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz",
+ "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==",
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
- "json-schema": "0.2.3",
+ "json-schema": "0.4.0",
"verror": "1.10.0"
}
},
@@ -2479,6 +2238,11 @@
"json-buffer": "3.0.0"
}
},
+ "kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="
+ },
"latest-version": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
@@ -2491,26 +2255,25 @@
"lazy-ass": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
- "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=",
- "dev": true
+ "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw=="
},
"lighthouse": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-8.1.0.tgz",
- "integrity": "sha512-kAe06yax70VFdfX38OWIDqzQ77H313BXTXbGxqs4l1SOnhnu/ao6qF7VZ6TNz3+YGbSXPJgC3KOYif/sE79KTA==",
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-8.6.0.tgz",
+ "integrity": "sha512-/H7aDL3//Gr0M1v8GGq6k0OTNty7nDVuU/o1cg6opYkfHRz1V3Nhydqz6aBzfXhUQx6iJRnxgRCPya+ZLA2vbg==",
"dev": true,
"requires": {
"axe-core": "4.2.3",
"chrome-launcher": "^0.14.0",
"configstore": "^5.0.1",
- "csp_evaluator": "^1.0.1",
+ "csp_evaluator": "1.1.0",
"cssstyle": "1.2.1",
"enquirer": "^2.3.6",
"http-link-header": "^0.8.0",
"intl-messageformat": "^4.4.0",
"jpeg-js": "^0.4.1",
"js-library-detector": "^6.4.0",
- "lighthouse-logger": "^1.2.0",
+ "lighthouse-logger": "^1.3.0",
"lighthouse-stack-packs": "^1.5.0",
"lodash.clonedeep": "^4.5.0",
"lodash.get": "^4.4.2",
@@ -2525,71 +2288,40 @@
"robots-parser": "^2.0.1",
"semver": "^5.3.0",
"speedline-core": "^1.4.3",
- "third-party-web": "^0.12.2",
+ "third-party-web": "^0.12.4",
"update-notifier": "^4.1.0",
"ws": "^7.0.0",
"yargs": "^16.1.1",
"yargs-parser": "^20.2.4"
- },
- "dependencies": {
- "axe-core": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.2.3.tgz",
- "integrity": "sha512-pXnVMfJKSIWU2Ml4JHP7pZEPIrgBO1Fd3WGx+fPBsS+KRGhE4vxooD8XBGWbQOIVSZsVK7pUDBBkCicNu80yzQ==",
- "dev": true
- },
- "ws": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz",
- "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==",
- "dev": true
- }
}
},
"lighthouse-logger": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz",
- "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz",
+ "integrity": "sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==",
"dev": true,
"requires": {
- "debug": "^2.6.8",
- "marky": "^1.2.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- }
+ "debug": "^2.6.9",
+ "marky": "^1.2.2"
}
},
"lighthouse-stack-packs": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.5.0.tgz",
- "integrity": "sha512-ntVOqFsrrTQYrNf+W+sNE9GjddW+ab5QN0WrrCikjMFsUvEQ28CvT0SXcHPZXFtcsb1lMSuVaNCmEuj7oXtYGQ==",
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.8.2.tgz",
+ "integrity": "sha512-vlCUxxQAB8Nu6LQHqPpDRiMi06Du593/my/6JbMttQeEfJ7pf4OS8obSTh5xSOS80U/O7fq59Q8rQGAUxQatUQ==",
"dev": true
},
"listr2": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.10.0.tgz",
- "integrity": "sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw==",
- "dev": true,
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
"requires": {
"cli-truncate": "^2.1.0",
- "colorette": "^1.2.2",
+ "colorette": "^2.0.16",
"log-update": "^4.0.0",
"p-map": "^4.0.0",
- "rxjs": "^6.6.7",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.1",
"through": "^2.3.8",
"wrap-ansi": "^7.0.0"
}
@@ -2618,75 +2350,65 @@
}
}
},
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
"dev": true
},
"lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
"dev": true
},
"lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
- "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
"dev": true
},
"lodash.once": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
- "dev": true
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
},
"lodash.set": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz",
- "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=",
+ "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==",
"dev": true
},
"log-symbols": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
- "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
- "dev": true,
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"requires": {
- "chalk": "^4.0.0"
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
},
"dependencies": {
"chalk": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
- "dev": true,
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
- },
- "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
- },
- "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,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
@@ -2694,7 +2416,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
"integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
- "dev": true,
"requires": {
"ansi-escapes": "^4.3.0",
"cli-cursor": "^3.1.0",
@@ -2706,7 +2427,6 @@
"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",
@@ -2717,7 +2437,6 @@
"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,
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -2732,12 +2451,29 @@
"integrity": "sha512-bWoFbSGe6f1GvMGzj17LrwMX4FhDXDwZyH04ySVCPbtOJADcSRguZNKewoJ3Ful/MOxD/wRHvFPadk/kYZUbuQ==",
"dev": true
},
+ "loupe": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz",
+ "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==",
+ "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",
"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
"dev": true
},
+ "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==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
"make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -2756,9 +2492,9 @@
}
},
"marky": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.2.tgz",
- "integrity": "sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz",
+ "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==",
"dev": true
},
"md5": {
@@ -2781,32 +2517,23 @@
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
},
"metaviewport-parser": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz",
- "integrity": "sha1-U1w84cz2IjpQJf3cahw2UF9+fbE=",
- "dev": true
- },
- "mime": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
- "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
+ "integrity": "sha512-qL5NtY18LGs7lvZCkj3ep2H4Pes9rIiSLZRUyfDdvVw7pWFA0eLwmqaIxApD74RGvUrNEtk9e5Wt1rT+VlCvGw==",
"dev": true
},
"mime-db": {
"version": "1.47.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
- "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==",
- "dev": true
+ "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="
},
"mime-types": {
"version": "2.1.30",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
"integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
- "dev": true,
"requires": {
"mime-db": "1.47.0"
}
@@ -2814,8 +2541,7 @@
"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
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
},
"mimic-response": {
"version": "1.0.1",
@@ -2833,19 +2559,17 @@
}
},
"minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true,
+ "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"
}
},
"minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
- "dev": true
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
},
"mkdirp": {
"version": "0.5.5",
@@ -2856,11 +2580,20 @@
"minimist": "^1.2.5"
}
},
+ "mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
"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
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "mustache": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
+ "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ=="
},
"negotiator": {
"version": "0.6.2",
@@ -2868,17 +2601,25 @@
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
"dev": true
},
+ "node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
+ },
"node-fetch": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
- "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
- "dev": true
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz",
+ "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==",
+ "requires": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ }
},
"node.extend": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/node.extend/-/node.extend-2.0.2.tgz",
"integrity": "sha512-pDT4Dchl94/+kkgdwyS2PauDFjZG0Hk0IcHIB+LkW27HLDtdoeMxHTxZh39DYbPP8UflWXWj9JcdDozF+YDOpQ==",
- "dev": true,
"requires": {
"has": "^1.0.3",
"is": "^3.2.1"
@@ -2903,23 +2644,10 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
"requires": {
"path-key": "^3.0.0"
}
},
- "oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "dev": true
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- },
"omggif": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
@@ -2930,7 +2658,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
"requires": {
"wrappy": "1"
}
@@ -2939,7 +2666,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
"requires": {
"mimic-fn": "^2.1.0"
}
@@ -2956,7 +2682,7 @@
"is-wsl": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
"dev": true
}
}
@@ -2964,8 +2690,7 @@
"ospath": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz",
- "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=",
- "dev": true
+ "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA=="
},
"p-cancelable": {
"version": "1.1.0",
@@ -2973,88 +2698,66 @@
"integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
"dev": true
},
- "p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
- "dev": true
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
},
"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,
"requires": {
"aggregate-error": "^3.0.0"
}
},
"p-timeout": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
- "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
- "dev": true,
- "requires": {
- "p-finally": "^1.0.0"
- }
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz",
+ "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw=="
+ },
+ "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=="
},
"pa11y": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/pa11y/-/pa11y-5.3.1.tgz",
- "integrity": "sha512-hRxe9mYUqwODrlIXiTKUrlJX8zgrJZG84s0IrJnvvI8reO6n4RtiF20juTaGukjuHtH8p3tgFh+i2gPcRZSyUg==",
- "dev": true,
- "requires": {
- "commander": "~3.0.2",
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/pa11y/-/pa11y-6.2.3.tgz",
+ "integrity": "sha512-69JoUlfW2QVmrgQAm+17XBxIvmd1u0ImFBYIHPyjC61CzAkmxO3kkbqDVxIcl0OKLvAMYSMbvfCH8kMFE9xsbg==",
+ "requires": {
+ "axe-core": "~4.2.1",
+ "bfj": "~7.0.2",
+ "commander": "~8.0.0",
+ "envinfo": "~7.8.1",
+ "html_codesniffer": "~2.5.1",
+ "kleur": "~4.1.4",
+ "mustache": "~4.2.0",
"node.extend": "~2.0.2",
- "p-timeout": "~2.0.1",
- "pa11y-reporter-cli": "~1.0.1",
- "pa11y-reporter-csv": "~1.0.0",
- "pa11y-reporter-json": "~1.0.0",
- "pa11y-runner-axe": "~1.0.1",
- "pa11y-runner-htmlcs": "~1.2.1",
- "puppeteer": "~1.19.0",
- "semver": "~5.7.0"
- }
- },
- "pa11y-reporter-cli": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/pa11y-reporter-cli/-/pa11y-reporter-cli-1.0.1.tgz",
- "integrity": "sha512-k+XPl5pBU2R1J6iagGv/GpN/dP7z2cX9WXqO0ALpBwHlHN3ZSukcHCOhuLMmkOZNvufwsvobaF5mnaZxT70YyA==",
- "dev": true,
- "requires": {
- "chalk": "^2.1.0"
- }
- },
- "pa11y-reporter-csv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pa11y-reporter-csv/-/pa11y-reporter-csv-1.0.0.tgz",
- "integrity": "sha512-S2gFgbAvONBzAVsVbF8zsYabszrzj7SKhQxrEbw19zF0OFI8wCWn8dFywujYYkg674rmyjweSxSdD+kHTcx4qA==",
- "dev": true
- },
- "pa11y-reporter-json": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pa11y-reporter-json/-/pa11y-reporter-json-1.0.0.tgz",
- "integrity": "sha512-EdLrzh1hyZ8DudCSSrcakgtsHDiSsYNsWLSoEAo1JnFTIK8hYpD7vL+xgd0u+LXDxz9wLLFnckdubpklaRpl/w==",
- "dev": true,
- "requires": {
- "bfj": "^4.2.3"
- }
- },
- "pa11y-runner-axe": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pa11y-runner-axe/-/pa11y-runner-axe-1.0.2.tgz",
- "integrity": "sha512-HMw5kQZz16vS5Bhe067esgeuULNzFYP4ixOFAHxOurwGDptlyc2OqH6zfUuK4szB9tbgb5F23v3qz9hCbkGRpw==",
- "dev": true,
- "requires": {
- "axe-core": "^3.5.1"
- }
- },
- "pa11y-runner-htmlcs": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/pa11y-runner-htmlcs/-/pa11y-runner-htmlcs-1.2.1.tgz",
- "integrity": "sha512-flatSp6moEbqzny18b2IEoDXEWj6xJbJrszdBjUAPQBCN11QRW+SZ0U4uFnxNTLPpXs30N/a9IlH4vYiRr2nPg==",
- "dev": true,
- "requires": {
- "html_codesniffer": "~2.4.1"
+ "p-timeout": "~4.1.0",
+ "puppeteer": "~9.1.1",
+ "semver": "~7.3.5"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
}
},
"package-json": {
@@ -3108,7 +2811,7 @@
"parse-cache-control": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
- "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=",
+ "integrity": "sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==",
"dev": true
},
"parse-headers": {
@@ -3129,17 +2832,20 @@
"integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==",
"dev": true
},
+ "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=="
+ },
"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=",
- "dev": true
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"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
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
},
"pathval": {
"version": "1.1.1",
@@ -3150,14 +2856,12 @@
"pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
- "dev": true
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
},
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
- "dev": true
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
},
"phin": {
"version": "2.9.3",
@@ -3168,13 +2872,20 @@
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
+ },
+ "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==",
+ "requires": {
+ "find-up": "^4.0.0"
+ }
},
"prepend-http": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
"dev": true
},
"prettier": {
@@ -3186,8 +2897,7 @@
"pretty-bytes": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
- "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
- "dev": true
+ "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg=="
},
"process": {
"version": "0.11.10",
@@ -3195,23 +2905,15 @@
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
"dev": true
},
- "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==",
- "dev": true
- },
"progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
- "dev": true
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
},
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "dev": true
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"ps-list": {
"version": "7.2.0",
@@ -3220,16 +2922,14 @@
"dev": true
},
"psl": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
- "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
- "dev": true
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
},
"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,
"requires": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
@@ -3238,8 +2938,7 @@
"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
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"pupa": {
"version": "2.1.1",
@@ -3251,49 +2950,46 @@
}
},
"puppeteer": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.19.0.tgz",
- "integrity": "sha512-2S6E6ygpoqcECaagDbBopoSOPDv0pAZvTbnBgUY+6hq0/XDFDOLEMNlHF/SKJlzcaZ9ckiKjKDuueWI3FN/WXw==",
- "dev": true,
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-9.1.1.tgz",
+ "integrity": "sha512-W+nOulP2tYd/ZG99WuZC/I5ljjQQ7EUw/jQGcIb9eu8mDlZxNY2SgcJXTLG9h5gRvqA3uJOe4hZXYsd3EqioMw==",
"requires": {
"debug": "^4.1.0",
- "extract-zip": "^1.6.6",
- "https-proxy-agent": "^2.2.1",
- "mime": "^2.0.3",
+ "devtools-protocol": "0.0.869402",
+ "extract-zip": "^2.0.0",
+ "https-proxy-agent": "^5.0.0",
+ "node-fetch": "^2.6.1",
+ "pkg-dir": "^4.2.0",
"progress": "^2.0.1",
- "proxy-from-env": "^1.0.0",
- "rimraf": "^2.6.1",
- "ws": "^6.1.0"
+ "proxy-from-env": "^1.1.0",
+ "rimraf": "^3.0.2",
+ "tar-fs": "^2.0.0",
+ "unbzip2-stream": "^1.3.3",
+ "ws": "^7.2.3"
},
"dependencies": {
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
- "glob": "^7.1.3"
+ "ms": "2.1.2"
+ }
+ },
+ "node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "requires": {
+ "whatwg-url": "^5.0.0"
}
}
}
},
"qs": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
- "dev": true
- },
- "querystring": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
- "dev": true
- },
- "ramda": {
- "version": "0.27.1",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz",
- "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==",
- "dev": true
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
},
"raven": {
"version": "2.6.4",
@@ -3306,6 +3002,14 @@
"stack-trace": "0.0.10",
"timed-out": "4.0.1",
"uuid": "3.3.2"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true
+ }
}
},
"rc": {
@@ -3321,18 +3025,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==",
- "dev": true,
+ "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"
}
},
"regenerator-runtime": {
@@ -3342,12 +3041,12 @@
"dev": true
},
"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==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz",
+ "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==",
"dev": true,
"requires": {
- "rc": "^1.2.8"
+ "rc": "1.2.8"
}
},
"registry-url": {
@@ -3362,8 +3061,7 @@
"request-progress": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz",
- "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=",
- "dev": true,
+ "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==",
"requires": {
"throttleit": "^1.0.0"
}
@@ -3371,13 +3069,13 @@
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true
},
"responselike": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
"dev": true,
"requires": {
"lowercase-keys": "^1.0.0"
@@ -3387,47 +3085,47 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
"integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
"requires": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
}
},
+ "rfdc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA=="
+ },
"rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
"requires": {
"glob": "^7.1.3"
}
},
"robots-parser": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-2.3.0.tgz",
- "integrity": "sha512-RvuCITckrHM9k8DxCCU9rqWpuuKRfVX9iHG751dC3/EdERxp9gJATxYYdYOT3L0T+TAT4+27lENisk/VbHm47A==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-2.4.0.tgz",
+ "integrity": "sha512-oO8f2SI04dJk3pbj2KOMJ4G6QfPAgqcGmrYGmansIcpRewIPT2ljWEt5I+ip6EgiyaLo+RXkkUWw74M25HDkMA==",
"dev": true
},
"rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz",
+ "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==",
"requires": {
- "tslib": "^1.9.0"
+ "tslib": "^2.1.0"
}
},
"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
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sanitize-filename": {
"version": "1.6.3",
@@ -3471,7 +3169,6 @@
"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,
"requires": {
"shebang-regex": "^3.0.0"
}
@@ -3479,20 +3176,17 @@
"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
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
},
"signal-exit": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
- "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
- "dev": true
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
},
"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,
"requires": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -3500,19 +3194,25 @@
}
},
"socket.io": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz",
- "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.5.0.tgz",
+ "integrity": "sha512-gGunfS0od3VpwDBpGwVkzSZx6Aqo9uOcf1afJj2cKnKFAoyl16fvhpsUhmUFd4Ldbvl5JvRQed6eQw6oQp6n8w==",
"dev": true,
"requires": {
"debug": "~4.1.0",
- "engine.io": "~3.5.0",
+ "engine.io": "~3.6.0",
"has-binary2": "~1.0.2",
"socket.io-adapter": "~1.1.0",
- "socket.io-client": "2.4.0",
+ "socket.io-client": "2.5.0",
"socket.io-parser": "~3.4.0"
},
"dependencies": {
+ "cookie": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "dev": true
+ },
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@@ -3521,6 +3221,26 @@
"requires": {
"ms": "^2.1.1"
}
+ },
+ "engine.io": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.6.1.tgz",
+ "integrity": "sha512-dfs8EVg/i7QjFsXxn7cCRQ+Wai1G1TlEvHhdYEi80fxn5R1vZ2K661O6v/rezj1FP234SZ14r9CmJke99iYDGg==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.4",
+ "base64id": "2.0.0",
+ "cookie": "~0.4.1",
+ "debug": "~4.1.0",
+ "engine.io-parser": "~2.2.0",
+ "ws": "~7.4.2"
+ }
+ },
+ "ws": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+ "dev": true
}
}
},
@@ -3531,9 +3251,9 @@
"dev": true
},
"socket.io-client": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz",
- "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.5.0.tgz",
+ "integrity": "sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw==",
"dev": true,
"requires": {
"backo2": "1.0.2",
@@ -3561,19 +3281,19 @@
"isarray": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
- "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+ "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==",
"dev": true
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
},
"socket.io-parser": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz",
- "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.3.tgz",
+ "integrity": "sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg==",
"dev": true,
"requires": {
"component-emitter": "~1.3.0",
@@ -3584,9 +3304,9 @@
}
},
"socket.io-parser": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz",
- "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==",
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.2.tgz",
+ "integrity": "sha512-QFZBaZDNqZXeemwejc7D39jrq2eGK/qZuVDiMPKzZK1hLlNvjGilGt4ckfQZeVX4dGmuPzCytN9ZW1nQlEWjgA==",
"dev": true,
"requires": {
"component-emitter": "1.2.1",
@@ -3597,7 +3317,7 @@
"component-emitter": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==",
"dev": true
},
"debug": {
@@ -3612,7 +3332,7 @@
"isarray": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
- "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+ "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==",
"dev": true
}
}
@@ -3645,10 +3365,9 @@
}
},
"sshpk": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
- "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
- "dev": true,
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
+ "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
"requires": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
@@ -3664,14 +3383,13 @@
"stack-trace": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
- "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
+ "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==",
"dev": true
},
"string-width": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
"integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -3679,19 +3397,17 @@
}
},
"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,
+ "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": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
"requires": {
"ansi-regex": "^5.0.0"
}
@@ -3699,22 +3415,43 @@
"strip-final-newline": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
},
"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=",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
"dev": true
},
"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,
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"requires": {
- "has-flag": "^3.0.0"
+ "has-flag": "^4.0.0"
+ }
+ },
+ "tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "requires": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
}
},
"term-size": {
@@ -3724,27 +3461,25 @@
"dev": true
},
"third-party-web": {
- "version": "0.12.4",
- "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.12.4.tgz",
- "integrity": "sha512-SaJdgPjCus/5ftexuCk8wJnYwe/nW9ZNDcWZc/dq90SREN6PvFEUva+kgaPZfT8opLDHvjJVAG9mNVvMnHeVgw==",
+ "version": "0.12.7",
+ "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.12.7.tgz",
+ "integrity": "sha512-9d/OfjEOjyeOpnm4F9o0KSK6BI6ytvi9DINSB5h1+jdlCvQlhKpViMSxWpBN9WstdfDQ61BS6NxWqcPCuQCAJg==",
"dev": true
},
"throttleit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
- "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
- "dev": true
+ "integrity": "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g=="
},
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
- "dev": true
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
},
"timed-out": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
+ "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
"dev": true
},
"timm": {
@@ -3759,6 +3494,14 @@
"integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==",
"dev": true
},
+ "tmp": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
+ "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+ "requires": {
+ "rimraf": "^3.0.0"
+ }
+ },
"to-array": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
@@ -3775,12 +3518,16 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "dev": true,
"requires": {
"psl": "^1.1.28",
"punycode": "^2.1.1"
}
},
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
"truncate-utf8-bytes": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
@@ -3793,20 +3540,17 @@
"tryer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
- "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==",
- "dev": true
+ "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA=="
},
"tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "dev": true,
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"requires": {
"safe-buffer": "^5.0.1"
}
@@ -3814,8 +3558,7 @@
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "dev": true
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
},
"type-detect": {
"version": "4.0.8",
@@ -3826,14 +3569,7 @@
"type-fest": {
"version": "0.21.3",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "dev": true
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
},
"typedarray-to-buffer": {
"version": "3.1.5",
@@ -3844,6 +3580,15 @@
"is-typedarray": "^1.0.0"
}
},
+ "unbzip2-stream": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+ "requires": {
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
+ },
"unidiff": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/unidiff/-/unidiff-1.0.2.tgz",
@@ -3879,8 +3624,7 @@
"untildify": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
- "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
- "dev": true
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw=="
},
"update-notifier": {
"version": "4.1.3",
@@ -3901,66 +3645,12 @@
"pupa": "^2.0.1",
"semver-diff": "^3.1.1",
"xdg-basedir": "^4.0.0"
- },
- "dependencies": {
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "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
- },
- "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,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "url": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
- "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
- "dev": true,
- "requires": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
- },
- "dependencies": {
- "punycode": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
- "dev": true
- }
}
},
"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=",
+ "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
"dev": true,
"requires": {
"prepend-http": "^2.0.0"
@@ -3984,37 +3674,52 @@
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"uuid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
- "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
- "dev": true
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
+ "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg=="
},
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "dev": true,
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
"requires": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
}
},
+ "web-streams-polyfill": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
+ "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q=="
+ },
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
"whatwg-fetch": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
"integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==",
"dev": true
},
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
"requires": {
"isexe": "^2.0.0"
}
@@ -4032,7 +3737,6 @@
"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,
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -4042,8 +3746,7 @@
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"write-file-atomic": {
"version": "3.0.3",
@@ -4058,13 +3761,9 @@
}
},
"ws": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
- "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
- "dev": true,
- "requires": {
- "async-limiter": "~1.0.0"
- }
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q=="
},
"xdg-basedir": {
"version": "4.0.0",
@@ -4107,9 +3806,9 @@
"dev": true
},
"xmlhttprequest-ssl": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
- "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz",
+ "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==",
"dev": true
},
"xtend": {
@@ -4124,6 +3823,11 @@
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true
},
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"yargs": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
@@ -4149,7 +3853,6 @@
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
"integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
- "dev": true,
"requires": {
"buffer-crc32": "~0.2.3",
"fd-slicer": "~1.1.0"
@@ -4158,7 +3861,7 @@
"yeast": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
- "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
+ "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==",
"dev": true
}
}
diff --git a/it/package.json b/it/package.json
index d644487e..7691e3d7 100644
--- a/it/package.json
+++ b/it/package.json
@@ -11,10 +11,14 @@
"author": "",
"license": "ISC",
"devDependencies": {
- "chai": "^4.3.4",
- "cypress": "^7.7.0",
- "cypress-audit": "^1.0.0",
- "cypress-plugin-snapshots": "^1.4.4",
- "node-fetch": "^2.6.1"
+ "chai": "^4.3.7",
+ "cypress-audit": "^1.1.0",
+ "cypress-plugin-snapshots": "^1.4.4"
+ },
+ "dependencies": {
+ "@cypress-audit/pa11y": "^1.3.1",
+ "cypress": "^12.2.0",
+ "node-fetch": "^3.3.0",
+ "uuid": "^9.0.0"
}
}
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/sendemail/sendemail.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/sendemail/sendemail.jsp
index b63a58ab..715a30f7 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/sendemail/sendemail.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/sendemail/sendemail.jsp
@@ -21,12 +21,12 @@
<h3><fmt:message key="Send Main" /></h3>
<dl>
<dt><fmt:message key="From" /></dt>
- <dd>${properties.from}</dd>
+ <dd>${sling:encode(properties.from,'HTML')}</dd>
<dt><fmt:message key="To" /></dt>
- <dd>${properties.to}</dd>
+ <dd>${sling:encode(properties.to,'HTML')}</dd>
<dt><fmt:message key="Subject" /></dt>
- <dd>${properties.subject}</dd>
+ <dd>${sling:encode(properties.subject,'HTML')}</dd>
<dt><fmt:message key="Message" /></dt>
- <dd>${properties.message}</dd>
+ <dd>${sling:encode(properties.message,'HTML')}</dd>
</dl>
</c:if>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/updateprofile/updateprofile.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/updateprofile/updateprofile.jsp
index 14c0de02..e62e797a 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/updateprofile/updateprofile.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/updateprofile/updateprofile.jsp
@@ -21,6 +21,6 @@
<h3><fmt:message key="Update Profile" /></h3>
<dl>
<dt><fmt:message key="Subpath" /></dt>
- <dd>${properties.subpath}</dd>
+ <dd>${sling:encode(properties.subpath,'HTML')}</dd>
</dl>
</c:if>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/usergeneratedcontent/usergeneratedcontent.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/usergeneratedcontent/usergeneratedcontent.jsp
index becba49a..ced803b8 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/usergeneratedcontent/usergeneratedcontent.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/actions/usergeneratedcontent/usergeneratedcontent.jsp
@@ -21,26 +21,26 @@
<h3><fmt:message key="Create User Generated Content" /></h3>
<dl>
<dt><fmt:message key="Action" /></dt>
- <dd>${properties.approveAction}</dd>
+ <dd>${sling:encode(properties.approveAction,'HTML')}</dd>
<dt><fmt:message key="Additional Properties" /></dt>
<dd>
<c:if test="${not empty properties.additionalProperties}">
- ${fn:join(properties.additionalProperties,', ')}
+ ${sling:encode(fn:join(properties.additionalProperties,', '),'HTML')}
</c:if>
</dd>
<dt><fmt:message key="Bucket" /></dt>
- <dd>${properties.bucket}</dd>
+ <dd>${sling:encode(properties.bucket,'HTML')}</dd>
<dt><fmt:message key="Content Type" /></dt>
- <dd>${properties.contentType}</dd>
+ <dd>${sling:encode(properties.contentType,'HTML')}</dd>
<dt><fmt:message key="Name" /></dt>
- <dd>${properties.name}</dd>
+ <dd>${sling:encode(properties.name,'HTML')}</dd>
<dt><fmt:message key="Path Depth" /></dt>
- <dd>${properties.pathDepth}</dd>
+ <dd>${sling:encode(properties.pathDepth,'HTML')}</dd>
<dt><fmt:message key="Preview" /></dt>
- <dd>${properties.preview}</dd>
+ <dd>${sling:encode(properties.preview,'HTML')}</dd>
<dt><fmt:message key="Target Path" /></dt>
- <dd>${properties.targetPath}</dd>
+ <dd>${sling:encode(properties.targetPath,'HTML')}</dd>
<dt><fmt:message key="Wrap in Page?" /></dt>
- <dd>${properties.wrapPage}</dd>
+ <dd>${sling:encode(properties.wrapPage,'HTML')}</dd>
</dl>
</c:if>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/honeypot/honeypot.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/honeypot/honeypot.jsp
index a866eec6..50756b49 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/honeypot/honeypot.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/honeypot/honeypot.jsp
@@ -17,7 +17,7 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<div class="${properties.containerClass}">
- <label for="${properties.name}"><fmt:message key="Do not fill this out!" /></label>
- <textarea name="${properties.name}" id="${properties.name}" rows="1" cols="1"></textarea>
+<div class="${sling:encode(properties.containerClass,'HTML_ATTR')}">
+ <label for="${sling:encode(properties.name,'HTML_ATTR')}"><fmt:message key="Do not fill this out!" /></label>
+ <textarea name="${sling:encode(properties.name,'HTML_ATTR')}" id="${sling:encode(properties.name,'HTML_ATTR')}" rows="1" cols="1"></textarea>
</div>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/selection/edit.json b/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/selection/edit.json
index a3cfcfa6..0859ac04 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/selection/edit.json
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/selection/edit.json
@@ -1,4 +1,4 @@
- {
+{
"jcr:primaryType": "nt:unstructured",
"sling:resourceType": "sling-cms/components/editor/slingform",
"button": "Save",
@@ -53,7 +53,8 @@
"name": "tagRoot",
"basePath": "/etc/taxonomy",
"type": "sling:Taxonomy",
- "titleProperty": "jcr:title"
+ "titleProperty": "jcr:title",
+ "required": true
},
"required": {
"jcr:primaryType": "nt:unstructured",
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/selection/selection.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/selection/selection.jsp
index e565a4ca..aea093f6 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/selection/selection.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/selection/selection.jsp
@@ -19,12 +19,12 @@
<%@include file="/libs/sling-cms/global.jsp"%>
<c:if test="${not empty properties.tagRoot}">
<c:set var="children" value="${sling:listChildren(sling:getResource(resourceResolver,properties.tagRoot))}" />
- <div class="${formConfig.fieldGroupClass} ${properties.addClasses}">
+ <div class="${sling:encode(formConfig.fieldGroupClass,'HTML_ATTR')} ${sling:encode(properties.addClasses,'HTML_ATTR')}">
<c:if test="${not empty properties.label}">
- <label for="${properties.name}">
+ <label for="${sling:encode(properties.name,'HTML_ATTR')}">
<sling:encode value="${properties.label}" mode="HTML" />
<c:if test="${properties.required}">
- <span class="${formConfig.fieldRequiredClass}">
+ <span class="${sling:encode(formConfig.fieldRequiredClass,'HTML_ATTR')}">
*
</span>
</c:if>
@@ -33,7 +33,7 @@
<c:choose>
<c:when test="${properties.display == 'radioCheckbox'}">
<c:forEach var="tag" items="${children}">
- <div class="${formConfig.checkFieldClass}">
+ <div class="${sling:encode(formConfig.checkFieldClass,'HTML_ATTR')}">
<c:set var="selected" value="${false}" />
<c:choose>
<c:when test="${properties.multiple}">
@@ -47,15 +47,15 @@
<c:set var="selected" value="${true}" />
</c:when>
</c:choose>
- <input class="${formConfig.checkInputClass}" type="${properties.multiple ? 'checkbox' : 'radio'}" name="${properties.name}" id="${properties.name}-${tag.name}" value="${tag.name}" ${selected ? 'checked="checked"' : ''} ${properties.required ? 'required="required"' : ''} />
- <label class="${formConfig.checkLabelClass}" for="${properties.name}-${tag.name}">
+ <input class="${sling:encode(formConfig.checkInputClass,'HTML_ATTR')}" type="${properties.multiple ? 'checkbox' : 'radio'}" name="${sling:encode(properties.name,'HTML_ATTR')}" id="${sling:encode(properties.name,'HTML_ATTR')}-${sling:encode(tag.name,'HTML_ATTR')}" value="${sling:encode(tag.name,'HTML_ATTR')}" ${selected ? 'checked="checked"' : ''} ${properties.required ? 'required="required"' : ''} />
+ <label class="${sling:encode(formConfig.checkLabelClass,'HTML_ATTR')}" for="${sling:encode(properties.name,'HTML_ATTR')}-${sling:encode(tag.name,'HTML_ATTR')}">
<sling:encode value="${tag.valueMap['jcr:title']}" mode="HTML" />
</label>
</div>
</c:forEach>
</c:when>
<c:otherwise>
- <select id="${properties.name}" class="form-control" ${properties.multiple ? 'multiple="multiple"' : ''} ${properties.required ? 'required="required"' : ''} name="${properties.name}">
+ <select id="${sling:encode(properties.name,'HTML_ATTR')}" class="form-control" ${properties.multiple ? 'multiple="multiple"' : ''} ${properties.required ? 'required="required"' : ''} name="${sling:encode(properties.name,'HTML_ATTR')}">
<c:if test="${not empty properties.noSelection && !properties.muliple}">
<option value="">
<sling:encode value="${properties.noSelection}" mode="HTML" />
@@ -75,8 +75,8 @@
<c:set var="selected" value="${true}" />
</c:when>
</c:choose>
- <option value="${tag.name}" ${selected ? 'selected="selected"' : ''} >
- <sling:encode value="${tag.valueMap['jcr:title']}" mode="HTML" />
+ <option value="${sling:encode(tag.name,'HTML_ATTR')}" ${selected ? 'selected="selected"' : ''} >
+ <sling:encode value="${sling:encode(tag.valueMap['jcr:title'],'HTML_ATTR')}" mode="HTML" />
</option>
</c:forEach>
</select>
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/textarea/textarea.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/textarea/textarea.jsp
index e2ca9cfc..d86ede56 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/textarea/textarea.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/textarea/textarea.jsp
@@ -17,12 +17,12 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<div class="${formConfig.fieldGroupClass} ${properties.addClasses}">
+<div class="${sling:encode(formConfig.fieldGroupClass,'HTML_ATTR')} ${sling:encode(properties.addClasses,'HTML_ATTR')}">
<c:if test="${not empty properties.label}">
- <label for="${properties.name}">
+ <label for="${sling:encode(properties.name,'HTML_ATTR')}">
<sling:encode value="${properties.label}" mode="HTML" />
<c:if test="${properties.required}">
- <span class="${formConfig.fieldRequiredClass}">
+ <span class="${sling:encode(formConfig.fieldRequiredClass,'HTML_ATTR')}">
*
</span>
</c:if>
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/textfield/textfield.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/textfield/textfield.jsp
index 4adc29c3..26c2aac5 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/textfield/textfield.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/fields/textfield/textfield.jsp
@@ -17,19 +17,19 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<div class="${formConfig.fieldGroupClass} ${properties.addClasses}">
+<div class="${sling:encode(formConfig.fieldGroupClass,'HTML_ATTR')} ${sling:encode(properties.addClasses,'HTML_ATTR')}">
<c:if test="${not empty properties.label}">
- <label for="${properties.name}">
+ <label for="${sling:encode(properties.addClasses,'HTML_ATTR')}">
<sling:encode value="${properties.label}" mode="HTML" />
<c:if test="${properties.required}">
- <span class="${formConfig.fieldRequiredClass}">
+ <span class="${sling:encode(formConfig.fieldRequiredClass,'HTML_ATTR')}">
*
</span>
</c:if>
</label>
</c:if>
- <c:set var="placeholderStr" value="placeholder='${properties.placeholder}'" />
- <c:set var="patternStr" value="pattern='${properties.pattern}'" />
+ <c:set var="placeholderStr" value="placeholder='${sling:encode(properties.placeholder,'HTML_ATTR')}'" />
+ <c:set var="patternStr" value="pattern='${sling:encode(properties.pattern,'HTML_ATTR')}'" />
<c:choose>
<c:when test="${not empty formData[properties.name]}">
<c:set var="fieldValue" value="${formData[properties.name]}" />
@@ -43,7 +43,7 @@
</c:choose>
<input type="${sling:encode(properties.type,'HTML_ATTR')}" class="${sling:encode(formConfig.fieldClass,'HTML_ATTR')}" id="${sling:encode(properties.name,'HTML_ATTR')}" name="${sling:encode(properties.name,'HTML_ATTR')}" value="${sling:encode(fieldValue,'HTML_ATTR')}" ${not empty properties.pattern ? patternStr : ''} ${not empty properties.placeholder ? placeholderStr : ''} ${properties.required ? 'required="required"' : ''}
<c:forEach var="attr" items="${properties.additionalAttributes}">
- ${fn:split(attr,'\\=')[0]}="${fn:split(attr,'\\=')[1]}"
+ ${sling:encode(fn:split(attr,'\\=')[0],'HTML_ATTR')}="${sling:encode(fn:split(attr,'\\=')[1],'HTML_ATTR')}"
</c:forEach>
/>
</div>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/form/form.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/forms/form/form.jsp
index c388f353..f805cd9d 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/form/form.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/form/form.jsp
@@ -21,18 +21,18 @@
<c:set var="formData" value="${sling:adaptTo(slingRequest,'org.apache.sling.cms.reference.forms.FormRequest').formData}" scope="request" />
<form class="${formConfig.formClass}" action="${sling:encode(resource.path,'HTML_ATTR')}.allowpost.html" method="post" data-analytics-id="${sling:encode(properties.formId,'HTML_ATTR')}" enctype="multipart/form-data">
<c:if test="${param.message == 'success'}">
- <div class="${formConfig.alertClass}">
- ${properties.successMessage}
+ <div class="${sling:encode(formConfig.alertClass,'HTML_ATTR')}">
+ <sling:encode value="${properties.successMessage}" mode="HTML" />
</div>
</c:if>
<c:if test="${param.error == 'actions'}">
- <div class="${formConfig.alertClass}">
- ${properties.actionsErrorMessage}
+ <div class="${sling:encode(formConfig.alertClass,'HTML_ATTR')}">
+ <sling:encode value="${properties.actionsErrorMessage}" mode="HTML" />
</div>
</c:if>
<c:if test="${param.error == 'fields'}">
- <div class="${formConfig.alertClass}">
- ${properties.fieldsErrorMessage}
+ <div class="${sling:encode(formConfig.alertClass,'HTML_ATTR')}">
+ <sling:encode value="${properties.fieldsErrorMessage}" mode="HTML" />
</div>
</c:if>
@@ -57,6 +57,8 @@
<sling:include path="actions" resourceType="sling-cms/components/general/reloadcontainer" />
<c:set var="availableTypes" value="${oldAvailableTypes}" scope="request" />
- <button type="submit" class="${formConfig.submitClass}">${properties.submitText}</button>
+ <button type="submit" class="${sling:encode(formConfig.submitClass,'HTML_ATTR')}">
+ <sling:encode value="${properties.submitText}" mode="HTML" />
+ </button>
</form>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/login/login.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/forms/login/login.jsp
index 15d09573..663cf071 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/login/login.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/login/login.jsp
@@ -20,23 +20,23 @@
<sling:adaptTo adaptable="${resource}" adaptTo="org.apache.sling.cms.PageManager" var="pageManager" />
<sling:adaptTo adaptable="${resource}" adaptTo="org.apache.sling.cms.ComponentPolicyManager" var="componentPolicyMgr" />
<c:set var="formConfig" value="${componentPolicyMgr.componentPolicy.componentConfigs['reference/components/forms/form'].valueMap}" />
-<form class="${formConfig.formClass}" action="${pageManager.page.path}.allowpost.html/j_security_check" method="post" data-analytics-id="Login Form">
+<form class="${sling:encode(formConfig.formClass,'HTML_ATTR')}" action="${sling:encode(pageManager.page.path,'HTML_ATTR')}.allowpost.html/j_security_check" method="post" data-analytics-id="Login Form">
<c:if test="${not empty param.j_reason}">
<div class="${formConfig.alertClass}">
${sling:encode(properties.errorMessage,'HTML')}
</div>
</c:if>
- <div class="${formConfig.fieldGroupClass}">
- <label for="j_username" class="label">${sling:encode(properties.usernameLabel,'HTML')} <span class="${formConfig.fieldRequiredClass}">*</span></label>
- <input type="text" class="${formConfig.fieldClass}" required="required" name="j_username" />
+ <div class="${sling:encode(formConfig.fieldGroupClass,'HTML_ATTR')}">
+ <label for="j_username" class="label">${sling:encode(properties.usernameLabel,'HTML')} <span class="${sling:encode(formConfig.fieldRequiredClass,'HTML_ATTR')}">*</span></label>
+ <input type="text" class="${sling:encode(formConfig.fieldClass,'HTML')}" required="required" name="j_username" />
</div>
- <div class="${formConfig.fieldGroupClass}">
- <label for="j_password" class="label">${sling:encode(properties.passwordLabel,'HTML')} <span class="${formConfig.fieldRequiredClass}">*</span></label>
- <input type="password" class="${formConfig.fieldClass}" required="required" name="j_password" />
+ <div class="${sling:encode(formConfig.fieldGroupClass,'HTML_ATTR')}">
+ <label for="j_password" class="label">${sling:encode(properties.passwordLabel,'HTML')} <span class="${sling:encode(formConfig.fieldRequiredClass,'HTML_ATTR')}">*</span></label>
+ <input type="password" class="${sling:encode(formConfig.fieldClass,'HTML')}" required="required" name="j_password" />
</div>
<input type="hidden" name="resource" value="${sling:encode(properties.successPage,'HTML_ATTR')}.html" />
<input type="hidden" name="j_validate" value="true" />
- <div class="${formConfig.fieldGroupClass}">
- <button class="${formConfig.submitClass}">${sling:encode(properties.submitLabel,'HTML')}</button>
+ <div class="${sling:encode(formConfig.fieldGroupClass,'HTML_ATTR')}">
+ <button class="${sling:encode(formConfig.submitClass,'HTML_ATTR')}">${sling:encode(properties.submitLabel,'HTML')}</button>
</div>
</form>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/forms/providers/userprofile/userprofile.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/forms/providers/userprofile/userprofile.jsp
index 6319b6eb..3606fe80 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/forms/providers/userprofile/userprofile.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/forms/providers/userprofile/userprofile.jsp
@@ -21,6 +21,6 @@
<h3><fmt:message key="User Profile" /></h3>
<dl>
<dt><fmt:message key="Subpath" /></dt>
- <dd>${properties.subpath}</dd>
+ <dd>${sling:encode(properties.subpath)}</dd>
</dl>
</c:if>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/columncontrol/columncontrol.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/columncontrol/columncontrol.jsp
index 9595576d..de2bedca 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/columncontrol/columncontrol.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/columncontrol/columncontrol.jsp
@@ -21,7 +21,7 @@
<c:set var="configRsrc" value="${componentPolicyMgr.componentPolicy.componentConfigs['reference/components/general/columncontrol']}" />
<c:choose>
<c:when test="${properties.container == true}">
- <div class="${configRsrc.valueMap.containerclass}">
+ <div class="${sling:encode(configRsrc.valueMap.containerclass,'HTML_ATTR')}">
<div class="${configRsrc.valueMap.rowClass}">
<c:forEach var="col" items="${fn:split(properties.layout,',')}" varStatus="status">
<div class="${sling:encode(col,'HTML_ATTR')}">
@@ -32,7 +32,7 @@
</div>
</c:when>
<c:otherwise>
- <div class="${configRsrc.valueMap.rowClass}">
+ <div class="${sling:encode(configRsrc.valueMap.containerclass,'HTML_ATTR')}">
<c:forEach var="col" items="${fn:split(properties.layout,',')}" varStatus="status">
<div class="${sling:encode(col,'HTML_ATTR')}">
<sling:include path="col-${status.index}" resourceType="sling-cms/components/general/container" />
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/image/image.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/image/image.jsp
index 320152a0..eb0c73a8 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/image/image.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/image/image.jsp
@@ -28,5 +28,5 @@
</c:otherwise>
</c:choose>
</c:if>
- <img src="${sling:encode(properties.src,'HTML_ATTR')}${transform}" alt="${sling:encode(properties.alt,'HTML_ATTR')}" class="${sling:encode(properties.imageClass,'HTML_ATTR')}" />
+ <img src="${sling:encode(properties.src,'HTML_ATTR')}${sling:encode(transform,'HTML_ATTR')}" alt="${sling:encode(properties.alt,'HTML_ATTR')}" class="${sling:encode(properties.imageClass,'HTML_ATTR')}" />
</c:if>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/list/list.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/list/list.jsp
index 71a24f33..ced1b1f6 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/list/list.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/list/list.jsp
@@ -19,7 +19,7 @@
<%@include file="/libs/sling-cms/global.jsp"%>
<sling:call script="init.jsp" />
<c:if test="${list != null}">
- <${tag} class="list ${clazz}">
+ <${sling:encode(tag,'HTML')} class="list ${sling:encode(clazz,'HTML')}">
<c:forEach var="it" items="${list.items}">
<c:set var="item" value="${it}" scope="request" />
<sling:call script="item.jsp" />
@@ -27,5 +27,5 @@
<c:if test="${includePagination}">
<sling:call script="pagination.jsp" />
</c:if>
- </${tag}>
+ </${sling:encode(tag,'HTML')}>
</c:if>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/list/pagination.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/list/pagination.jsp
index 1081d591..dd8a674b 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/list/pagination.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/list/pagination.jsp
@@ -21,36 +21,36 @@
<ul class="${listConfig.valueMap.paginationClass}">
<c:choose>
<c:when test="${list.first == true}">
- <li class="${listConfig.valueMap.pageItemClass} disabled">
- <span class="${listConfig.valueMap.pageLinkClass}">
+ <li class="${sling:encode(listConfig.valueMap.pageItemClass,'HTML_ATTR')} disabled">
+ <span class="${sling:encode(listConfig.valueMap.pageLinkClass,'HTML_ATTR')}">
<
</span>
</li>
</c:when>
<c:otherwise>
- <li class="${listConfig.valueMap.pageItemClass}">
- <a class="${listConfig.valueMap.pageLinkClass}" href="?page=${list.currentPage - 1}"><</a>
+ <li class="${sling:encode(listConfig.valueMap.pageItemClass,'HTML_ATTR')}">
+ <a class="${sling:encode(listConfig.valueMap.pageLinkClass,'HTML_ATTR')}" href="?page=${list.currentPage - 1}"><</a>
</li>
</c:otherwise>
</c:choose>
<c:forEach var="page" items="${list.pages}">
- <li class="${listConfig.valueMap.pageItemClass} ${page == list.currentPage ? 'active' : ''}">
- <a href="?page=${page}" class="${listConfig.valueMap.pageLinkClass}">
+ <li class="${sling:encode(listConfig.valueMap.pageItemClass,'HTML_ATTR')} ${page == list.currentPage ? 'active' : ''}">
+ <a href="?page=${page}" class="${sling:encode(listConfig.valueMap.pageLinkClass,'HTML_ATTR')}">
${page}
</a>
</li>
</c:forEach>
<c:choose>
<c:when test="${list.last}">
- <li class="${listConfig.valueMap.pageItemClass} disabled">
- <span class="${listConfig.valueMap.pageLinkClass}">
+ <li class="${sling:encode(listConfig.valueMap.pageItemClass,'HTML_ATTR')} disabled">
+ <span class="${sling:encode(listConfig.valueMap.pageLinkClass,'HTML_ATTR')}">
>
</span>
</li>
</c:when>
<c:otherwise>
- <li class="${listConfig.valueMap.pageItemClass}">
- <a class="${listConfig.valueMap.pageLinkClass}" href="?page=${list.currentPage + 1}">></a>
+ <li class="${sling:encode(listConfig.valueMap.pageItemClass,'HTML_ATTR')}">
+ <a class="${sling:encode(listConfig.valueMap.pageLinkClass,'HTML_ATTR')}" href="?page=${list.currentPage + 1}">></a>
</li>
</c:otherwise>
</c:choose>
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/reference/types.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/reference/types.jsp
index bc70b0f8..6e0dcd61 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/reference/types.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/reference/types.jsp
@@ -38,7 +38,7 @@
<c:set var="type" value="${fn:substringAfter(component.path, '/apps/')}" />
</c:otherwise>
</c:choose>
- <option ${slingRequest.requestPathInfo.suffixResource.valueMap.overrideType == type ? 'selected' : ''} value="${type}">
+ <option ${slingRequest.requestPathInfo.suffixResource.valueMap.overrideType == type ? 'selected' : ''} value="${sling:encode(type,'HTML_ATTR')}">
${sling:encode(component.valueMap['jcr:title'],'HTML')}
</option>
</c:forEach>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/rss/rss.xml.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/rss/rss.xml.jsp
index 1f3c6a2f..df7afe00 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/rss/rss.xml.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/rss/rss.xml.jsp
@@ -23,11 +23,11 @@
<title>${sling:encode(site.title,'XML')}</title>
<description>${sling:encode(site.description,'XML')}</description>
<language>${site.locale.language}</language>
- <link>${site.url}</link>
+ <link>${sling:encode(site.url,'XML')}</link>
<image>
- <url>${site.url}${fn:replace(properties.image,site.path,'')}</url>
+ <url>${sling:encode(site.url,'XML')}${sling:encode(fn:replace(properties.image,site.path,''),'HTML')}</url>
<title>${sling:encode(site.title,'XML')}</title>
- <link>${site.url}</link>
+ <link>${sling:encode(site.url,'XML')}</link>
</image>
<atom:link href="${site.url}${fn:replace(resource.path,site.path,'')}.xml" rel="self" type="application/rss+xml" />
<c:set var="query" value="SELECT * FROM [sling:Page] WHERE ISDESCENDANTNODE([${site.path}/${properties.subpath}]) AND ([jcr:content/published]=true OR [jcr:content/sling:published]=true ) ORDER BY [jcr:content/publishDate] DESC" />
@@ -57,14 +57,14 @@
</c:choose>
<content:encoded>
<![CDATA[
- <img src="${thumbLink}" title="${sling:encode(post.title,'XML_ATTR')}" />
+ <img src="${sling:encode(thumbLink,'XML_ATTR')}" title="${sling:encode(post.title,'XML_ATTR')}" />
<c:choose>
<c:when test="${not empty post.properties.snippet}">
- <sling:encode value="${post.properties.snippet}" mode="XML" />
+ <sling:encode value="${post.properties.snippet}" mode="XML" />
</c:when>
<c:otherwise>
<c:set var="insight" value="${sling:adaptTo(postRsrc,'org.apache.sling.cms.insights.PageInsightRequest')}" />
- ${insight.pageBodyHtml}
+ <sling:encode value="${insight.pageBodyHtml}" mode="XML" />
</c:otherwise>
</c:choose>
]]>
@@ -74,8 +74,8 @@
</c:if>
<fmt:parseDate value="${post.properties.publishDate}" var="publishDate" pattern="yyyy-MM-dd" />
<pubDate><fmt:formatDate value="${publishDate}" pattern="EEE, dd MMM yyyy HH:mm:ss Z" /></pubDate>
- <link>${site.url}${post.publishedPath}</link>
- <guid isPermaLink="true">${site.url}${post.publishedPath}</guid>
+ <link>${sling:encode(site.url,'XML')}${sling:encode(post.publishedPath,'XML')}</link>
+ <guid isPermaLink="true">${sling:encode(site.url,'XML')}${sling:encode(post.publishedPath,'XML')}</guid>
</item>
</c:forEach>
</channel>
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/search/pagination.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/search/pagination.jsp
index d74ebfdb..72530a1d 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/search/pagination.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/search/pagination.jsp
@@ -19,39 +19,39 @@
<%@include file="/libs/sling-cms/global.jsp"%>
<c:set var="pageParam" value="${not empty param.q ? param.q : '1'}" />
<nav>
- <ul class="${searchConfig.paginationClass}">
+ <ul class="${sling:encode(searchConfig.paginationClass,'HTML_ATTR')}">
<c:choose>
<c:when test="${search.first == true}">
- <li class="${searchConfig.pageItemClass} disabled">
- <span class="${searchConfig.pageLinkClass}">
+ <li class="${sling:encode(searchConfig.pageItemClass,'HTML_ATTR')} disabled">
+ <span class="${sling:encode(searchConfig.pageLinkClass,'HTML_ATTR')}">
<
</span>
</li>
</c:when>
<c:otherwise>
- <li class="${searchConfig.pageItemClass}">
- <a class="${searchConfig.pageLinkClass}" href="?q=${sling:encode(search.term,'HTML_ATTR')}"><</a>
+ <li class="${sling:encode(searchConfig.pageItemClass,'HTML_ATTR')}">
+ <a class="${sling:encode(searchConfig.pageLinkClass,'HTML_ATTR')}" href="?q=${sling:encode(search.term,'HTML_ATTR')}"><</a>
</li>
</c:otherwise>
</c:choose>
<c:forEach var="page" items="${search.pages}">
- <li class="${searchConfig.pageItemClass}${page == pageParam ? ' active' : ''}">
- <a href="?q=${sling:encode(search.term,'HTML_ATTR')}&page=${page}" class="${searchConfig.pageLinkClass}${page == param.page ? ' active' : ''}">
+ <li class="${sling:encode(searchConfig.pageItemClass,'HTML_ATTR')}${page == pageParam ? ' active' : ''}">
+ <a href="?q=${sling:encode(search.term,'HTML_ATTR')}&page=${page}" class="${sling:encode(searchConfig.pageLinkClass,'HTML_ATTR')}${page == param.page ? ' active' : ''}">
${page}
</a>
</li>
</c:forEach>
<c:choose>
<c:when test="${search.last}">
- <li class="${searchConfig.pageItemClass} disabled">
- <span class="${searchConfig.pageLinkClass}">
+ <li class="${sling:encode(searchConfig.pageItemClass,'HTML_ATTR')} disabled">
+ <span class="${sling:encode(searchConfig.pageLinkClass,'HTML_ATTR')}">
>
</span>
</li>
</c:when>
<c:otherwise>
- <li class="${searchConfig.pageItemClass}">
- <a class="${searchConfig.pageLinkClass}" href="?q=${sling:encode(search.term,'HTML_ATTR')}&page=${search.currentPage + 1}">></a>
+ <li class="${sling:encode(searchConfig.pageItemClass,'HTML_ATTR')}">
+ <a class="${sling:encode(searchConfig.pageLinkClass,'HTML_ATTR')}" href="?q=${sling:encode(search.term,'HTML_ATTR')}&page=${search.currentPage + 1}">></a>
</li>
</c:otherwise>
</c:choose>
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/search/result.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/search/result.jsp
index eaa2c1a0..56888590 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/search/result.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/search/result.jsp
@@ -17,8 +17,8 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<div class="searchresult ${searchConfig.resultClass}">
- <div class="searchresult__header ${searchConfig.resultHeaderClass}">
+<div class="searchresult ${sling:encode(searchConfig.resultClass,'HTML_ATTR')}">
+ <div class="searchresult__header ${sling:encode(searchConfig.resultHeaderClass,'HTML_ATTR')}">
<a href="${sling:encode(result.path,'HTML_ATTR')}.html" class="searchresult__link">
<sling:encode value="${result.valueMap['jcr:content/jcr:title']}" mode="HTML" />
</a>
@@ -27,6 +27,6 @@
<sling:encode value="${result.valueMap['jcr:content/jcr:description']}" mode="HTML" />
</p>
<a href="${sling:encode(result.path,'HTML_ATTR')}.html" class="searchresult__link">
- ${fn:replace(result.path,sling:getAbsoluteParent(result,3).path,'')}.html
+ ${sling:encode(fn:replace(result.path,sling:getAbsoluteParent(result,3).path,''),'HTML')}.html
</a>
</div>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/search/search.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/search/search.jsp
index 8f501eab..08772724 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/search/search.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/search/search.jsp
@@ -21,7 +21,7 @@
<c:set var="searchConfig" value="${sling:adaptTo(resource,'org.apache.sling.cms.ComponentConfiguration').properties}" scope="request" />
<c:if test="${not empty properties.limit && not empty param.q}">
<c:set var="search" value="${sling:adaptTo(slingRequest, 'org.apache.sling.cms.reference.models.Search')}" scope="request" />
- <div class="search ${searchConfig.searchClass}">
+ <div class="search ${sling:encode(searchConfig.searchClass,'HTML_ATTR')}">
<div class="search__header">
<fmt:message key="Found {3} results for \"{0}\". Showing results {1} - {2}.">
<fmt:param value="${sling:encode(search.term,'HTML')}" />
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/searchform/searchform.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/searchform/searchform.jsp
index 2722d6b4..77d8cd2f 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/searchform/searchform.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/searchform/searchform.jsp
@@ -18,7 +18,7 @@
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
<c:set var="searchConfig" value="${sling:adaptTo(resource,'org.apache.sling.cms.ComponentConfiguration').properties}" scope="request" />
-<form action="${searchConfig.searchPage}.html" method="GET" class="${sling:encode(searchConfig.formClass,'HTML_ATTR')}">
+<form action="${sling:encode(searchConfig.searchPage,'HTML_ATTR')}.html" method="GET" class="${sling:encode(searchConfig.formClass,'HTML_ATTR')}">
<fmt:message key="Search" var="searchMessage" />
<input type="text" name="q" class="${sling:encode(searchConfig.inputClass,'HTML_ATTR')}" placeholder="${sling:encode(searchMessage,'HTML_ATTR')}" />
<input type="submit" class="${searchConfig.buttonClass}" value="${sling:encode(searchMessage,'HTML_ATTR')}" />
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/sitemap/sitemap.xml.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/sitemap/sitemap.xml.jsp
index 060059c8..09b55503 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/sitemap/sitemap.xml.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/sitemap/sitemap.xml.jsp
@@ -24,12 +24,12 @@
<c:forEach var="pageRsrc" items="${sling:findResources(resourceResolver,query,'JCR-SQL2')}">
<c:set var="page" value="${sling:adaptTo(pageRsrc,'org.apache.sling.cms.PageManager').page}" />
<url>
- <loc>${site.url}${fn:replace(page.publishedPath,'index.html','')}</loc>
+ <loc>${sling:encode(site.url,'XML')}${sling:encode(fn:replace(page.publishedPath,'index.html',''),'XML')}</loc>
<changefreq>monthly</changefreq>
</url>
</c:forEach>
<url>
- <loc>${site.url}/</loc>
+ <loc>${sling:encode(site.url,'XML')}/</loc>
<changefreq>always</changefreq>
</url>
</urlset>
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/suffixheader/suffixheader.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/suffixheader/suffixheader.jsp
index 5bbdadef..1a3c0cc4 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/suffixheader/suffixheader.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/suffixheader/suffixheader.jsp
@@ -25,6 +25,6 @@
<c:set var="value" value="${slingRequest.requestPathInfo.suffixResource.name}" />
</c:otherwise>
</c:choose>
-<${properties.tag}>
+<${sling:encode(properties.tag,'HTML')}>
<sling:encode value="${fn:replace(properties.subString,'{SUFFIX}',value)}" mode="HTML" />
-</${properties.tag}>
+</${sling:encode(properties.tag,'HTML')}>
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/general/tags/tags.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/general/tags/tags.jsp
index cd49bdd5..4d94f7b0 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/general/tags/tags.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/general/tags/tags.jsp
@@ -23,13 +23,13 @@
<c:set var="contentResource" value="${sling:getRelativeResource(pageMgr.page.resource,'jcr:content')}" />
<c:set var="listTag" value="${empty config.listTag ? 'div' : config.listTag}" />
<c:set var="itemTag" value="${empty config.listTag ? 'span' : config.itemTag}" />
-<${listTag} class="${sling:encode(config.listClass,'HTML_ATTR')}">
+<${sling:encode(listTag,'HTML')} class="${sling:encode(config.listClass,'HTML_ATTR')}">
<c:forEach var="tagPath" items="${contentResource.valueMap['sling:taxonomy']}">
<c:set var="tag" value="${sling:getResource(resourceResolver,tagPath)}" />
- <${itemTag} class="${config.itemClass}">
- <a href="${config.tagPage}.html${sling:encode(tag.path,'HTML_ATTR')}">
+ <${sling:encode(itemTag,'HTML')} class="${sling:encode(config.itemClass,'HTML_ATTR')}">
+ <a href="${sling:encode(config.tagPage,'HTML_ATTR')}.html${sling:encode(tag.path,'HTML_ATTR')}">
<sling:encode value="${tag.valueMap['jcr:title']}" default="${tag.name}" mode="HTML" />
</a>
- </${itemTag}>
+ </${sling:encode(itemTag,'HTML')}>
</c:forEach>
-</${listTag}>
\ No newline at end of file
+</${sling:encode(listTag,'HTML')}>
\ No newline at end of file
diff --git a/reference/src/main/resources/jcr_root/apps/reference/components/pages/base/head.jsp b/reference/src/main/resources/jcr_root/apps/reference/components/pages/base/head.jsp
index 0d2974a4..a77c7438 100644
--- a/reference/src/main/resources/jcr_root/apps/reference/components/pages/base/head.jsp
+++ b/reference/src/main/resources/jcr_root/apps/reference/components/pages/base/head.jsp
@@ -21,7 +21,7 @@
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <title>Apache Sling :: ${resource.valueMap['jcr:title']}</title>
+ <title>Apache Sling :: ${sling:encode(resource.valueMap['jcr:title'],'HTML')}</title>
<link rel="icon" href="/static/clientlibs/reference/img/favicon.ico"/>
<link rel="stylesheet" href="/static/clientlibs/reference/site.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/>
diff --git a/ui/bnd.bnd b/ui/bnd.bnd
index ba52afba..130f2a74 100644
--- a/ui/bnd.bnd
+++ b/ui/bnd.bnd
@@ -1,14 +1,14 @@
Sling-Nodetypes: SLING-INF/nodetypes/nodetypes.cnd
-Sling-Initial-Content: jcr_root;overwriteProperties:=true;overwrite:=false;ignoreImportProviders:=xml,\
- jcr_root/conf/global.json;overwrite:=true;ignoreImportProviders:=xml;path:=/conf/global,\
+Sling-Initial-Content: jcr_root/conf/global.json;overwrite:=true;ignoreImportProviders:=xml;path:=/conf/global,\
jcr_root/etc/taxonomy;overwrite:=false;path:=/etc/taxonomy,\
jcr_root/libs/sling-cms;overwrite:=true;path:=/libs/sling-cms,\
jcr_root/libs/sling/thumbnails;overwrite:=true;path:=/libs/sling/thumbnails,\
- jcr_root/oak:index/ntHierarchyNode.json;overwrite:=true;path:=/oak:index/ntHierarchyNode,\
- jcr_root/oak:index/slingComponent.json;overwrite:=true;path:=/oak:index/slingComponent,\
- jcr_root/oak:index/slingFile.json;overwrite:=true;path:=/oak:index/slingFile,\
- jcr_root/oak:index/slingPage.json;overwrite:=true;path:=/oak:index/slingPage,\
- jcr_root/oak:index/slingTaxonomy.json;overwrite:=true;path:=/oak:index/slingTaxonomy,\
+ jcr_root/_oak_index/ntHierarchyNode.json;overwrite:=true;path:=/oak:index/ntHierarchyNode,\
+ jcr_root/_oak_index/slingComponent.json;overwrite:=true;path:=/oak:index/slingComponent,\
+ jcr_root/_oak_index/slingeventJob.json;overwrite:=true;path:=/oak:index/slingeventJob,\
+ jcr_root/_oak_index/slingFile.json;overwrite:=true;path:=/oak:index/slingFile,\
+ jcr_root/_oak_index/slingPage.json;overwrite:=true;path:=/oak:index/slingPage,\
+ jcr_root/_oak_index/slingTaxonomy.json;overwrite:=true;path:=/oak:index/slingTaxonomy,\
jcr_root/static/clientlibs/sling-cms;overwrite:=true;path:=/static/clientlibs/sling-cms;ignoreImportProviders:=xml,\
jcr_root/static/clientlibs/sling-cms-editor;overwrite:=true;path:=/static/clientlibs/sling-cms-editor;ignoreImportProviders:=xml,\
jcr_root/static/sling-cms;overwrite:=true;path:=/static/sling-cms;ignoreImportProviders:=xml
diff --git a/ui/package-lock.json b/ui/package-lock.json
index 3faf089a..f3cf6ae0 100644
--- a/ui/package-lock.json
+++ b/ui/package-lock.json
@@ -4,6 +4,61 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "dev": true
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "dev": true
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "dev": true
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "acorn": {
+ "version": "8.8.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
+ "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "dev": true
+ },
"ansi-colors": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
@@ -315,9 +370,9 @@
"dev": true
},
"bulma": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.3.tgz",
- "integrity": "sha512-0d7GNW1PY4ud8TWxdNcP6Cc8Bu7MxcntD/RRLGWuiw/s0a9P+XlH/6QoOIrmbj6o8WWJzJYhytiu9nFjTszk1g=="
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.4.tgz",
+ "integrity": "sha512-86FlT5+1GrsgKbPLRRY7cGDg8fsJiP/jzTqXXVqiUZZ2aZT8uemEOHlU1CDU+TxklPEZ11HZNNWclRBBecP4CQ=="
},
"cache-base": {
"version": "1.0.1",
@@ -554,7 +609,7 @@
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"concat-stream": {
@@ -1482,9 +1537,9 @@
"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==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.1.tgz",
+ "integrity": "sha512-7WYV7Q5BTs0nlQm7tl92rDYYoyELLKHoDMBKhrxEoiV4mrfVdRz8hzPiYOzH7yWjzoVEamxRuAqhxL2PLRwZYQ==",
"dev": true
},
"inflight": {
@@ -2003,18 +2058,18 @@
}
},
"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==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"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.7",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
},
"mixin-deep": {
"version": "1.3.2",
@@ -2770,9 +2825,9 @@
}
},
"sass": {
- "version": "1.49.9",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz",
- "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==",
+ "version": "1.57.1",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz",
+ "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==",
"dev": true,
"requires": {
"chokidar": ">=3.0.0 <4.0.0",
@@ -2781,9 +2836,9 @@
},
"dependencies": {
"anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
@@ -3339,22 +3394,15 @@
}
},
"terser": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz",
- "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==",
+ "version": "5.16.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz",
+ "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==",
"dev": true,
"requires": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
"commander": "^2.20.0",
- "source-map": "~0.7.2",
"source-map-support": "~0.5.20"
- },
- "dependencies": {
- "source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
- "dev": true
- }
}
},
"through2": {
diff --git a/ui/package.json b/ui/package.json
index 58105452..c4126a51 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -3,7 +3,7 @@
"version": "1.0.0",
"description": "Scripts to power the front-end of Apache Sling's CMS example.",
"dependencies": {
- "bulma": "^0.9.1",
+ "bulma": "^0.9.4",
"handlebars": "^4.7.6",
"jam-icons": "^2.0.0",
"js-autocomplete": "^1.0.4",
@@ -21,7 +21,7 @@
"gulp-rename": "^2.0.0",
"gulp-sass": "^5.1.0",
"gulp-terser": "^2.1.0",
- "sass": "^1.49.9",
+ "sass": "^1.57.1",
"streamqueue": "^1.1.2"
},
"license": "Apache-2.0"
diff --git a/ui/src/main/frontend/scss/cms.scss b/ui/src/main/frontend/scss/cms.scss
index a77dde75..20dddc6e 100644
--- a/ui/src/main/frontend/scss/cms.scss
+++ b/ui/src/main/frontend/scss/cms.scss
@@ -67,7 +67,6 @@ fieldset {
min-inline-size: auto;
}
-
h1 {
font-size: 200%;
margin-bottom: 1em;
@@ -265,6 +264,9 @@ nav .level-right {
height: calc(100vh - 500px);
}
+#query-debug h2 {
+ color: #363636;
+}
.rte-form {
margin: 0.5em 0;
}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/rewriter/config/config.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/rewriter/config/config.jsp
index d632e141..b151632a 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/rewriter/config/config.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/rewriter/config/config.jsp
@@ -27,7 +27,9 @@
<dd>
<ul>
<c:forEach var="attribute" items="${resource.valueMap.attributes}">
- <sling:encode value="${attribute}" mode="HTML" />
+ <li>
+ <sling:encode value="${attribute}" mode="HTML" />
+ </li>
</c:forEach>
</ul>
</dd>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/sitesettings/config/config.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/sitesettings/config/config.jsp
index 119d2166..1b58b42d 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/sitesettings/config/config.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/sitesettings/config/config.jsp
@@ -21,6 +21,6 @@
<dl>
<dt><fmt:message key="Taxonomy Root" /></dt>
<dd>
- ${properties.taxonomyroot}
+ ${sling:encode(properties.taxonomyroot,'HTML')}
</dd>
</dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/basic/basic.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/basic/basic.jsp
index 623ed558..7ee1c03c 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/basic/basic.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/basic/basic.jsp
@@ -17,8 +17,8 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<a class="button" ${actionConfig.valueMap.new != false ? 'target="_blank"' : ''} href="${actionConfig.valueMap.prefix}${sling:encode(resource.path,'HTML_ATTR')}${actionConfig.valueMap.suffix}" title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}">
- <span class="jam jam-${actionConfig.valueMap.icon}">
+<a class="button" ${actionConfig.valueMap.new != false ? 'target="_blank"' : ''} href="${actionConfig.valueMap.prefix}${sling:encode(resource.path,'HTML_ATTR')}${sling:encode(actionConfig.valueMap.suffix,'HTML_ATTR')}" title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}">
+ <span class="jam jam-${sling:encode(actionConfig.valueMap.icon,'HTML_ATTR')}">
<span class="is-sr-only">
${sling:encode(actionConfig.valueMap.title,'HTML')}
</span>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/modal/modal.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/modal/modal.jsp
index fe3a01b9..ff3a888b 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/modal/modal.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/actions/modal/modal.jsp
@@ -17,8 +17,8 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<a class="button Fetch-Modal" data-title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}" data-path="${actionConfig.valueMap.ajaxPath != null ? actionConfig.valueMap.ajaxPath : '.Main-Content form'}" href="${actionConfig.valueMap.prefix}${sling:encode(resource.path,'HTML_ATTR')}${actionConfig.valueMap.suffix}" title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}">
- <span class="jam jam-${actionConfig.valueMap.icon}">
+<a class="button Fetch-Modal" data-title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}" data-path="${sling:encode((actionConfig.valueMap.ajaxPath != null ? actionConfig.valueMap.ajaxPath : '.Main-Content form'),'HTML_ATTR')}" href="${sling:encode(actionConfig.valueMap.prefix,'HTML_ATTR')}${sling:encode(resource.path,'HTML_ATTR')}${sling:encode(actionConfig.valueMap.suffix,'HTML_ATTR')}" title="${sling:encode(actionConfig.valueMap.title,'HTML_ATTR')}">
+ <span class="jam jam-${sling:encode(actionConfig.valueMap.icon,'HTML_ATTR')}">
<span class="is-sr-only">
${sling:encode(actionConfig.valueMap.title,'HTML')}
</span>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/localetitle/localetitle.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/localetitle/localetitle.jsp
index 0379752a..c6665f26 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/localetitle/localetitle.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/localetitle/localetitle.jsp
@@ -18,6 +18,6 @@
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
<sling:adaptTo adaptable="${resource}" adaptTo="org.apache.sling.cms.core.models.LocaleResource" var="localeResource" />
-<td title="${sling:encode(localeResource.locale.displayLanguage,'HTML_ATTR')} ${sling:encode(localeResource.locale.displayCountry,'HTML_ATTR')}" data-value="${localeResource.locale}">
+<td title="${sling:encode(localeResource.locale.displayLanguage,'HTML_ATTR')} ${sling:encode(localeResource.locale.displayCountry,'HTML_ATTR')}" data-value="${sling:encode(localeResource.locale,'HTML_ATTR')}">
${localeResource.locale.displayLanguage} ${localeResource.locale.displayCountry}
</td>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/text/text.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/text/text.jsp
index a1f91050..17ce52ba 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/text/text.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/columns/text/text.jsp
@@ -18,10 +18,10 @@
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
<c:set var="colValue" value="${resource.valueMap[colConfig.valueMap.property]}" />
-<td title="${sling:encode(colValue,'HTML_ATTR')}" data-property="${colConfig.valueMap.property}">
+<td title="${sling:encode(colValue,'HTML_ATTR')}" data-property="${sling:encode(colConfig.valueMap.property,'HTML_ATTR')}">
<c:choose>
<c:when test="${colConfig.valueMap.link}">
- <a href="${colConfig.valueMap.prefix}${sling:encode(resource.path,'HTML_ATTR')}">
+ <a href="${sling:encode(colConfig.valueMap.prefix,'HTML_ATTR')}${sling:encode(resource.path,'HTML_ATTR')}">
<sling:encode value="${colValue}" mode="HTML" />
</a>
</c:when>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp
index 06fb6c68..e046f1fc 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentactions/contentactions.jsp
@@ -23,7 +23,7 @@
<div class="buttons has-addons">
<c:forEach var="action" items="${sling:listChildren(sling:getRelativeResource(resource,'actions'))}" varStatus="status">
<a class="button Fetch-Modal" data-title="Add ${action.valueMap.label}" data-path=".Main-Content form" href="${action.valueMap.prefix}${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}${action.valueMap.suffix}">
- + <fmt:message key="${action.valueMap.label}" />
+ + <fmt:message key="${action.valueMap.label}" var="label" />${sling:encode(label,'HTML_ATTR')}
</a>
</c:forEach>
</div>
@@ -43,15 +43,15 @@
<c:set var="pagePath" value="${sling:adaptTo(resource,'org.apache.sling.cms.PageManager').page.path}" />
<form method="get" action="" class="layout-switch is-inline">
<div class="select">
- <select>
+ <select aria-label="Select View">
<c:choose>
<c:when test="${slingRequest.requestPathInfo.selectorString == 'table' || (profile.valueMap.defaultLayout == 'table' && slingRequest.requestPathInfo.selectorString != 'grid')}">
- <option value="/cms${fn:substring(pagePath,30,fn:length(pagePath))}.grid.html${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}"><fmt:message key="Grid" /></option>
- <option selected value="/cms${fn:substring(pagePath,30,fn:length(pagePath))}.table.html$${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}"><fmt:message key="Table" /></option>
+ <option value="/cms${sling:encode(fn:substring(pagePath,30,fn:length(pagePath)),'HTML_ATTR')}.grid.html${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}"><fmt:message key="Grid" /></option>
+ <option selected value="/cms${sling:encode(fn:substring(pagePath,30,fn:length(pagePath)),'HTML_ATTR')}.table.html$${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}"><fmt:message key="Table" /></option>
</c:when>
<c:otherwise>
- <option selected value="/cms${fn:substring(pagePath,30,fn:length(pagePath))}.grid.html${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}"><fmt:message key="Grid" /></option>
- <option value="/cms${fn:substring(pagePath,30,fn:length(pagePath))}.table.html${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}"><fmt:message key="Table" /></option>
+ <option selected value="/cms${sling:encode(fn:substring(pagePath,30,fn:length(pagePath)),'HTML_ATTR')}.grid.html${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}"><fmt:message key="Grid" /></option>
+ <option value="/cms${sling:encode(fn:substring(pagePath,30,fn:length(pagePath)),'HTML_ATTR')}.table.html${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}"><fmt:message key="Table" /></option>
</c:otherwise>
</c:choose>
</select>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
index ccc45c76..57a33a3d 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentbreadcrumb/contentbreadcrumb.jsp
@@ -22,7 +22,7 @@
<ul>
<c:forEach var="parent" items="${breadcrumb.parents}" varStatus="status">
<li>
- <a href="${parent.left}">
+ <a href="${sling:encode(parent.left,'HTML_ATTR')}">
<sling:encode value="${parent.right}" mode="HTML" />
</a>
</li>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp
index 4ff0f56c..d223dc22 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contentgrid/contentgrid.jsp
@@ -54,13 +54,13 @@
<figure class="image is-5by4">
<c:choose>
<c:when test="${child.resourceType == 'sling:File' || child.resourceType == 'nt:file'}">
- <img src="/cms/file/preview.html${sling:encode(child.path,'HTML_ATTR')}.transform/sling-cms-thumbnail.png" loading="lazy" alt="${child.name}">
+ <img src="/cms/file/preview.html${sling:encode(child.path,'HTML_ATTR')}.transform/sling-cms-thumbnail.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
</c:when>
<c:when test="${child.resourceType == 'sling:Site'}">
- <img src="/cms/file/preview.html${branding.gridIconsBase}/site.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
+ <img src="/cms/file/preview.html${sling:encode(branding.gridIconsBase,'HTML_ATTR')}/site.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
</c:when>
<c:when test="${child.resourceType == 'sling:OrderedFolder' || child.resourceType == 'sling:Folder' || child.resourceType == 'nt:folder'}">
- <img src="/cms/file/preview.html${branding.gridIconsBase}/folder.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
+ <img src="/cms/file/preview.html${sling:encode(branding.gridIconsBase,'HTML_ATTR')}/folder.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
</c:when>
<c:when test="${child.resourceType == 'sling:Page'}">
<c:set var="templateThumbnail" value="${child.valueMap['jcr:content/sling:template']}/thumbnail"/>
@@ -69,12 +69,12 @@
<img src="/cms/file/preview.html${templateThumbnail}.transform/sling-cms-thumbnail.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
</c:when>
<c:otherwise>
- <img src="/cms/file/preview.html${branding.gridIconsBase}/page.png" loading="lazy" alt="${child.name}">
+ <img src="/cms/file/preview.html${sling:encode(branding.gridIconsBase,'HTML_ATTR')}/page.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
- <img src="/cms/file/preview.html${branding.gridIconsBase}/file.png" loading="lazy" alt="${child.name}">
+ <img src="/cms/file/preview.html${sling:encode(branding.gridIconsBase,'HTML_ATTR')}/file.png" loading="lazy" alt="${sling:encode(child.name, 'HTML_ATTR')}">
</c:otherwise>
</c:choose>
</figure>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
index 64ee4cff..93fcda20 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/contenttable/contenttable.jsp
@@ -34,7 +34,7 @@
#
</th>
<c:forEach var="column" items="${sling:listChildren(sling:getRelativeResource(resource,'columns'))}">
- <th class="${column.name == 'actions' ? 'is-hidden' : '' }" data-attribute="${column.name}" scope="col">
+ <th class="${column.name == 'actions' ? 'is-hidden' : '' }" data-attribute="${sling:encode(column.name,'HTML_ATTR')}" scope="col">
<fmt:message key="${column.valueMap.title}" var="title" />
<sling:encode value="${title}" mode="HTML" />
</th>
@@ -56,7 +56,7 @@
<c:set var="configPath" value="columns/${column.name}"/>
<c:set var="colConfig" value="${sling:getRelativeResource(typeConfig,configPath)}" scope="request" />
<c:if test="${colConfig != null}">
- <sling:include path="${sling:encode(child.path,'HTML_ATTR')}" resourceType="${colConfig.valueMap['sling:resourceType']}" />
+ <sling:include path="${child.path}" resourceType="${colConfig.valueMap['sling:resourceType']}" />
</c:if>
</c:forEach>
</tr>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/getform/getform.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/getform/getform.jsp
index a10817d1..5dff6334 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/getform/getform.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/getform/getform.jsp
@@ -26,7 +26,7 @@
<c:set var="action" value="${page.path}.html" />
</c:otherwise>
</c:choose>
-<form method="get" action="${action}" class="get-form" data-target="${properties.target}" data-load="${properties.load}">
+<form method="get" action="${action}" class="get-form" data-target="${sling:encode(properties.target,'HTML_ATTR')}" data-load="${sling:encode(properties.load,'HTML_ATTR')}">
<fieldset class="form-wrapper field">
<input type="hidden" name="_charset_" value="utf-8" />
<sling:include path="fields" resourceType="sling-cms/components/general/container" />
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/i18ncontainer/i18ncontainer.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/i18ncontainer/i18ncontainer.jsp
index 120656a2..d4c138dc 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/i18ncontainer/i18ncontainer.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/i18ncontainer/i18ncontainer.jsp
@@ -45,7 +45,7 @@
</th>
<c:forEach var="language" items="${sling:listChildren(slingRequest.requestPathInfo.suffixResource)}">
<c:if test="${not empty language.valueMap['jcr:language']}">
- <th class="Column-${language.valueMap['jcr:language']}" scope="col">
+ <th id="Column-${language.valueMap['jcr:language']}" scope="col">
<sling:adaptTo adaptable="${language}" adaptTo="org.apache.sling.cms.core.models.LocaleResource" var="localeResource" />
<sling:encode value="${localeResource.locale.displayLanguage}" mode="HTML" /> <sling:encode value="${localeResource.locale.displayCountry}" mode="HTML" />
<br/>
@@ -64,19 +64,20 @@
</td>
<c:forEach var="language" items="${sling:listChildren(slingRequest.requestPathInfo.suffixResource)}">
<c:if test="${not empty language.valueMap['jcr:language']}">
- <td>
+ <td role="group" aria-labelledby="Column-${language.valueMap['jcr:language']}">
<c:set var="keyfound" value="false" />
<c:forEach var="entry" items="${sling:listChildren(language)}">
<c:if test="${entry.valueMap['sling:key'] == key}">
<c:set var="keyfound" value="true" />
- <input name="${language.name}/${entry.name}/sling:message" class="input" type="text" value="${sling:encode(entry.valueMap['sling:message'],'HTML_ATTR')}" />
- <input name="${language.name}/${entry.name}/sling:key" type="hidden" value="${key}" />
+ <input name="${sling:encode(language.name,'HTML_ATTR')}/${sling:encode(entry.name,'HTML_ATTR')}/sling:message" class="input" type="text" value="${sling:encode(entry.valueMap['sling:message'],'HTML_ATTR')}" />
+ <input name="${sling:encode(language.name,'HTML_ATTR')}/${sling:encode(entry.name,'HTML_ATTR')}/sling:key" type="hidden" value="${sling:encode(key,'HTML_ATTR')}" />
</c:if>
</c:forEach>
<c:if test="${keyfound == 'false'}">
- <input name="${language.name}/${key}/sling:message" class="input" type="text" value="" />
- <input name="${language.name}/${key}/sling:key" type="hidden" value="${key}" />
- <input name="${language.name}/${key}/jcr:primaryType" type="hidden" value="sling:MessageEntry" />
+
+ <input name="${sling:encode(language.name,'HTML_ATTR')}/${sling:encode(key,'HTML_ATTR')}/sling:message" class="input" type="text" value="" />
+ <input name="${sling:encode(language.name,'HTML_ATTR')}/${sling:encode(key,'HTML_ATTR')}/sling:key" type="hidden" value="${sling:encode(key,'HTML_ATTR')}" />
+ <input name="${sling:encode(language.name,'HTML_ATTR')}/${sling:encode(key,'HTML_ATTR')}/jcr:primaryType" type="hidden" value="sling:MessageEntry" />
</c:if>
</td>
</c:if>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/optimizefile/optimizefile.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/optimizefile/optimizefile.jsp
index 18c9b095..9442dbcf 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/optimizefile/optimizefile.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/optimizefile/optimizefile.jsp
@@ -56,7 +56,7 @@
<button type="submit" class="button is-primary">
<fmt:message key="Optimize" />
</button>
- <button type="button" class="button close">Cancel</button>
+ <button type="button" class="button close"><fmt:message key="Cancel" /></button>
</fieldset>
</form>
</c:when>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/pageeditbar/pageeditbar.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/pageeditbar/pageeditbar.jsp
index e6f6cfb0..6d34b60d 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/pageeditbar/pageeditbar.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/pageeditbar/pageeditbar.jsp
@@ -23,9 +23,10 @@
<div class="sling-cms-editor">
<div class="level has-background-grey">
<div class="level-left">
- <a href="/cms/start.html" target="_blank" title="${branding.appName}"
+ <a href="/cms/start.html" target="_blank" title="${sling:encode(branding.appName,'HTML_ATTR')}"
class="button"> <img
- src="${branding.logo}"
+ src="${sling:encode(branding.logo,'HTML_ATTR')}"
+ alt="Sling Logo"
class="sling-cms-logo" />
</a>
</div>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/querydebug/querydebug.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/querydebug/querydebug.jsp
index 4900a086..43b8d1de 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/querydebug/querydebug.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/querydebug/querydebug.jsp
@@ -51,9 +51,9 @@
</c:if>
</dl>
<br/><hr/><br/>
- <h2><fmt:message key="Popular Queries" /></h2>
+ <h2 id="popular-queries-header"><fmt:message key="Popular Queries" /></h2>
<div class="table-container">
- <table class="table">
+ <table class="table popular-queries-table" aria-labelledby="popular-queries-header">
<tr>
<th scope="col">
#
@@ -110,64 +110,66 @@
</c:forEach>
</table>
</div>
- <h2><fmt:message key="Slow Queries" /></h2>
- <div class="table-container">
- <table class="table">
- <tr>
- <th scope="col">
- #
- </th>
- <th scope="col">
- <fmt:message key="Query Statement" />
- </th>
- <th scope="col">
- <fmt:message key="Query Language" />
- </th>
- <th scope="col">
- <fmt:message key="Count" />
- </th>
- <th scope="col">
- <fmt:message key="Last Thread" />
- </th>
- <th scope="col">
- <fmt:message key="Duration" />
- </th>
- <th scope="col">
- <fmt:message key="Max Rows Scanned" />
- </th>
- <th scope="col">
- <fmt:message key="Rows Scanned / Read" />
- </th>
- </tr>
- <c:forEach var="query" items="${queryDebugger.slowQueries}">
+ <c:if test="${not empty queryDebugger.slowQueries}">
+ <h2 id="slow-queries-header"><fmt:message key="Slow Queries" /></h2>
+ <div class="table-container">
+ <table class="table popular-queries-table" aria-labelledby="slow-queries-header">
<tr>
- <td>
- ${query.position}
- </td>
- <td>
- ${sling:encode(query.statement,'HTML')}
- </td>
- <td>
- ${query.language}
- </td>
- <td>
- ${query.executeCount}
- </td>
- <td>
- ${sling:encode(query.lastThread,'HTML')}
- </td>
- <td>
- ${query.totalTimeMillis}
- </td>
- <td>
- ${query.maxRowsScanned}
- </td>
- <td>
- ${query.rowsScanned} / ${query.rowsRead}
- </td>
+ <th scope="col">
+ #
+ </th>
+ <th scope="col">
+ <fmt:message key="Query Statement" />
+ </th>
+ <th scope="col">
+ <fmt:message key="Query Language" />
+ </th>
+ <th scope="col">
+ <fmt:message key="Count" />
+ </th>
+ <th scope="col">
+ <fmt:message key="Last Thread" />
+ </th>
+ <th scope="col">
+ <fmt:message key="Duration" />
+ </th>
+ <th scope="col">
+ <fmt:message key="Max Rows Scanned" />
+ </th>
+ <th scope="col">
+ <fmt:message key="Rows Scanned / Read" />
+ </th>
</tr>
- </c:forEach>
- </table>
- </div>
+ <c:forEach var="query" items="${queryDebugger.slowQueries}">
+ <tr>
+ <td>
+ ${query.position}
+ </td>
+ <td>
+ ${sling:encode(query.statement,'HTML')}
+ </td>
+ <td>
+ ${query.language}
+ </td>
+ <td>
+ ${query.executeCount}
+ </td>
+ <td>
+ ${sling:encode(query.lastThread,'HTML')}
+ </td>
+ <td>
+ ${query.totalTimeMillis}
+ </td>
+ <td>
+ ${query.maxRowsScanned}
+ </td>
+ <td>
+ ${query.rowsScanned} / ${query.rowsRead}
+ </td>
+ </tr>
+ </c:forEach>
+ </table>
+ </div>
+ </c:if>
<br/><br/><br/>
</div>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/references/references.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/references/references.jsp
index f63b73db..f6a18f81 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/references/references.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/references/references.jsp
@@ -37,8 +37,8 @@
<span class="jam jam-document"></span>
</span>
</td>
- <td title="${ref.containingPage.path}">
- <a href="/cms/site/content.html${ref.containingPage.parent.path}?resource=${ref.containingPage.path}" target="_blank">
+ <td title="${sling:encode(ref.containingPage.path,'HTML_ATTR')}">
+ <a href="/cms/site/content.html${sling:encode(ref.containingPage.parent.path,'HTML_ATTR')}?resource=${sling:encode(ref.containingPage.path,'HTML_ATTR')}" target="_blank">
${sling:encode(ref.containingPage.title,'HTML')}
</a>
</td>
@@ -56,7 +56,7 @@
</span>
</td>
<td>
- ${ref.resource.path}
+ ${sling:encode(ref.resource.path,'HTML')}
</td>
<td>
</td>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/startcontent/search.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/startcontent/search.jsp
index efd663fd..3da468cb 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/startcontent/search.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/startcontent/search.jsp
@@ -22,7 +22,7 @@
<c:set var="results" value="${false}" />
<c:forEach var="item" items="${startContent.relatedContent}">
<c:set var="results" value="${true}" />
- <a class="panel-block" title="${sling:encode(item.path,'HTML_ATTR')}" href="/cms/site/content.html${item.parent.path}?resource=${sling:encode(item.path,'HTML_ATTR')}">
+ <a class="panel-block" title="${sling:encode(item.path,'HTML_ATTR')}" href="/cms/site/content.html${sling:encode(item.parent.path,'HTML_ATTR')}?resource=${sling:encode(item.path,'HTML_ATTR')}">
<span class="panel-icon">
<c:choose>
<c:when test="${item.resourceType == 'sling:Page'}">
@@ -38,7 +38,7 @@
<sling:encode value="${item.valueMap['jcr:content/jcr:title']}" default="${item.name}" mode="HTML" />
</c:when>
<c:otherwise>
- ${item.name}
+ <sling:encode value="${item.name}" mode="HTML" />
</c:otherwise>
</c:choose>
</a>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/startcontent/startcontent.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/startcontent/startcontent.jsp
index 97343c21..65a71d48 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/startcontent/startcontent.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/startcontent/startcontent.jsp
@@ -27,7 +27,7 @@
${recentContentMessage}
</p>
<c:forEach var="item" items="${startContent.recentContent}">
- <a class="panel-block" title="${sling:encode(item.path,'HTML_ATTR')}" href="/cms/site/content.html${item.parent.path}?resource=${sling:encode(item.path,'HTML_ATTR')}">
+ <a class="panel-block" title="${sling:encode(item.path,'HTML_ATTR')}" href="/cms/site/content.html${sling:encode(item.parent.path,'HTML_ATTR')}?resource=${sling:encode(item.path,'HTML_ATTR')}">
<span class="panel-icon">
<c:choose>
<c:when test="${item.resourceType == 'sling:Page'}">
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/staticnav/staticnav.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/staticnav/staticnav.jsp
index 77f88d6a..f247e356 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/staticnav/staticnav.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/staticnav/staticnav.jsp
@@ -18,7 +18,7 @@
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
<nav class="menu" aria-label="${sling:encode(properties.title,'HTML_ATTR')}">
- <a class="menu-label toggle-hidden toggle-${fn:replace(properties.title,' ','-')}" data-target="#${fn:replace(properties.title,' ','-')}-nav">
+ <a class="menu-label toggle-hidden toggle-${sling:encode(fn:replace(properties.title,' ','-'),'HTML_ATTR')}" data-target="#${sling:encode(fn:replace(properties.title,' ','-'),'HTML_ATTR')}-nav">
<fmt:message key="${properties.title}" var="title" />
<sling:encode value="${title}" mode="HTML" />
</a>
@@ -34,7 +34,7 @@
</c:forEach>
</c:forEach>
<sling:adaptTo var="currentUser" adaptable="${slingRequest.resourceResolver}" adaptTo="org.apache.sling.cms.AuthorizableWrapper" />
- <ul id="${fn:replace(properties.title,' ','-')}-nav" class="menu-list ${hidden}">
+ <ul id="${sling:encode(fn:replace(properties.title,' ','-'),'HTML_ATTR')}-nav" class="menu-list ${hidden}">
<c:forEach var="item" items="${sling:listChildren(sling:getRelativeResource(resource,'links'))}">
<c:set var="selected" value="" />
<c:if test="${fn:startsWith(slingRequest.requestURI,item.valueMap.link)}">
@@ -58,7 +58,7 @@
</c:if>
<c:if test="${enabled}">
<li>
- <a href="${item.valueMap.link}" class="${selected} nav-link-${fn:replace(item.valueMap.text,' ','-')}">
+ <a href="${sling:encode(item.valueMap.link,'HTML_ATTR')}" class="${selected} nav-link-${sling:encode(fn:replace(item.valueMap.text,' ','-'),'HTML_ATTR')}">
<fmt:message key="${item.valueMap.text}" var="text" />
<sling:encode value="${text}" mode="HTML" />
</a>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/suffixswitch/suffixswitch.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/suffixswitch/suffixswitch.jsp
index d0977bd2..837c3aa6 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/suffixswitch/suffixswitch.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/suffixswitch/suffixswitch.jsp
@@ -30,7 +30,7 @@
</label>
<div class="field has-addons">
<div class="control is-expanded">
- <input class="input pathfield" type="text" name="suffix" id="suffix" required="required" data-type="${properties.type}" data-base="${properties.base}" autocomplete="off" />
+ <input class="input pathfield" type="text" name="suffix" id="suffix" required="required" data-type="${sling:encode(properties.type,'HTML_ATTR')}" data-base="${sling:encode(properties.base,'HTML_ATTR')}" autocomplete="off" />
</div>
<div class="control">
<fmt:message key="Search" var="searchMessage" />
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp
index a5c464ea..531aaeb7 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/tilecard/tilecard.jsp
@@ -23,7 +23,7 @@
<div class="card is-linked" title="${sling:encode(properties.title,'HTML_ATTR')}" data-value="${sling:encode(resource.path,'HTML_ATTR')}">
<div class="card-image">
<figure class="image is-5by4">
- <img src="/cms/file/preview.html${branding.gridIconsBase}${sling:encode(properties.icon,'HTML_ATTR')}" loading="lazy" alt="${sling:encode(title,'HTML_ATTR')}">
+ <img src="/cms/file/preview.html${sling:encode(branding.gridIconsBase,'HTML_ATTR')}${sling:encode(properties.icon,'HTML_ATTR')}" loading="lazy" alt="${sling:encode(title,'HTML_ATTR')}">
</figure>
</div>
<footer class="card-footer">
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/versionmanager/versionmanager.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/versionmanager/versionmanager.jsp
index c57862b4..51b554f7 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/versionmanager/versionmanager.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/cms/versionmanager/versionmanager.jsp
@@ -67,19 +67,19 @@
<c:forEach var="version" items="${sling:adaptTo(slingRequest.requestPathInfo.suffixResource,'org.apache.sling.cms.core.models.VersionInfo').versions}" varStatus="status">
<tr>
<td>
- ${version.name}
+ ${sling:encode(version.name, 'HTML')}
</td>
<td>
<fmt:formatDate value="${version.created.time}" type="both" dateStyle="long" timeStyle="long" />
</td>
<td>
<c:forEach var="successor" items="${version.successors}">
- ${successor.name}<br/>
+ ${sling:encode(successor.name,'HTML')}<br/>
</c:forEach>
</td>
<td>
<c:forEach var="predecessor" items="${version.predecessors}">
- ${predecessor.name}<br/>
+ ${sling:encode(predecessor.name,'HTML')}<br/>
</c:forEach>
</td>
<td>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/auth/members/options.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/auth/members/options.jsp
index 2541bef8..14011f9f 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/auth/members/options.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/auth/members/options.jsp
@@ -17,7 +17,7 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<datalist id="labelfield-${fn:replace(resource.name,':','-')}">
+<datalist id="labelfield-${sling:encode(fn:replace(resource.name,':','-'),'HTML_ATTR')}">
<c:set var="query" value="SELECT * FROM [rep:Authorizable] WHERE ISDESCENDANTNODE([/home]) ORDER BY [rep:principalName]" />
<c:forEach var="auth" items="${sling:findResources(resourceResolver,query,'JCR-SQL2')}">
<option value="${sling:encode(auth.path,'HTML_ATTR')}">${sling:encode(auth.valueMap['rep:principalName'],'HTML')}</option>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/auth/membership/options.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/auth/membership/options.jsp
index 3a709b35..6b5d7843 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/auth/membership/options.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/auth/membership/options.jsp
@@ -17,7 +17,7 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<datalist id="labelfield-${fn:replace(resource.name,':','-')}">
+<datalist id="labelfield-${sling:encode(fn:replace(resource.name,':','-'),'HTML_ATTR')}">
<c:set var="query" value="SELECT * FROM [rep:Group] WHERE ISDESCENDANTNODE([/home/groups]) ORDER BY [rep:principalName]" />
<c:forEach var="group" items="${sling:findResources(resourceResolver,query,'JCR-SQL2')}">
<option value="${sling:encode(group.path,'HTML_ATTR')}">${sling:encode(group.valueMap['rep:principalName'],'HTML')}</option>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/base/base.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/base/base.jsp
index 5fd0c719..a2248964 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/base/base.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/base/base.jsp
@@ -55,7 +55,7 @@
</c:forEach>
<div class="field" data-events="${events}" data-path="${sling:encode(resource.path,'HTML_ATTR')}">
<c:if test="${not empty properties.label}">
- <label class="label" for="${properties.name}">
+ <label class="label" for="${sling:encode(properties.name,'HTML_ATTR')}">
<fmt:message key="${properties.label}" var="label" />
<sling:encode value="${label}" mode="HTML" />
<c:if test="${properties.required}"><span class="has-text-danger">*</span></c:if>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/combobox/options.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/combobox/options.jsp
index 81610ff8..6e73e52a 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/combobox/options.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/combobox/options.jsp
@@ -17,7 +17,7 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<datalist id="labelfield-${fn:replace(resource.name,':','-')}">
+<datalist id="labelfield-${sling:encode(fn:replace(resource.name,':','-'),'HTML_ATTR')}">
<c:choose>
<c:when test="${not empty properties.options}">
<c:forEach var="option" items="${properties.options}">
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/combobox/values.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/combobox/values.jsp
index 2f71992f..eb4f3d6d 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/combobox/values.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/combobox/values.jsp
@@ -19,7 +19,7 @@
<%@include file="/libs/sling-cms/global.jsp"%>
<c:forEach var="item" items="${value}">
<a class="tag labelfield__item" title="${item}">
- <input type="hidden" name="${properties.name}" value="${item}" />
+ <input type="hidden" name="${sling:encode(properties.name,'HTML_ATTR')}" value="${sling:encode(item,'HTML_ATTR')}" />
<span class="labelfield__title">
${sling:encode(item,'HTML')}
</span>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/labelfield/field.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/labelfield/field.jsp
index 3c4ddd1b..40f814cf 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/labelfield/field.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/labelfield/field.jsp
@@ -32,7 +32,7 @@
</fieldset>
<div class="labelfield__field field has-addons">
<div class="control is-expanded">
- <input class="input" type="text" ${required} ${disabled} id="${sling:encode(properties.name,'HTML_ATTR')}" list="labelfield-${fn:replace(resource.name,':','-')}" autocomplete="off" />
+ <input class="input" type="text" ${required} ${disabled} id="${sling:encode(properties.name,'HTML_ATTR')}" list="labelfield-${sling:encode(fn:replace(resource.name,':','-'),'HTML_ATTR')}" autocomplete="off" />
</div>
<div class="control">
<button class="labelfield__add button">
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/path/path.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/path/path.jsp
index ffb0f06f..88913db2 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/path/path.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/path/path.jsp
@@ -49,7 +49,7 @@
</c:otherwise>
</c:choose>
<c:if test="${not empty properties.label}">
- <label class="label" for="${properties.name}">
+ <label class="label" for="${sling:encode(properties.name,'HTML_ATTR')}">
<fmt:message key="${properties.label}" var="label" />
<sling:encode value="${label}" mode="HTML" />
<c:if test="${properties.required}"><span class="has-text-danger">*</span></c:if>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/references/references.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/references/references.jsp
index ac54986b..07e308da 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/references/references.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/references/references.jsp
@@ -19,14 +19,14 @@
<%@include file="/libs/sling-cms/global.jsp"%>
<c:if test="${slingRequest.requestPathInfo.suffix != null}">
<sling:getResource path="${slingRequest.requestPathInfo.suffix}" var="editedResource" />
- <c:set var="editProperties" value="${sling:adaptTo(editedResource,'org.apache.sling.api.resource.ValueMap')}" scope="request"/>
+ <c:set var="editProperties" value="${sling:adaptTo(editedResource,'org.apache.sling.api.x.ValueMap')}" scope="request"/>
</c:if>
<sling:adaptTo var="references" adaptable="${slingRequest.requestPathInfo.suffixResource}" adaptTo="org.apache.sling.cms.References" />
<c:if test="${fn:length(references.references) gt 0}">
<div class="field ${properties.toggle ? 'is-hidden toggle-value' : ''}" data-toggle-source=":operation" data-toggle-value="move">
<div class="field">
<label class="checkbox">
- <input type="checkbox" name="${properties.name}" value="true" />
+ <input type="checkbox" name="${sling:encode(properties.name,'HTML_ATTR')}" value="true" />
<fmt:message key="${properties.label}" var="label" />
<sling:encode value="${label}" mode="HTML" />
</label>
@@ -50,8 +50,8 @@
<span class="jam jam-document"></span>
</span>
</td>
- <td title="${ref.containingPage.path}">
- <a href="/cms/site/content.html${ref.containingPage.parent.path}" target="_blank">
+ <td title="${sling:encode(ref.containingPage.path,'HTML_ATTR')}">
+ <a href="/cms/site/content.html${sling:encode(ref.containingPage.parent.path,'HTML_ATTR')}" target="_blank">
${sling:encode(ref.containingPage.title,'HTML')}
</a>
</td>
@@ -69,7 +69,7 @@
</span>
</td>
<td>
- ${ref.resource.path}
+ ${sling:encode(ref.resource.path,'HTML')}
</td>
<td>
</td>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/repeating/field.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/repeating/field.jsp
index bc0edb26..673fd161 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/repeating/field.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/repeating/field.jsp
@@ -21,7 +21,7 @@
<fieldset disabled="disabled" class="repeating__template is-hidden">
<div class="repeating__item field has-addons">
<div class="control is-expanded">
- <input type="${properties.type}" value="" class="input" name="${sling:encode(properties.name,'HTML_ATTR')}" ${required} ${disabled} />
+ <input type="${sling:encode(properties.type,'HTML_ATTR')}" value="" class="input" name="${sling:encode(properties.name,'HTML_ATTR')}" ${required} ${disabled} />
</div>
<div class="control">
<button class="repeating__remove button">
@@ -52,7 +52,8 @@
</div>
</c:forEach>
</div>
- <button type="button" class="repeating__add button" name="${properties.name}">
+ <fmt:message key="Add" var="addMsg" />
+ <button type="button" class="repeating__add button" aria-label="${addMsg}" name="${sling:encode(properties.name,'HTML_ATTR')}">
<span class="jam jam-plus"></span>
</button>
</div>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/resourceparam/resourceparam.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/resourceparam/resourceparam.jsp
index 340f6808..ff9499ef 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/resourceparam/resourceparam.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/resourceparam/resourceparam.jsp
@@ -17,4 +17,4 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<input type="hidden" name="${properties.name}" value="${sling:getResource(resourceResolver, param[properties.param]).path}" />
\ No newline at end of file
+<input type="hidden" name="${sling:encode(properties.name,'HTML_ATTR')}" value="${sling:encode(sling:getResource(resourceResolver, param[properties.param]).path,'HTML_ATTR')}" />
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/richtext/toolbar/button/button.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/richtext/toolbar/button/button.jsp
index cca710f3..88d6bc70 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/richtext/toolbar/button/button.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/richtext/toolbar/button/button.jsp
@@ -19,10 +19,10 @@
<%@include file="/libs/sling-cms/global.jsp"%>
<c:choose>
<c:when test="${not empty properties.value}">
- <a class="button is-small" data-wysihtml-command="${properties.command}" data-wysihtml-command-value="${properties.value}">
+ <a class="button is-small" data-wysihtml-command="${sling:encode(properties.command,'HTML_ATTR')}" data-wysihtml-command-value="${sling:encode(properties.value,'HTML_ATTR')}">
<c:choose>
<c:when test="${not empty properties.icon}">
- <em class="jam jam-${properties.icon} icon"></em>
+ <em class="jam jam-${sling:encode(properties.icon,'HTML_ATTR')} icon"></em>
</c:when>
<c:otherwise>
<fmt:message key="${properties.text}" var="text" />
@@ -32,10 +32,10 @@
</a>
</c:when>
<c:otherwise>
- <a class="button is-small" data-wysihtml-command="${properties.command}">
+ <a class="button is-small" data-wysihtml-command="${sling:encode(properties.command,'HTML_ATTR')}">
<c:choose>
<c:when test="${not empty properties.icon}">
- <em class="jam jam-${properties.icon} icon"></em>
+ <em class="jam jam-${sling:encode(properties.icon,'HTML_ATTR')} icon"></em>
</c:when>
<c:otherwise>
<fmt:message key="${properties.text}" var="text" />
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/taxonomy/options.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/taxonomy/options.jsp
index ac756b1a..bdaa2cbb 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/taxonomy/options.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/taxonomy/options.jsp
@@ -18,9 +18,9 @@
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
<sling:getCAConfigResource resource="${slingRequest.requestPathInfo.suffixResource}" bucket="site" name="settings" var="sitesettings" />
-<datalist id="labelfield-${fn:replace(resource.name,':','-')}">
+<datalist id="labelfield-${sling:encode(fn:replace(resource.name,':','-'),'HTML_ATTR')}">
<c:set var="query" value="SELECT * FROM [sling:Taxonomy] WHERE ISDESCENDANTNODE([${not empty properties.basePath ? properties.basePath : sitesettings.valueMap.taxonomyroot}])" />
<c:forEach var="taxonomy" items="${sling:findResources(resourceResolver,query,'JCR-SQL2')}">
- <option value="${sling:encode(taxonomy.path,'HTML_ATTR')}">${taxonomy.valueMap['jcr:title']}</option>
+ <option value="${sling:encode(taxonomy.path,'HTML_ATTR')}">${sling:encode(taxonomy.valueMap['jcr:title'],'HTML')}</option>
</c:forEach>
</datalist>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/text/field.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/text/field.jsp
index df44659f..e888786f 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/text/field.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/text/field.jsp
@@ -17,4 +17,4 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<input type="${not empty properties.type ? properties.type : 'text'}" class="input" id="${properties.name}" name="${properties.name}" value="${sling:encode(value,'HTML_ATTR')}" ${required} ${disabled} />
\ No newline at end of file
+<input type="${sling:encode(not empty properties.type ? properties.type : 'text','HTML_ATTR')}" class="input" id="${sling:encode(properties.name,'HTML_ATTR')}" name="${sling:encode(properties.name,'HTML_ATTR')}" value="${sling:encode(value,'HTML_ATTR')}" ${required} ${disabled} />
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/well/well.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/well/well.jsp
index 6fc55ba1..65c58d7b 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/well/well.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/fields/well/well.jsp
@@ -17,11 +17,11 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<fmt:message key="${properties.title}" var="title" />
+<fmt:message key="${sling:encode(properties.title,'HTML_ATTR')}" var="title" />
<div class="card field">
<c:choose>
<c:when test="${properties.collapse}">
- <header class="card-header toggle-hidden" data-target="#${resource.name}">
+ <header class="card-header toggle-hidden" data-target="#${sling:encode(resource.name,'HTML_ATTR')}">
<p class="card-header-title">
<sling:encode value="${title}" mode="HTML" />
</p>
@@ -31,7 +31,7 @@
</span>
</a>
</header>
- <div class="card-content is-hidden" id="${resource.name}">
+ <div class="card-content is-hidden" id="${sling:encode(resource.name,'HTML_ATTR')}">
<sling:include path="content" resourceType="sling-cms/components/general/container" />
</div>
</c:when>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/componentConfigOptions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/componentConfigOptions.jsp
index 63af915e..f38de3f0 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/componentConfigOptions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/componentConfigOptions.jsp
@@ -28,6 +28,6 @@
<c:set var="rt" value="${fn:substringAfter(sling:encode(component.path,'HTML_ATTR'),'/libs/')}" />
</c:otherwise>
</c:choose>
- <option value="${rt}" ${rt == editProperties.type ? 'selected' : ''} data-config="${sling:encode(component.path,'HTML_ATTR')}/config.html"><sling:encode value="${component.valueMap['jcr:title']}" mode="HTML" /></option>
+ <option value="${sling:encode(rt,'HTML_ATTR')}" ${rt == editProperties.type ? 'selected' : ''} data-config="${sling:encode(component.path,'HTML_ATTR')}/config.html"><sling:encode value="${component.valueMap['jcr:title']}" mode="HTML" /></option>
</c:if>
</c:forEach>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/configResourceTypeOptions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/configResourceTypeOptions.jsp
index ebdbb75a..24495a13 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/configResourceTypeOptions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/configResourceTypeOptions.jsp
@@ -22,10 +22,10 @@
<c:forEach var="component" items="${sling:findResources(resourceResolver,query,'JCR-SQL2')}">
<c:choose>
<c:when test="${fn:startsWith(component.path,'/apps/')}">
- <option value="${fn:substringAfter(component.path,'/apps/')}"><sling:encode value="${component.valueMap['jcr:title']}" mode="HTML" /></option>
+ <option value="${sling:encode(fn:substringAfter(component.path,'/apps/'),'HTML_ATTR')}"><sling:encode value="${component.valueMap['jcr:title']}" mode="HTML" /></option>
</c:when>
<c:otherwise>
- <option value="${fn:substringAfter(component.path,'/libs/')}"><sling:encode value="${component.valueMap['jcr:title']}" mode="HTML" /></option>
+ <option value="${sling:encode(fn:substringAfter(component.path,'/libs/'),'HTML_ATTR')}"><sling:encode value="${component.valueMap['jcr:title']}" mode="HTML" /></option>
</c:otherwise>
</c:choose>
</c:forEach>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/localeOptions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/localeOptions.jsp
index 8e813cc6..f0ae8ec8 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/localeOptions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/localeOptions.jsp
@@ -20,8 +20,8 @@
<option value="">Select Locale</option>
<c:forEach var="locale" items="${sling:adaptTo(slingRequest,'org.apache.sling.cms.core.models.LocaleList').locales}">
<c:if test="${not empty locale.language}">
- <option value="${locale}" ${locale == editProperties[properties.name] ? 'selected' : ''}>
- ${locale.displayLanguage} ${locale.displayCountry} (${locale})
+ <option value="${sling:encode(locale,'HTML_ATTR')}" ${locale == editProperties[properties.name] ? 'selected' : ''}>
+ ${sling:encode(locale.displayLanguage,'HTML')} ${sling:encode(locale.displayCountry,'HTML')} (${sling:encode(locale,'HTML')})
</option>
</c:if>
</c:forEach>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/pageTemplateOptions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/pageTemplateOptions.jsp
index 10aea488..8f312921 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/pageTemplateOptions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/pageTemplateOptions.jsp
@@ -17,10 +17,10 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<option value="">Select Page Type</option>
+<option value=""><fmt:message key="Select Page Type" /></option>
<sling:adaptTo var="templateMgr" adaptable="${slingRequest.requestPathInfo.suffixResource}" adaptTo="org.apache.sling.cms.PageTemplateManager" />
<c:forEach var="template" items="${templateMgr.availableTemplates}">
- <option value="${template.resource.path}">
+ <option value="${sling:encode(template.resource.path,'HTML_ATTR')}">
<sling:encode value="${template.title}" mode="HTML" />
</option>
</c:forEach>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/resourceTypeOptions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/resourceTypeOptions.jsp
index bf1b7edb..4e355eab 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/resourceTypeOptions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/scripts/resourceTypeOptions.jsp
@@ -24,10 +24,10 @@
<c:forEach var="component" items="${sling:findResources(resourceResolver,query,'JCR-SQL2')}">
<c:choose>
<c:when test="${fn:startsWith(component.path,'/apps/')}">
- <option value="${fn:substringAfter(component.path,'/apps/')}"><sling:encode value="${component.valueMap['jcr:title']}" mode="HTML" /></option>
+ <option value="${sling:encode(fn:substringAfter(component.path,'/apps/'),'HTML_ATTR')}"><sling:encode value="${component.valueMap['jcr:title']}" mode="HTML" /></option>
</c:when>
<c:otherwise>
- <option value="${fn:substringAfter(component.path,'/libs/')}"><sling:encode value="${component.valueMap['jcr:title']}" mode="HTML" /></option>
+ <option value="${sling:encode(fn:substringAfter(component.path,'/libs/'),'HTML_ATTR')}"><sling:encode value="${component.valueMap['jcr:title']}" mode="HTML" /></option>
</c:otherwise>
</c:choose>
</c:forEach>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/slingform/slingform.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/slingform/slingform.jsp
index 4d9c97e1..7e1619aa 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/slingform/slingform.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/editor/slingform/slingform.jsp
@@ -23,9 +23,9 @@
</c:if>
<form method="post"
action="${sling:encode(slingRequest.requestPathInfo.suffix,'HTML_ATTR')}${sling:encode(properties.actionSuffix,'HTML_ATTR')}"
- enctype="${encoding}" class="Form-Ajax"
+ enctype="${sling:encode(encoding,'HTML_ATTR')}" class="Form-Ajax"
data-add-date="${properties.addDate != false}"
- data-callback="${properties.callback}">
+ data-callback="${sling:encode(properties.callback,'HTML_ATTR')}">
<div class="form-wrapper pt-4 field">
<input type="hidden" name="_charset_" value="utf-8" />
<sling:include path="fields" resourceType="sling-cms/components/general/container" />
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/general/container/container.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/general/container/container.jsp
index 13e6c59b..c2d08916 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/general/container/container.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/general/container/container.jsp
@@ -39,7 +39,7 @@
<div class="level has-background-light has-text-black-ter">
<div class="level-left">
<div class="level-item">
- <a href="/cms/editor/add.html${sling:encode(resource.path,'HTML_ATTR')}?availableTypes=${availableTypes}" class="button action-button is-small" data-sling-cms-action="add" data-sling-cms-path="${sling:encode(resource.path,'HTML_ATTR')}" data-sling-cms-available-types="${availableTypes}" title="${addComponentsMessage}">
+ <a href="/cms/editor/add.html${sling:encode(resource.path,'HTML_ATTR')}?availableTypes=${sling:encode(availableTypes,'HTML_ATTR')}" class="button action-button is-small" data-sling-cms-action="add" data-sling-cms-path="${sling:encode(resource.path,'HTML_ATTR')}" data-sling-cms-available-types="${sling:encode(availableTypes,'HTML_ATTR')}" title="${addComponentsMessage}">
+
</a>
</div>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/general/textelement/textelement.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/general/textelement/textelement.jsp
index a1be1ca0..f55f9972 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/general/textelement/textelement.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/general/textelement/textelement.jsp
@@ -27,13 +27,13 @@
</c:choose>
<c:choose>
<c:when test="${not empty properties.href}">
- <${properties.level}>
+ <${sling:encode(properties.level,'HTML')}>
<a href="${sling:encode(properties.href,'HTML_ATTR')}">
<sling:encode value="${text}" mode="HTML" />
</a>
- </${properties.level}>
+ </${sling:encode(properties.level,'HTML')}>
</c:when>
<c:otherwise>
- <${properties.level}><sling:encode value="${text}" mode="HTML" /></${properties.level}>
+ <${sling:encode(properties.level,'HTML')}><sling:encode value="${text}" mode="HTML" /></${sling:encode(properties.level,'HTML')}>
</c:otherwise>
</c:choose>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/insights/insight/insight.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/insights/insight/insight.jsp
index c19ebc03..e7d37845 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/insights/insight/insight.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/insights/insight/insight.jsp
@@ -17,18 +17,18 @@
* under the License.
*/ --%>
<%@include file="/libs/sling-cms/global.jsp"%>
-<article class="message ${insight.primaryMessage.styleClass}">
- <div class="message-header toggle-hidden" data-target="#${insight.provider.id}-body">
+<article class="message ${sling:encode(insight.primaryMessage.styleClass,'HTML_ATTR')}">
+ <div class="message-header toggle-hidden" data-target="#${sling:encode(insight.provider.id,'HTML_ATTR')}-body">
<p>
<sling:encode value="${insight.provider.title}" mode="HTML" />
<c:if test="${insight.scored}">
- <span class="score" data-score="${insight.score}">
+ <span class="score" data-score="${sling:encode(insight.score,'HTML_ATTR')}">
<fmt:formatNumber type="percent" maxFractionDigits="2" value="${insight.score}" />
</span>
</c:if>
</p>
<c:if test="${not empty insight.moreDetailsLink}">
- <a class="button ${insight.primaryMessage.styleClass}" href="${insight.moreDetailsLink}" target="_blank">
+ <a class="button ${sling:encode(insight.primaryMessage.styleClass,'HTML_ATTR')}" href="${sling:encode(insight.moreDetailsLink,'HTML_ATTR')}" target="_blank">
<em class="jam jam-info icon"></em>
</a>
</c:if>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/jobOptions.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/jobOptions.jsp
index b57c21ad..e638c820 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/jobOptions.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/jobOptions.jsp
@@ -20,7 +20,8 @@
<option value=""><fmt:message key="Select Job" /></option>
<sling:adaptTo var="jobManager" adaptable="${slingRequest}" adaptTo="org.apache.sling.cms.CMSJobManager" />
<c:forEach var="job" items="${jobManager.availableJobs}">
- <option value="${job.configurationPath}">
- <fmt:message key="${job.titleKey}" />
+ <option value="${sling:encode(job.configurationPath,'HTML_ATTR')}">
+ <fmt:message key="${job.titleKey}" var="title" />
+ <sling:encode value="${title}" mode="HTML" />
</option>
</c:forEach>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/list/list.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/list/list.jsp
index 34d53484..1843b3d9 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/list/list.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/list/list.jsp
@@ -50,10 +50,10 @@
${count}
</td>
<td>
- <a href="/cms/jobs/view.html/${job.id}">
+ <a href="/cms/jobs/view.html/${sling:encode(job.id,'HTML_ATTR')}">
<fmt:message key="${job.properties._titleKey}" />
</a><br/>
- <small>${job.topic}</small>
+ <small>${sling:encode(job.topic,'HTML')}</small>
</td>
<td>
<fmt:formatDate value="${job.created.time}" type="both" dateStyle="long" timeStyle="long" />
@@ -69,7 +69,7 @@
</td>
<td class="is-sr-only cell-actions">
<fmt:message key="Remove Job" var="removeJobMessage" />
- <a class="button Fetch-Modal" data-title="${removeJobMessage}" data-path=".Main-Content form" href="/cms/jobs/delete.html/bin/cms/removejob?id=${job.id}" title="${removeJobMessage}">
+ <a class="button Fetch-Modal" data-title="${removeJobMessage}" data-path=".Main-Content form" href="/cms/jobs/delete.html/bin/cms/removejob?id=${sling:encode(job.id,'HTML_ATTR')}" title="${removeJobMessage}">
<span class="jam jam-trash">
</span>
</a>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/view/view.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/view/view.jsp
index 8a6c5056..9fe57dac 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/view/view.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/jobs/view/view.jsp
@@ -28,7 +28,8 @@
</li>
<li class="is-active">
<a href="#">
- <fmt:message key="${job.properties._titleKey}" />
+ <fmt:message key="${job.properties._titleKey}" var="title" />
+ <sling:encode value="title" mode="HTML" />
</a>
</li>
</ul>
@@ -37,7 +38,7 @@
<div class="scroll-container">
<dl>
<dt><fmt:message key="State" /></dt>
- <dd>${job.jobState}</dd>
+ <dd>${sling:encode(job.jobState,'HTML')}</dd>
<c:if test="${not empty job.resultMessage}">
<dt><fmt:message key="Result Message" /></dt>
<dd>${sling:encode(job.resultMessage,'HTML')}</dd>
@@ -53,7 +54,7 @@
<c:if test="${job.progressStepCount > 0}">
<dt><fmt:message key="Progress" /></dt>
<dd>
- ${job.finishedProgressStep} / ${job.progressStepCount}
+ ${sling:encode(job.finishedProgressStep,'HTML')} / ${sling:encode(job.progressStepCount,'HTML')}
</dd>
</c:if>
<c:if test="${job.progressLog != null && fn:length(job.progressLog) > 0}">
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/head.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/head.jsp
index bdb3bc61..84f60145 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/head.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/head.jsp
@@ -21,17 +21,17 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
- <title><fmt:message key="${properties['jcr:title']}" /> :: ${branding.appName}</title>
- <link href="${branding.css}" rel="stylesheet" />
- <link rel="apple-touch-icon" sizes="180x180" href="${branding.appleTouchIcon}" />
- <link rel="icon" type="image/png" sizes="32x32" href="${branding.favicon32}" />
- <link rel="icon" type="image/png" sizes="16x16" href="${branding.favicon16}" />
- <link rel="shortcut icon" href="${branding.favicon}" />
- <meta name="apple-mobile-web-app-title" content="${branding.appName}" />
- <meta name="application-name" content="${branding.appName}" />
- <link rel="mask-icon" href="${branding.appleMaskIcon}" color="${branding.tileColor}" />
- <meta name="msapplication-TileColor" content="${branding.tileColor}" />
- <meta name="theme-color" content="${branding.tileColor}" />
- <meta name="msapplication-config" content="${branding.browserConfig}">
- <link rel="manifest" href="${branding.webManifest }">
+ <title><fmt:message key="${properties['jcr:title']}" var="title" />${sling:encode(title,'HTML')} :: ${sling:encode(branding.appName,'HTML')}</title>
+ <link href="${sling:encode(branding.css, 'HTML_ATTR')}" rel="stylesheet" />
+ <link rel="apple-touch-icon" sizes="180x180" href="${sling:encode(branding.appleTouchIcon, 'HTML_ATTR')}" />
+ <link rel="icon" type="image/png" sizes="32x32" href="${sling:encode(branding.favicon32, 'HTML_ATTR')}" />
+ <link rel="icon" type="image/png" sizes="16x16" href="${sling:encode(branding.favicon16, 'HTML_ATTR')}" />
+ <link rel="shortcut icon" href="${sling:encode(branding.favicon, 'HTML_ATTR')}" />
+ <meta name="apple-mobile-web-app-title" content="${sling:encode(branding.appName,'HTML_ATTR')}" />
+ <meta name="application-name" content="${sling:encode(branding.appName,'HTML_ATTR')}" />
+ <link rel="mask-icon" href="${sling:encode(branding.appleMaskIcon, 'HTML_ATTR')}" color="${branding.tileColor}" />
+ <meta name="msapplication-TileColor" content="${sling:encode(branding.tileColor, 'HTML_ATTR')}" />
+ <meta name="theme-color" content="${sling:encode(branding.tileColor, 'HTML_ATTR')}" />
+ <meta name="msapplication-config" content="${sling:encode(branding.browserConfig, 'HTML_ATTR')}">
+ <link rel="manifest" href="${sling:encode(branding.webManifest, 'HTML_ATTR')}">
</head>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp
index a8dc538b..3aa5e870 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/base/nav.jsp
@@ -19,8 +19,8 @@
<%@include file="/libs/sling-cms/global.jsp"%>
<nav class="navbar has-background-light" role="navigation" aria-label="main mavigation">
<div class="navbar-brand">
- <a class="navbar-item" href="${branding.logoLink}">
- <img src="${branding.logo}" width="100" alt="${branding.appName}"/>
+ <a class="navbar-item" href="${sling:encode(branding.logoLink,'HTML_ATTR')}">
+ <img src="${sling:encode(branding.logo,'HTML_ATTR')}" width="100" alt="${sling:encode(branding.appName,'HTML_ATTR')}"/>
</a>
<fmt:message key="Home" var="homeMessage" />
<a href="/cms/start.html" class="navbar-item" title="${homeMessage}">
@@ -60,7 +60,7 @@
</em>
<fmt:message key="My Transformations" />
</a>
- <a class="navbar-item" href="${branding.helpLink}" target="_blank" rel="noopener noreferrer">
+ <a class="navbar-item" href="${sling:encode(branding.helpLink,'HTML_ATTR')}" target="_blank" rel="noopener noreferrer">
<em class="jam jam-help">
<span class="is-sr-only">Help</span>
</em>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/error/body.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/error/body.jsp
index 15ff0673..5ad557f9 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/error/body.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/error/body.jsp
@@ -25,7 +25,7 @@
<main class="columns is-centered is-vcentered" style="min-height: calc(100vh - 85px)">
<div class="column is-two-thirds-tablet is-half-desktop is-one-third-widescreen">
<div class="box mt-6">
- <img src="${branding.logo}" width="100" alt="${branding.appName}" class="pb-3">
+ <img src="${sling:encode(branding.logo,'HTML_ATTR')}" width="100" alt="${sling:encode(branding.appName,'HTML_ATTR')}" class="pb-3">
<sling:call script="content.jsp" />
</div>
</div>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/error/nav.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/error/nav.jsp
index e590b869..a79e934d 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/error/nav.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/pages/error/nav.jsp
@@ -20,7 +20,7 @@
<nav class="navbar has-background-light" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="http://sling.apache.org" >
- <img src="${branding.logo}" width="100" alt="${branding.appName}"/>
+ <img src="${sling:encode(branding.logo,'HTML_ATTR')}" width="100" alt="${sling:encode(branding.appName,'HTML_ATTR')}"/>
</a>
<a href="/cms/start.html" class="navbar-item" title="CMS Home"><span class="icon"><em class="jam jam-home-f"></em></span></a>
</div>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/agent/agent.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/agent/agent.jsp
index 93a5cc2e..bddf0629 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/agent/agent.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/agent/agent.jsp
@@ -70,7 +70,7 @@
<a class="button" href="/system/console/configMgr/${agentCfg['service.pid']}"><fmt:message key="Edit" /></a>
</div>
<div class="level-item">
- <form method="post" action="/libs/sling/distribution/services/agents/${agent.name}" class="mb-0" target="_blank">
+ <form method="post" action="/libs/sling/distribution/services/agents/${sling:encode(agent.name,'HTML_ATTR')}" class="mb-0" target="_blank">
<input type="hidden" name="action" value="TEST" />
<button class="button" type="submit"><fmt:message key="Test" /></button>
</form>
@@ -83,7 +83,7 @@
<div class="column is-6">
<c:forEach var="url" items="${agentCfg['packageImporter.endpoints']}" varStatus="status">
<article class="message is-light">
- <sling:getResource var="queue" path="/libs/sling/distribution/services/agents/${agent.name}/queues/endpoint${status.index}" />
+ <sling:getResource var="queue" path="/libs/sling/distribution/services/agents/${sling:encode(agent.name,'HTML_ATTR')}/queues/endpoint${status.index}" />
<div class="message-header">
<p><fmt:message key="Queue" /> #${status.index + 1}</p>
</div>
@@ -114,7 +114,7 @@
</div>
<div class="message-body">
<figure class="image is-16by9">
- <iframe class="has-ratio" src="/libs/sling/distribution/services/agents/${agent.name}/log.txt"></iframe>
+ <iframe class="has-ratio" title="Agent Logs" src="/libs/sling/distribution/services/agents/${sling:encode(agent.name,'HTML_ATTR')}/log.txt"></iframe>
</figure>
</div>
</article>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/configuration/configuration.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/configuration/configuration.jsp
index 8da679fd..966da44d 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/configuration/configuration.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/configuration/configuration.jsp
@@ -25,7 +25,7 @@
<dd>
<c:choose>
<c:when test="${not empty properties.objectClass}">
- <a href="/system/console/services?filter=%28%26%28objectClass%3D${properties.objectClass}%29%28name%3D${sling:encode(config[properties.key],'HTML_ATTR')}%29%29">
+ <a href="/system/console/services?filter=%28%26%28objectClass%3D${sling:encode(properties.objectClass,'HTML_ATTR')}%29%28name%3D${sling:encode(config[properties.key],'HTML_ATTR')}%29%29">
<sling:encode value="${config[properties.key]}" mode="HTML" />
</a>
</c:when>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/exporter/exporter.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/exporter/exporter.jsp
index 4ef55e4e..fb83ef14 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/exporter/exporter.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/exporter/exporter.jsp
@@ -56,7 +56,7 @@
<sling:include resource="${configRsrc}" />
</c:forEach>
</dl>
- <a class="button" href="/system/console/configMgr/${exporterCfg['service.pid']}"><fmt:message key="Edit" /></a>
+ <a class="button" href="/system/console/configMgr/${sling:encode(exporterCfg['service.pid'],'HTML_ATTR')}"><fmt:message key="Edit" /></a>
</div>
</article>
</div>
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/home/home.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/home/home.jsp
index 05523084..9d464c50 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/home/home.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/home/home.jsp
@@ -21,6 +21,6 @@
<br/>
<dl>
<dt><fmt:message key="Publication Mode" /></dt>
- <dd><fmt:message key="${publicationManager.publicationMode}" /></dd>
+ <dd><fmt:message key="${sling:encode(publicationManager.publicationMode,'HTML')}" /></dd>
</dl>
<br/>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/importer/importer.jsp b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/importer/importer.jsp
index 86ead340..7ec06bb3 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/importer/importer.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/components/publication/importer/importer.jsp
@@ -56,7 +56,7 @@
<sling:include resource="${configRsrc}" />
</c:forEach>
</dl>
- <a class="button" href="/system/console/configMgr/${importerCfg['service.pid']}"><fmt:message key="Edit" /></a>
+ <a class="button" href="/system/console/configMgr/${sling:encode(importerCfg['service.pid'],'HTML_ATTR')}"><fmt:message key="Edit" /></a>
</div>
</article>
</div>
diff --git a/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config/config.jsp b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config/config.jsp
index e68c95e7..fbfe0f31 100644
--- a/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config/config.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/thumbnails/transformation/config/config.jsp
@@ -21,7 +21,7 @@
<div>
<dl>
<dt><fmt:message key="Name" /></dt>
- <dd><sling:encode value="${properties.name}" mode="HTML" />
+ <dd><sling:encode value="${sling:encode(properties.name,'HTML_ATTR')}" mode="HTML" />
</dl>
</div>
<hr/>