Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
commit-message:
prefix: "deps"
groups:
npm-dependencies:
patterns:
- "*"
102 changes: 102 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Push Code

on:
pull_request_review:
types: [submitted]
push:
branches:
- main

permissions:
contents: write
packages: write
id-token: write

jobs:
check:
runs-on: ubuntu-latest
if: |
github.event_name == 'push' ||
(github.event_name == 'pull_request_review' &&
github.event.review.state == 'approved')

steps:
- name: Checkout code
uses: actions/checkout@v4.1.1

- name: Setup Node.js (with npm cache)
uses: actions/setup-node@v4.0.2
with:
node-version: "25"
cache: "npm"
registry-url: "https://npm.pkg.github.com"
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Install dependencies
run: npm install

- name: Check Compatibility
run: npm run check

release_git:
needs: check
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4.1.1
with:
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v4.0.2
with:
node-version: "25"
cache: "npm"
registry-url: "https://npm.pkg.github.com"
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Install dependencies
run: npm install

- name: Install git-cliff
uses: taiki-e/install-action@git-cliff

- name: Run github release script
run: node scripts/actions/github.js
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_SHA: ${{ github.sha }}

release_npm:
needs: check
environment: npm
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4.1.1
with:
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v4.0.2
with:
node-version: "25"
cache: "npm"
registry-url: "https://registry.npmjs.org"

- name: Install dependencies
run: npm install

- name: Run npm release script
run: node scripts/actions/npm.js
env:
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_SHA: ${{ github.sha }}
NPM_ORG: ${{ vars.NPM_ORG }}
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# Our
env.sh

# Build extra
dist


# Logs
logs
*.log
Expand Down
1 change: 1 addition & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npm run check
17 changes: 17 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Github
.github
CHANGELOG.md
cargo.toml
.husky
cliff.toml

# Test
examples

# Build
src
scripts
tsconfig.json
.oxfmtrc.json
package-lock.json
.swcrc
17 changes: 17 additions & 0 deletions .oxfmtrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"ignorePatterns": ["dist", "node_modules", "build", "CHANGELOG.md"],
"tabWidth": 2,
"useTabs": true,
"printWidth": 80,
"semi": true,
"singleQuote": false,
"trailingComma": "es5",
"bracketSpacing": true,
"arrowParens": "always",

"jsxSingleQuote": false,
"quoteProps": "as-needed",
"embeddedLanguageFormatting": "auto",
"endOfLine": "lf"
}
14 changes: 14 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"tabWidth": 2,
"useTabs": true,
"printWidth": 80,
"semi": true,
"singleQuote": false,
"trailingComma": "es5",
"bracketSpacing": true,
"arrowParens": "always",
"jsxSingleQuote": false,
"quoteProps": "as-needed",
"embeddedLanguageFormatting": "auto",
"endOfLine": "lf"
}
146 changes: 146 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@

## Unreleased

### Dependencies

- Bump the npm-dependencies group with 4 updates ([#53](https://github.com/AroxBot/framework/pull/53)) by dependabot[bot] ([fe4e666](https://github.com/AroxBot/framework/commit/fe4e6667dcd83409c43db8428ed7d91f3f641a68))

### Refactor

- [**breaking**] **modules:** Adopt ES Modules and dual package exports [by @vrdons](https://github.com/vrdons) ([e875d76](https://github.com/AroxBot/framework/commit/e875d767b69670b8bb88936b5221e7320b5d8601))
- Improve project structure and build reliability [by @vrdons](https://github.com/vrdons) ([0024dab](https://github.com/AroxBot/framework/commit/0024dab8265ea622b4d4571ac5a7b6e5ff119bde))


## [0.1.2-beta.1] - 2026-02-28

### Bug Fixes

- Wrong repo name [by @vrdons](https://github.com/vrdons) ([5efa1da](https://github.com/AroxBot/framework/commit/5efa1daf05c194e9a43780dad863c423fb599bd7))
- Improve error logging for loading paths [by @randseas](https://github.com/randseas) ([87018ce](https://github.com/AroxBot/framework/commit/87018cee1083b7b344a994f2eb57658a0763b506))

### Build System

- Migrate build system to esbuild and oxc [by @vrdons](https://github.com/vrdons) ([625343f](https://github.com/AroxBot/framework/commit/625343fcd41389f4c3decce4426c5630d63da39c))

### Chores

- Fix lint check on every pr\nNo need for extra resource [by @vrdons](https://github.com/vrdons) ([6835b09](https://github.com/AroxBot/framework/commit/6835b096b723939136c77b4067ed15ba0cea336a))

### Dependencies

- Bump oxfmt from 0.26.0 to 0.27.0 ([#20](https://github.com/AroxBot/framework/pull/20)) by dependabot[bot] ([78b5e9f](https://github.com/AroxBot/framework/commit/78b5e9f1f0ab5a3b3fcfc72d6a02f304f4e4d36b))
- Bump oxlint-tsgolint from 0.11.1 to 0.11.3 ([#19](https://github.com/AroxBot/framework/pull/19)) by dependabot[bot] ([dd1595c](https://github.com/AroxBot/framework/commit/dd1595cf238adea431f2c56f41830c471c5d0482))
- Bump oxlint from 1.41.0 to 1.42.0 ([#18](https://github.com/AroxBot/framework/pull/18)) by dependabot[bot] ([eacab34](https://github.com/AroxBot/framework/commit/eacab343f12554f7600717a11d5b2ad6099f9bcc))
- Bump @types/node from 25.0.10 to 25.1.0 ([#17](https://github.com/AroxBot/framework/pull/17)) by dependabot[bot] ([398bb31](https://github.com/AroxBot/framework/commit/398bb31479a332201901895af02f41d859527e0e))
- Bump libnpmpack from 9.0.13 to 9.1.1 ([#28](https://github.com/AroxBot/framework/pull/28)) by dependabot[bot] ([3e47cdd](https://github.com/AroxBot/framework/commit/3e47cdd88ea79deedbd8452e78366cf54f55aeb4))
- Bump @types/node from 25.1.0 to 25.2.3 ([#29](https://github.com/AroxBot/framework/pull/29)) by dependabot[bot] ([6dcaeae](https://github.com/AroxBot/framework/commit/6dcaeaef927687ad600b19b6b01bfa7a5c6b4f06))
- Bump i18next from 25.8.0 to 25.8.5 ([#30](https://github.com/AroxBot/framework/pull/30)) by dependabot[bot] ([bb91d53](https://github.com/AroxBot/framework/commit/bb91d5354cfc972d639951cae24030a27f0fb137))
- Bump @swc/cli from 0.7.10 to 0.8.0 ([#33](https://github.com/AroxBot/framework/pull/33)) by dependabot[bot] ([bc80350](https://github.com/AroxBot/framework/commit/bc803507a0e4a928a6a3dd73d0b2b8ca9011a8cf))
- Bump oxlint-tsgolint from 0.11.3 to 0.12.0 ([#31](https://github.com/AroxBot/framework/pull/31)) by dependabot[bot] ([7dfb461](https://github.com/AroxBot/framework/commit/7dfb46170d35e369a50f3356008eab13d3b8f383))
- Bump oxlint from 1.42.0 to 1.46.0 ([#32](https://github.com/AroxBot/framework/pull/32)) by dependabot[bot] ([8d35b4a](https://github.com/AroxBot/framework/commit/8d35b4a917c9246754792afb4df0e9034a1d9360))
- Bump oxfmt from 0.27.0 to 0.31.0 ([#34](https://github.com/AroxBot/framework/pull/34)) by dependabot[bot] ([26dcd16](https://github.com/AroxBot/framework/commit/26dcd166793699aefca482ae8e343314142b1332))
- Bump @types/node from 25.2.3 to 25.3.0 ([#36](https://github.com/AroxBot/framework/pull/36)) by dependabot[bot] ([58e6756](https://github.com/AroxBot/framework/commit/58e6756baa14c27b43237ec9299d2bb7a69b4053))
- Bump oxlint from 1.47.0 to 1.48.0 ([#37](https://github.com/AroxBot/framework/pull/37)) by dependabot[bot] ([f3836ab](https://github.com/AroxBot/framework/commit/f3836abea977483267876a9dd1df62bec048b664))
- Bump oxfmt from 0.32.0 to 0.33.0 ([#38](https://github.com/AroxBot/framework/pull/38)) by dependabot[bot] ([7e9510b](https://github.com/AroxBot/framework/commit/7e9510b847bb3160e3a09eca0b7bd503dfaff50a))
- Bump i18next from 25.8.7 to 25.8.11 ([#40](https://github.com/AroxBot/framework/pull/40)) by dependabot[bot] ([a6b0250](https://github.com/AroxBot/framework/commit/a6b02506be5abff49012561c72c046e66cb6d862))
- Bump oxlint-tsgolint from 0.12.0 to 0.14.0 ([#39](https://github.com/AroxBot/framework/pull/39)) by dependabot[bot] ([d909e7e](https://github.com/AroxBot/framework/commit/d909e7e03febaaa86edc337b458f63900e0f2dbb))
- Bump libnpmpack from 9.1.1 to 9.1.3 ([#42](https://github.com/AroxBot/framework/pull/42)) by dependabot[bot] ([128364e](https://github.com/AroxBot/framework/commit/128364e1b06875036773231b36555e9dcb282747))
- Bump @swc/helpers from 0.5.18 to 0.5.19 ([#43](https://github.com/AroxBot/framework/pull/43)) by dependabot[bot] ([4035d3f](https://github.com/AroxBot/framework/commit/4035d3ffa27500ded9c80c3ac466bccbb34ef7d5))
- Bump @types/node from 25.3.0 to 25.3.1 ([#44](https://github.com/AroxBot/framework/pull/44)) by dependabot[bot] ([09ea8e3](https://github.com/AroxBot/framework/commit/09ea8e39af381515d7bf26243f223e1d45ec9044))
- Bump oxlint from 1.48.0 to 1.50.0 ([#45](https://github.com/AroxBot/framework/pull/45)) by dependabot[bot] ([40d0858](https://github.com/AroxBot/framework/commit/40d0858b534c3b1c2f47bf0887705186c4851622))
- Bump i18next from 25.8.11 to 25.8.13 ([#46](https://github.com/AroxBot/framework/pull/46)) by dependabot[bot] ([26abe6e](https://github.com/AroxBot/framework/commit/26abe6e6ec015ac200558c69176c4ed54662ce43))
- Bump @types/lodash from 4.17.23 to 4.17.24 ([#47](https://github.com/AroxBot/framework/pull/47)) by dependabot[bot] ([12b17fe](https://github.com/AroxBot/framework/commit/12b17fe21ccfc184d6ca90961f15c5b7eb6cf064))
- Bump oxlint-tsgolint from 0.14.2 to 0.15.0 ([#48](https://github.com/AroxBot/framework/pull/48)) by dependabot[bot] ([5ad3b70](https://github.com/AroxBot/framework/commit/5ad3b70e73cf5185c5ed8180e79cb58a1af7e8a5))
- Bump oxfmt from 0.33.0 to 0.35.0 ([#49](https://github.com/AroxBot/framework/pull/49)) by dependabot[bot] ([fbde8d7](https://github.com/AroxBot/framework/commit/fbde8d783bbe9477387f0820938f4d4a9323af1b))
- Remove @types/node [by @vrdons](https://github.com/vrdons) ([4c2b863](https://github.com/AroxBot/framework/commit/4c2b863545426c9d40430143b060a5905f6d1b8d))

### Refactor

- Command builder ([#21](https://github.com/AroxBot/framework/pull/21)) [by @vrdons](https://github.com/vrdons) ([17a1bcd](https://github.com/AroxBot/framework/commit/17a1bcdbc91da1a1fd37cd21500368ed67de451c))
- Remove lodash and update dependabot config [by @vrdons](https://github.com/vrdons) ([ad0ef4d](https://github.com/AroxBot/framework/commit/ad0ef4d75d6136c016be7809f71080b7369eddf9))

### Styling

- Remove header from cliff-toml [by @vrdons](https://github.com/vrdons) ([9d08758](https://github.com/AroxBot/framework/commit/9d087581d41ad80d4f6e26babb80d95d2ad95d89))


## [0.1.1] - 2026-01-25

### Bug Fixes

- **release:** Use stdin for release notes to prevent shell injection [by @vrdons](https://github.com/vrdons) ([3300d6f](https://github.com/AroxBot/framework/commit/3300d6f0ed26eb903d6c8836963771a639b2b014))

### Continuous Integration

- Fix releasing commit ([#5](https://github.com/AroxBot/framework/pull/5)) [by @vrdons](https://github.com/vrdons) ([0c08a88](https://github.com/AroxBot/framework/commit/0c08a88ab8308e0c6ef4ba21ea4a442613ba9441))

### Dependencies

- Bump oxlint from 1.39.0 to 1.41.0 ([#8](https://github.com/AroxBot/framework/pull/8)) by dependabot[bot] ([6dad104](https://github.com/AroxBot/framework/commit/6dad10423cc8a01a492014429ac61edea7dc8f2b))
- Bump @types/node from 25.0.8 to 25.0.10 ([#9](https://github.com/AroxBot/framework/pull/9)) by dependabot[bot] ([512e282](https://github.com/AroxBot/framework/commit/512e282c265738b482f2cbe82958d66067fd5202))
- Bump libnpmpack from 9.0.12 to 9.0.13 ([#10](https://github.com/AroxBot/framework/pull/10)) by dependabot[bot] ([a626989](https://github.com/AroxBot/framework/commit/a6269897c60d243464a1540a914baa9cd411cad6))
- Bump oxfmt from 0.24.0 to 0.26.0 ([#11](https://github.com/AroxBot/framework/pull/11)) by dependabot[bot] ([ddbef07](https://github.com/AroxBot/framework/commit/ddbef070d5660a58b3ea71452055fdb5c1fd9b92))

### Feat

- I18next ([#7](https://github.com/AroxBot/framework/pull/7)) [by @Fhyrox](https://github.com/Fhyrox) ([c3e33a8](https://github.com/AroxBot/framework/commit/c3e33a8d82d55dc6f90d5a189957540889ac0966))


## [0.1.0] - 2026-01-18

### Features

- Basic BaseClient (temp) [by @vrdons](https://github.com/vrdons) ([ba204f5](https://github.com/AroxBot/framework/commit/ba204f5acbfc50293321ee80b41ccbadc725ce34))
- Logger with log level option [by @vrdons](https://github.com/vrdons) ([a5e3844](https://github.com/AroxBot/framework/commit/a5e3844db7e96181bf888607ca335b7bc9b19aae))

### Refactor

- Implement class-based structure with hybrid command support ([#2](https://github.com/AroxBot/framework/pull/2)) [by @Fhyrox](https://github.com/Fhyrox) ([a0ee32c](https://github.com/AroxBot/framework/commit/a0ee32c6473b0d3a14d2626d00dcf648fe10dfc7))


## [0.1.0-alpha.2] - 2026-01-15

### Chores

- **changelog:** Weekly update by github-actions[bot] ([8e7f6b8](https://github.com/AroxBot/framework/commit/8e7f6b870c41142de2e8952d7989f765f50b41a9))
- Update checkVersionExists script [by @vrdons](https://github.com/vrdons) ([73eef8b](https://github.com/AroxBot/framework/commit/73eef8b62c896ec7c58dae9009c7e18d9b5cd047))
- Fix silly errors [by @vrdons](https://github.com/vrdons) ([042ec4c](https://github.com/AroxBot/framework/commit/042ec4c8986c1a9da007a2c16e3a0be8bd82e93e))
- Fix silly errors part 2 [by @vrdons](https://github.com/vrdons) ([7d0650b](https://github.com/AroxBot/framework/commit/7d0650b8ebe94e4aaa9825147d810ecdcd4dbeda))
- Do not use generateNpmrc [by @vrdons](https://github.com/vrdons) ([4a9596f](https://github.com/AroxBot/framework/commit/4a9596fa0022a2f753c441c13cf37c971716a1f7))
- Update createRelease function [by @vrdons](https://github.com/vrdons) ([74afa91](https://github.com/AroxBot/framework/commit/74afa9183b6eeab64c3121f75c7224333e0a70da))

### Continuous Integration

- Fix "You must specify a tag using --tag when publishing a prerelease version" [by @vrdons](https://github.com/vrdons) ([ae017ee](https://github.com/AroxBot/framework/commit/ae017eeac7dd9a47657309cf49c282b8d62a638a))
- Add npm support [by @vrdons](https://github.com/vrdons) ([010b19d](https://github.com/AroxBot/framework/commit/010b19dd488a4835c8a1a178bb9595cf99f3aae3))
- Use OIDC to publish npm [by @vrdons](https://github.com/vrdons) ([79d1493](https://github.com/AroxBot/framework/commit/79d1493c25173ba562395de64204d37aeac24ecc))
- Add husky [by @vrdons](https://github.com/vrdons) ([740c9a6](https://github.com/AroxBot/framework/commit/740c9a6cd0368dc147affc1be352f804ccadfbdc))

### Styling

- Update formatting changelog [by @vrdons](https://github.com/vrdons) ([b8f6d09](https://github.com/AroxBot/framework/commit/b8f6d09a83fc9d15f109b439a631ae3ee49f780e))


## [0.1.0-alpha.1] - 2026-01-15

### Bug Fixes

- Npm build script [by @vrdons](https://github.com/vrdons) ([6f235e3](https://github.com/AroxBot/framework/commit/6f235e3d999b8a2db25f00d3073313e15a51533c))

### Chores

- Base template [by @vrdons](https://github.com/vrdons) ([473e8a6](https://github.com/AroxBot/framework/commit/473e8a608a11a9da36e66442bc091aed5139fc27))
- Dont ignore package-lock.json [by @vrdons](https://github.com/vrdons) ([f6d2e9e](https://github.com/AroxBot/framework/commit/f6d2e9e1343e35dab32371a2b7e2a0a0f2371346))
- Add Error handling [by @vrdons](https://github.com/vrdons) ([0525018](https://github.com/AroxBot/framework/commit/052501817e20ccb0d4d47f37d2494772cf320d44))

### Continuous Integration

- Fix checking code [by @vrdons](https://github.com/vrdons) ([310c4e1](https://github.com/AroxBot/framework/commit/310c4e1626dd4de653fca1844b922324ca0e77f0))
- Fix releasing github [by @vrdons](https://github.com/vrdons) ([6b70d45](https://github.com/AroxBot/framework/commit/6b70d457f4a8e1c313e8f62062511d151eb50070))
- Move github-release to check [by @vrdons](https://github.com/vrdons) ([9565461](https://github.com/AroxBot/framework/commit/9565461f3bebef6a170ee9a068d31fdf04a2696f))

### Features

- Github Release [by @vrdons](https://github.com/vrdons) ([80f4b1d](https://github.com/AroxBot/framework/commit/80f4b1d779ddffbf5c7aa61d95f35acea95016c2))

<!-- generated by git-cliff -->
54 changes: 54 additions & 0 deletions cliff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
[changelog]
header = """"""
body = """
{% if version %}
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}\
{% else %}\
## Unreleased\
{% endif %}

{% for group, commits in commits | group_by(attribute="group") %}\
### {{ group | upper_first }}
{% for commit in commits %}
- {% if commit.breaking %}[**breaking**] {% endif %}{% if commit.scope %}**{{ commit.scope }}:** {% endif %}{{ commit.message | split(pat="\n") | first | trim | upper_first }} {% if commit.author.username and not (commit.author.username is containing("[bot]")) %}by [@{{ commit.author.username }}](https://github.com/{{ commit.author.username }}){% elif commit.author.username %}by {{ commit.author.username }}{% elif commit.author.name and not (commit.author.name is containing("[bot]")) %}by [@{{ commit.author.name }}](https://github.com/{{ commit.author.name }}){% else %}by {{ commit.author.name }}{% endif %} {% if commit.url %}([{{ commit.id | truncate(length=7, end="") }}]({{ commit.url }})){% else %}([{{ commit.id | truncate(length=7, end="") }}](https://github.com/AroxBot/framework/commit/{{ commit.id }})){% endif %}\
{% endfor %}\n
{% endfor %}
"""
trim = true
footer = """
<!-- generated by git-cliff -->
"""

[git]
conventional_commits = true
filter_unconventional = true
protect_breaking_commits = true
sort_commits = "oldest"
split_commits = false
commit_preprocessors = [
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/AroxBot/framework/pull/${2}))" },
{ pattern = '\(([a-f0-9]{7,40})\)', replace = "([${1}](https://github.com/AroxBot/framework/commit/${1}))" },
{ pattern = '(?s)--- updated-dependencies:.*', replace = "" },
{ pattern = '(?m)^Signed-off-by:.*$', replace = "" },
{ pattern = '(?m)^Co-authored-by:.*$', replace = "" },
]
commit_parsers = [
{ message = "^fixup!", skip = true },
{ message = "^chore\\(release\\):", skip = true },
{ message = "^feat(\\(.+\\))?!?:", group = "Features" },
{ message = "^fix(\\(.+\\))?!?:", group = "Bug Fixes" },
{ message = "^docs(\\(.+\\))?!?:", group = "Documentation" },
{ message = "^style(\\(.+\\))?!?:", group = "Styling" },
{ message = "^refactor(\\(.+\\))?!?:", group = "Refactor" },
{ message = "^perf(\\(.+\\))?!?:", group = "Performance" },
{ message = "^test(\\(.+\\))?!?:", group = "Testing" },
{ message = "^build(\\(.+\\))?!?:", group = "Build System" },
{ message = "^ci(\\(.+\\))?!?:", group = "Continuous Integration" },
{ message = "^chore(\\(.+\\))?!?:", group = "Chores" },
{ message = "^revert(\\(.+\\))?!?:|^Revert", group = "Reverts" },
{ body = ".*security", group = "Security" },

{ message = "^deps", group = "Dependencies" },
{ message = "^Merge pull request", group = "Pull Requests" },
{ message = "^Merge branch", group = "Merges" },
]
7 changes: 7 additions & 0 deletions examples/basic_client/events/ready.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { EventBuilder } from "../../../dist/index.js";

new EventBuilder("clientReady", false, (context) => {
context.logger.log("Client connected!");
context.logger.warn(`Current user: ${context.client.user.username}`);
context.logger.warn(`Current prefix: ${context.client.prefix ?? "none"}`);
});
Loading