extension-create 2.0.0-alpha.3 → 2.0.0-alpha.5
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.
- package/dist/action/README.md +37 -0
- package/dist/action/action/index.html +40 -0
- package/dist/action/action/scripts.js +11 -0
- package/dist/action/action/styles.css +23 -0
- package/dist/action/images/extension_128.png +0 -0
- package/dist/action/images/extension_16.png +0 -0
- package/dist/action/images/extension_48.png +0 -0
- package/dist/action/manifest.json +21 -0
- package/dist/action/package.json +21 -0
- package/dist/action-chatgpt/.env.example +1 -0
- package/dist/action-chatgpt/README.md +37 -0
- package/dist/action-chatgpt/action/ActionApp.tsx +118 -0
- package/dist/action-chatgpt/action/index.html +13 -0
- package/dist/action-chatgpt/action/scripts.tsx +12 -0
- package/dist/action-chatgpt/action/styles.css +8 -0
- package/dist/action-chatgpt/extension-env.d.ts +9 -0
- package/dist/action-chatgpt/images/chatgpt.png +0 -0
- package/dist/action-chatgpt/images/extension.png +0 -0
- package/dist/action-chatgpt/images/extension_128.png +0 -0
- package/dist/action-chatgpt/images/extension_16.png +0 -0
- package/dist/action-chatgpt/images/extension_48.png +0 -0
- package/dist/action-chatgpt/manifest.json +21 -0
- package/dist/action-chatgpt/package.json +30 -0
- package/dist/action-chatgpt/postcss.config.js +6 -0
- package/dist/action-chatgpt/tailwind.config.js +8 -0
- package/dist/action-chatgpt/tsconfig.json +21 -0
- package/dist/config-stylelint/README.md +37 -0
- package/dist/config-stylelint/images/extension_128.png +0 -0
- package/dist/config-stylelint/images/extension_16.png +0 -0
- package/dist/config-stylelint/images/extension_48.png +0 -0
- package/dist/config-stylelint/images/stylelint.svg +1 -0
- package/dist/config-stylelint/manifest.json +15 -0
- package/dist/config-stylelint/newtab/index.html +40 -0
- package/dist/config-stylelint/newtab/scripts.js +11 -0
- package/dist/config-stylelint/newtab/styles.css +20 -0
- package/dist/config-stylelint/package.json +23 -0
- package/dist/config-stylelint/stylelint.config.json +1 -0
- package/dist/content/README.md +37 -0
- package/dist/content/background.js +21 -0
- package/dist/content/content/scripts.js +32 -0
- package/dist/content/content/styles.css +54 -0
- package/dist/content/images/extension_128.png +0 -0
- package/dist/content/images/extension_16.png +0 -0
- package/dist/content/images/extension_48.png +0 -0
- package/dist/content/manifest.json +35 -0
- package/dist/content/package.json +20 -0
- package/dist/content-css-module/README.md +37 -0
- package/dist/content-css-module/background.js +21 -0
- package/dist/content-css-module/content/Logo.module.css +11 -0
- package/dist/content-css-module/content/scripts.js +33 -0
- package/dist/content-css-module/content/styles.css +40 -0
- package/dist/content-css-module/images/extension_128.png +0 -0
- package/dist/content-css-module/images/extension_16.png +0 -0
- package/dist/content-css-module/images/extension_48.png +0 -0
- package/dist/content-css-module/manifest.json +35 -0
- package/dist/content-css-module/package.json +20 -0
- package/dist/content-less/README.md +37 -0
- package/dist/content-less/background.js +21 -0
- package/dist/content-less/content/scripts.js +32 -0
- package/dist/content-less/content/styles.less +51 -0
- package/dist/content-less/images/extension_128.png +0 -0
- package/dist/content-less/images/extension_16.png +0 -0
- package/dist/content-less/images/extension_48.png +0 -0
- package/dist/content-less/manifest.json +35 -0
- package/dist/content-less/package.json +21 -0
- package/dist/content-main-world/README.md +37 -0
- package/dist/content-main-world/background.js +19 -0
- package/dist/content-main-world/content/scripts.js +32 -0
- package/dist/content-main-world/content/styles.css +51 -0
- package/dist/content-main-world/images/extension_128.png +0 -0
- package/dist/content-main-world/images/extension_16.png +0 -0
- package/dist/content-main-world/images/extension_48.png +0 -0
- package/dist/content-main-world/manifest.json +37 -0
- package/dist/content-main-world/package.json +20 -0
- package/dist/content-preact/README.md +37 -0
- package/dist/content-preact/background.ts +1 -0
- package/dist/content-preact/content/ContentApp.tsx +92 -0
- package/dist/content-preact/content/scripts.tsx +14 -0
- package/dist/content-preact/content/styles.css +10 -0
- package/dist/content-preact/extension-env.d.ts +9 -0
- package/dist/content-preact/images/chromeWindow.png +0 -0
- package/dist/content-preact/images/extension_128.png +0 -0
- package/dist/content-preact/images/extension_16.png +0 -0
- package/dist/content-preact/images/extension_48.png +0 -0
- package/dist/content-preact/images/preact.png +0 -0
- package/dist/content-preact/images/tailwind.png +0 -0
- package/dist/content-preact/images/tailwind_bg.png +0 -0
- package/dist/content-preact/images/typescript.png +0 -0
- package/dist/content-preact/manifest.json +31 -0
- package/dist/content-preact/package.json +27 -0
- package/dist/content-preact/postcss.config.js +6 -0
- package/dist/content-preact/tailwind.config.js +8 -0
- package/dist/content-preact/tsconfig.json +26 -0
- package/dist/content-react/README.md +37 -0
- package/dist/content-react/background.ts +1 -0
- package/dist/content-react/content/ContentApp.tsx +86 -0
- package/dist/content-react/content/scripts.tsx +17 -0
- package/dist/content-react/content/styles.css +10 -0
- package/dist/content-react/extension-env.d.ts +9 -0
- package/dist/content-react/images/chromeWindow.png +0 -0
- package/dist/content-react/images/extension_128.png +0 -0
- package/dist/content-react/images/extension_16.png +0 -0
- package/dist/content-react/images/extension_48.png +0 -0
- package/dist/content-react/images/react.png +0 -0
- package/dist/content-react/images/tailwind.png +0 -0
- package/dist/content-react/images/tailwind_bg.png +0 -0
- package/dist/content-react/images/typescript.png +0 -0
- package/dist/content-react/manifest.json +28 -0
- package/dist/content-react/package.json +28 -0
- package/dist/content-react/postcss.config.js +6 -0
- package/dist/content-react/tailwind.config.js +8 -0
- package/dist/content-react/tsconfig.json +21 -0
- package/dist/content-sass/README.md +37 -0
- package/dist/content-sass/background.js +21 -0
- package/dist/content-sass/content/scripts.js +32 -0
- package/dist/content-sass/content/styles.scss +51 -0
- package/dist/content-sass/images/extension_128.png +0 -0
- package/dist/content-sass/images/extension_16.png +0 -0
- package/dist/content-sass/images/extension_48.png +0 -0
- package/dist/content-sass/manifest.json +35 -0
- package/dist/content-sass/package.json +21 -0
- package/dist/content-sass-module/README.md +37 -0
- package/dist/content-sass-module/background.js +21 -0
- package/dist/content-sass-module/content/Logo.module.scss +18 -0
- package/dist/content-sass-module/content/scripts.js +33 -0
- package/dist/content-sass-module/content/styles.scss +40 -0
- package/dist/content-sass-module/images/extension_128.png +0 -0
- package/dist/content-sass-module/images/extension_16.png +0 -0
- package/dist/content-sass-module/images/extension_48.png +0 -0
- package/dist/content-sass-module/manifest.json +35 -0
- package/dist/content-sass-module/package.json +21 -0
- package/dist/content-tailwind/README.md +37 -0
- package/dist/content-tailwind/background.js +21 -0
- package/dist/content-tailwind/content/content.js +45 -0
- package/dist/content-tailwind/content/scripts.js +6 -0
- package/dist/content-tailwind/content/styles.css +10 -0
- package/dist/content-tailwind/images/chromeWindow.png +0 -0
- package/dist/content-tailwind/images/extension_128.png +0 -0
- package/dist/content-tailwind/images/extension_16.png +0 -0
- package/dist/content-tailwind/images/extension_48.png +0 -0
- package/dist/content-tailwind/images/react.png +0 -0
- package/dist/content-tailwind/images/tailwind.png +0 -0
- package/dist/content-tailwind/images/tailwind_bg.png +0 -0
- package/dist/content-tailwind/manifest.json +35 -0
- package/dist/content-tailwind/package.json +23 -0
- package/dist/content-tailwind/postcss.config.js +6 -0
- package/dist/content-tailwind/tailwind.config.js +8 -0
- package/dist/content-typescript/README.md +37 -0
- package/dist/content-typescript/background.ts +26 -0
- package/dist/content-typescript/content/scripts.ts +33 -0
- package/dist/content-typescript/content/styles.css +51 -0
- package/dist/content-typescript/extension-env.d.ts +9 -0
- package/dist/content-typescript/images/extension_128.png +0 -0
- package/dist/content-typescript/images/extension_16.png +0 -0
- package/dist/content-typescript/images/extension_48.png +0 -0
- package/dist/content-typescript/images/typescript.png +0 -0
- package/dist/content-typescript/manifest.json +35 -0
- package/dist/content-typescript/package.json +21 -0
- package/dist/content-typescript/tsconfig.json +21 -0
- package/dist/content-vue/README.md +37 -0
- package/dist/content-vue/background.ts +1 -0
- package/dist/content-vue/content/ContentApp.vue +90 -0
- package/dist/content-vue/content/scripts.ts +13 -0
- package/dist/content-vue/content/shims-vue.d.ts +6 -0
- package/dist/content-vue/content/styles.css +10 -0
- package/dist/content-vue/extension-env.d.ts +9 -0
- package/dist/content-vue/images/chromeWindow.png +0 -0
- package/dist/content-vue/images/extension_128.png +0 -0
- package/dist/content-vue/images/extension_16.png +0 -0
- package/dist/content-vue/images/extension_48.png +0 -0
- package/dist/content-vue/images/tailwind.png +0 -0
- package/dist/content-vue/images/tailwind_bg.png +0 -0
- package/dist/content-vue/images/typescript.png +0 -0
- package/dist/content-vue/images/vue.svg +8 -0
- package/dist/content-vue/manifest.json +31 -0
- package/dist/content-vue/package.json +25 -0
- package/dist/content-vue/postcss.config.js +6 -0
- package/dist/content-vue/tailwind.config.js +8 -0
- package/dist/content-vue/tsconfig.json +21 -0
- package/dist/declarative_net_request/README.md +37 -0
- package/dist/declarative_net_request/images/extension_128.png +0 -0
- package/dist/declarative_net_request/images/extension_16.png +0 -0
- package/dist/declarative_net_request/images/extension_48.png +0 -0
- package/dist/declarative_net_request/manifest.json +34 -0
- package/dist/declarative_net_request/package.json +21 -0
- package/dist/declarative_net_request/public/public_ruleset.json +72 -0
- package/dist/declarative_net_request/rules_1.json +72 -0
- package/dist/init/README.md +37 -0
- package/dist/init/manifest.json +7 -0
- package/dist/init/package.json +32 -0
- package/dist/locales/README.md +37 -0
- package/dist/locales/_locales/en/messages.json +10 -0
- package/dist/locales/_locales/pt_BR/messages.json +10 -0
- package/dist/locales/action/index.html +40 -0
- package/dist/locales/action/scripts.js +3 -0
- package/dist/locales/action/styles.css +23 -0
- package/dist/locales/images/extension_128.png +0 -0
- package/dist/locales/images/extension_16.png +0 -0
- package/dist/locales/images/extension_48.png +0 -0
- package/dist/locales/manifest.json +19 -0
- package/dist/locales/package.json +21 -0
- package/dist/module.js +11 -11
- package/dist/new-less/README.md +37 -0
- package/dist/new-less/images/extension_128.png +0 -0
- package/dist/new-less/images/extension_16.png +0 -0
- package/dist/new-less/images/extension_48.png +0 -0
- package/dist/new-less/manifest.json +15 -0
- package/dist/new-less/newtab/index.html +40 -0
- package/dist/new-less/newtab/scripts.js +11 -0
- package/dist/new-less/newtab/styles.less +19 -0
- package/dist/new-less/package.json +21 -0
- package/dist/new-preact/README.md +37 -0
- package/dist/new-preact/extension-env.d.ts +9 -0
- package/dist/new-preact/images/extension_128.png +0 -0
- package/dist/new-preact/images/extension_16.png +0 -0
- package/dist/new-preact/images/extension_48.png +0 -0
- package/dist/new-preact/images/preact.png +0 -0
- package/dist/new-preact/manifest.json +15 -0
- package/dist/new-preact/newtab/NewTabApp.tsx +27 -0
- package/dist/new-preact/newtab/index.html +13 -0
- package/dist/new-preact/newtab/scripts.tsx +5 -0
- package/dist/new-preact/newtab/styles.css +32 -0
- package/dist/new-preact/package.json +27 -0
- package/dist/new-preact/tsconfig.json +21 -0
- package/dist/new-react/README.md +37 -0
- package/dist/new-react/extension-env.d.ts +9 -0
- package/dist/new-react/images/extension_128.png +0 -0
- package/dist/new-react/images/extension_16.png +0 -0
- package/dist/new-react/images/extension_48.png +0 -0
- package/dist/new-react/images/react.png +0 -0
- package/dist/new-react/manifest.json +15 -0
- package/dist/new-react/newtab/NewTabApp.tsx +27 -0
- package/dist/new-react/newtab/index.html +13 -0
- package/dist/new-react/newtab/scripts.tsx +12 -0
- package/dist/new-react/newtab/styles.css +23 -0
- package/dist/new-react/package.json +28 -0
- package/dist/new-react/tsconfig.json +21 -0
- package/dist/new-sass/README.md +37 -0
- package/dist/new-sass/images/extension_128.png +0 -0
- package/dist/new-sass/images/extension_16.png +0 -0
- package/dist/new-sass/images/extension_48.png +0 -0
- package/dist/new-sass/manifest.json +15 -0
- package/dist/new-sass/newtab/index.html +40 -0
- package/dist/new-sass/newtab/scripts.js +11 -0
- package/dist/new-sass/newtab/styles.scss +19 -0
- package/dist/new-sass/package.json +22 -0
- package/dist/new-tailwind/README.md +37 -0
- package/dist/new-tailwind/extension-env.d.ts +9 -0
- package/dist/new-tailwind/images/chromeWindow.png +0 -0
- package/dist/new-tailwind/images/extension_128.png +0 -0
- package/dist/new-tailwind/images/extension_16.png +0 -0
- package/dist/new-tailwind/images/extension_48.png +0 -0
- package/dist/new-tailwind/images/react.png +0 -0
- package/dist/new-tailwind/images/tailwind.png +0 -0
- package/dist/new-tailwind/images/tailwind_bg.png +0 -0
- package/dist/new-tailwind/manifest.json +15 -0
- package/dist/new-tailwind/newtab/NewTabApp.tsx +67 -0
- package/dist/new-tailwind/newtab/index.html +13 -0
- package/dist/new-tailwind/newtab/scripts.tsx +12 -0
- package/dist/new-tailwind/newtab/styles.css +3 -0
- package/dist/new-tailwind/package.json +28 -0
- package/dist/new-tailwind/postcss.config.js +6 -0
- package/dist/new-tailwind/tailwind.config.js +8 -0
- package/dist/new-tailwind/tsconfig.json +21 -0
- package/dist/new-typescript/README.md +37 -0
- package/dist/new-typescript/extension-env.d.ts +9 -0
- package/dist/new-typescript/images/extension_128.png +0 -0
- package/dist/new-typescript/images/extension_16.png +0 -0
- package/dist/new-typescript/images/extension_48.png +0 -0
- package/dist/new-typescript/images/typescript.png +0 -0
- package/dist/new-typescript/manifest.json +15 -0
- package/dist/new-typescript/newtab/index.html +25 -0
- package/dist/new-typescript/newtab/scripts.ts +10 -0
- package/dist/new-typescript/newtab/styles.css +18 -0
- package/dist/new-typescript/package.json +22 -0
- package/dist/new-typescript/tsconfig.json +21 -0
- package/dist/new-vue/README.md +37 -0
- package/dist/new-vue/extension-env.d.ts +9 -0
- package/dist/new-vue/images/extension_128.png +0 -0
- package/dist/new-vue/images/extension_16.png +0 -0
- package/dist/new-vue/images/extension_48.png +0 -0
- package/dist/new-vue/images/vue.svg +8 -0
- package/dist/new-vue/manifest.json +15 -0
- package/dist/new-vue/newtab/NewTabApp.vue +30 -0
- package/dist/new-vue/newtab/index.html +13 -0
- package/dist/new-vue/newtab/scripts.ts +7 -0
- package/dist/new-vue/newtab/styles.css +36 -0
- package/dist/new-vue/package.json +25 -0
- package/dist/new-vue/tsconfig.json +21 -0
- package/dist/sidebar/README.md +37 -0
- package/dist/sidebar/images/extension_128.png +0 -0
- package/dist/sidebar/images/extension_16.png +0 -0
- package/dist/sidebar/images/extension_48.png +0 -0
- package/dist/sidebar/manifest.json +25 -0
- package/dist/sidebar/package.json +21 -0
- package/dist/sidebar/puzzle.png +0 -0
- package/dist/sidebar/sidebar/index.html +39 -0
- package/dist/sidebar/sidebar/scripts.js +11 -0
- package/dist/sidebar/sidebar/styles.css +27 -0
- package/dist/sidebar/test_16.png +0 -0
- package/dist/sidebar/test_32.png +0 -0
- package/dist/sidebar/test_48.png +0 -0
- package/dist/sidebar/test_64.png +0 -0
- package/dist/special-folders-pages/README.md +37 -0
- package/dist/special-folders-pages/background.js +5 -0
- package/dist/special-folders-pages/images/extension_128.png +0 -0
- package/dist/special-folders-pages/images/extension_16.png +0 -0
- package/dist/special-folders-pages/images/extension_48.png +0 -0
- package/dist/special-folders-pages/images/notpublic-file.png +0 -0
- package/dist/special-folders-pages/manifest.json +26 -0
- package/dist/special-folders-pages/package.json +21 -0
- package/dist/special-folders-pages/pages/custom.html +8 -0
- package/dist/special-folders-pages/pages/main.css +18 -0
- package/dist/special-folders-pages/pages/main.html +16 -0
- package/dist/special-folders-pages/pages/main.js +1 -0
- package/dist/special-folders-pages/public/css/file.css +3 -0
- package/dist/special-folders-pages/public/html/file.html +8 -0
- package/dist/special-folders-pages/public/img/icon.png +0 -0
- package/dist/special-folders-pages/public/js/file.js +0 -0
- package/dist/special-folders-pages/sandbox/index.html +24 -0
- package/dist/special-folders-pages/sandbox/scripts.js +0 -0
- package/dist/special-folders-pages/sandbox/styles.css +1 -0
- package/dist/special-folders-scripts/README.md +37 -0
- package/dist/special-folders-scripts/background.js +24 -0
- package/dist/special-folders-scripts/images/extension_128.png +0 -0
- package/dist/special-folders-scripts/images/extension_16.png +0 -0
- package/dist/special-folders-scripts/images/extension_48.png +0 -0
- package/dist/special-folders-scripts/manifest.json +27 -0
- package/dist/special-folders-scripts/package.json +21 -0
- package/dist/special-folders-scripts/pages/index.css +5 -0
- package/dist/special-folders-scripts/pages/index.html +3 -0
- package/dist/special-folders-scripts/pages/index.js +1 -0
- package/dist/special-folders-scripts/public/extension.png +0 -0
- package/dist/special-folders-scripts/scripts/content-script.js +3 -0
- package/dist/storage/README.md +37 -0
- package/dist/storage/images/extension_128.png +0 -0
- package/dist/storage/images/extension_16.png +0 -0
- package/dist/storage/images/extension_48.png +0 -0
- package/dist/storage/manifest.json +15 -0
- package/dist/storage/package.json +21 -0
- package/dist/storage/schema.json +44 -0
- package/package.json +2 -2
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# action
|
|
2
|
+
|
|
3
|
+
> An Extension.js example.
|
|
4
|
+
|
|
5
|
+
## Scripts Available
|
|
6
|
+
|
|
7
|
+
In the project directory, you can run:
|
|
8
|
+
|
|
9
|
+
### yarn dev
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
// Runs the app in the development mode.
|
|
13
|
+
// Will open a new browser instance with your extension loaded.
|
|
14
|
+
// The page will reload when you make changes.
|
|
15
|
+
yarn dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### yarn start
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
// Runs the app in the production mode.
|
|
22
|
+
// Will open a new browser instance with your extension loaded.
|
|
23
|
+
// This is how your browser extension will work once published.
|
|
24
|
+
yarn start
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### yarn build
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
// Builds the app for production.
|
|
31
|
+
// Bundles your browser extension in production mode for the target browser.
|
|
32
|
+
yarn build
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Learn More
|
|
36
|
+
|
|
37
|
+
Learn more about creating cross-browser extensions in the [Extension.js](https://extension.js.org) documentation.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Action Extension</title>
|
|
7
|
+
<link
|
|
8
|
+
rel="stylesheet"
|
|
9
|
+
href="https://unpkg.com/sakura.css/css/sakura.css"
|
|
10
|
+
media="screen"
|
|
11
|
+
/>
|
|
12
|
+
<link
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
href="https://unpkg.com/sakura.css/css/sakura-dark.css"
|
|
15
|
+
media="screen and (prefers-color-scheme: dark)"
|
|
16
|
+
/>
|
|
17
|
+
<link rel="stylesheet" href="./styles.css" media="screen" />
|
|
18
|
+
</head>
|
|
19
|
+
<body class="popup">
|
|
20
|
+
<header>
|
|
21
|
+
<h1>
|
|
22
|
+
<img
|
|
23
|
+
class="action"
|
|
24
|
+
src="../images/extension_128.png"
|
|
25
|
+
alt="The Extension logo"
|
|
26
|
+
width="72px"
|
|
27
|
+
/>
|
|
28
|
+
<br />
|
|
29
|
+
Welcome to your Action Extension
|
|
30
|
+
</h1>
|
|
31
|
+
<p>
|
|
32
|
+
Learn more about creating cross-browser extensions at
|
|
33
|
+
<a href="https://extension.js.org" target="_blank"
|
|
34
|
+
>https://extension.js.org</a
|
|
35
|
+
>.
|
|
36
|
+
</p>
|
|
37
|
+
</header>
|
|
38
|
+
</body>
|
|
39
|
+
<script src="./scripts.js"></script>
|
|
40
|
+
</html>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
body {
|
|
2
|
+
display: flex;
|
|
3
|
+
justify-content: center;
|
|
4
|
+
align-items: center;
|
|
5
|
+
width: 300px;
|
|
6
|
+
padding: 2em;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
h1 {
|
|
10
|
+
font-size: 2.7em;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.action {
|
|
14
|
+
filter: grayscale(1);
|
|
15
|
+
transition:
|
|
16
|
+
filter 2s,
|
|
17
|
+
border-color 2s;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.action:hover {
|
|
21
|
+
filter: grayscale(0);
|
|
22
|
+
border-color: aquamarine;
|
|
23
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifest_version": 3,
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"name": "action",
|
|
5
|
+
"description": "An Extension.js example.",
|
|
6
|
+
"icons": {
|
|
7
|
+
"16": "images/extension_16.png",
|
|
8
|
+
"48": "images/extension_48.png",
|
|
9
|
+
"128": "images/extension_128.png"
|
|
10
|
+
},
|
|
11
|
+
"action": {
|
|
12
|
+
"default_popup": "action/index.html",
|
|
13
|
+
"default_title": "Action",
|
|
14
|
+
"default_icon": {
|
|
15
|
+
"16": "images/extension_16.png",
|
|
16
|
+
"48": "images/extension_48.png",
|
|
17
|
+
"128": "images/extension_128.png"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"author": "Your Name"
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"private": true,
|
|
3
|
+
"name": "action",
|
|
4
|
+
"description": "An Extension.js example.",
|
|
5
|
+
"version": "0.0.1",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Your Name",
|
|
8
|
+
"email": "your@email.com",
|
|
9
|
+
"url": "https://yourwebsite.com"
|
|
10
|
+
},
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"scripts": {
|
|
13
|
+
"dev": "extension dev",
|
|
14
|
+
"start": "extension start",
|
|
15
|
+
"build": "extension build"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"extension": "latest"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
EXTENSION_OPENAI_API_KEY='My API Key'
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# action-chatgpt
|
|
2
|
+
|
|
3
|
+
> An Extension.js example.
|
|
4
|
+
|
|
5
|
+
## Scripts Available
|
|
6
|
+
|
|
7
|
+
In the project directory, you can run:
|
|
8
|
+
|
|
9
|
+
### yarn dev
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
// Runs the app in the development mode.
|
|
13
|
+
// Will open a new browser instance with your extension loaded.
|
|
14
|
+
// The page will reload when you make changes.
|
|
15
|
+
yarn dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### yarn start
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
// Runs the app in the production mode.
|
|
22
|
+
// Will open a new browser instance with your extension loaded.
|
|
23
|
+
// This is how your browser extension will work once published.
|
|
24
|
+
yarn start
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### yarn build
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
// Builds the app for production.
|
|
31
|
+
// Bundles your browser extension in production mode for the target browser.
|
|
32
|
+
yarn build
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Learn More
|
|
36
|
+
|
|
37
|
+
Learn more about creating cross-browser extensions in the [Extension.js](https://extension.js.org) documentation.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import {useState, type FormEvent} from 'react'
|
|
2
|
+
import OpenAI from 'openai'
|
|
3
|
+
import chatgptLogo from '../images/chatgpt.png'
|
|
4
|
+
import extensionJsLogo from '../images/extension_128.png'
|
|
5
|
+
|
|
6
|
+
const openai = new OpenAI({
|
|
7
|
+
apiKey: process.env.EXTENSION_OPENAI_API_KEY!,
|
|
8
|
+
dangerouslyAllowBrowser: true
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
interface Message {
|
|
12
|
+
content: string
|
|
13
|
+
role: 'user' | 'assistant'
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function ActionApp() {
|
|
17
|
+
const [messages, setMessages] = useState<Message[]>([
|
|
18
|
+
{
|
|
19
|
+
content:
|
|
20
|
+
'Hello there! This is your ChatGPT extension sample, ' +
|
|
21
|
+
'built with React, Tailwind.css, and DaisyUI. ' +
|
|
22
|
+
'For it to work, create a .env file with your EXTENSION_OPENAI_API_KEY. ' +
|
|
23
|
+
"You can get an API key from OpenAI's website",
|
|
24
|
+
role: 'assistant'
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
content: 'https://platform.openai.com/api-keys',
|
|
28
|
+
role: 'assistant'
|
|
29
|
+
}
|
|
30
|
+
])
|
|
31
|
+
|
|
32
|
+
const [isTyping, setIsTyping] = useState(false)
|
|
33
|
+
|
|
34
|
+
const handleSubmit = async (e: FormEvent<HTMLFormElement>) => {
|
|
35
|
+
e.preventDefault()
|
|
36
|
+
|
|
37
|
+
const form = e.target as HTMLFormElement
|
|
38
|
+
const input = form[0] as HTMLInputElement
|
|
39
|
+
|
|
40
|
+
const newMessage: Message = {
|
|
41
|
+
content: input.value,
|
|
42
|
+
role: 'user'
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const newMessages = [...messages, newMessage]
|
|
46
|
+
|
|
47
|
+
setMessages(newMessages)
|
|
48
|
+
setIsTyping(true)
|
|
49
|
+
form.reset()
|
|
50
|
+
|
|
51
|
+
const completion = await openai.chat.completions.create({
|
|
52
|
+
model: 'gpt-3.5-turbo',
|
|
53
|
+
messages: newMessages
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
setMessages([...newMessages, completion.choices[0].message as Message])
|
|
57
|
+
setIsTyping(false)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return (
|
|
61
|
+
<section className="container mx-auto p-5 fixed inset-0">
|
|
62
|
+
<div className="w-full h-full flex flex-col">
|
|
63
|
+
<div className="flex-grow overflow-auto">
|
|
64
|
+
{messages.length &&
|
|
65
|
+
messages.map((msg, i) => (
|
|
66
|
+
<div
|
|
67
|
+
className={`chat ${
|
|
68
|
+
msg.role === 'assistant' ? 'chat-start' : 'chat-end'
|
|
69
|
+
}`}
|
|
70
|
+
key={'chatKey' + i}
|
|
71
|
+
>
|
|
72
|
+
<div className="chat-image avatar">
|
|
73
|
+
<div className="w-10 rounded-full">
|
|
74
|
+
<img
|
|
75
|
+
src={
|
|
76
|
+
msg.role === 'assistant' ? chatgptLogo : extensionJsLogo
|
|
77
|
+
}
|
|
78
|
+
alt="avatar"
|
|
79
|
+
/>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
<div className="chat-bubble">{msg.content}</div>
|
|
83
|
+
</div>
|
|
84
|
+
))}
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
<form className="form-control items-center" onSubmit={handleSubmit}>
|
|
88
|
+
<div className="input-group max-w-full w-[800px] relative flex items-center">
|
|
89
|
+
{isTyping && (
|
|
90
|
+
<small className="absolute -top-5 left-0.5 animate-pulse">
|
|
91
|
+
ChatGPT Extension is typing...
|
|
92
|
+
</small>
|
|
93
|
+
)}
|
|
94
|
+
|
|
95
|
+
<input
|
|
96
|
+
type="text"
|
|
97
|
+
placeholder="Ask ChatGPT a question."
|
|
98
|
+
className="input input-bordered flex-grow mr-2.5"
|
|
99
|
+
required
|
|
100
|
+
/>
|
|
101
|
+
<button className="btn btn-square" type="submit">
|
|
102
|
+
<svg
|
|
103
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
104
|
+
className="h-6 w-6"
|
|
105
|
+
fill="currentColor"
|
|
106
|
+
viewBox="0 0 16 16"
|
|
107
|
+
>
|
|
108
|
+
<path d="M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576 6.636 10.07Zm6.787-8.201L1.591 6.602l4.339 2.76 7.494-7.493Z" />
|
|
109
|
+
</svg>
|
|
110
|
+
</button>
|
|
111
|
+
</div>
|
|
112
|
+
</form>
|
|
113
|
+
</div>
|
|
114
|
+
</section>
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export default ActionApp
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>ChatGPT Template</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<noscript>You need to enable JavaScript to run this extension.</noscript>
|
|
10
|
+
<div id="root"></div>
|
|
11
|
+
</body>
|
|
12
|
+
<script src="./scripts.tsx"></script>
|
|
13
|
+
</html>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import ReactDOM from 'react-dom/client'
|
|
3
|
+
import ActionApp from './ActionApp'
|
|
4
|
+
import './styles.css'
|
|
5
|
+
|
|
6
|
+
const root = ReactDOM.createRoot(document.getElementById('root')!)
|
|
7
|
+
|
|
8
|
+
root.render(
|
|
9
|
+
<React.StrictMode>
|
|
10
|
+
<ActionApp />
|
|
11
|
+
</React.StrictMode>
|
|
12
|
+
)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Required Extension.js types for TypeScript projects.
|
|
2
|
+
// This file is auto-generated and should not be excluded.
|
|
3
|
+
// If you need extra types, consider creating a new *.d.ts and
|
|
4
|
+
// referencing it in the "include" array of your tsconfig.json file.
|
|
5
|
+
// See https://www.typescriptlang.org/tsconfig#include for info.
|
|
6
|
+
/// <reference types="../../programs/develop/dist/types/index.d.ts" />
|
|
7
|
+
|
|
8
|
+
// Polyfill types for browser.* APIs.
|
|
9
|
+
/// <reference types="../../programs/develop/dist/types/polyfill.d.ts" />
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifest_version": 3,
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"name": "action-chatgpt",
|
|
5
|
+
"description": "An Extension.js example.",
|
|
6
|
+
"icons": {
|
|
7
|
+
"16": "images/extension_16.png",
|
|
8
|
+
"48": "images/extension_48.png",
|
|
9
|
+
"128": "images/extension_128.png"
|
|
10
|
+
},
|
|
11
|
+
"action": {
|
|
12
|
+
"default_icon": {
|
|
13
|
+
"16": "images/extension_16.png",
|
|
14
|
+
"48": "images/extension_48.png",
|
|
15
|
+
"128": "images/extension_128.png"
|
|
16
|
+
},
|
|
17
|
+
"default_title": "ChatGPT",
|
|
18
|
+
"default_popup": "action/index.html"
|
|
19
|
+
},
|
|
20
|
+
"author": "Your Name"
|
|
21
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"private": true,
|
|
3
|
+
"name": "action-chatgpt",
|
|
4
|
+
"description": "An Extension.js example.",
|
|
5
|
+
"version": "0.0.1",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Your Name",
|
|
8
|
+
"email": "your@email.com",
|
|
9
|
+
"url": "https://yourwebsite.com"
|
|
10
|
+
},
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"daisyui": "^4.12.10",
|
|
14
|
+
"openai": "^4.54.0",
|
|
15
|
+
"react": "^18.1.0",
|
|
16
|
+
"react-dom": "^18.1.0",
|
|
17
|
+
"tailwindcss": "^3.4.1"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@types/react": "^18.0.9",
|
|
21
|
+
"@types/react-dom": "^18.0.5",
|
|
22
|
+
"typescript": "5.3.3",
|
|
23
|
+
"extension": "latest"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"dev": "extension dev",
|
|
27
|
+
"start": "extension start",
|
|
28
|
+
"build": "extension build"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"allowJs": true,
|
|
4
|
+
"allowSyntheticDefaultImports": true,
|
|
5
|
+
"esModuleInterop": true,
|
|
6
|
+
"forceConsistentCasingInFileNames": true,
|
|
7
|
+
"isolatedModules": true,
|
|
8
|
+
"jsx": "react-jsx",
|
|
9
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
10
|
+
"moduleResolution": "node",
|
|
11
|
+
"module": "esnext",
|
|
12
|
+
"resolveJsonModule": true,
|
|
13
|
+
"strict": true,
|
|
14
|
+
"target": "esnext",
|
|
15
|
+
"verbatimModuleSyntax": true,
|
|
16
|
+
"useDefineForClassFields": true,
|
|
17
|
+
"skipLibCheck": true
|
|
18
|
+
},
|
|
19
|
+
"include": ["./"],
|
|
20
|
+
"exclude": ["node_modules", "dist"]
|
|
21
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# config-stylelint
|
|
2
|
+
|
|
3
|
+
> An Extension.js example.
|
|
4
|
+
|
|
5
|
+
## Scripts Available
|
|
6
|
+
|
|
7
|
+
In the project directory, you can run:
|
|
8
|
+
|
|
9
|
+
### yarn dev
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
// Runs the app in the development mode.
|
|
13
|
+
// Will open a new browser instance with your extension loaded.
|
|
14
|
+
// The page will reload when you make changes.
|
|
15
|
+
yarn dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### yarn start
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
// Runs the app in the production mode.
|
|
22
|
+
// Will open a new browser instance with your extension loaded.
|
|
23
|
+
// This is how your browser extension will work once published.
|
|
24
|
+
yarn start
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### yarn build
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
// Builds the app for production.
|
|
31
|
+
// Bundles your browser extension in production mode for the target browser.
|
|
32
|
+
yarn build
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Learn More
|
|
36
|
+
|
|
37
|
+
Learn more about creating cross-browser extensions in the [Extension.js](https://extension.js.org) documentation.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="2500" height="2393" viewBox="0 0 256 245" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M129.74 243.648c28-100.109 27.188-100.563 47.425-171.942l4.864 2.816c2.65 1.516 4.813.268 4.813-2.778V37.696C192.218 18.893 196.416 4.352 197.658 0h21.92L256 33.728 232.077 54.4l18.093 19.565-119.226 169.683c-.576.96-1.389.742-1.203 0zm13.025-215.782c1.088 0 1.958.595 1.958 1.344v17.44c0 .73-.877 1.324-1.958 1.324h-29.44c-1.088 0-1.965-.595-1.965-1.33V29.196c0-.736.877-1.344 1.958-1.344h29.44l.007.013zM179.117 8.55L146.72 27.251c.371.576.602 1.235.602 1.952v17.453c0 .896-.359 1.715-.935 2.368l32.723 18.893c2.228 1.293 4.058.237 4.058-2.336V10.893c0-2.58-1.818-3.629-4.051-2.343zm-70.362 38.106v-17.46c0-.716.23-1.375.602-1.945L76.96 8.538c-2.227-1.28-4.058-.23-4.058 2.342v54.688c0 2.573 1.83 3.629 4.064 2.336l32.717-18.893c-.576-.659-.921-1.472-.921-2.368l-.007.013zm16.301 196.992h1.203C98.266 143.539 99.072 143.085 78.835 71.706l-4.864 2.816c-2.643 1.516-4.813.268-4.813-2.778V37.696C63.782 18.899 59.584 4.352 58.342 0H36.43L0 33.728 23.917 54.4 5.824 73.971l119.232 169.677zM127.11 84.41a8.845 8.845 0 1 0 0-17.69 8.845 8.845 0 0 0 0 17.69zm0 52.576a8.845 8.845 0 1 0 0-17.69 8.845 8.845 0 0 0 0 17.69zm0 52.588a8.845 8.845 0 1 0 0-17.69 8.845 8.845 0 0 0 0 17.69z"/></svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifest_version": 3,
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"name": "config-stylelint",
|
|
5
|
+
"description": "An Extension.js example.",
|
|
6
|
+
"icons": {
|
|
7
|
+
"16": "images/extension_16.png",
|
|
8
|
+
"48": "images/extension_48.png",
|
|
9
|
+
"128": "images/extension_128.png"
|
|
10
|
+
},
|
|
11
|
+
"chrome_url_overrides": {
|
|
12
|
+
"newtab": "newtab/index.html"
|
|
13
|
+
},
|
|
14
|
+
"author": "Your Name"
|
|
15
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Stylelint Extension</title>
|
|
7
|
+
<link
|
|
8
|
+
rel="stylesheet"
|
|
9
|
+
href="https://unpkg.com/sakura.css/css/sakura.css"
|
|
10
|
+
media="screen"
|
|
11
|
+
/>
|
|
12
|
+
<link
|
|
13
|
+
rel="stylesheet"
|
|
14
|
+
href="https://unpkg.com/sakura.css/css/sakura-dark.css"
|
|
15
|
+
media="screen and (prefers-color-scheme: dark)"
|
|
16
|
+
/>
|
|
17
|
+
<link rel="stylesheet" href="./styles.css" media="screen" />
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<header>
|
|
21
|
+
<h1>
|
|
22
|
+
<img
|
|
23
|
+
class="stylelint"
|
|
24
|
+
src="../images/stylelint.svg"
|
|
25
|
+
alt="The Stylelint logo"
|
|
26
|
+
width="120px"
|
|
27
|
+
/>
|
|
28
|
+
<br />
|
|
29
|
+
Welcome to your Stylelint Extension
|
|
30
|
+
</h1>
|
|
31
|
+
<p>
|
|
32
|
+
Learn more about creating cross-browser extensions at
|
|
33
|
+
<a href="https://extension.js.org" target="_blank"
|
|
34
|
+
>https://extension.js.org</a
|
|
35
|
+
>.
|
|
36
|
+
</p>
|
|
37
|
+
</header>
|
|
38
|
+
</body>
|
|
39
|
+
<script src="./scripts.js"></script>
|
|
40
|
+
</html>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
body {
|
|
2
|
+
display: flex;
|
|
3
|
+
justify-content: center;
|
|
4
|
+
align-items: center;
|
|
5
|
+
height: calc(100vh - 26px);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
h1 {
|
|
9
|
+
font-size: 4.7em;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.stylelint:hover {
|
|
13
|
+
filter: grayscale(1);
|
|
14
|
+
transition: filter 2s,
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.new:hover {
|
|
18
|
+
filter: grayscale(0);
|
|
19
|
+
border-color: aquamarine;
|
|
20
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"private": true,
|
|
3
|
+
"name": "config-stylelint",
|
|
4
|
+
"description": "An Extension.js example.",
|
|
5
|
+
"version": "0.0.1",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Your Name",
|
|
8
|
+
"email": "your@email.com",
|
|
9
|
+
"url": "https://yourwebsite.com"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"lint:css": "stylelint '**/*.css'",
|
|
13
|
+
"dev": "extension dev",
|
|
14
|
+
"start": "extension start",
|
|
15
|
+
"build": "extension build"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"stylelint": "^16.7.0",
|
|
19
|
+
"stylelint-config-standard": "^36.0.1",
|
|
20
|
+
"extension": "latest"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {}
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"extends": ["stylelint-config-standard"]}
|