mirror of
https://github.com/bitwarden/browser.git
synced 2025-02-18 01:41:27 +01:00
[PM-1072] Convert autofill.js to Typescript (#5376)
* Rename autofill.js to ts and update webpack * Remove wrapping function * Remove unreachable data-onepassword-title code * Remove unused post-submit logic * Run prettier * Remove unused fake tested code * Add typing * Disable certain eslint rules or fix eslint violations * Update modifications list * Remove unnecessary/confusing types * Checkout autofill.js from master * Add ENV switch for autofill versions * Rename autofill.ts to avoid confusion * Use string union type for FillScriptOp
This commit is contained in:
parent
3f7a63b2c6
commit
3577b7c100
@ -6,6 +6,7 @@
|
|||||||
"build:mv3": "cross-env MANIFEST_VERSION=3 webpack",
|
"build:mv3": "cross-env MANIFEST_VERSION=3 webpack",
|
||||||
"build:watch": "webpack --watch",
|
"build:watch": "webpack --watch",
|
||||||
"build:watch:mv3": "cross-env MANIFEST_VERSION=3 webpack --watch",
|
"build:watch:mv3": "cross-env MANIFEST_VERSION=3 webpack --watch",
|
||||||
|
"build:watch:autofill": "cross-env AUTOFILL_VERSION=2 webpack --watch",
|
||||||
"build:prod": "cross-env NODE_ENV=production webpack",
|
"build:prod": "cross-env NODE_ENV=production webpack",
|
||||||
"build:prod:watch": "cross-env NODE_ENV=production webpack --watch",
|
"build:prod:watch": "cross-env NODE_ENV=production webpack --watch",
|
||||||
"dist": "npm run build:prod && gulp dist",
|
"dist": "npm run build:prod && gulp dist",
|
||||||
|
1391
apps/browser/src/autofill/content/autofillv2.ts
Normal file
1391
apps/browser/src/autofill/content/autofillv2.ts
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,27 @@
|
|||||||
|
// String values affect code flow in autofill.ts and must not be changed
|
||||||
|
export type FillScriptOp = "click_on_opid" | "focus_by_opid" | "fill_by_opid" | "delay";
|
||||||
|
|
||||||
|
export type FillScript = [op: FillScriptOp, opid: string, value?: string];
|
||||||
|
|
||||||
|
export type AutofillScriptOptions = {
|
||||||
|
animate?: boolean;
|
||||||
|
markFilling?: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type AutofillScriptProperties = {
|
||||||
|
delay_between_operations?: number;
|
||||||
|
};
|
||||||
|
|
||||||
export default class AutofillScript {
|
export default class AutofillScript {
|
||||||
script: string[][] = [];
|
script: FillScript[] = [];
|
||||||
documentUUID: any = {};
|
documentUUID = "";
|
||||||
properties: any = {};
|
properties: AutofillScriptProperties = {};
|
||||||
options: any = {};
|
options: AutofillScriptOptions = {};
|
||||||
metadata: any = {};
|
metadata: any = {}; // Unused, not written or read
|
||||||
autosubmit: any = null;
|
autosubmit: any = null; // Appears to be unused, read but not written
|
||||||
savedUrls: string[];
|
savedUrls: string[];
|
||||||
untrustedIframe: boolean;
|
untrustedIframe: boolean;
|
||||||
|
itemType: string; // Appears to be unused, read but not written
|
||||||
|
|
||||||
constructor(documentUUID: string) {
|
constructor(documentUUID: string) {
|
||||||
this.documentUUID = documentUUID;
|
this.documentUUID = documentUUID;
|
||||||
|
@ -14,8 +14,10 @@ if (process.env.NODE_ENV == null) {
|
|||||||
}
|
}
|
||||||
const ENV = (process.env.ENV = process.env.NODE_ENV);
|
const ENV = (process.env.ENV = process.env.NODE_ENV);
|
||||||
const manifestVersion = process.env.MANIFEST_VERSION == 3 ? 3 : 2;
|
const manifestVersion = process.env.MANIFEST_VERSION == 3 ? 3 : 2;
|
||||||
|
const autofillVersion = process.env.AUTOFILL_VERSION == 2 ? 2 : 1;
|
||||||
|
|
||||||
console.log(`Building Manifest Version ${manifestVersion} app`);
|
console.log(`Building Manifest Version ${manifestVersion} app`);
|
||||||
|
console.log(`Using Autofill v${autofillVersion}`);
|
||||||
const envConfig = configurator.load(ENV);
|
const envConfig = configurator.load(ENV);
|
||||||
configurator.log(envConfig);
|
configurator.log(envConfig);
|
||||||
|
|
||||||
@ -141,7 +143,6 @@ const mainConfig = {
|
|||||||
entry: {
|
entry: {
|
||||||
"popup/polyfills": "./src/popup/polyfills.ts",
|
"popup/polyfills": "./src/popup/polyfills.ts",
|
||||||
"popup/main": "./src/popup/main.ts",
|
"popup/main": "./src/popup/main.ts",
|
||||||
"content/autofill": "./src/autofill/content/autofill.js",
|
|
||||||
"content/autofiller": "./src/autofill/content/autofiller.ts",
|
"content/autofiller": "./src/autofill/content/autofiller.ts",
|
||||||
"content/notificationBar": "./src/autofill/content/notification-bar.ts",
|
"content/notificationBar": "./src/autofill/content/notification-bar.ts",
|
||||||
"content/contextMenuHandler": "./src/autofill/content/context-menu-handler.ts",
|
"content/contextMenuHandler": "./src/autofill/content/context-menu-handler.ts",
|
||||||
@ -301,4 +302,12 @@ if (manifestVersion == 2) {
|
|||||||
configs.push(backgroundConfig);
|
configs.push(backgroundConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (autofillVersion == 2) {
|
||||||
|
// Typescript refactors (WIP)
|
||||||
|
mainConfig.entry["content/autofill"] = "./src/autofill/content/autofillv2.ts";
|
||||||
|
} else {
|
||||||
|
// Javascript (used in production)
|
||||||
|
mainConfig.entry["content/autofill"] = "./src/autofill/content/autofill.js";
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = configs;
|
module.exports = configs;
|
||||||
|
Loading…
Reference in New Issue
Block a user