@protontech/autofill 0.0.33690782 → 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 (40) hide show
  1. package/features/feature.d.ts +1 -0
  2. package/features/feature.js +9 -2
  3. package/features/v1/index.d.ts +1 -0
  4. package/index.d.ts +2 -0
  5. package/index.js +1 -0
  6. package/models/perceptron/index.d.ts +2 -2
  7. package/models/perceptron/index.js +34 -19
  8. package/models/perceptron/params/email-model.json +4 -4
  9. package/models/perceptron/params/login-model.json +94 -94
  10. package/models/perceptron/params/new-password-model.json +18 -18
  11. package/models/perceptron/params/otp-model.json +13 -13
  12. package/models/perceptron/params/password-change-model.json +77 -77
  13. package/models/perceptron/params/password-model.json +20 -20
  14. package/models/perceptron/params/recovery-model.json +70 -70
  15. package/models/perceptron/params/register-model.json +97 -97
  16. package/models/perceptron/params/username-hidden-model.json +8 -8
  17. package/models/perceptron/params/username-model.json +4 -4
  18. package/models/random_forest/index.d.ts +2 -2
  19. package/models/random_forest/index.js +34 -19
  20. package/package.json +6 -3
  21. package/rules/v1/index.d.ts +2 -1
  22. package/rules/v1/index.js +12 -15
  23. package/rulesets.d.ts +9 -2
  24. package/rulesets.js +5 -1
  25. package/types/index.d.ts +4 -6
  26. package/types/index.js +3 -3
  27. package/models/prod_20240829/index.d.ts +0 -2
  28. package/models/prod_20240829/index.js +0 -27
  29. package/models/prod_20240829/params/email-model.json +0 -45
  30. package/models/prod_20240829/params/login-model.json +0 -421
  31. package/models/prod_20240829/params/new-password-model.json +0 -125
  32. package/models/prod_20240829/params/otp-model.json +0 -153
  33. package/models/prod_20240829/params/password-change-model.json +0 -421
  34. package/models/prod_20240829/params/password-model.json +0 -125
  35. package/models/prod_20240829/params/recovery-model.json +0 -421
  36. package/models/prod_20240829/params/register-model.json +0 -421
  37. package/models/prod_20240829/params/username-hidden-model.json +0 -41
  38. package/models/prod_20240829/params/username-model.json +0 -45
  39. package/models/v1/index.d.ts +0 -2
  40. package/models/v1/index.js +0 -35
@@ -14,4 +14,5 @@ type FlatFeatures<F extends AbstractFeatures> = {
14
14
  export declare const flattenFeatures: <F extends AbstractFeatures>(features: F) => FlatFeatures<F>;
15
15
  export declare const getComputerForFeatures: <F extends AbstractFeatures>(features: F) => FeatureComputer<FlatFeatures<F>>;
16
16
  export declare const topologicalSort: (features: AbstractFeatures) => AbstractFeature<unknown>[];
17
+ export declare const computeFeatures: <F extends AbstractFeatures>(featureComputer: FeatureComputer<F>, fnode: Fnode) => import("@protontech/autofill/types").ComputedFeatures<F>;
17
18
  export {};
@@ -7,8 +7,14 @@ export const feature = (name, parents, compute) => ({
7
7
  });
8
8
  export const featureCount = (feat) => feature(`${feat.name}Count`, { [feat.name]: feat }, (parents) => parents[feat.name].length);
9
9
  export const featureScaled = (feat, min, max) => feature(`${feat.name}Scaled`, { [feat.name]: feat }, (parents) => linearScale(parents[feat.name], min, max));
10
- export const featuresInnerProduct = (feat1, feat2) => feature(`${feat1.name},${feat2.name}`, { [feat1.name]: feat1, [feat2.name]: feat2 }, (parents) => Math.sqrt(Number(parents[feat1.name]) * Number(parents[feat2.name])));
11
- export const featuresProduct = (feat1, feat2) => feature(`${feat1.name},${feat2.name}`, { [feat1.name]: feat1, [feat2.name]: feat2 }, (parents) => Number(parents[feat1.name]) * Number(parents[feat2.name]));
10
+ export const featuresInnerProduct = (feat1, feat2) => feature(`${feat1.name},${feat2.name}`, {
11
+ [feat1.name]: feat1,
12
+ [feat2.name]: feat2,
13
+ }, (parents) => Math.sqrt(Number(parents[feat1.name]) * Number(parents[feat2.name])));
14
+ export const featuresProduct = (feat1, feat2) => feature(`${feat1.name},${feat2.name}`, {
15
+ [feat1.name]: feat1,
16
+ [feat2.name]: feat2,
17
+ }, (parents) => Number(parents[feat1.name]) * Number(parents[feat2.name]));
12
18
  export const flattenFeatures = (features) => features;
13
19
  export const getComputerForFeatures = (features) => {
14
20
  const sorted = topologicalSort(features);
@@ -70,3 +76,4 @@ export const topologicalSort = (features) => {
70
76
  }
71
77
  return sorted;
72
78
  };
79
+ export const computeFeatures = (featureComputer, fnode) => featureComputer.compute(fnode);
@@ -4425,3 +4425,4 @@ export declare const featureProvider: {
4425
4425
  };
4426
4426
  }>;
4427
4427
  };
4428
+ export type FeatureProvider = typeof featureProvider;
package/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export * as fathom from "@protontech/fathom";
2
2
  export * as rulesets from "./rulesets";
3
3
  export * from "./constants/selectors";
4
+ export type { FeatureProvider } from "./features/v1";
5
+ export { createRulesetRegistry } from "./rulesets";
4
6
  export * from "./types";
5
7
  export * from "./utils/attributes";
6
8
  export * from "./utils/credit-card";
package/index.js CHANGED
@@ -3,6 +3,7 @@ import { clearVisibilityCache } from "./utils/visible";
3
3
  export * as fathom from "@protontech/fathom";
4
4
  export * as rulesets from "./rulesets";
5
5
  export * from "./constants/selectors";
6
+ export { createRulesetRegistry } from "./rulesets";
6
7
  export * from "./types";
7
8
  export * from "./utils/attributes";
8
9
  export * from "./utils/credit-card";
@@ -1,2 +1,2 @@
1
- import type { DetectionClass } from "../../types";
2
- export declare const getPerceptronForClass: (klass: DetectionClass) => import("@protontech/ml-inference").Inferrer<import("@protontech/ml-inference").Features, number>;
1
+ import type { ModelProvider } from "@protontech/autofill/types";
2
+ export declare const perceptronModelProvider: ModelProvider;
@@ -1,27 +1,42 @@
1
+ import { featureProvider } from "@protontech/autofill/features/v1";
1
2
  import { newPerceptronInferrer } from "@protontech/ml-inference";
2
- import * as emailParamsJson from "./params/email-model.json";
3
- import * as loginParamsJson from "./params/login-model.json";
4
- import * as newPasswordParamsJson from "./params/new-password-model.json";
5
- import * as otpParamsJson from "./params/otp-model.json";
6
- import * as passwordChangeParamsJson from "./params/password-change-model.json";
7
- import * as PasswordParamsJson from "./params/password-model.json";
8
- import * as RecoveryParamsJson from "./params/recovery-model.json";
9
- import * as registerParamsJson from "./params/register-model.json";
10
- import * as usernameHiddenParamsJson from "./params/username-hidden-model.json";
11
- import * as usernameParamsJson from "./params/username-model.json";
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";
12
13
  const paramsProvider = {
13
- email: emailParamsJson,
14
- "new-password": newPasswordParamsJson,
15
- "password-change": passwordChangeParamsJson,
16
- "username-hidden": usernameHiddenParamsJson,
17
- login: loginParamsJson,
18
- otp: otpParamsJson,
14
+ "new-password": NewPasswordParamsJson,
15
+ "password-change": PasswordChangeParamsJson,
16
+ "username-hidden": UsernameHiddenParamsJson,
17
+ email: EmailParamsJson,
18
+ login: LoginParamsJson,
19
+ otp: OtpParamsJson,
19
20
  password: PasswordParamsJson,
20
21
  recovery: RecoveryParamsJson,
21
- register: registerParamsJson,
22
- username: usernameParamsJson,
22
+ register: RegisterParamsJson,
23
+ username: UsernameParamsJson,
23
24
  };
24
- export const getPerceptronForClass = (klass) => {
25
+ const getPerceptronForClass = (klass) => {
25
26
  const params = paramsProvider[klass];
26
27
  return newPerceptronInferrer({ bias: params.bias, weights: new Map(params.coeffs) });
27
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
+ };
@@ -7,11 +7,11 @@
7
7
  ],
8
8
  [
9
9
  "email--attrEmail",
10
- 1.7379100322723389
10
+ 1.7379103899002075
11
11
  ],
12
12
  [
13
13
  "email--autocompleteEmail",
14
- 3.8710007667541504
14
+ 3.8710005283355713
15
15
  ],
16
16
  [
17
17
  "email--autocompleteOff",
@@ -39,11 +39,11 @@
39
39
  ],
40
40
  [
41
41
  "email--placeholderEmail",
42
- 7.317559242248535
42
+ 7.317560195922852
43
43
  ],
44
44
  [
45
45
  "email--textEmail",
46
- 4.964043140411377
46
+ 4.9640421867370605
47
47
  ],
48
48
  [
49
49
  "email--typeEmail",