Skip to content

Commit

Permalink
feat(Browser extension): Initial iteration for Chrome (#71)
Browse files Browse the repository at this point in the history
* feat(Browser extension): Initial iteration for Chrome

* Updated .gitignore

* chore(Browser extension): Remove redundant API property assignment

* chore(Browser extension): Removing /run directory

---------

Co-authored-by: Darran Boyd <[email protected]>
  • Loading branch information
dboyd13 and Darran Boyd authored Jan 19, 2024
1 parent 824df9b commit 48d54f3
Show file tree
Hide file tree
Showing 35 changed files with 3,882 additions and 50 deletions.
2 changes: 2 additions & 0 deletions .gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

67 changes: 64 additions & 3 deletions .projenrc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const monorepo = new NxMonorepoProject({
defaultReleaseBranch: "main",
name: "@aws/threat-composer-monorepo",
devDeps: [
"@aws-prototyping-sdk/nx-monorepo@^0.19.2",
"@aws-prototyping-sdk/nx-monorepo@^0.19.2",
"@aws-prototyping-sdk/pipeline@^0.19.2",
"@aws-prototyping-sdk/pdk-nag@^0.19.2",
"eslint-plugin-header",
Expand All @@ -26,9 +26,14 @@ monorepo.tryFindObjectFile("package.json")?.addOverride("resolutions.js-yaml", "
monorepo.tryFindObjectFile("package.json")?.addOverride("resolutions.semver", "^7.5.3");
monorepo.tryFindObjectFile("package.json")?.addOverride("resolutions.@babel/traverse", "^7.23.2");
monorepo.tryFindObjectFile("package.json")?.addOverride("resolutions.postcss", "^8.4.31");
monorepo
.tryFindObjectFile("package.json")
?.addOverride("workspaces.nohoist", ["**/wxt"]);
monorepo.addGitIgnore('.temp/');
monorepo.addGitIgnore('oss-attribution/');
monorepo.addGitIgnore('storybook.out/');
monorepo.addGitIgnore(".DS_Store");
monorepo.addGitIgnore(".output/");

monorepo.addTask('export:examples', {
steps: [
Expand Down Expand Up @@ -68,7 +73,7 @@ monorepo.addTask('storybook', {
monorepo.compileTask.reset('npx nx run-many --target=build --all --skip-nx-cache --nx-bail');
monorepo.postCompileTask.reset('yarn run generate:attribution && yarn run license:checker');

const uiESModules = [
const uiESModules = [
"unified",
"@aws-northstar/ui"
].join("|");
Expand Down Expand Up @@ -143,7 +148,7 @@ const uiProject = new TypeScriptProject({
transformIgnorePatterns: [
`[/\\\\]node_modules[/\\\\](?!${uiESModules}).+\\.(js|jsx|mjs|cjs|ts|tsx)$`,
],
},
},
},
tsconfig: {
compilerOptions: {
Expand Down Expand Up @@ -253,7 +258,63 @@ infraProject.eslint?.addRules({
"header/header": [2, "../../header.js"],
});

const browserExtensionProject = new TypeScriptProject({
parent: monorepo,
outdir: "packages/threat-composer-app-browser-extension",
defaultReleaseBranch: "main",
name: "@aws/threat-composer-app-browser-extension",
deps: [
"react-router-dom",
"@cloudscape-design/components",
"react",
"react-dom",
],
devDeps: [
"wxt@^0.14.0",
"@vitejs/plugin-react",
"rollup-plugin-copy",
"@types/react",
"@types/react-dom",
],
sampleCode: false,
tsconfig: {
compilerOptions: {
lib: ["dom", "dom.iterable"],
jsx: TypeScriptJsxMode.REACT_JSX,
},
include: ["src", ".wxt/types"],
},
});

browserExtensionProject.addTask("dev", {
exec: "wxt",
});

browserExtensionProject.addTask("dev:firefox", {
exec: "wxt --browser firefox",
});

browserExtensionProject.compileTask.reset("wxt build");

browserExtensionProject.addTask("zip", {
exec: "wxt zip",
});

browserExtensionProject.addTask("zip:firefox", {
exec: "wxt zip --browser firefox",
});

browserExtensionProject.addTask("postinstall", {
exec: "wxt prepare",
});

browserExtensionProject.eslint?.addPlugins("header");
browserExtensionProject.eslint?.addRules({
"header/header": [2, "../../header.js"],
});

monorepo.addImplicitDependency(appProject, uiProject);
monorepo.addImplicitDependency(infraProject, appProject);
monorepo.addImplicitDependency(browserExtensionProject, appProject);

monorepo.synth();
4 changes: 4 additions & 0 deletions package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

237 changes: 237 additions & 0 deletions packages/threat-composer-app-browser-extension/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,237 @@
// ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
{
"env": {
"jest": true,
"node": true
},
"root": true,
"plugins": [
"@typescript-eslint",
"import",
"header"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module",
"project": "./tsconfig.dev.json"
},
"extends": [
"plugin:import/typescript"
],
"settings": {
"import/parsers": {
"@typescript-eslint/parser": [
".ts",
".tsx"
]
},
"import/resolver": {
"node": {},
"typescript": {
"project": "./tsconfig.dev.json",
"alwaysTryTypes": true
}
}
},
"ignorePatterns": [
"*.js",
"!.projenrc.js",
"*.d.ts",
"node_modules/",
"*.generated.ts",
"coverage"
],
"rules": {
"indent": [
"off"
],
"@typescript-eslint/indent": [
"error",
2
],
"quotes": [
"error",
"single",
{
"avoidEscape": true
}
],
"comma-dangle": [
"error",
"always-multiline"
],
"comma-spacing": [
"error",
{
"before": false,
"after": true
}
],
"no-multi-spaces": [
"error",
{
"ignoreEOLComments": false
}
],
"array-bracket-spacing": [
"error",
"never"
],
"array-bracket-newline": [
"error",
"consistent"
],
"object-curly-spacing": [
"error",
"always"
],
"object-curly-newline": [
"error",
{
"multiline": true,
"consistent": true
}
],
"object-property-newline": [
"error",
{
"allowAllPropertiesOnSameLine": true
}
],
"keyword-spacing": [
"error"
],
"brace-style": [
"error",
"1tbs",
{
"allowSingleLine": true
}
],
"space-before-blocks": [
"error"
],
"curly": [
"error",
"multi-line",
"consistent"
],
"@typescript-eslint/member-delimiter-style": [
"error"
],
"semi": [
"error",
"always"
],
"max-len": [
"error",
{
"code": 150,
"ignoreUrls": true,
"ignoreStrings": true,
"ignoreTemplateLiterals": true,
"ignoreComments": true,
"ignoreRegExpLiterals": true
}
],
"quote-props": [
"error",
"consistent-as-needed"
],
"@typescript-eslint/no-require-imports": [
"error"
],
"import/no-extraneous-dependencies": [
"error",
{
"devDependencies": [
"**/test/**",
"**/build-tools/**"
],
"optionalDependencies": false,
"peerDependencies": true
}
],
"import/no-unresolved": [
"error"
],
"import/order": [
"warn",
{
"groups": [
"builtin",
"external"
],
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
],
"no-duplicate-imports": [
"error"
],
"no-shadow": [
"off"
],
"@typescript-eslint/no-shadow": [
"error"
],
"key-spacing": [
"error"
],
"no-multiple-empty-lines": [
"error"
],
"@typescript-eslint/no-floating-promises": [
"error"
],
"no-return-await": [
"off"
],
"@typescript-eslint/return-await": [
"error"
],
"no-trailing-spaces": [
"error"
],
"dot-notation": [
"error"
],
"no-bitwise": [
"error"
],
"@typescript-eslint/member-ordering": [
"error",
{
"default": [
"public-static-field",
"public-static-method",
"protected-static-field",
"protected-static-method",
"private-static-field",
"private-static-method",
"field",
"constructor",
"method"
]
}
],
"header/header": [
2,
"../../header.js"
]
},
"overrides": [
{
"files": [
".projenrc.js"
],
"rules": {
"@typescript-eslint/no-require-imports": "off",
"import/no-extraneous-dependencies": "off"
}
}
]
}
5 changes: 5 additions & 0 deletions packages/threat-composer-app-browser-extension/.gitattributes

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 48d54f3

Please sign in to comment.