@protontech/autofill 0.0.22991789 → 0.0.33835493

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/constants/features.d.ts +1 -0
  2. package/constants/features.js +1 -0
  3. package/constants/heuristics.d.ts +5 -4
  4. package/constants/heuristics.js +5 -10
  5. package/constants/selectors.d.ts +13 -7
  6. package/constants/selectors.js +29 -17
  7. package/debug.d.ts +24 -1
  8. package/debug.js +15 -13
  9. package/dictionary/generate.js +30 -21
  10. package/dictionary/generated/dictionary.d.ts +18 -4
  11. package/dictionary/generated/dictionary.js +31 -17
  12. package/dictionary/source/dictionary.d.ts +4 -3
  13. package/dictionary/source/dictionary.js +155 -89
  14. package/dictionary/source/patterns.js +2 -2
  15. package/features/feature.d.ts +18 -0
  16. package/features/feature.js +79 -0
  17. package/features/feature.spec.d.ts +1 -0
  18. package/features/feature.spec.js +55 -0
  19. package/features/v1/abstract.field.d.ts +20401 -0
  20. package/features/v1/abstract.field.js +95 -0
  21. package/features/v1/abstract.form.d.ts +1226 -0
  22. package/features/v1/abstract.form.js +336 -0
  23. package/features/v1/field.email.d.ts +62 -0
  24. package/features/v1/field.email.js +27 -0
  25. package/features/v1/field.otp.d.ts +142 -0
  26. package/features/v1/field.otp.js +105 -0
  27. package/features/v1/field.password.d.ts +162 -0
  28. package/features/v1/field.password.js +81 -0
  29. package/features/v1/field.username-hidden.d.ts +62 -0
  30. package/features/v1/field.username-hidden.js +25 -0
  31. package/features/v1/field.username.d.ts +72 -0
  32. package/features/v1/field.username.js +31 -0
  33. package/features/v1/index.d.ts +4428 -0
  34. package/features/v1/index.js +22 -0
  35. package/features/v1/index.spec.d.ts +1 -0
  36. package/features/v1/index.spec.js +30 -0
  37. package/index.d.ts +7 -2
  38. package/index.js +11 -3
  39. package/models/perceptron/index.d.ts +2 -0
  40. package/models/perceptron/index.js +42 -0
  41. package/models/perceptron/params/email-model.json +53 -0
  42. package/models/perceptron/params/login-model.json +465 -0
  43. package/models/perceptron/params/new-password-model.json +133 -0
  44. package/models/perceptron/params/otp-model.json +117 -0
  45. package/models/perceptron/params/password-change-model.json +465 -0
  46. package/models/perceptron/params/password-model.json +133 -0
  47. package/models/perceptron/params/recovery-model.json +465 -0
  48. package/models/perceptron/params/register-model.json +465 -0
  49. package/models/perceptron/params/username-hidden-model.json +53 -0
  50. package/models/perceptron/params/username-model.json +61 -0
  51. package/models/random_forest/index.d.ts +2 -0
  52. package/models/random_forest/index.js +42 -0
  53. package/models/random_forest/params/email-model.json +1456 -0
  54. package/models/random_forest/params/login-model.json +4194 -0
  55. package/models/random_forest/params/new-password-model.json +1448 -0
  56. package/models/random_forest/params/otp-model.json +2004 -0
  57. package/models/random_forest/params/password-change-model.json +1422 -0
  58. package/models/random_forest/params/password-model.json +1292 -0
  59. package/models/random_forest/params/recovery-model.json +2754 -0
  60. package/models/random_forest/params/register-model.json +3678 -0
  61. package/models/random_forest/params/username-hidden-model.json +1108 -0
  62. package/models/random_forest/params/username-model.json +1052 -0
  63. package/package.json +17 -15
  64. package/rules/v1/index.d.ts +4 -0
  65. package/rules/v1/index.js +66 -0
  66. package/rulesets.d.ts +9 -2
  67. package/rulesets.js +14 -9
  68. package/types/index.d.ts +70 -17
  69. package/types/index.js +34 -1
  70. package/utils/attributes.js +1 -1
  71. package/utils/clustering.js +18 -5
  72. package/utils/credit-card.d.ts +32 -0
  73. package/utils/credit-card.js +259 -0
  74. package/utils/credit-card.samples.spec.d.ts +1 -0
  75. package/utils/credit-card.samples.spec.js +452 -0
  76. package/utils/credit-card.spec.d.ts +1 -0
  77. package/utils/credit-card.spec.js +296 -0
  78. package/utils/dom.d.ts +3 -2
  79. package/utils/dom.js +12 -7
  80. package/utils/exclusion.d.ts +1 -0
  81. package/utils/exclusion.js +22 -10
  82. package/utils/extract.d.ts +1 -0
  83. package/utils/extract.js +26 -7
  84. package/utils/fathom.d.ts +10 -23
  85. package/utils/fathom.js +7 -12
  86. package/utils/field.d.ts +12 -4
  87. package/utils/field.js +25 -14
  88. package/utils/flags.d.ts +9 -3
  89. package/utils/flags.js +27 -9
  90. package/utils/form.d.ts +16 -5
  91. package/utils/form.js +35 -14
  92. package/utils/identity.d.ts +12 -21
  93. package/utils/identity.js +66 -41
  94. package/utils/identity.samples.spec.d.ts +1 -0
  95. package/utils/identity.samples.spec.js +28 -0
  96. package/utils/iframe.d.ts +2 -0
  97. package/utils/iframe.js +22 -0
  98. package/utils/overrides.d.ts +19 -0
  99. package/utils/overrides.js +40 -0
  100. package/utils/prepass.js +6 -4
  101. package/utils/re.d.ts +19 -4
  102. package/utils/re.js +22 -7
  103. package/utils/re.spec.d.ts +1 -0
  104. package/utils/re.spec.js +62 -0
  105. package/utils/shadow-dom.d.ts +8 -0
  106. package/utils/shadow-dom.js +53 -0
  107. package/utils/shadow-dom.spec.d.ts +1 -0
  108. package/utils/shadow-dom.spec.js +215 -0
  109. package/utils/visible.d.ts +3 -2
  110. package/utils/visible.js +42 -22
  111. package/cli.d.ts +0 -2
  112. package/cli.js +0 -128
  113. package/features/abstract.field.d.ts +0 -123
  114. package/features/abstract.field.js +0 -63
  115. package/features/abstract.form.d.ts +0 -98
  116. package/features/abstract.form.js +0 -281
  117. package/features/field.email.d.ts +0 -18
  118. package/features/field.email.js +0 -43
  119. package/features/field.otp.d.ts +0 -36
  120. package/features/field.otp.js +0 -116
  121. package/features/field.password.d.ts +0 -35
  122. package/features/field.password.js +0 -104
  123. package/features/field.username-hidden.d.ts +0 -15
  124. package/features/field.username-hidden.js +0 -40
  125. package/features/field.username.d.ts +0 -16
  126. package/features/field.username.js +0 -41
  127. package/features/form.combined.d.ts +0 -1
  128. package/features/form.combined.js +0 -6
  129. package/trainees/field.email.d.ts +0 -2
  130. package/trainees/field.email.js +0 -16
  131. package/trainees/field.identity.d.ts +0 -2
  132. package/trainees/field.identity.js +0 -9
  133. package/trainees/field.otp.d.ts +0 -2
  134. package/trainees/field.otp.js +0 -16
  135. package/trainees/field.password.current.d.ts +0 -2
  136. package/trainees/field.password.current.js +0 -16
  137. package/trainees/field.password.new.d.ts +0 -2
  138. package/trainees/field.password.new.js +0 -16
  139. package/trainees/field.username-hidden.d.ts +0 -2
  140. package/trainees/field.username-hidden.js +0 -22
  141. package/trainees/field.username.d.ts +0 -2
  142. package/trainees/field.username.js +0 -16
  143. package/trainees/form.login.d.ts +0 -2
  144. package/trainees/form.login.js +0 -16
  145. package/trainees/form.noop.d.ts +0 -1
  146. package/trainees/form.noop.js +0 -7
  147. package/trainees/form.password-change.d.ts +0 -2
  148. package/trainees/form.password-change.js +0 -16
  149. package/trainees/form.recovery.d.ts +0 -2
  150. package/trainees/form.recovery.js +0 -16
  151. package/trainees/form.register.d.ts +0 -2
  152. package/trainees/form.register.js +0 -16
  153. package/trainees/index.d.ts +0 -9
  154. package/trainees/index.js +0 -72
  155. package/trainees/results/result.email.d.ts +0 -2
  156. package/trainees/results/result.email.js +0 -17
  157. package/trainees/results/result.login.d.ts +0 -2
  158. package/trainees/results/result.login.js +0 -110
  159. package/trainees/results/result.new-password.d.ts +0 -2
  160. package/trainees/results/result.new-password.js +0 -36
  161. package/trainees/results/result.otp.d.ts +0 -2
  162. package/trainees/results/result.otp.js +0 -43
  163. package/trainees/results/result.password-change.d.ts +0 -2
  164. package/trainees/results/result.password-change.js +0 -110
  165. package/trainees/results/result.password.d.ts +0 -2
  166. package/trainees/results/result.password.js +0 -36
  167. package/trainees/results/result.recovery.d.ts +0 -2
  168. package/trainees/results/result.recovery.js +0 -110
  169. package/trainees/results/result.register.d.ts +0 -2
  170. package/trainees/results/result.register.js +0 -110
  171. package/trainees/results/result.username-hidden.d.ts +0 -2
  172. package/trainees/results/result.username-hidden.js +0 -15
  173. package/trainees/results/result.username.d.ts +0 -2
  174. package/trainees/results/result.username.js +0 -16
  175. package/utils/memoize.d.ts +0 -5
  176. package/utils/memoize.js +0 -12
@@ -0,0 +1,22 @@
1
+ import { getComputerForFeatures } from "@protontech/autofill/features/feature";
2
+ import { fieldFeatures } from "./abstract.field";
3
+ import { formFeaturesComputer } from "./abstract.form";
4
+ import { emailFeatures } from "./field.email";
5
+ import { otpFeatures } from "./field.otp";
6
+ import { passwordFeatures } from "./field.password";
7
+ import { usernameFeatures } from "./field.username";
8
+ import { usernameHiddenFeatures } from "./field.username-hidden";
9
+ export const featureProvider = {
10
+ field: getComputerForFeatures(fieldFeatures),
11
+ form: formFeaturesComputer,
12
+ email: getComputerForFeatures(emailFeatures),
13
+ "new-password": getComputerForFeatures(passwordFeatures),
14
+ otp: getComputerForFeatures(otpFeatures),
15
+ password: getComputerForFeatures(passwordFeatures),
16
+ username: getComputerForFeatures(usernameFeatures),
17
+ "username-hidden": getComputerForFeatures(usernameHiddenFeatures),
18
+ login: formFeaturesComputer,
19
+ recovery: formFeaturesComputer,
20
+ register: formFeaturesComputer,
21
+ "password-change": formFeaturesComputer,
22
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ import { topologicalSort } from "@protontech/autofill/features/feature";
2
+ import { fieldFeatures } from "./abstract.field";
3
+ import { formFeatures } from "./abstract.form";
4
+ import { emailFeatures } from "./field.email";
5
+ import { otpFeatures } from "./field.otp";
6
+ import { passwordFeatures } from "./field.password";
7
+ import { usernameFeatures } from "./field.username";
8
+ import { usernameHiddenFeatures } from "./field.username-hidden";
9
+ describe("features can be topologically sorted", () => {
10
+ const featureSets = {
11
+ fieldFeatures,
12
+ formFeatures,
13
+ emailFeatures,
14
+ otpFeatures,
15
+ passwordFeatures,
16
+ usernameHiddenFeatures,
17
+ usernameFeatures,
18
+ };
19
+ Object.entries(featureSets).forEach(([featureSetName, features]) => test(`${featureSetName} can be topologically sorted`, () => {
20
+ try {
21
+ topologicalSort(features);
22
+ }
23
+ catch (error) {
24
+ console.log(Object.values(features)
25
+ .map((feature) => `${feature.name} -> {${Object.keys(feature.parents).join(", ")}}`)
26
+ .join("\n"));
27
+ throw error;
28
+ }
29
+ }));
30
+ });
package/index.d.ts CHANGED
@@ -1,14 +1,19 @@
1
1
  export * as fathom from "@protontech/fathom";
2
+ export * as rulesets from "./rulesets";
2
3
  export * from "./constants/selectors";
3
- export * from "./trainees";
4
+ export type { FeatureProvider } from "./features/v1";
5
+ export { createRulesetRegistry } from "./rulesets";
4
6
  export * from "./types";
5
7
  export * from "./utils/attributes";
8
+ export * from "./utils/credit-card";
6
9
  export { getTypeScore } from "./utils/fathom";
7
10
  export * from "./utils/field";
8
11
  export * from "./utils/flags";
9
12
  export * from "./utils/form";
10
13
  export * from "./utils/identity";
14
+ export * from "./utils/iframe";
15
+ export * from "./utils/overrides";
11
16
  export * from "./utils/prepass";
17
+ export * from "./utils/shadow-dom";
12
18
  export * from "./utils/visible";
13
- export * as rulesets from "./rulesets";
14
19
  export declare const clearDetectionCache: () => void;
package/index.js CHANGED
@@ -1,15 +1,23 @@
1
+ import { clearOverrides } from "./utils/overrides";
1
2
  import { clearVisibilityCache } from "./utils/visible";
2
3
  export * as fathom from "@protontech/fathom";
4
+ export * as rulesets from "./rulesets";
3
5
  export * from "./constants/selectors";
4
- export * from "./trainees";
6
+ export { createRulesetRegistry } from "./rulesets";
5
7
  export * from "./types";
6
8
  export * from "./utils/attributes";
9
+ export * from "./utils/credit-card";
7
10
  export { getTypeScore } from "./utils/fathom";
8
11
  export * from "./utils/field";
9
12
  export * from "./utils/flags";
10
13
  export * from "./utils/form";
11
14
  export * from "./utils/identity";
15
+ export * from "./utils/iframe";
16
+ export * from "./utils/overrides";
12
17
  export * from "./utils/prepass";
18
+ export * from "./utils/shadow-dom";
13
19
  export * from "./utils/visible";
14
- export * as rulesets from "./rulesets";
15
- export const clearDetectionCache = () => clearVisibilityCache();
20
+ export const clearDetectionCache = () => {
21
+ clearVisibilityCache();
22
+ clearOverrides();
23
+ };
@@ -0,0 +1,2 @@
1
+ import type { ModelProvider } from "@protontech/autofill/types";
2
+ export declare const perceptronModelProvider: ModelProvider;
@@ -0,0 +1,42 @@
1
+ import { featureProvider } from "@protontech/autofill/features/v1";
2
+ import { newPerceptronInferrer } from "@protontech/ml-inference";
3
+ import EmailParamsJson from "./params/email-model.json";
4
+ import LoginParamsJson from "./params/login-model.json";
5
+ import NewPasswordParamsJson from "./params/new-password-model.json";
6
+ import OtpParamsJson from "./params/otp-model.json";
7
+ import PasswordChangeParamsJson from "./params/password-change-model.json";
8
+ import PasswordParamsJson from "./params/password-model.json";
9
+ import RecoveryParamsJson from "./params/recovery-model.json";
10
+ import RegisterParamsJson from "./params/register-model.json";
11
+ import UsernameHiddenParamsJson from "./params/username-hidden-model.json";
12
+ import UsernameParamsJson from "./params/username-model.json";
13
+ const paramsProvider = {
14
+ "new-password": NewPasswordParamsJson,
15
+ "password-change": PasswordChangeParamsJson,
16
+ "username-hidden": UsernameHiddenParamsJson,
17
+ email: EmailParamsJson,
18
+ login: LoginParamsJson,
19
+ otp: OtpParamsJson,
20
+ password: PasswordParamsJson,
21
+ recovery: RecoveryParamsJson,
22
+ register: RegisterParamsJson,
23
+ username: UsernameParamsJson,
24
+ };
25
+ const getPerceptronForClass = (klass) => {
26
+ const params = paramsProvider[klass];
27
+ return newPerceptronInferrer({ bias: params.bias, weights: new Map(params.coeffs) });
28
+ };
29
+ export const perceptronModelProvider = {
30
+ field: { featureComputer: featureProvider.field },
31
+ form: { featureComputer: featureProvider.form },
32
+ "new-password": { model: getPerceptronForClass("new-password"), featureComputer: featureProvider["new-password"] },
33
+ "password-change": { model: getPerceptronForClass("password-change"), featureComputer: featureProvider["password-change"] },
34
+ "username-hidden": { model: getPerceptronForClass("username-hidden"), featureComputer: featureProvider["username-hidden"] },
35
+ email: { model: getPerceptronForClass("email"), featureComputer: featureProvider.email },
36
+ login: { model: getPerceptronForClass("login"), featureComputer: featureProvider.login },
37
+ otp: { model: getPerceptronForClass("otp"), featureComputer: featureProvider.otp },
38
+ password: { model: getPerceptronForClass("password"), featureComputer: featureProvider.password },
39
+ recovery: { model: getPerceptronForClass("recovery"), featureComputer: featureProvider.recovery },
40
+ register: { model: getPerceptronForClass("register"), featureComputer: featureProvider.register },
41
+ username: { model: getPerceptronForClass("username"), featureComputer: featureProvider.username },
42
+ };
@@ -0,0 +1,53 @@
1
+ {
2
+ "bias": -6.599460124969482,
3
+ "coeffs": [
4
+ [
5
+ "email--exactAttrEmail",
6
+ 8.784777641296387
7
+ ],
8
+ [
9
+ "email--attrEmail",
10
+ 1.7379103899002075
11
+ ],
12
+ [
13
+ "email--autocompleteEmail",
14
+ 3.8710005283355713
15
+ ],
16
+ [
17
+ "email--autocompleteOff",
18
+ -1.1758869886398315
19
+ ],
20
+ [
21
+ "email--fieldCC",
22
+ -2.2318081855773926
23
+ ],
24
+ [
25
+ "email--fieldIdentity",
26
+ -4.074367046356201
27
+ ],
28
+ [
29
+ "email--isSearchField",
30
+ -8.169981956481934
31
+ ],
32
+ [
33
+ "email--labelEmail",
34
+ 12.27147102355957
35
+ ],
36
+ [
37
+ "email--mfaOutlier",
38
+ -9.960747718811035
39
+ ],
40
+ [
41
+ "email--placeholderEmail",
42
+ 7.317560195922852
43
+ ],
44
+ [
45
+ "email--textEmail",
46
+ 4.9640421867370605
47
+ ],
48
+ [
49
+ "email--typeEmail",
50
+ 10.114109992980957
51
+ ]
52
+ ]
53
+ }
@@ -0,0 +1,465 @@
1
+ {
2
+ "bias": -0.9151386618614197,
3
+ "coeffs": [
4
+ [
5
+ "login--visibleFieldsCountScaled",
6
+ 1.486899733543396
7
+ ],
8
+ [
9
+ "login--visibleInputsCountScaled",
10
+ 0.7714098691940308
11
+ ],
12
+ [
13
+ "login--fieldsetsCountScaled",
14
+ -2.2569069862365723
15
+ ],
16
+ [
17
+ "login--textsCountScaled",
18
+ -2.2409515380859375
19
+ ],
20
+ [
21
+ "login--textareasCountScaled",
22
+ -7.105659008026123
23
+ ],
24
+ [
25
+ "login--selectsCountScaled",
26
+ -6.675673484802246
27
+ ],
28
+ [
29
+ "login--disabledCountScaled",
30
+ -0.04939925670623779
31
+ ],
32
+ [
33
+ "login--radiosCountScaled",
34
+ -4.642114639282227
35
+ ],
36
+ [
37
+ "login--readOnlyCountScaled",
38
+ -8.07482624053955
39
+ ],
40
+ [
41
+ "login--formComplexityScaled",
42
+ -2.950302839279175
43
+ ],
44
+ [
45
+ "login--visibleIdentifiersCountScaled",
46
+ -1.8698210716247559
47
+ ],
48
+ [
49
+ "login--hiddenIdentifiersCountScaled",
50
+ 1.9122282266616821
51
+ ],
52
+ [
53
+ "login--usernamesCountScaled",
54
+ 0.16324283182621002
55
+ ],
56
+ [
57
+ "login--emailsCountScaled",
58
+ -3.5715503692626953
59
+ ],
60
+ [
61
+ "login--hiddenCountScaled",
62
+ 2.2564446926116943
63
+ ],
64
+ [
65
+ "login--hiddenPasswordsCountScaled",
66
+ 6.7593560218811035
67
+ ],
68
+ [
69
+ "login--submitsCountScaled",
70
+ -4.409569263458252
71
+ ],
72
+ [
73
+ "login--identitiesCountScaled",
74
+ -1.8813520669937134
75
+ ],
76
+ [
77
+ "login--ccsCountScaled",
78
+ -4.634806156158447
79
+ ],
80
+ [
81
+ "login--hasTels",
82
+ -3.3048744201660156
83
+ ],
84
+ [
85
+ "login--hasOAuth",
86
+ 0.9214448928833008
87
+ ],
88
+ [
89
+ "login--hasCaptchas",
90
+ 2.71230411529541
91
+ ],
92
+ [
93
+ "login--hasFiles",
94
+ -0.06754617393016815
95
+ ],
96
+ [
97
+ "login--hasDate",
98
+ -0.3914891481399536
99
+ ],
100
+ [
101
+ "login--hasNumber",
102
+ -5.054873466491699
103
+ ],
104
+ [
105
+ "login--oneVisibleField",
106
+ 2.9466559886932373
107
+ ],
108
+ [
109
+ "login--twoVisibleFields",
110
+ 0.22733581066131592
111
+ ],
112
+ [
113
+ "login--threeOrMoreVisibleFields",
114
+ -2.0192761421203613
115
+ ],
116
+ [
117
+ "login--noPasswords",
118
+ -6.263664722442627
119
+ ],
120
+ [
121
+ "login--onePassword",
122
+ 6.739871978759766
123
+ ],
124
+ [
125
+ "login--twoPasswords",
126
+ 1.235830307006836
127
+ ],
128
+ [
129
+ "login--threeOrMorePasswords",
130
+ -3.5065689086914062
131
+ ],
132
+ [
133
+ "login--noIdentifiers",
134
+ -1.713320016860962
135
+ ],
136
+ [
137
+ "login--oneIdentifier",
138
+ 1.0281378030776978
139
+ ],
140
+ [
141
+ "login--twoIdentifiers",
142
+ 2.534081220626831
143
+ ],
144
+ [
145
+ "login--threeOrMoreIdentifiers",
146
+ -4.254447937011719
147
+ ],
148
+ [
149
+ "login--autofocusedIsIdentifier",
150
+ 2.8286819458007812
151
+ ],
152
+ [
153
+ "login--autofocusedIsPassword",
154
+ 4.382067680358887
155
+ ],
156
+ [
157
+ "login--visibleRatio",
158
+ 0.7667929530143738
159
+ ],
160
+ [
161
+ "login--inputRatio",
162
+ -4.025935649871826
163
+ ],
164
+ [
165
+ "login--hiddenRatio",
166
+ -1.1496537923812866
167
+ ],
168
+ [
169
+ "login--identifierRatio",
170
+ -1.8468908071517944
171
+ ],
172
+ [
173
+ "login--emailRatio",
174
+ 11.31178092956543
175
+ ],
176
+ [
177
+ "login--usernameRatio",
178
+ -2.9467499256134033
179
+ ],
180
+ [
181
+ "login--passwordRatio",
182
+ 2.039027452468872
183
+ ],
184
+ [
185
+ "login--disabledRatio",
186
+ -0.04974718019366264
187
+ ],
188
+ [
189
+ "login--requiredRatio",
190
+ 0.6291854977607727
191
+ ],
192
+ [
193
+ "login--checkboxRatio",
194
+ -10.240707397460938
195
+ ],
196
+ [
197
+ "login--hiddenIdentifierRatio",
198
+ 1.3944566249847412
199
+ ],
200
+ [
201
+ "login--hiddenPasswordRatio",
202
+ 7.059210777282715
203
+ ],
204
+ [
205
+ "login--pageLogin",
206
+ 3.7198832035064697
207
+ ],
208
+ [
209
+ "login--formTextLogin",
210
+ 0.001237060409039259
211
+ ],
212
+ [
213
+ "login--formAttrsLogin",
214
+ 4.150831699371338
215
+ ],
216
+ [
217
+ "login--headingsLogin",
218
+ 7.620120525360107
219
+ ],
220
+ [
221
+ "login--layoutLogin",
222
+ -0.0794287770986557
223
+ ],
224
+ [
225
+ "login--rememberMeCheckbox",
226
+ 4.073165416717529
227
+ ],
228
+ [
229
+ "login--troubleLink",
230
+ 4.67028284072876
231
+ ],
232
+ [
233
+ "login--submitLogin",
234
+ 10.19081974029541
235
+ ],
236
+ [
237
+ "login--pageRegister",
238
+ -9.373846054077148
239
+ ],
240
+ [
241
+ "login--formTextRegister",
242
+ -6.417885780334473
243
+ ],
244
+ [
245
+ "login--formAttrsRegister",
246
+ -5.424561500549316
247
+ ],
248
+ [
249
+ "login--headingsRegister",
250
+ -3.8274245262145996
251
+ ],
252
+ [
253
+ "login--layoutRegister",
254
+ -0.601273775100708
255
+ ],
256
+ [
257
+ "login--pwNewRegister",
258
+ -12.92492961883545
259
+ ],
260
+ [
261
+ "login--pwConfirmRegister",
262
+ -1.271654725074768
263
+ ],
264
+ [
265
+ "login--submitRegister",
266
+ -12.533027648925781
267
+ ],
268
+ [
269
+ "login--TOSRef",
270
+ -2.4069557189941406
271
+ ],
272
+ [
273
+ "login--pagePwReset",
274
+ -0.8316850066184998
275
+ ],
276
+ [
277
+ "login--formTextPwReset",
278
+ -0.02110225521028042
279
+ ],
280
+ [
281
+ "login--formAttrsPwReset",
282
+ -8.685617446899414
283
+ ],
284
+ [
285
+ "login--headingsPwReset",
286
+ -2.0459933280944824
287
+ ],
288
+ [
289
+ "login--layoutPwReset",
290
+ -1.5053772926330566
291
+ ],
292
+ [
293
+ "login--pageRecovery",
294
+ -1.6404569149017334
295
+ ],
296
+ [
297
+ "login--formTextRecovery",
298
+ 1.1768496418554316e-35
299
+ ],
300
+ [
301
+ "login--formAttrsRecovery",
302
+ -9.259727478027344
303
+ ],
304
+ [
305
+ "login--headingsRecovery",
306
+ -3.0005393028259277
307
+ ],
308
+ [
309
+ "login--layoutRecovery",
310
+ 1.0471283197402954
311
+ ],
312
+ [
313
+ "login--identifierRecovery",
314
+ 0.12867282330989838
315
+ ],
316
+ [
317
+ "login--submitRecovery",
318
+ -4.689121723175049
319
+ ],
320
+ [
321
+ "login--formTextMFA",
322
+ -3.27414870262146
323
+ ],
324
+ [
325
+ "login--formAttrsMFA",
326
+ -9.224265098571777
327
+ ],
328
+ [
329
+ "login--inputsMFA",
330
+ -10.566764831542969
331
+ ],
332
+ [
333
+ "login--newsletterForm",
334
+ -3.199449300765991
335
+ ],
336
+ [
337
+ "login--searchForm",
338
+ -4.385682106018066
339
+ ],
340
+ [
341
+ "login--multistepForm",
342
+ 2.7234747409820557
343
+ ],
344
+ [
345
+ "login--multiAuthForm",
346
+ 2.367074489593506
347
+ ],
348
+ [
349
+ "login--multistepForm,multiAuthForm",
350
+ 5.559227466583252
351
+ ],
352
+ [
353
+ "login--visibleRatio,visibleFieldsCountScaled",
354
+ -0.5109789967536926
355
+ ],
356
+ [
357
+ "login--visibleRatio,visibleIdentifiersCountScaled",
358
+ -3.2128372192382812
359
+ ],
360
+ [
361
+ "login--visibleRatio,visiblePasswordsCountScaled",
362
+ 4.3463850021362305
363
+ ],
364
+ [
365
+ "login--visibleRatio,hiddenIdentifiersCountScaled",
366
+ -1.2100872993469238
367
+ ],
368
+ [
369
+ "login--visibleRatio,hiddenPasswordsCountScaled",
370
+ -1.9768978357315063
371
+ ],
372
+ [
373
+ "login--visibleRatio,multiAuthForm",
374
+ -3.3510806560516357
375
+ ],
376
+ [
377
+ "login--visibleRatio,multistepForm",
378
+ 7.166625499725342
379
+ ],
380
+ [
381
+ "login--identifierRatio,visibleFieldsCountScaled",
382
+ -3.057596206665039
383
+ ],
384
+ [
385
+ "login--identifierRatio,visibleIdentifiersCountScaled",
386
+ -3.552677631378174
387
+ ],
388
+ [
389
+ "login--identifierRatio,visiblePasswordsCountScaled",
390
+ 2.49371337890625
391
+ ],
392
+ [
393
+ "login--identifierRatio,hiddenIdentifiersCountScaled",
394
+ 0.6841031312942505
395
+ ],
396
+ [
397
+ "login--identifierRatio,hiddenPasswordsCountScaled",
398
+ 6.573177814483643
399
+ ],
400
+ [
401
+ "login--identifierRatio,multiAuthForm",
402
+ 8.29233169555664
403
+ ],
404
+ [
405
+ "login--identifierRatio,multistepForm",
406
+ -6.264770984649658
407
+ ],
408
+ [
409
+ "login--passwordRatio,visibleFieldsCountScaled",
410
+ 5.550400733947754
411
+ ],
412
+ [
413
+ "login--passwordRatio,visibleIdentifiersCountScaled",
414
+ 2.661841869354248
415
+ ],
416
+ [
417
+ "login--passwordRatio,visiblePasswordsCountScaled",
418
+ -0.8242419362068176
419
+ ],
420
+ [
421
+ "login--passwordRatio,hiddenIdentifiersCountScaled",
422
+ 2.0986239910125732
423
+ ],
424
+ [
425
+ "login--passwordRatio,hiddenPasswordsCountScaled",
426
+ 3.0585145950317383
427
+ ],
428
+ [
429
+ "login--passwordRatio,multiAuthForm",
430
+ -6.020143032073975
431
+ ],
432
+ [
433
+ "login--passwordRatio,multistepForm",
434
+ -14.701336860656738
435
+ ],
436
+ [
437
+ "login--requiredRatio,visibleFieldsCountScaled",
438
+ 0.287549763917923
439
+ ],
440
+ [
441
+ "login--requiredRatio,visibleIdentifiersCountScaled",
442
+ -2.505615472793579
443
+ ],
444
+ [
445
+ "login--requiredRatio,visiblePasswordsCountScaled",
446
+ 1.038008213043213
447
+ ],
448
+ [
449
+ "login--requiredRatio,hiddenIdentifiersCountScaled",
450
+ 10.058676719665527
451
+ ],
452
+ [
453
+ "login--requiredRatio,hiddenPasswordsCountScaled",
454
+ 1.3033015727996826
455
+ ],
456
+ [
457
+ "login--requiredRatio,multiAuthForm",
458
+ 2.7696313858032227
459
+ ],
460
+ [
461
+ "login--requiredRatio,multistepForm",
462
+ 4.082817077636719
463
+ ]
464
+ ]
465
+ }