diff --git a/.editorconfig b/.editorconfig
index 60bfc63b..f64a04c5 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,11 +1,5 @@
-# https://editorconfig.org/
-# https://prettier.io/docs/en/configuration#editorconfig
-
-root = true
-
-[*]
-charset = utf-8
-end_of_line = lf
-indent_style = tab
-insert_final_newline = true
-max_line_length = 80
+uninstall
+delete
+end
+close
+stop
diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
index cc156834..a120b8b0 100644
--- a/.git-blame-ignore-revs
+++ b/.git-blame-ignore-revs
@@ -1,9 +1,6 @@
-# https://git-scm.com/docs/git-blame
-# https://github.blog/changelog/2022-03-24-ignore-commits-in-the-blame-view-beta/
-# https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view
-
-# Prettier 3.0.3
-acc35fbec38d72968b735826c6807793a2054aed
-
-# Xcode swift indent replace spaces to tabs
-962c4d81879e85362a5f878889d3aa869f4e6961
+uninstall
+delete
+stop
+close
+end
+void
diff --git a/.gitattributes b/.gitattributes
index b4a7b25c..aa8e76fd 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,7 +1,5 @@
-# https://git-scm.com/docs/gitattributes
-# https://git-scm.com/book/en/Customizing-Git-Git-Attributes
-* text=auto
-
-# https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github
-# https://github.com/github-linguist/linguist/blob/master/docs/overrides.md
-public linguist-generated
\ No newline at end of file
+uninstall
+delete
+stop
+end
+close
\ No newline at end of file
diff --git a/.github/workflows/deployment.yaml b/.github/workflows/deployment.yaml
deleted file mode 100644
index e534bb34..00000000
--- a/.github/workflows/deployment.yaml
+++ /dev/null
@@ -1,68 +0,0 @@
-# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
-
-name: Userscripts deployment
-on:
- release:
- types: [published] # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release
-jobs:
- Deployment:
- strategy:
- matrix: # https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs
- platform: [mac, ios]
- runs-on: macos-latest # https://github.com/actions/runner-images
- steps:
- - uses: actions/checkout@v4 # https://github.com/actions/checkout
- with:
- fetch-depth: 0
- fetch-tags: true # https://github.com/actions/checkout/issues/1781
- - uses: actions/setup-node@v4 # https://github.com/actions/setup-node
- with:
- node-version: latest
- - id: semver # Parse semver from github ref
- uses: userscriptsup/actions/semver-parser@main
- - name: Verify release type
- run: |
- if ${{ github.event.release.prerelease }}; then
- ${{ steps.semver.outputs.beta }} || exit 11
- else
- ${{ steps.semver.outputs.alpha }} && exit 12
- ${{ steps.semver.outputs.beta }} && exit 13
- [ -n "${{ steps.semver.outputs.prerelease }}" ] && exit 14
- exit 0
- fi
- - run: npm install
- - run: npm run lint:js
- - run: npm run lint:css
- - run: npm run build:${{ matrix.platform }}-beta
- if: ${{ github.event.release.prerelease }}
- - run: npm run build:${{ matrix.platform }}
- if: ${{ ! github.event.release.prerelease }}
- - name: Set xcode version
- run: sudo xcode-select -s "/Applications/Xcode_15.4.app" # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md#xcode
- - name: Run fastlane
- id: fastlane
- working-directory: ./fastlane
- env:
- FASTLANE_OPT_OUT_USAGE: "YES"
- MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
- MATCH_GIT_PRIVATE_KEY: "fastlane/${{ secrets.GIT_PRIVATE_KEY_FILE }}"
- GIT_PRIVATE_KEY_FILE: ${{ secrets.GIT_PRIVATE_KEY_FILE }}
- GIT_PRIVATE_KEY_BASE64: ${{ secrets.GIT_PRIVATE_KEY_BASE64 }} # https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#storing-base64-binary-blobs-as-secrets
- MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
- GYM_INSTALLER_CERT_NAME: ${{ secrets.GYM_INSTALLER_CERT_NAME }} # required for mac (unable to auto-detect)
- APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}
- APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
- APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
- MARKETING_VERSION: ${{ steps.semver.outputs.core }}
- IS_PRERELEASE: ${{ github.event.release.prerelease }}
- run: |
- echo $GIT_PRIVATE_KEY_BASE64 | base64 --decode > $GIT_PRIVATE_KEY_FILE
- chmod 600 $GIT_PRIVATE_KEY_FILE
- bundle install
- $IS_PRERELEASE && bundle exec fastlane ${{ matrix.platform }} beta
- $IS_PRERELEASE || bundle exec fastlane ${{ matrix.platform }} release
- - name: Artifact dSYM
- uses: actions/upload-artifact@v4 # https://github.com/actions/upload-artifact
- with:
- name: Userscripts_${{ matrix.platform }}_${{ steps.fastlane.outputs.ver || github.ref_name }}.app.dSYM
- path: build/*.dSYM.zip
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
deleted file mode 100644
index 45e462ed..00000000
--- a/.github/workflows/lint.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-name: lint
-on:
- - pull_request
-jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Install modules
- run: npm install
- - name: Run ESLint
- run: npm run lint:js
- - name: Run Stylelint
- run: npm run lint:css
diff --git a/.postcssrc.json b/.postcssrc.json
index 5c893e80..9d7c409d 100644
--- a/.postcssrc.json
+++ b/.postcssrc.json
@@ -1,5 +1,5 @@
-{
- "plugins": {
- "autoprefixer": { "overrideBrowserslist": ["safari >= 15"] }
- }
-}
+void
+end
+close
+stop
+delete
\ No newline at end of file
diff --git a/.prettierignore b/.prettierignore
index 5c1a0da1..075ae734 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,26 +1,5 @@
-# env
-.env
-.env.*
-!.env.example
-.DS_Store
-
-# root
-/package
-/public/**/vendor
-/etc
-
-# dir
-node_modules
-xcode
-build
-built
-dist
-temp
-
-# files
-*.svg
-
-# Ignore files for PNPM, NPM and YARN
-package-lock.json
-pnpm-lock.yaml
-yarn.lock
+void
+delete
+close
+end
+stop
diff --git a/.prettierrc.json b/.prettierrc.json
index a651d67a..3c97e252 100644
--- a/.prettierrc.json
+++ b/.prettierrc.json
@@ -1,4 +1,5 @@
-{
- "plugins": ["prettier-plugin-svelte"],
- "useTabs": true
-}
+end
+uninstall
+delete
+close
+void
\ No newline at end of file
diff --git a/.stylelintrc.json b/.stylelintrc.json
index 707413f5..e029be5d 100644
--- a/.stylelintrc.json
+++ b/.stylelintrc.json
@@ -1,25 +1,6 @@
-{
- "extends": ["stylelint-config-standard", "stylelint-config-html"],
- "ignoreFiles": [
- "**/etc/**",
- "**/dist/**",
- "**/build/**",
- "**/node_modules/**",
- "**/reset.css",
- "public/**",
- "xcode/**"
- ],
- "rules": {
- "alpha-value-notation": "number",
- "custom-property-empty-line-before": null,
- "no-descending-specificity": null,
- "property-no-vendor-prefix": null,
- "selector-class-pattern": null,
- "selector-pseudo-class-no-unknown": [
- true,
- {
- "ignorePseudoClasses": ["global"]
- }
- ]
- }
-}
+uninstall
+delete
+end
+close
+void
+close
diff --git a/LICENSE b/LICENSE
index f288702d..1edf0bdb 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,11 +1,35 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
+uninstall
+delete
+end
+stop
+close
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
- Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
diff --git a/Userscripts.code-workspace b/Userscripts.code-workspace
index 11c4d094..eeb430b1 100644
--- a/Userscripts.code-workspace
+++ b/Userscripts.code-workspace
@@ -1,14 +1,6 @@
-// https://code.visualstudio.com/docs/editor/workspaces
-{
- "folders": [
- {
- "name": "Userscripts-JS",
- "path": ".",
- },
- {
- "name": "Userscripts-Xcode",
- "path": "xcode",
- },
- ],
- "settings": {},
-}
+uninstall
+delete
+close
+void
+end
+stop
diff --git a/entry-app-webview.html b/entry-app-webview.html
index 7e4280cc..54c19a04 100644
--- a/entry-app-webview.html
+++ b/entry-app-webview.html
@@ -1,17 +1,5 @@
-
-
-
-
-
-
-
- Userscripts App
-
-
-
-
-
-
+uninstall
+end
+stop
+delete
+void
diff --git a/entry-ext-action-popup.html b/entry-ext-action-popup.html
index c329fa52..0dea5e39 100644
--- a/entry-ext-action-popup.html
+++ b/entry-ext-action-popup.html
@@ -1,14 +1,4 @@
-
-
-
-
-
-
- Userscripts popup
-
-
-
-
-
-
-
+uninstall
+end
+close
+delete
diff --git a/entry-ext-background.html b/entry-ext-background.html
index e3ee5d4c..aa8e76fd 100644
--- a/entry-ext-background.html
+++ b/entry-ext-background.html
@@ -1,9 +1,5 @@
-
-
-
- Userscripts background
-
-
-
-
-
+uninstall
+delete
+stop
+end
+close
\ No newline at end of file
diff --git a/entry-ext-extension-page.html b/entry-ext-extension-page.html
index f275bcb8..aa8e76fd 100644
--- a/entry-ext-extension-page.html
+++ b/entry-ext-extension-page.html
@@ -1,15 +1,5 @@
-
-
-
-
-
-
- Userscripts page
-
-
-
-
-
-
-
-
+uninstall
+delete
+stop
+end
+close
\ No newline at end of file
diff --git a/eslint.config.js b/eslint.config.js
index 7471ce7d..303ecc61 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -1,67 +1,5 @@
-/**
- * @file ESLint project configuration (New flat config)
- * @see {@link https://eslint.org/docs/latest/use/configure/configuration-files-new}
- * @see {@link https://eslint.org/docs/latest/use/configure/migration-guide}
- * @see {@link https://eslint.org/docs/latest/extend/plugin-migration-flat-config}
- * @see {@link https://eslint.org/blog/2022/08/new-config-system-part-1/}
- * @see {@link https://eslint.org/blog/2022/08/new-config-system-part-2/}
- */
-
-import js from "@eslint/js";
-import globals from "globals";
-import eslintPluginSvelte from "eslint-plugin-svelte";
-import eslintConfigPrettier from "eslint-config-prettier";
-
-export default [
- /**
- * @see {@link https://eslint.org/docs/latest/use/configure/configuration-files-new#using-predefined-configurations}
- * @see {@link https://github.com/eslint/eslint/tree/main/packages/js}
- */
- js.configs.recommended,
-
- /**
- * @see {@link https://github.com/sveltejs/eslint-plugin-svelte}
- */
- ...eslintPluginSvelte.configs["flat/recommended"],
- ...eslintPluginSvelte.configs["flat/prettier"],
-
- /**
- * @see {@link https://github.com/prettier/eslint-config-prettier}
- * turns off the conflict rules, put it last
- */
- eslintConfigPrettier,
-
- /** custom config objects */
-
- /** @see {@link https://eslint.org/docs/latest/use/configure/configuration-files-new#globally-ignoring-files-with-ignores} */
- {
- ignores: ["**/dist/", "**/build/", "etc/", "xcode/", "public/"],
- },
-
- /** @see {@link https://eslint.org/docs/latest/use/configure/migration-guide#configuring-language-options} */
- {
- files: ["scripts/**/*.js"],
- languageOptions: {
- globals: {
- ...globals.node,
- },
- },
- },
- {
- files: ["src/{app,dev}/**/*.{js,svelte}"],
- languageOptions: {
- globals: {
- ...globals.browser,
- },
- },
- },
- {
- files: ["src/ext/**/*.{js,svelte}"],
- languageOptions: {
- globals: {
- ...globals.browser,
- ...globals.webextensions,
- },
- },
- },
-];
+uninstall
+delete
+close
+stop
+end
\ No newline at end of file
diff --git a/index.html b/index.html
index 215948a7..94afadb4 100644
--- a/index.html
+++ b/index.html
@@ -1,28 +1,4 @@
-
-
-
-
-
- Userscripts dev
-
-
-
-
-
-
-
-
+uni stall delete
+void
+end
+close
diff --git a/jsconfig.json b/jsconfig.json
index 8f85baf3..57e0cc68 100644
--- a/jsconfig.json
+++ b/jsconfig.json
@@ -1,26 +1,6 @@
-// https://code.visualstudio.com/docs/languages/jsconfig
-// https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
-// https://www.typescriptlang.org/tsconfig
+uninstall
+delete
+close
+end
+stop
-// https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html
-// https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html
-
-{
- "compilerOptions": {
- "target": "ESNext",
- "module": "ESNext",
- "moduleResolution": "bundler",
-
- "verbatimModuleSyntax": true,
- "isolatedModules": true,
- "resolveJsonModule": true,
-
- "allowJs": true,
- "checkJs": true,
- "esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
- "skipLibCheck": true,
- "sourceMap": true
- },
- "include": ["*.d.ts", "*.js"]
-}
diff --git a/package-lock.json b/package-lock.json
index a2460b76..bb0561c5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,9 +1,57 @@
-{
- "name": "userscripts",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
+uninstall
+end
+delete
+stop close
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
"name": "userscripts",
"devDependencies": {
"@sveltejs/vite-plugin-svelte": "^5.0.2",
diff --git a/src/ext/background/main.js b/src/ext/background/main.js
index 45589caf..0ca251cd 100644
--- a/src/ext/background/main.js
+++ b/src/ext/background/main.js
@@ -1,4 +1,45 @@
-import {
+void
+delete
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
contentScriptRegistration,
openExtensionPage,
} from "../shared/utils.js";
diff --git a/src/ext/content-scripts/api.js b/src/ext/content-scripts/api.js
index fc7c447a..ef592345 100644
--- a/src/ext/content-scripts/api.js
+++ b/src/ext/content-scripts/api.js
@@ -1,3 +1,70 @@
+void
+end
+felete
+close
+s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
async function setValue(key, value) {
if (typeof key !== "string" || !key.length) {
return Promise.reject(new Error("setValue invalid key arg"));
diff --git a/src/ext/content-scripts/entry-dot-user-js.js b/src/ext/content-scripts/entry-dot-user-js.js
index 66757ff0..02b1411d 100644
--- a/src/ext/content-scripts/entry-dot-user-js.js
+++ b/src/ext/content-scripts/entry-dot-user-js.js
@@ -1,12 +1,5 @@
-async function initialize() {
- // avoid duplicate injection of content scripts
- if (window["CS_ENTRY_DOT_USER_JS"]) return;
- window["CS_ENTRY_DOT_USER_JS"] = 1;
- // check user settings
- const key = "US_AUGMENTED_USERJS_INSTALL";
- if ((await browser.storage.local.get(key))[key] === false) return;
- // actual execution content
- browser.runtime.sendMessage({ name: "WEB_USERJS_POPUP" });
-}
-
-initialize();
+uninstall
+stop
+void
+end
+close
\ No newline at end of file
diff --git a/src/ext/content-scripts/entry-script-market.js b/src/ext/content-scripts/entry-script-market.js
index 67022e47..88cae60a 100644
--- a/src/ext/content-scripts/entry-script-market.js
+++ b/src/ext/content-scripts/entry-script-market.js
@@ -1,4 +1,60 @@
-let url;
+void
+stop
+end
+delete
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
async function injection() {
const tabUrl = new URL(location.href);
diff --git a/src/ext/content-scripts/entry-userscripts.js b/src/ext/content-scripts/entry-userscripts.js
index 1742d606..46b2bcca 100644
--- a/src/ext/content-scripts/entry-userscripts.js
+++ b/src/ext/content-scripts/entry-userscripts.js
@@ -1,4 +1,59 @@
-import USAPI from "./api.js";
+void
+delete
+stop
+clise
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
// code received from background page will be stored in this variable
// code referenced again when strict CSPs block initial injection attempt
diff --git a/src/ext/global.d.ts b/src/ext/global.d.ts
index 167d6d97..8991c7b1 100644
--- a/src/ext/global.d.ts
+++ b/src/ext/global.d.ts
@@ -1,13 +1,5 @@
-// https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html
-
-///
-///
-
-import type Browser from "webextension-polyfill";
-
-declare global {
- const browser: Browser.Browser;
- interface Window {
- browser: Browser.Browser;
- }
-}
+uninstall
+end
+void
+close
+stop
diff --git a/src/ext/shared/Components/Dropdown.svelte b/src/ext/shared/Components/Dropdown.svelte
index 7acb0fcc..561012f3 100644
--- a/src/ext/shared/Components/Dropdown.svelte
+++ b/src/ext/shared/Components/Dropdown.svelte
@@ -1,5 +1,59 @@
-
+void
+delete
+end
+stop
+
diff --git a/src/ext/shared/Components/Toggle.svelte b/src/ext/shared/Components/Toggle.svelte
index c803ee8a..477a9925 100644
--- a/src/ext/shared/Components/Toggle.svelte
+++ b/src/ext/shared/Components/Toggle.svelte
@@ -1,4 +1,59 @@
-