From 88e9abe5f17c1de8792145e4db46f1c11162306a Mon Sep 17 00:00:00 2001 From: dbajpeyi <3018923+dbajpeyi@users.noreply.github.com> Date: Mon, 31 Mar 2025 10:42:20 +0000 Subject: [PATCH] Update autofill to 17.0.1 --- .../autofill/dist/autofill-debug.js | 65 +++++++++++-------- .../@duckduckgo/autofill/dist/autofill.js | 65 +++++++++++-------- .../autofill/dist/shared-credentials.json | 6 ++ package-lock.json | 4 +- package.json | 2 +- 5 files changed, 85 insertions(+), 57 deletions(-) diff --git a/node_modules/@duckduckgo/autofill/dist/autofill-debug.js b/node_modules/@duckduckgo/autofill/dist/autofill-debug.js index ea516fcee7c8..c041b8c21c7f 100644 --- a/node_modules/@duckduckgo/autofill/dist/autofill-debug.js +++ b/node_modules/@duckduckgo/autofill/dist/autofill-debug.js @@ -3585,6 +3585,9 @@ Source: "${matchedFrom}"`; "americanexpress.com": { "password-rules": "minlength: 8; maxlength: 20; max-consecutive: 4; required: lower, upper; required: digit; allowed: [%&_?#=];" }, + "amnh.org": { + "password-rules": "minlength: 8; maxlength: 16; required: digit; required: upper,lower; allowed: ascii-printable;" + }, "ana.co.jp": { "password-rules": "minlength: 8; maxlength: 16; required: digit; required: upper,lower;" }, @@ -3699,6 +3702,9 @@ Source: "${matchedFrom}"`; "callofduty.com": { "password-rules": "minlength: 8; maxlength: 20; max-consecutive: 2; required: lower, upper; required: digit;" }, + "candyrect.com": { + "password-rules": "minlength: 8; maxlength: 15; required: lower; required: upper; required: digit;" + }, "capitalone.com": { "password-rules": "minlength: 8; maxlength: 32; required: lower, upper; required: digit; allowed: [-_./\\@$*&!#];" }, @@ -4299,6 +4305,9 @@ Source: "${matchedFrom}"`; "naver.com": { "password-rules": "minlength: 6; maxlength: 16;" }, + "nekochat.cn": { + "password-rules": "minlength: 8; maxlength: 15; required: lower; required: upper; required: digit;" + }, "nelnet.net": { "password-rules": "minlength: 8; maxlength: 15; required: lower; required: upper; required: digit, [!@#$&*];" }, @@ -11139,13 +11148,22 @@ Source: "${matchedFrom}"`; return; window.performance?.mark?.("scan_shadow:init:start"); const realTarget = pierceShadowTree(event, HTMLInputElement); - if (realTarget instanceof HTMLInputElement && !realTarget.hasAttribute(ATTR_INPUT_TYPE3)) { + if (realTarget instanceof HTMLInputElement && realTarget.matches(this.matching.cssSelector("genericTextInputField")) && !realTarget.hasAttribute(ATTR_INPUT_TYPE3)) { + if (shouldLog()) + console.log("scanOnClick executing for target", realTarget); const parentForm = this.getParentForm(realTarget); if (parentForm instanceof HTMLInputElement) return; const hasShadowTree = event.target?.shadowRoot != null; - const form = new Form(parentForm, realTarget, this.device, this.matching, this.shouldAutoprompt, hasShadowTree); - this.forms.set(parentForm, form); + const form = this.forms.get(parentForm); + if (!form) { + this.forms.set( + parentForm, + new Form(parentForm, realTarget, this.device, this.matching, this.shouldAutoprompt, hasShadowTree) + ); + } else { + form.addInput(realTarget); + } this.findEligibleInputs(parentForm); } window.performance?.mark?.("scan_shadow:init:end"); @@ -16104,16 +16122,16 @@ Source: "${matchedFrom}"`; testMode: false, checkVisibility: true, hasCaret: false, + isTopAutofill: false, isIncontextSignupAvailable: () => false }; var HTMLTooltip = class { /** - * @param config * @param inputType * @param getPosition * @param {HTMLTooltipOptions} options */ - constructor(config, inputType, getPosition, options) { + constructor(inputType, getPosition, options) { __publicField(this, "isAboveInput", false); /** @type {HTMLTooltipOptions} */ __publicField(this, "options"); @@ -16137,7 +16155,6 @@ Source: "${matchedFrom}"`; mode: options.testMode ? "open" : "closed" }); this.host = this.shadow.host; - this.config = config; this.subtype = getSubtypeFromType(inputType); this.variant = getVariantFromType(inputType); this.tooltip = null; @@ -16409,8 +16426,7 @@ Source: "${matchedFrom}"`; */ render(device, config, items, callbacks) { const t = device.t; - const { wrapperClass, css } = this.options; - const isTopAutofill = wrapperClass?.includes("top-autofill"); + const { wrapperClass, css, isTopAutofill } = this.options; let hasAddedSeparator = false; const shouldShowSeparator = (dataId, index) => { const shouldShow = ["personalAddress", "privateAddress"].includes(dataId) && !hasAddedSeparator; @@ -16483,7 +16499,6 @@ ${css} return this; } }; - var DataHTMLTooltip_default = DataHTMLTooltip; // src/UI/EmailHTMLTooltip.js var EmailHTMLTooltip = class extends HTMLTooltip_default { @@ -16545,7 +16560,6 @@ ${this.options.css} this.device?.selectedDetail({ email: formattedAddress, id }, "email"); } }; - var EmailHTMLTooltip_default = EmailHTMLTooltip; // src/UI/EmailSignupHTMLTooltip.js var EmailSignupHTMLTooltip = class extends HTMLTooltip_default { @@ -16590,7 +16604,6 @@ ${this.options.css} return this; } }; - var EmailSignupHTMLTooltip_default = EmailSignupHTMLTooltip; // src/UI/CredentialsImportTooltip.js var CredentialsImportTooltip = class extends HTMLTooltip_default { @@ -16603,7 +16616,7 @@ ${this.options.css} const t = device.t; this.shadow.innerHTML = ` ${this.options.css} -