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 @@ -