mirror of
https://gitlab.com/mickie1/share-freedom-extension
synced 2024-12-12 16:06:44 +01:00
Rewritten the entire app to TS
This commit is contained in:
parent
fa52828641
commit
cd322127d6
48
.all-contributorsrc
Normal file
48
.all-contributorsrc
Normal file
@ -0,0 +1,48 @@
|
||||
{
|
||||
"files": [
|
||||
"README.md"
|
||||
],
|
||||
"imageSize": 100,
|
||||
"commit": false,
|
||||
"contributors": [
|
||||
{
|
||||
"login": "davidnguyen179",
|
||||
"name": "David Nguyen",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6290720?v=4",
|
||||
"profile": "https://www.dzungnguyen.dev",
|
||||
"contributions": [
|
||||
"code",
|
||||
"doc",
|
||||
"design",
|
||||
"maintenance",
|
||||
"review",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "immint023",
|
||||
"name": "Minh Ngo",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/38607460?v=4",
|
||||
"profile": "https://github.com/immint023",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "3BenLee",
|
||||
"name": "Ben Harned",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/35267414?v=4",
|
||||
"profile": "http://benlee3.com",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
"projectName": "web-extension-boilerplate",
|
||||
"projectOwner": "davidnguyen179",
|
||||
"repoType": "github",
|
||||
"repoHost": "https://github.com",
|
||||
"skipCi": true
|
||||
}
|
63
.eslintrc.json
Normal file
63
.eslintrc.json
Normal file
@ -0,0 +1,63 @@
|
||||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es2021": true
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:import/errors",
|
||||
"plugin:import/warnings"
|
||||
],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 12,
|
||||
"sourceType": "module"
|
||||
},
|
||||
"plugins": [
|
||||
"@typescript-eslint",
|
||||
"import"
|
||||
],
|
||||
"rules": {
|
||||
"linebreak-style": [
|
||||
"error",
|
||||
"unix"
|
||||
],
|
||||
"quotes": [
|
||||
"error",
|
||||
"single"
|
||||
],
|
||||
"semi": [
|
||||
"error",
|
||||
"always"
|
||||
],
|
||||
"eol-last": [
|
||||
"error",
|
||||
"always"
|
||||
],
|
||||
"import/newline-after-import": [
|
||||
"error",
|
||||
{
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"@typescript-eslint/explicit-function-return-type": "off",
|
||||
"@typescript-eslint/explicit-module-boundary-types": "off",
|
||||
"no-console": "error",
|
||||
"@typescript-eslint/ban-ts-comment": "off",
|
||||
"@typescript-eslint/no-inferrable-types": "off",
|
||||
"@typescript-eslint/no-unused-vars": "error"
|
||||
},
|
||||
"settings": {
|
||||
"import/resolver": {
|
||||
"node": {
|
||||
"extensions": [
|
||||
".js",
|
||||
".jsx",
|
||||
".ts",
|
||||
".tsx"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
3
.githooks/pre-commit/lint-fix.sh
Executable file
3
.githooks/pre-commit/lint-fix.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
echo "Fixing eslint 🔧 🪚 🔨"
|
||||
npm run code:lint-fix
|
14
.githooks/pre-commit/prettier.sh
Executable file
14
.githooks/pre-commit/prettier.sh
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
CHANGED_FILES=$(git diff --cached --name-only --diff-filter=ACMR "*.js" "*.jsx" "*.ts" "*.tsx" | sed 's| |\\ |g')
|
||||
|
||||
[[ -z "$CHANGED_FILES" ]] && exit 0
|
||||
|
||||
echo "Running prettier 🚀🚀"
|
||||
echo "$CHANGED_FILES" | xargs ./node_modules/.bin/prettier --write
|
||||
|
||||
echo "$CHANGED_FILES" | xargs git add
|
||||
echo "Done prettier ✨✨"
|
||||
|
||||
exit 0
|
||||
|
4
.githooks/pre-push/lint.sh
Normal file
4
.githooks/pre-push/lint.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Running eslint... 👀"
|
||||
npm run code:lint
|
4
.githooks/pre-push/test.sh
Normal file
4
.githooks/pre-push/test.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Running unit test... 🤞 🚑 💊"
|
||||
npm run test:unit -- --coverage
|
4
.githooks/pre-push/typecheck.sh
Normal file
4
.githooks/pre-push/typecheck.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Running typecheck... 🩺 🔬 🔭"
|
||||
npm run code:typecheck
|
3
.github/FUNDING.yml
vendored
Normal file
3
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
custom: paypal.me/davidnguyen179
|
50
.github/workflows/workflow-config.yml
vendored
Normal file
50
.github/workflows/workflow-config.yml
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
name: 'ci/cd'
|
||||
# This workflow is triggered on pushes to the repository.
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
# Job name
|
||||
name: test
|
||||
# This job runs on Linux
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [14.x]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
id: checkout
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Cache node_modules
|
||||
uses: actions/cache@v2
|
||||
id: cache
|
||||
env:
|
||||
cache-name: cache-node-modules
|
||||
with:
|
||||
# npm cache files are stored in `~/.npm` on Linux/macOS
|
||||
path: |
|
||||
**/node_modules
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
- name: Installing packages...🏃♂️ 🏃♂️ 🏃♂️
|
||||
if: steps.cache.outputs.cache-hit != 'true'
|
||||
run: npm ci
|
||||
- name: Running typecheck... 🩺 🔬 🔭
|
||||
run: npm run code:typecheck
|
||||
- name: Running eslint... 👀
|
||||
run: npm run code:lint
|
||||
- name: Running unit test... 🤞 🚑 💊
|
||||
run: npm run test:unit -- --runInBand --coverage
|
||||
- name: Trigger codecov
|
||||
run: bash <(curl -s https://codecov.io/bash)
|
||||
- name: Run build Chrome
|
||||
run: npm run app:chrome
|
||||
- name: Run build Firefox
|
||||
run: npm run app:firefox
|
||||
- name: Run build Edge
|
||||
run: npm run app:edge
|
10
.gitignore
vendored
10
.gitignore
vendored
@ -1,5 +1,5 @@
|
||||
web-ext-artifacts
|
||||
web-ext-artifacts.*
|
||||
src.*
|
||||
*.org
|
||||
node_modules/
|
||||
dist/
|
||||
node_modules/
|
||||
coverage/
|
||||
.DS_Store
|
||||
.log/
|
1
.prettierignore
Normal file
1
.prettierignore
Normal file
@ -0,0 +1 @@
|
||||
node_modules/
|
5
.prettierrc.json
Normal file
5
.prettierrc.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"printWidth": 120,
|
||||
"singleQuote": true,
|
||||
"trailingComma": "es5"
|
||||
}
|
20
PRIVACY_POLICY.txt
Normal file
20
PRIVACY_POLICY.txt
Normal file
@ -0,0 +1,20 @@
|
||||
Chrome Web Store & Mozilla Add-on Store & Microsoft Edge Add-on Store Privacy Policies.
|
||||
======================================================================================================
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Introduce your web extension
|
||||
|
||||
Information We Collect
|
||||
======================
|
||||
|
||||
Does your web extension collect data?
|
||||
|
||||
- I collect data
|
||||
- I don't collect data
|
||||
|
||||
How it uses cookies
|
||||
========================
|
||||
|
||||
If your web extension uses cookies, describe where your extension uses cookies and why?
|
138
README.md
138
README.md
@ -21,35 +21,6 @@ Supported services/protocols:
|
||||
- Osada / Zap / Zot6
|
||||
- XMPP
|
||||
|
||||
|
||||
## Screenshots
|
||||
|
||||
![img](/src/img/screenshot-1.png)
|
||||
![img](/src/img/screenshot-2.png)
|
||||
![img](/src/img/screenshot-3.png)
|
||||
|
||||
|
||||
## Build
|
||||
|
||||
You need Node.js/npm
|
||||
|
||||
`npm install` then
|
||||
|
||||
`npm install --global web-ext`
|
||||
|
||||
Use the next command to generate the package (.zip file)
|
||||
|
||||
`web-ext build`
|
||||
|
||||
See [web-ext page](https://extensionworkshop.com/documentation/develop/getting-started-with-web-ext/).
|
||||
|
||||
**Optional:** Add-ons Linter by Mozilla
|
||||
|
||||
`npm install -g addons-linter`
|
||||
|
||||
See [repo](https://github.com/mozilla/addons-linter).
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
You can contribute in the following ways:
|
||||
@ -88,3 +59,112 @@ Copyleft (ɔ) 2021 - Miguel (mickie)
|
||||
|
||||
See LICENSE file for more information.
|
||||
|
||||
## TODO
|
||||
This boilerplate provides a skeleton to start developing cross-browser web extensions.
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||
[![All Contributors](https://img.shields.io/badge/all_contributors-3-orange.svg?style=flat-square)](#contributors-)
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||
|
||||
[![jest](https://jestjs.io/img/jest-badge.svg)](https://github.com/facebook/jest) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/davidnguyen179/web-extension-boilerplate/pulls)
|
||||
![ci/cd](https://github.com/davidnguyen179/web-extension-boilerplate/workflows/ci/cd/badge.svg)
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
npm i
|
||||
```
|
||||
|
||||
**Chrome**
|
||||
|
||||
```bash
|
||||
npm run app:chrome-dev
|
||||
```
|
||||
|
||||
**Edge**
|
||||
|
||||
```bash
|
||||
npm run app:edge-dev
|
||||
```
|
||||
|
||||
**Firefox**
|
||||
|
||||
```bash
|
||||
npm run app:firefox-dev
|
||||
```
|
||||
|
||||
## Production
|
||||
|
||||
```bash
|
||||
npm i
|
||||
```
|
||||
|
||||
```bash
|
||||
npm run app:chrome
|
||||
```
|
||||
|
||||
**Edge**
|
||||
|
||||
```bash
|
||||
npm run app:edge
|
||||
```
|
||||
|
||||
**Firefox**
|
||||
|
||||
```bash
|
||||
npm run app:firefox
|
||||
```
|
||||
|
||||
## Load package to browsers
|
||||
|
||||
**Chrome**
|
||||
|
||||
1. Go to the browser's URL address bar
|
||||
2. Enter `chrome://extensions/`
|
||||
3. Switch to "**Developer mode**"
|
||||
4. Load extension by clicking "**Load unpacked**"
|
||||
5. Browse to `dist/` in source code
|
||||
6. Done!
|
||||
|
||||
Check here for more detail: [https://developer.chrome.com/extensions/getstarted](https://developer.chrome.com/extensions/getstarted)
|
||||
|
||||
**Edge**
|
||||
|
||||
1. Go to the browser's URL address bar
|
||||
2. Enter `edge://extensions/`
|
||||
3. Turn on `Developer mode`
|
||||
4. Load extension by clicking "**Load unpacked**"
|
||||
5. Browse to `dist/` in source code
|
||||
6. Done!
|
||||
|
||||
**Firefox**
|
||||
|
||||
1. Go to the browser's URL address bar
|
||||
2. Enter `about:debugging#/runtime/this-firefox`
|
||||
3. Click **Load Temporary Add-on...**
|
||||
4. Browse to your `manifest.json` & click **Open**
|
||||
5. Done!
|
||||
|
||||
Check here for more details: [https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/](https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/)
|
||||
|
||||
## Contributors ✨
|
||||
|
||||
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center"><a href="https://www.dzungnguyen.dev"><img src="https://avatars.githubusercontent.com/u/6290720?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Nguyen</b></sub></a><br /><a href="https://github.com/davidnguyen179/web-extension-boilerplate/commits?author=davidnguyen179" title="Code">💻</a> <a href="https://github.com/davidnguyen179/web-extension-boilerplate/commits?author=davidnguyen179" title="Documentation">📖</a> <a href="#design-davidnguyen179" title="Design">🎨</a> <a href="#maintenance-davidnguyen179" title="Maintenance">🚧</a> <a href="https://github.com/davidnguyen179/web-extension-boilerplate/pulls?q=is%3Apr+reviewed-by%3Adavidnguyen179" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/davidnguyen179/web-extension-boilerplate/commits?author=davidnguyen179" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/immint023"><img src="https://avatars.githubusercontent.com/u/38607460?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Minh Ngo</b></sub></a><br /><a href="https://github.com/davidnguyen179/web-extension-boilerplate/commits?author=immint023" title="Code">💻</a> <a href="https://github.com/davidnguyen179/web-extension-boilerplate/commits?author=immint023" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://benlee3.com"><img src="https://avatars.githubusercontent.com/u/35267414?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ben Harned</b></sub></a><br /><a href="https://github.com/davidnguyen179/web-extension-boilerplate/commits?author=3BenLee" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
7
babel.config.js
Normal file
7
babel.config.js
Normal file
@ -0,0 +1,7 @@
|
||||
// babel.config.js
|
||||
module.exports = {
|
||||
presets: [
|
||||
['@babel/preset-env', { targets: { node: 'current' } }],
|
||||
'@babel/preset-typescript',
|
||||
],
|
||||
};
|
24
jest.config.js
Normal file
24
jest.config.js
Normal file
@ -0,0 +1,24 @@
|
||||
const ignores = ['/node_modules/', '__mocks__'];
|
||||
|
||||
module.exports = {
|
||||
collectCoverageFrom: ['src/lib/app.ts', 'src/lib/utils.ts'],
|
||||
testMatch: ['**/test/**/*.spec.+(ts|tsx|js)'],
|
||||
testPathIgnorePatterns: [...ignores],
|
||||
coveragePathIgnorePatterns: [...ignores, 'src/(umd|cjs|esm)-entry.js$'],
|
||||
transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$'],
|
||||
coverageDirectory: './coverage',
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
branches: 80,
|
||||
functions: 100,
|
||||
lines: 100,
|
||||
statements: 100,
|
||||
},
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js'],
|
||||
transform: {
|
||||
'^.+\\.(ts|tsx)$': 'ts-jest',
|
||||
},
|
||||
verbose: true,
|
||||
setupFilesAfterEnv: ['./jest.setup.js'],
|
||||
};
|
1
jest.setup.js
Normal file
1
jest.setup.js
Normal file
@ -0,0 +1 @@
|
||||
require('whatwg-fetch');
|
@ -1,59 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"module": "commonjs",
|
||||
"lib": ["es6"],
|
||||
// "allowJs": true,
|
||||
// "checkJs": true,
|
||||
// "jsx": "preserve",
|
||||
"declaration": true,
|
||||
// "declarationMap": true,
|
||||
// "sourceMap": true,
|
||||
// "outFile": "./",
|
||||
"outDir": "./dist",
|
||||
// "rootDir": "./",
|
||||
// "composite": true,
|
||||
"removeComments": true,
|
||||
// "noEmit": true,
|
||||
// "importHelpers": true,
|
||||
"downlevelIteration": true,
|
||||
// "isolatedModules": true,
|
||||
|
||||
/* Strict Type-Checking Options */
|
||||
"strict": true,
|
||||
"noImplicitAny": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictPropertyInitialization": true,
|
||||
"noImplicitThis": true,
|
||||
"alwaysStrict": true,
|
||||
|
||||
/* Additional Checks */
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
|
||||
/* Module Resolution Options */
|
||||
// "moduleResolution": "node",
|
||||
// "baseUrl": "./",
|
||||
// "paths": {},
|
||||
// "rootDirs": [],
|
||||
// "typeRoots": [],
|
||||
// "types": [],
|
||||
// "allowSyntheticDefaultImports": true,
|
||||
"esModuleInterop": true,
|
||||
// "preserveSymlinks": true,
|
||||
|
||||
/* Source Map Options */
|
||||
// "sourceRoot": "./",
|
||||
// "mapRoot": "./",
|
||||
// "inlineSourceMap": true,
|
||||
// "inlineSources": true,
|
||||
|
||||
/* Experimental Options */
|
||||
// "experimentalDecorators": true,
|
||||
// "emitDecoratorMetadata": true,
|
||||
},
|
||||
"include": ["./src"]
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
{
|
||||
"manifest_version": 2,
|
||||
|
||||
"name": "Share Freedom",
|
||||
"description": "share the current tab on the fediverse",
|
||||
"version": "2.1.3",
|
||||
"author": "Miguel",
|
||||
|
||||
"background": {
|
||||
"scripts": ["src/js/background.js"],
|
||||
"persistent": true
|
||||
},
|
||||
|
||||
"browser_action": {
|
||||
"default_icon": "src/img/icon-32-dark.png",
|
||||
"default_popup": "src/html/index.html",
|
||||
"default_title": "Share freedom",
|
||||
"theme_icons": [{
|
||||
"light": "src/img/icon-16-light.png",
|
||||
"dark": "src/img/icon-16-dark.png",
|
||||
"size": 16
|
||||
}, {
|
||||
"light": "src/img/icon-32-light.png",
|
||||
"dark": "src/img/icon-32-dark.png",
|
||||
"size": 32
|
||||
}]
|
||||
},
|
||||
|
||||
"icons": {
|
||||
"16":"src/img/icon-16-dark.png",
|
||||
"32":"src/img/icon-32-dark.png"
|
||||
},
|
||||
|
||||
"commands": {
|
||||
"_execute_browser_action": {
|
||||
"suggested_key": {
|
||||
"default": "Ctrl+Shift+U"
|
||||
},
|
||||
"description": "Execute the extension"
|
||||
}
|
||||
},
|
||||
|
||||
"options_ui": {
|
||||
"page": "src/html/options.html",
|
||||
"browser_style": true,
|
||||
"chrome_style": true
|
||||
},
|
||||
|
||||
"applications": {
|
||||
"gecko": {
|
||||
"id": "{c5880375-5496-4d02-ba27-7830809dbf08}",
|
||||
"strict_min_version": "59.0"
|
||||
}
|
||||
},
|
||||
|
||||
"permissions": [
|
||||
"tabs",
|
||||
"activeTab",
|
||||
"https://*/*",
|
||||
"storage"
|
||||
]
|
||||
|
||||
}
|
25548
package-lock.json
generated
25548
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
72
package.json
72
package.json
@ -1,29 +1,73 @@
|
||||
{
|
||||
"name": "share-freedom",
|
||||
"version": "2.2.0",
|
||||
"name": "fedishare",
|
||||
"version": "0.9.0",
|
||||
"description": "Share the current tab on the fediverse",
|
||||
"main": "index.js",
|
||||
"main": "background.js",
|
||||
"scripts": {
|
||||
"build:css": "postcss ./src/css/styles.css -o ./src/css/main.css",
|
||||
"build": "NODE_ENV=production postcss ./src/css/styles.css -o ./src/css/main.css"
|
||||
"code:lint": "eslint '**/**/*.{ts,tsx}'",
|
||||
"code:lint-fix": "eslint --fix '**/**/*.{ts,tsx}'",
|
||||
"code:prettier": "prettier --write '**/**/*.{ts,tsx}'",
|
||||
"code:typecheck": "./node_modules/.bin/tsc --noEmit",
|
||||
"app:chrome": "rimraf dist && cross-env BROWSER='chrome' webpack --config webpack/webpack.prod.js",
|
||||
"app:chrome-dev": "cross-env BROWSER='chrome' webpack --config webpack/webpack.dev.js --watch",
|
||||
"app:edge": "rimraf dist && cross-env BROWSER='edge' webpack --config webpack/webpack.prod.js",
|
||||
"app:edge-dev": "cross-env BROWSER='edge' webpack --config webpack/webpack.dev.js --watch",
|
||||
"app:firefox": "rimraf dist && cross-env BROWSER='firefox' webpack --config webpack/webpack.prod.js",
|
||||
"app:firefox-dev": "cross-env BROWSER='firefox' webpack --config webpack/webpack.dev.js --watch",
|
||||
"test:unit": "jest",
|
||||
"build:css": "postcss ./public/css/styles.css -o ./dist/css/main.css",
|
||||
"build": "NODE_ENV=production postcss ./public/css/styles.css -o ./dist/css/main.css"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://gitlab.com/mugcake/share-freedom-extension.git"
|
||||
"url": "git+https://gitlab.com/mugcake/fedishare.git"
|
||||
},
|
||||
"keywords": [
|
||||
"share",
|
||||
"fediverse"
|
||||
"chrome extension",
|
||||
"microsoft edge extension",
|
||||
"firefox addon",
|
||||
"web extension",
|
||||
"typescript",
|
||||
"ts",
|
||||
"jest",
|
||||
"sinon"
|
||||
],
|
||||
"author": "Mickie",
|
||||
"author": "Mickie <millet@tuta.io>",
|
||||
"license": "GPL-3.0",
|
||||
"bugs": {
|
||||
"url": "https://gitlab.com/mugcake/share-freedom-extension/issues"
|
||||
"url": "https://gitlab.com/mugcake/fedishare/issues"
|
||||
},
|
||||
"homepage": "https://gitlab.com/mugcake/share-freedom-extension#readme",
|
||||
"dependencies": {
|
||||
"autoprefixer": "^10.2.5",
|
||||
"homepage": "https://gitlab.com/mugcake/fedishare#readme",
|
||||
"devDependencies": {
|
||||
"@babel/preset-env": "7.12.11",
|
||||
"@babel/preset-typescript": "7.12.7",
|
||||
"@types/chrome": "0.0.135",
|
||||
"@types/jest": "26.0.20",
|
||||
"@types/sinon": "^10.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "4.17.0",
|
||||
"@typescript-eslint/parser": "4.17.0",
|
||||
"autoprefixer": "^10.3.1",
|
||||
"babel-jest": "26.6.3",
|
||||
"copy-webpack-plugin": "^8.1.1",
|
||||
"cross-env": "7.0.3",
|
||||
"eslint": "7.21.0",
|
||||
"eslint-plugin-import": "2.22.1",
|
||||
"git-hooks-plus": "1.0.1",
|
||||
"jest": "26.6.3",
|
||||
"postcss": "^8.3.6",
|
||||
"postcss-cli": "^8.3.1",
|
||||
"tailwindcss": "^2.0.4"
|
||||
"prettier": "2.2.1",
|
||||
"rimraf": "3.0.2",
|
||||
"sinon": "^10.0.0",
|
||||
"tailwindcss": "^2.2.7",
|
||||
"terser-webpack-plugin": "5.1.1",
|
||||
"ts-jest": "26.4.4",
|
||||
"ts-loader": "^9.1.1",
|
||||
"typescript": "^4.2.4",
|
||||
"web-ext-types": "3.2.1",
|
||||
"webpack": "5.18.0",
|
||||
"webpack-cli": "4.4.0",
|
||||
"webpack-merge": "5.7.3",
|
||||
"whatwg-fetch": "3.0.0"
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
module.exports ={
|
||||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {}
|
||||
}
|
||||
}
|
||||
autoprefixer: {},
|
||||
},
|
||||
};
|
||||
|
27
public/chrome_manifest.json
Normal file
27
public/chrome_manifest.json
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "datetime",
|
||||
"version": "1.0",
|
||||
"description": "Build a Datetime Extension!",
|
||||
"permissions": [
|
||||
"declarativeContent"
|
||||
],
|
||||
"manifest_version": 3,
|
||||
"background": {
|
||||
"service_worker": "background.js"
|
||||
},
|
||||
"action": {
|
||||
"default_popup": "popup.html",
|
||||
"default_icon": {
|
||||
"16": "images/logo/date-time-16.png",
|
||||
"32": "images/logo/date-time-32.png",
|
||||
"48": "images/logo/date-time-48.png",
|
||||
"128": "images/logo/date-time-128.png"
|
||||
}
|
||||
},
|
||||
"icons": {
|
||||
"16": "images/logo/date-time-16.png",
|
||||
"32": "images/logo/date-time-32.png",
|
||||
"48": "images/logo/date-time-48.png",
|
||||
"128": "images/logo/date-time-128.png"
|
||||
}
|
||||
}
|
12
public/css/fork-awesome.min.css
vendored
Normal file
12
public/css/fork-awesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/css/fork-awesome.min.css.map
Normal file
1
public/css/fork-awesome.min.css.map
Normal file
File diff suppressed because one or more lines are too long
58
public/css/styles.css
Normal file
58
public/css/styles.css
Normal file
@ -0,0 +1,58 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
|
||||
/* popout */
|
||||
|
||||
.button {
|
||||
@apply bg-white text-gray-800 font-bold py-3 px-3;
|
||||
}
|
||||
.icon {
|
||||
@apply text-xl;
|
||||
}
|
||||
.btn-mastodon {
|
||||
@apply hover:bg-blue-200 hover:text-blue-700 active:bg-blue-400;
|
||||
}
|
||||
.btn-pleroma {
|
||||
@apply hover:bg-yellow-400 hover:text-white active:bg-yellow-500;
|
||||
}
|
||||
.btn-diaspora {
|
||||
@apply hover:bg-gray-900 hover:text-white active:bg-gray-700;
|
||||
}
|
||||
.btn-friendica {
|
||||
@apply hover:bg-blue-700 hover:text-yellow-300 active:bg-blue-800;
|
||||
}
|
||||
.btn-hubzilla {
|
||||
@apply hover:bg-indigo-800 hover:text-white active:bg-indigo-900;
|
||||
}
|
||||
.btn-lemmy {
|
||||
@apply hover:bg-green-700 hover:text-white active:bg-green-800;
|
||||
}
|
||||
.btn-socialhome {
|
||||
@apply hover:bg-gray-700 hover:text-green-300 active:bg-gray-800;
|
||||
}
|
||||
.btn-gnusocial {
|
||||
@apply hover:bg-red-200 hover:text-red-800 active:bg-red-400;
|
||||
}
|
||||
.btn-xmpp {
|
||||
@apply hover:bg-gray-200 hover:text-green-500 active:bg-gray-300;
|
||||
}
|
||||
.btn-options {
|
||||
@apply cursor-pointer hover:bg-gray-100 hover:text-black active:bg-gray-300;
|
||||
}
|
||||
|
||||
/* options */
|
||||
|
||||
.span-custom {
|
||||
@apply text-xl text-blue-700 border border-2 font-bold rounded-l px-4 py-2 bg-white;
|
||||
}
|
||||
.text-custom {
|
||||
@apply border px-4 py-2 w-full;
|
||||
}
|
||||
.checkbox-custom {
|
||||
@apply m-3;
|
||||
}
|
||||
.btn-save {
|
||||
@apply bg-blue-500 text-xl hover:bg-pink-500 active:bg-pink-700 text-white font-bold py-2 px-4 rounded-full w-44 text-center;
|
||||
}
|
||||
|
||||
@tailwind utilities;
|
446
public/css/v5-compat.css
Normal file
446
public/css/v5-compat.css
Normal file
@ -0,0 +1,446 @@
|
||||
/*!
|
||||
Fork Awesome 1.1.7
|
||||
License - https://forkaweso.me/Fork-Awesome/license
|
||||
|
||||
Copyright 2018 Dave Gandy & Fork Awesome
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
.fas,
|
||||
.fab,
|
||||
.far {
|
||||
display: inline-block;
|
||||
font: normal normal normal 14px/1 ForkAwesome;
|
||||
font-size: inherit;
|
||||
text-rendering: auto;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
.fas.fa-chart-area:before {
|
||||
content: "\f1fe";
|
||||
}
|
||||
.fas.fa-arrows-alt:before {
|
||||
content: "\f047";
|
||||
}
|
||||
.fas.fa-expand-arrows-alt:before {
|
||||
content: "\f0b2";
|
||||
}
|
||||
.fas.fa-arrows-alt-h:before {
|
||||
content: "\f07e";
|
||||
}
|
||||
.fas.fa-arrows-alt-v:before {
|
||||
content: "\f07d";
|
||||
}
|
||||
.fas.fa-calendar-alt:before {
|
||||
content: "\f073";
|
||||
}
|
||||
.fas.fa-circle-notch:before {
|
||||
content: "\f1ce";
|
||||
}
|
||||
.fas.fa-cloud-download-alt:before {
|
||||
content: "\f0ed";
|
||||
}
|
||||
.fas.fa-cloud-upload-alt:before {
|
||||
content: "\f0ee";
|
||||
}
|
||||
.fas.fa-credit-card:before {
|
||||
content: "\f283";
|
||||
}
|
||||
.fas.fa-dollar-sign:before {
|
||||
content: "\f155";
|
||||
}
|
||||
.fas.fa-euro-sign:before {
|
||||
content: "\f153";
|
||||
}
|
||||
.fas.fa-exchange-alt:before {
|
||||
content: "\f0ec";
|
||||
}
|
||||
.fas.fa-external-link-alt:before {
|
||||
content: "\f08e";
|
||||
}
|
||||
.fas.fa-external-link-square-alt:before {
|
||||
content: "\f14c";
|
||||
}
|
||||
.fas.fa-eye-dropper:before {
|
||||
content: "\f1fb";
|
||||
}
|
||||
.fas.fa-pound-sign:before {
|
||||
content: "\f154";
|
||||
}
|
||||
.fas.fa-glass-martini:before {
|
||||
content: "\f000";
|
||||
}
|
||||
.fas.fa-shekel-sign:before {
|
||||
content: "\f20b";
|
||||
}
|
||||
.fas.fa-rupee-sign:before {
|
||||
content: "\f156";
|
||||
}
|
||||
.fas.fa-won-sign:before {
|
||||
content: "\f159";
|
||||
}
|
||||
.fas.fa-level-down-alt:before {
|
||||
content: "\f149";
|
||||
}
|
||||
.fas.fa-level-up-alt:before {
|
||||
content: "\f148";
|
||||
}
|
||||
.fas.fa-chart-line:before {
|
||||
content: "\f201";
|
||||
}
|
||||
.fas.fa-long-arrow-alt-down:before {
|
||||
content: "\f175";
|
||||
}
|
||||
.fas.fa-long-arrow-alt-left:before {
|
||||
content: "\f177";
|
||||
}
|
||||
.fas.fa-long-arrow-alt-right:before {
|
||||
content: "\f178";
|
||||
}
|
||||
.fas.fa-long-arrow-alt-up:before {
|
||||
content: "\f176";
|
||||
}
|
||||
.fas.fa-map-marker-alt:before {
|
||||
content: "\f041";
|
||||
}
|
||||
.fas.fa-mobile-alt:before {
|
||||
content: "\f10b";
|
||||
}
|
||||
.fas.fa-pencil-alt:before {
|
||||
content: "\f040";
|
||||
}
|
||||
.fas.fa-pen-square:before {
|
||||
content: "\f14b";
|
||||
}
|
||||
.fas.fa-chart-pie:before {
|
||||
content: "\f200";
|
||||
}
|
||||
.fas.fa-yen-sign:before {
|
||||
content: "\f157";
|
||||
}
|
||||
.fas.fa-ruble-sign:before {
|
||||
content: "\f158";
|
||||
}
|
||||
.fas.fa-shield-alt:before {
|
||||
content: "\f132";
|
||||
}
|
||||
.fas.fa-sign-in-alt:before {
|
||||
content: "\f090";
|
||||
}
|
||||
.fas.fa-sign-out-alt:before {
|
||||
content: "\f08b";
|
||||
}
|
||||
.fas.fa-sliders-h:before {
|
||||
content: "\f1de";
|
||||
}
|
||||
.fas.fa-tablet-alt:before {
|
||||
content: "\f10a";
|
||||
}
|
||||
.fas.fa-tachometer-alt:before {
|
||||
content: "\f0e4";
|
||||
}
|
||||
.fas.fa-thumbtack:before {
|
||||
content: "\f08d";
|
||||
}
|
||||
.fas.fa-ticket-alt:before {
|
||||
content: "\f145";
|
||||
}
|
||||
.fas.fa-trash-alt:before {
|
||||
content: "\f1f8";
|
||||
}
|
||||
.fas.fa-lira-sign:before {
|
||||
content: "\f195";
|
||||
}
|
||||
.fab.fa-linkedin-in:before {
|
||||
content: "\fe01";
|
||||
}
|
||||
.fab.fa-linkedin:before {
|
||||
content: "\f08c";
|
||||
}
|
||||
.far.fa-address-book:before {
|
||||
content: "\f2ba";
|
||||
}
|
||||
.far.fa-address-card:before {
|
||||
content: "\f2bc";
|
||||
}
|
||||
.far.fa-arrow-alt-circle-down:before {
|
||||
content: "\f01a";
|
||||
}
|
||||
.far.fa-arrow-alt-circle-left:before {
|
||||
content: "\f190";
|
||||
}
|
||||
.far.fa-arrow-alt-circle-right:before {
|
||||
content: "\f18e";
|
||||
}
|
||||
.far.fa-arrow-alt-circle-up:before {
|
||||
content: "\f01b";
|
||||
}
|
||||
.far.fa-bell:before {
|
||||
content: "\f0f3";
|
||||
}
|
||||
.far.fa-bell-slash:before {
|
||||
content: "\f1f7";
|
||||
}
|
||||
.far.fa-bookmark:before {
|
||||
content: "\f097";
|
||||
}
|
||||
.far.fa-building:before {
|
||||
content: "\f0f7";
|
||||
}
|
||||
.far.fa-calendar-check:before {
|
||||
content: "\f274";
|
||||
}
|
||||
.far.fa-calendar-minus:before {
|
||||
content: "\f272";
|
||||
}
|
||||
.far.fa-calendar:before {
|
||||
content: "\f133";
|
||||
}
|
||||
.far.fa-calendar-plus:before {
|
||||
content: "\f271";
|
||||
}
|
||||
.far.fa-calendar-times:before {
|
||||
content: "\f273";
|
||||
}
|
||||
.far.fa-caret-square-down:before {
|
||||
content: "\f150";
|
||||
}
|
||||
.far.fa-caret-square-left:before {
|
||||
content: "\f191";
|
||||
}
|
||||
.far.fa-caret-square-right:before {
|
||||
content: "\f152";
|
||||
}
|
||||
.far.fa-caret-square-up:before {
|
||||
content: "\f151";
|
||||
}
|
||||
.far.fa-check-circle:before {
|
||||
content: "\f05d";
|
||||
}
|
||||
.far.fa-check-square:before {
|
||||
content: "\f046";
|
||||
}
|
||||
.far.fa-circle:before {
|
||||
content: "\f10c";
|
||||
}
|
||||
.far.fa-clock:before {
|
||||
content: "\f017";
|
||||
}
|
||||
.far.fa-comment:before {
|
||||
content: "\f0e5";
|
||||
}
|
||||
.far.fa-comment-dots:before {
|
||||
content: "\f27b";
|
||||
}
|
||||
.far.fa-comments:before {
|
||||
content: "\f0e6";
|
||||
}
|
||||
.far.fa-dot-circle:before {
|
||||
content: "\f192";
|
||||
}
|
||||
.far.fa-id-card:before {
|
||||
content: "\f2c3";
|
||||
}
|
||||
.far.fa-envelope:before {
|
||||
content: "\f003";
|
||||
}
|
||||
.far.fa-envelope-open:before {
|
||||
content: "\f2b7";
|
||||
}
|
||||
.far.fa-file-archive:before {
|
||||
content: "\f1c6";
|
||||
}
|
||||
.far.fa-file-audio:before {
|
||||
content: "\f1c7";
|
||||
}
|
||||
.far.fa-file-code:before {
|
||||
content: "\f1c9";
|
||||
}
|
||||
.far.fa-file-excel:before {
|
||||
content: "\f1c3";
|
||||
}
|
||||
.far.fa-file-image:before {
|
||||
content: "\f1c5";
|
||||
}
|
||||
.far.fa-file-video:before {
|
||||
content: "\f1c8";
|
||||
}
|
||||
.far.fa-copy:before,
|
||||
.far.fa-file:before {
|
||||
content: "\f016";
|
||||
}
|
||||
.far.fa-file-pdf:before {
|
||||
content: "\f1c1";
|
||||
}
|
||||
.far.fa-file-powerpoint:before {
|
||||
content: "\f1c4";
|
||||
}
|
||||
.far.fa-file-alt:before {
|
||||
content: "\f0f6";
|
||||
}
|
||||
.far.fa-file-word:before {
|
||||
content: "\f1c2";
|
||||
}
|
||||
.far.fa-flag:before {
|
||||
content: "\f11d";
|
||||
}
|
||||
.far.fa-save:before {
|
||||
content: "\f0c7";
|
||||
}
|
||||
.far.fa-folder:before {
|
||||
content: "\f114";
|
||||
}
|
||||
.far.fa-folder-open:before {
|
||||
content: "\f115";
|
||||
}
|
||||
.far.fa-frown:before {
|
||||
content: "\f119";
|
||||
}
|
||||
.far.fa-futbol:before {
|
||||
content: "\f1e3";
|
||||
}
|
||||
.far.fa-hand-rock:before {
|
||||
content: "\f255";
|
||||
}
|
||||
.far.fa-hand-lizard:before {
|
||||
content: "\f258";
|
||||
}
|
||||
.far.fa-hand-point-down:before {
|
||||
content: "\f0a7";
|
||||
}
|
||||
.far.fa-hand-point-left:before {
|
||||
content: "\f0a5";
|
||||
}
|
||||
.far.fa-hand-point-right:before {
|
||||
content: "\f0a4";
|
||||
}
|
||||
.far.fa-hand-point-up:before {
|
||||
content: "\f0a6";
|
||||
}
|
||||
.far.fa-hand-paper:before {
|
||||
content: "\256";
|
||||
}
|
||||
.far.fa-hand-pointer:before {
|
||||
content: "\f25a";
|
||||
}
|
||||
.far.fa-hand-scissors:before {
|
||||
content: "\f257";
|
||||
}
|
||||
.far.fa-hand-spock:before {
|
||||
content: "\f259";
|
||||
}
|
||||
.far.fa-handshake:before {
|
||||
content: "\f2b5";
|
||||
}
|
||||
.far.fa-hdd:before {
|
||||
content: "\f0a0";
|
||||
}
|
||||
.far.fa-heart:before {
|
||||
content: "\f08a";
|
||||
}
|
||||
.far.fa-hospital:before {
|
||||
content: "\f0f8";
|
||||
}
|
||||
.far.fa-hourglass:before {
|
||||
content: "\f250";
|
||||
}
|
||||
.far.fa-id-card:before {
|
||||
content: "\f2c3";
|
||||
}
|
||||
.far.fa-keyboard:before {
|
||||
content: "\f11c";
|
||||
}
|
||||
.far.fa-lemon:before {
|
||||
content: "\f094";
|
||||
}
|
||||
.far.fa-lightbulb:before {
|
||||
content: "\f0eb";
|
||||
}
|
||||
.far.fa-meh:before {
|
||||
content: "\f11a";
|
||||
}
|
||||
.far.fa-minus-square:before {
|
||||
content: "\f147";
|
||||
}
|
||||
.far.fa-money-bill-alt:before {
|
||||
content: "\f0d6";
|
||||
}
|
||||
.far.fa-moon:before {
|
||||
content: "\f186";
|
||||
}
|
||||
.far.fa-newspaper:before {
|
||||
content: "\f1ea";
|
||||
}
|
||||
.far.fa-paper-plane:before {
|
||||
content: "\f1d9";
|
||||
}
|
||||
.far.fa-pause-circle:before {
|
||||
content: "\f28c";
|
||||
}
|
||||
.far.fa-edit:before {
|
||||
content: "\f044";
|
||||
}
|
||||
.far.fa-image:before {
|
||||
content: "\f03e";
|
||||
}
|
||||
.far.fa-play-circle:before {
|
||||
content: "\f01d";
|
||||
}
|
||||
.far.fa-plus-square:before {
|
||||
content: "\f196";
|
||||
}
|
||||
.far.fa-question-circle:before {
|
||||
content: "\f92c";
|
||||
}
|
||||
.far.fa-share-square:before {
|
||||
content: "\f045";
|
||||
}
|
||||
.far.fa-smile:before {
|
||||
content: "\f118";
|
||||
}
|
||||
.far.fa-snowflake:before {
|
||||
content: "\f2dc";
|
||||
}
|
||||
.far.fa-futbol:before {
|
||||
content: "\f1e3";
|
||||
}
|
||||
.far.fa-star-half:before {
|
||||
content: "\f089";
|
||||
}
|
||||
.far.fa-star:before {
|
||||
content: "\f006";
|
||||
}
|
||||
.far.fa-sticky-note:before {
|
||||
content: "\f24a";
|
||||
}
|
||||
.far.fa-stop-circle:before {
|
||||
content: "\f28e";
|
||||
}
|
||||
.far.fa-sun:before {
|
||||
content: "\f185";
|
||||
}
|
||||
.far.fa-thumbs-down:before {
|
||||
content: "\f088";
|
||||
}
|
||||
.far.fa-thumbs-up:before {
|
||||
content: "\f087";
|
||||
}
|
||||
.far.fa-times-circle:before {
|
||||
content: "\f05c";
|
||||
}
|
||||
.far.fa-window-close:before {
|
||||
content: "\f2d4";
|
||||
}
|
||||
.far.fa-trash-alt:before {
|
||||
content: "\f014";
|
||||
}
|
||||
.far.fa-user-circle:before {
|
||||
content: "\f2be";
|
||||
}
|
||||
.far.fa-user:before {
|
||||
content: "\f2c0";
|
||||
}
|
12
public/css/v5-compat.min.css
vendored
Normal file
12
public/css/v5-compat.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/css/v5-compat.min.css.map
Normal file
1
public/css/v5-compat.min.css.map
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["v5-compat.css"],"names":[],"mappings":"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"}
|
27
public/edge_manifest.json
Normal file
27
public/edge_manifest.json
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "datetime",
|
||||
"version": "1.0",
|
||||
"description": "Build a Datetime Extension!",
|
||||
"permissions": [
|
||||
"declarativeContent"
|
||||
],
|
||||
"manifest_version": 2,
|
||||
"background": {
|
||||
"content_scripts": "background.js"
|
||||
},
|
||||
"browser_action": {
|
||||
"default_popup": "popup.html",
|
||||
"default_icon": {
|
||||
"16": "images/logo/date-time-16.png",
|
||||
"32": "images/logo/date-time-32.png",
|
||||
"48": "images/logo/date-time-48.png",
|
||||
"128": "images/logo/date-time-128.png"
|
||||
}
|
||||
},
|
||||
"icons": {
|
||||
"16": "images/logo/date-time-16.png",
|
||||
"32": "images/logo/date-time-32.png",
|
||||
"48": "images/logo/date-time-48.png",
|
||||
"128": "images/logo/date-time-128.png"
|
||||
}
|
||||
}
|
21
public/firefox_manifest.json
Normal file
21
public/firefox_manifest.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "Fedishare",
|
||||
"version": "0.9.0",
|
||||
"description": "Share the current tab on the fediverse",
|
||||
"permissions": ["tabs", "activeTab", "https://*/*", "storage"],
|
||||
"manifest_version": 2,
|
||||
"browser_action": {
|
||||
"default_popup": "popup.html",
|
||||
"default_icon": "images/logo/logo.svg",
|
||||
"default_title": "Fedishare"
|
||||
},
|
||||
"options_ui": {
|
||||
"page": "options.html"
|
||||
},
|
||||
"applications": {
|
||||
"gecko": {
|
||||
"id": "{c5880375-5496-4d02-ba27-7830809dbf08}",
|
||||
"strict_min_version": "59.0"
|
||||
}
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 470 KiB After Width: | Height: | Size: 470 KiB |
170
public/images/logo/logo.svg
Normal file
170
public/images/logo/logo.svg
Normal file
@ -0,0 +1,170 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="64.139938mm"
|
||||
height="64.139938mm"
|
||||
viewBox="0 0 64.139939 64.139939"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
inkscape:version="1.1 (c4e8f9ed74, 2021-05-24)"
|
||||
sodipodi:docname="logo1.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#">
|
||||
<sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#111111"
|
||||
borderopacity="1"
|
||||
inkscape:pageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:zoom="0.53183923"
|
||||
inkscape:cx="187.08661"
|
||||
inkscape:cy="331.86721"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="722"
|
||||
inkscape:window-x="1366"
|
||||
inkscape:window-y="46"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs2" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-36.247858,-3.9111803)">
|
||||
<g
|
||||
id="g1977"
|
||||
transform="matrix(0.34447216,0,0,0.34447216,-23.727704,18.906576)"
|
||||
style="display:inline">
|
||||
<circle
|
||||
style="display:inline;fill:#374548;stroke-width:9.68693"
|
||||
id="path426-0"
|
||||
cx="267.20746"
|
||||
cy="49.567352"
|
||||
r="93.098869" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ccff00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 217.45324,24.073894 a 18.227783,18.227783 0 0 1 -7.79591,7.759731 l 42.79842,42.96534 10.31823,-5.22914 z m 56.45236,56.670441 -10.31823,5.22914 21.68601,21.770755 a 18.227783,18.227783 0 0 1 7.79746,-7.760755 z"
|
||||
id="path9722-62"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 323.42299,41.074404 -24.22953,12.279355 1.78646,11.427206 27.41486,-13.894239 a 18.227783,18.227783 0 0 1 -4.97179,-9.812322 z m -38.29533,19.407603 -57.28901,29.033888 a 18.227783,18.227783 0 0 1 4.97282,9.81335 l 54.10264,-27.41951 z"
|
||||
id="path9729-6"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 266.70398,-11.036108 -27.6438,53.967247 8.16178,8.193299 29.26901,-57.13863 a 18.227783,18.227783 0 0 1 -9.78699,-5.021916 z M 231.87044,56.967491 217.8682,84.302775 a 18.227783,18.227783 0 0 1 9.78596,5.0214 l 12.37754,-24.1639 z"
|
||||
id="path9713-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 209.41962,31.953516 a 18.227783,18.227783 0 0 1 -9.10591,1.903759 18.227783,18.227783 0 0 1 -1.75958,-0.183967 l 8.17625,52.298097 a 18.227783,18.227783 0 0 1 9.1059,-1.90376 18.227783,18.227783 0 0 1 1.75855,0.18397 z"
|
||||
id="path1015-8"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 232.85488,99.588145 a 18.227783,18.227783 0 0 1 0.19069,3.671605 18.227783,18.227783 0 0 1 -1.92289,7.19129 l 52.28932,8.39072 a 18.227783,18.227783 0 0 1 -0.1912,-3.67214 18.227783,18.227783 0 0 1 1.92339,-7.19077 z"
|
||||
id="path1674-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 328.57875,51.07793 -24.13496,47.117535 a 18.227783,18.227783 0 0 1 9.78803,5.022425 l 24.13445,-47.117012 a 18.227783,18.227783 0 0 1 -9.78752,-5.022948 z"
|
||||
id="path1676-9"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 295.6619,-15.562446 a 18.227783,18.227783 0 0 1 -7.79746,7.760766 l 37.37653,37.520708 a 18.227783,18.227783 0 0 1 7.79694,-7.760769 z"
|
||||
id="path1678-20"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="M 261.5477,-21.039115 214.29942,2.905161 a 18.227783,18.227783 0 0 1 4.97231,9.812319 l 47.24776,-23.945308 a 18.227783,18.227783 0 0 1 -4.97179,-9.811287 z"
|
||||
id="path1680-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 287.77814,-7.758272 a 18.227783,18.227783 0 0 1 -9.25576,1.979723 18.227783,18.227783 0 0 1 -1.59526,-0.167431 l 4.18528,26.799916 11.41997,1.832446 z m -4.23333,44.192652 9.89552,63.363055 a 18.227783,18.227783 0 0 1 8.97309,-1.8371 18.227783,18.227783 0 0 1 1.90686,0.20929 L 294.9653,38.266307 Z"
|
||||
id="path9758-3"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ccff00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:11;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 219.30532,12.918502 a 18.227783,18.227783 0 0 1 0.2005,3.729487 18.227783,18.227783 0 0 1 -1.89445,7.139099 l 26.82058,4.307747 5.27151,-10.294461 z m 45.96774,7.381978 -5.27203,10.295496 63.37132,10.177674 a 18.227783,18.227783 0 0 1 -0.18397,-3.629753 18.227783,18.227783 0 0 1 1.94459,-7.229533 z"
|
||||
id="path9760-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
<circle
|
||||
style="display:inline;fill:#ffffff;fill-opacity:0.995968;stroke:none;stroke-width:0.264583;stroke-opacity:0.960784"
|
||||
id="path817-5"
|
||||
cx="277.79572"
|
||||
cy="-39.146599"
|
||||
r="16.570711"
|
||||
transform="rotate(3.1178174)" />
|
||||
<circle
|
||||
id="path819-9"
|
||||
style="display:inline;fill:#ccff00;fill-opacity:0.995968;stroke:none;stroke-width:0.264583;stroke-opacity:0.960784"
|
||||
cx="342.95813"
|
||||
cy="19.511126"
|
||||
r="16.570711"
|
||||
transform="rotate(3.1178174)" />
|
||||
<circle
|
||||
id="path823-2"
|
||||
style="display:inline;fill:#ccff00;fill-opacity:0.995968;stroke:none;stroke-width:0.264583;stroke-opacity:0.960784"
|
||||
cx="307.29355"
|
||||
cy="99.594879"
|
||||
r="16.570711"
|
||||
transform="rotate(3.1178174)" />
|
||||
<circle
|
||||
style="display:inline;fill:#ffffff;fill-opacity:0.995968;stroke:none;stroke-width:0.264583;stroke-opacity:0.960784"
|
||||
id="path825-2"
|
||||
cx="220.08923"
|
||||
cy="90.431641"
|
||||
r="16.570711"
|
||||
transform="rotate(3.1178174)" />
|
||||
<circle
|
||||
id="path827-8"
|
||||
style="display:inline;fill:#ccff00;fill-opacity:0.995968;stroke:none;stroke-width:0.264583;stroke-opacity:0.960784"
|
||||
cx="201.85857"
|
||||
cy="4.6846833"
|
||||
r="16.570711"
|
||||
transform="rotate(3.1178174)" />
|
||||
</g>
|
||||
</g>
|
||||
<metadata
|
||||
id="metadata65">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
</svg>
|
After Width: | Height: | Size: 19 KiB |