summaryrefslogtreecommitdiff
path: root/node_modules/@sapphire/snowflake
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@sapphire/snowflake')
-rw-r--r--node_modules/@sapphire/snowflake/CHANGELOG.md294
-rw-r--r--node_modules/@sapphire/snowflake/README.md170
-rw-r--r--node_modules/@sapphire/snowflake/dist/index.d.ts202
-rw-r--r--node_modules/@sapphire/snowflake/dist/index.global.js198
-rw-r--r--node_modules/@sapphire/snowflake/dist/index.global.js.map1
-rw-r--r--node_modules/@sapphire/snowflake/dist/index.js193
-rw-r--r--node_modules/@sapphire/snowflake/dist/index.js.map1
-rw-r--r--node_modules/@sapphire/snowflake/dist/index.mjs186
-rw-r--r--node_modules/@sapphire/snowflake/dist/index.mjs.map1
-rw-r--r--node_modules/@sapphire/snowflake/package.json67
10 files changed, 1313 insertions, 0 deletions
diff --git a/node_modules/@sapphire/snowflake/CHANGELOG.md b/node_modules/@sapphire/snowflake/CHANGELOG.md
new file mode 100644
index 0000000..511b056
--- /dev/null
+++ b/node_modules/@sapphire/snowflake/CHANGELOG.md
@@ -0,0 +1,294 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+# [@sapphire/snowflake@3.5.1](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.5.0...@sapphire/snowflake@3.5.1) - (2023-05-12)
+
+## 🏠 Refactor
+
+- **snowflake:** Handle out-of-bounds `increment` correctly (#596) ([b5276d7](https://github.com/sapphiredev/utilities/commit/b5276d7372c33356975a302bafb5ae8aba604431))
+
+# [@sapphire/snowflake@3.5.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.4.3...@sapphire/snowflake@3.5.0) - (2023-05-10)
+
+## πŸš€ Features
+
+- **snowflake:** Expose `processId` and `workerId` (#595) ([b873c1c](https://github.com/sapphiredev/utilities/commit/b873c1cc3b30cb54d710a49f7618e125ac1132ad))
+
+# [@sapphire/snowflake@3.4.2](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.4.1...@sapphire/snowflake@3.4.2) - (2023-04-12)
+
+## 🏠 Refactor
+
+- **Snowflake:** Simplify `compare` logic (#578) ([886254e](https://github.com/sapphiredev/utilities/commit/886254eea2f0cc5e8f63d015acffaf0e61489357))
+
+# [@sapphire/snowflake@3.4.1](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.4.0...@sapphire/snowflake@3.4.1) - (2023-04-10)
+
+## πŸ› Bug Fixes
+
+- **snowflake:** Ensure strings are never compared with bigints ([22199a5](https://github.com/sapphiredev/utilities/commit/22199a5aa0c6150f46e01bfbe328deecb9f818ba))
+- **deps:** Update all non-major dependencies (#577) ([291dd67](https://github.com/sapphiredev/utilities/commit/291dd6783e57d8f075ce566218ba076ef6c4bbbd))
+- **deps:** Update all non-major dependencies (#545) ([40ca040](https://github.com/sapphiredev/utilities/commit/40ca040a21d8a0949682051a3a974538183a400e))
+- **deps:** Update all non-major dependencies (#544) ([cc78f17](https://github.com/sapphiredev/utilities/commit/cc78f17390c7f3db08af92bf46a5a70a9c11dd5f))
+
+## πŸ§ͺ Testing
+
+- Cleanup tests ([aec1bb2](https://github.com/sapphiredev/utilities/commit/aec1bb290d0f3c00a1ae4f4c86302ebbb161d348))
+
+# [@sapphire/snowflake@3.4.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.3.0...@sapphire/snowflake@3.4.0) - (2022-12-27)
+
+## πŸ› Bug Fixes
+
+- **deps:** Update all non-major dependencies (#532) ([8033d1f](https://github.com/sapphiredev/utilities/commit/8033d1ff7a5a1974134c61f424f171cccb2915e1))
+
+## πŸ“ Documentation
+
+- Add @06000208 as a contributor ([fa3349e](https://github.com/sapphiredev/utilities/commit/fa3349e55ce4ad008785211dec7bf8e2b5d933df))
+
+## πŸš€ Features
+
+- **snowflake:** Added `Snowflake.compare` (#531) ([6accd6d](https://github.com/sapphiredev/utilities/commit/6accd6d15eab12e312034f8ef43cff032835c972))
+
+# [@sapphire/snowflake@3.3.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.2.2...@sapphire/snowflake@3.3.0) - (2022-12-03)
+
+## 🏠 Refactor
+
+- Split `@sapphire/time-utilities` into 4 sub-packages (#462) ([574299a](https://github.com/sapphiredev/utilities/commit/574299a99e658f6500a2a7efa587a0919b2d1313))
+
+## πŸ› Bug Fixes
+
+- **snowflake:** TwitterSnowflake using incorrect epoch (#522) ([4ad4117](https://github.com/sapphiredev/utilities/commit/4ad41170488161b2998bd72da5a8b7fea10539a0))
+- **deps:** Update all non-major dependencies (#514) ([21b07d5](https://github.com/sapphiredev/utilities/commit/21b07d5db529a0d982647a60de98e46f36f1ac93))
+- **deps:** Update all non-major dependencies (#505) ([6178296](https://github.com/sapphiredev/utilities/commit/617829649e1e4deeee02b14533b5377cd5bc1fb3))
+- **deps:** Update all non-major dependencies (#466) ([dc08606](https://github.com/sapphiredev/utilities/commit/dc08606a97154e47c65536123ac5f8b1262f7bd2))
+- **deps:** Update all non-major dependencies ([e20f299](https://github.com/sapphiredev/utilities/commit/e20f29906e83cee000aaba9c6827e3bec5173d28))
+- **deps:** Update all non-major dependencies ([2308bd7](https://github.com/sapphiredev/utilities/commit/2308bd74356b6b2e0c12995b25f4d8ade4803fe9))
+- **deps:** Update all non-major dependencies ([84af0db](https://github.com/sapphiredev/utilities/commit/84af0db2db749223b036aa99fe19a2e9af5681c6))
+- **deps:** Update all non-major dependencies ([50cd8de](https://github.com/sapphiredev/utilities/commit/50cd8dea593b6f5ae75571209456b3421e2ca59a))
+
+## πŸ“ Documentation
+
+- Add @didinele as a contributor ([42ef7b6](https://github.com/sapphiredev/utilities/commit/42ef7b656c48fd0e720119db1d622c8bba2791e9))
+- Add @goestav as a contributor ([0e56a92](https://github.com/sapphiredev/utilities/commit/0e56a92a4e2d0942bfa207f81a8cb03b32312034))
+- Add @CitTheDev as a contributor ([34169ea](https://github.com/sapphiredev/utilities/commit/34169eae1dc0476ccf5a6c4f36e28602a204829e))
+- Add @legendhimslef as a contributor ([059b6f1](https://github.com/sapphiredev/utilities/commit/059b6f1ab5362d46d58624d06c1aa39192b0716f))
+- Add @r-priyam as a contributor ([fb278ba](https://github.com/sapphiredev/utilities/commit/fb278bacf627ec6fc88752eafeb12df5f3177a2c))
+- Change name of @kyranet (#451) ([df4fdef](https://github.com/sapphiredev/utilities/commit/df4fdefce18659975a4ebc224723638507d02d35))
+- Update @RealShadowNova as a contributor ([a869ba0](https://github.com/sapphiredev/utilities/commit/a869ba0abfad041610b9115187d426aebe671af6))
+- Add @muchnameless as a contributor ([a1221fe](https://github.com/sapphiredev/utilities/commit/a1221fea68506e99591d5d00ec552a07c26833f9))
+- Add @enxg as a contributor ([d2382f0](https://github.com/sapphiredev/utilities/commit/d2382f04e3909cb4ad11798a0a10e683f6cf5383))
+- Add @EvolutionX-10 as a contributor ([efc3a32](https://github.com/sapphiredev/utilities/commit/efc3a320a72ae258996dd62866d206c33f8d4961))
+- Add @MajesticString as a contributor ([295b3e9](https://github.com/sapphiredev/utilities/commit/295b3e9849a4b0fe64074bae02f6426378a303c3))
+- Add @Mzato0001 as a contributor ([c790ef2](https://github.com/sapphiredev/utilities/commit/c790ef25df2d7e22888fa9f8169167aa555e9e19))
+
+## πŸš€ Features
+
+- **utilities:** Add possibility to import single functions by appending them to the import path. (#454) ([374c145](https://github.com/sapphiredev/utilities/commit/374c145a5dd329cfc1a867ed6720abf408683a88))
+
+## πŸ§ͺ Testing
+
+- Migrate to vitest (#380) ([075ec73](https://github.com/sapphiredev/utilities/commit/075ec73c7a8e3374fad3ada612d37eb4ac36ec8d))
+
+# [@sapphire/snowflake@3.2.2](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.2.1...@sapphire/snowflake@3.2.2) - (2022-04-24)
+
+## Bug Fixes
+
+- Fix typo (#333) ([ae2f257](https://github.com/sapphiredev/utilities/commit/ae2f25766d5985735f2d9b257eebd27cdc8a7c52))
+
+## Documentation
+
+- Add @NotKaskus as a contributor ([00da8f1](https://github.com/sapphiredev/utilities/commit/00da8f199137b9277119823f322d1f2d168d928a))
+- Add @imranbarbhuiya as a contributor ([fb674c2](https://github.com/sapphiredev/utilities/commit/fb674c2c5594d41e71662263553dcb4bac9e37f4))
+- Add @axisiscool as a contributor ([ce1aa31](https://github.com/sapphiredev/utilities/commit/ce1aa316871a88d3663efbdf2a42d3d8dfe6a27f))
+- Add @dhruv-kaushikk as a contributor ([ebbf43f](https://github.com/sapphiredev/utilities/commit/ebbf43f63617daba96e72c50a234bf8b64f6ddc4))
+- Add @Commandtechno as a contributor ([f1d69fa](https://github.com/sapphiredev/utilities/commit/f1d69fabe1ee0abe4be08b19e63dbec03102f7ce))
+- Fix typedoc causing OOM crashes ([63ba41c](https://github.com/sapphiredev/utilities/commit/63ba41c4b6678554b1c7043a22d3296db4f59360))
+
+## [3.2.1](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.2.0...@sapphire/snowflake@3.2.1) (2022-04-01)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+# [3.2.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.1.0...@sapphire/snowflake@3.2.0) (2022-03-06)
+
+### Bug Fixes
+
+- **snowflake:** fixed the examples for `DiscordSnowflake` and `TwitterSnowflake` ([#282](https://github.com/sapphiredev/utilities/issues/282)) ([2e5ed7f](https://github.com/sapphiredev/utilities/commit/2e5ed7fdadccf261967c45f73d0dc78e2497eed3))
+
+### Features
+
+- allow module: NodeNext ([#306](https://github.com/sapphiredev/utilities/issues/306)) ([9dc6dd6](https://github.com/sapphiredev/utilities/commit/9dc6dd619efab879bb2b0b3c9e64304e10a67ed6))
+- **ts-config:** add multi-config structure ([#281](https://github.com/sapphiredev/utilities/issues/281)) ([b5191d7](https://github.com/sapphiredev/utilities/commit/b5191d7f2416dc5838590c4ff221454925553e37))
+
+# [3.1.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.0.1...@sapphire/snowflake@3.1.0) (2022-01-28)
+
+### Features
+
+- change build system to tsup ([#270](https://github.com/sapphiredev/utilities/issues/270)) ([365a53a](https://github.com/sapphiredev/utilities/commit/365a53a5517a01a0926cf28a83c96b63f32ed9f8))
+
+## [3.0.1](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@3.0.0...@sapphire/snowflake@3.0.1) (2022-01-10)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+# [3.0.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@2.1.4...@sapphire/snowflake@3.0.0) (2021-12-08)
+
+### Bug Fixes
+
+- **snowflake:** remove env-based defaults ([#232](https://github.com/sapphiredev/utilities/issues/232)) ([10408e4](https://github.com/sapphiredev/utilities/commit/10408e4d3677e91490d967c3d89bf9575946090b))
+
+### Features
+
+- **Snowflake:** rework entire package ([#231](https://github.com/sapphiredev/utilities/issues/231)) ([1d02f1a](https://github.com/sapphiredev/utilities/commit/1d02f1a2f520efcbc194c3992af593d0e493873b))
+
+### BREAKING CHANGES
+
+- **Snowflake:** Renamed `processID` to `processId`
+- **Snowflake:** Renamed `workerID` to `workerId`
+- **Snowflake:** `workerId` now defaults to 0n instead of 1n
+- **Snowflake:** `DiscordSnowflake` is not longer a class, but a constructed Snowflake
+- **Snowflake:** `TwitterSnowflake` is not longer a class, but a constructed Snowflake
+
+## [2.1.4](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@2.1.3...@sapphire/snowflake@2.1.4) (2021-11-06)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+## [2.1.3](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@2.1.2...@sapphire/snowflake@2.1.3) (2021-10-26)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+## [2.1.2](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@2.1.1...@sapphire/snowflake@2.1.2) (2021-10-17)
+
+### Bug Fixes
+
+- allow more node & npm versions in engines field ([5977d2a](https://github.com/sapphiredev/utilities/commit/5977d2a30a4b2cfdf84aff3f33af03ffde1bbec5))
+
+## [2.1.1](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@2.1.0...@sapphire/snowflake@2.1.1) (2021-10-11)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+# [2.1.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@2.0.0...@sapphire/snowflake@2.1.0) (2021-10-04)
+
+### Bug Fixes
+
+- **snowflake:** fixed snowflake generating duplicate IDs ([#166](https://github.com/sapphiredev/utilities/issues/166)) ([f0cf4ad](https://github.com/sapphiredev/utilities/commit/f0cf4ad6bc0b8b2447499ca36581d2b453e52715))
+
+### Features
+
+- **snowflake:** set minimum NodeJS to v14 ([11a61c7](https://github.com/sapphiredev/utilities/commit/11a61c72bc29e683f9a4492815db3db094103bbc))
+
+# [2.0.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.3.6...@sapphire/snowflake@2.0.0) (2021-07-17)
+
+### Code Refactoring
+
+- **rateLimits:** rewrite all of it ([#130](https://github.com/sapphiredev/utilities/issues/130)) ([320778c](https://github.com/sapphiredev/utilities/commit/320778ca65cbf3591bd1ce0b1f2eb430693eef9a))
+
+### BREAKING CHANGES
+
+- **rateLimits:** Removed `Bucket`
+
+## [1.3.6](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.3.5...@sapphire/snowflake@1.3.6) (2021-07-11)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+## [1.3.5](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.3.4...@sapphire/snowflake@1.3.5) (2021-06-27)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+## [1.3.4](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.3.3...@sapphire/snowflake@1.3.4) (2021-06-19)
+
+### Bug Fixes
+
+- **doc:** change `[@link](https://github.com/link)` to `[@linkplain](https://github.com/linkplain)` for support in VSCode IntelliSense ([703d460](https://github.com/sapphiredev/utilities/commit/703d4605b547a8787aff62d6f1054ea26dfd9d1c))
+- **docs:** update-tsdoc-for-vscode-may-2021 ([#126](https://github.com/sapphiredev/utilities/issues/126)) ([f8581bf](https://github.com/sapphiredev/utilities/commit/f8581bfe97a1b2f8aac3a3d3ed342d8ba92d730b))
+
+## [1.3.3](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.3.2...@sapphire/snowflake@1.3.3) (2021-06-06)
+
+### Bug Fixes
+
+- remove peer deps, update dev deps, update READMEs ([#124](https://github.com/sapphiredev/utilities/issues/124)) ([67256ed](https://github.com/sapphiredev/utilities/commit/67256ed43b915b02a8b5c68230ba82d6210c5032))
+- **snowflake:** fixed parsing for timestamps as Date objects ([c17a515](https://github.com/sapphiredev/utilities/commit/c17a515b02931cf778ca69913132e8d4558504a1))
+
+## [1.3.2](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.3.1...@sapphire/snowflake@1.3.2) (2021-05-20)
+
+### Bug Fixes
+
+- **snowflake:** mark package as side effect free ([6a9bafc](https://github.com/sapphiredev/utilities/commit/6a9bafc24caba4b0ebbdd6896ac245ae6d60dede))
+
+## [1.3.1](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.3.0...@sapphire/snowflake@1.3.1) (2021-05-02)
+
+### Bug Fixes
+
+- drop the `www.` from the SapphireJS URL ([494d89f](https://github.com/sapphiredev/utilities/commit/494d89ffa04f78c195b93d7905b3232884f7d7e2))
+- update all the SapphireJS URLs from `.com` to `.dev` ([f59b46d](https://github.com/sapphiredev/utilities/commit/f59b46d1a0ebd39cad17b17d71cd3b9da808d5fd))
+
+# [1.3.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.2.8...@sapphire/snowflake@1.3.0) (2021-04-21)
+
+### Features
+
+- add @sapphire/embed-jsx ([#100](https://github.com/sapphiredev/utilities/issues/100)) ([7277a23](https://github.com/sapphiredev/utilities/commit/7277a236015236ed8e81b7882875410facc4ce17))
+
+## [1.2.8](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.2.7...@sapphire/snowflake@1.2.8) (2021-04-19)
+
+### Bug Fixes
+
+- change all Sapphire URLs from "project"->"community" & use our domain where applicable πŸ‘¨β€πŸŒΎπŸšœ ([#102](https://github.com/sapphiredev/utilities/issues/102)) ([835b408](https://github.com/sapphiredev/utilities/commit/835b408e8e57130c3787aca2e32613346ff23e4d))
+
+## [1.2.7](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.2.6...@sapphire/snowflake@1.2.7) (2021-04-03)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+## [1.2.6](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.2.5...@sapphire/snowflake@1.2.6) (2021-03-16)
+
+### Bug Fixes
+
+- remove terser from all packages ([#79](https://github.com/sapphiredev/utilities/issues/79)) ([1cfe4e7](https://github.com/sapphiredev/utilities/commit/1cfe4e7c804e62c142495686d2b83b81d0026c02))
+
+## [1.2.5](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.2.4...@sapphire/snowflake@1.2.5) (2021-02-16)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+## [1.2.4](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.2.3...@sapphire/snowflake@1.2.4) (2021-01-16)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+## [1.2.3](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.2.2...@sapphire/snowflake@1.2.3) (2021-01-01)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+## [1.2.2](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.2.1...@sapphire/snowflake@1.2.2) (2020-12-26)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+## [1.2.1](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.2.0...@sapphire/snowflake@1.2.1) (2020-12-22)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+# [1.2.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.1.0...@sapphire/snowflake@1.2.0) (2020-11-15)
+
+### Bug Fixes
+
+- **snowflake:** pass keep_classnames to terser ([76ea062](https://github.com/sapphiredev/utilities/commit/76ea062d07000b169d9781f1a199b85ad3db0ba6))
+- **snowflake:** pass keep_fnames to terser ([b52aa76](https://github.com/sapphiredev/utilities/commit/b52aa764d8b02535496e0ceea3204a37552ce3d1))
+
+### Features
+
+- added time-utilities package ([#26](https://github.com/sapphiredev/utilities/issues/26)) ([f17a333](https://github.com/sapphiredev/utilities/commit/f17a3339667a452e8745fad7884272176e5d65e8))
+
+# [1.1.0](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.0.1...@sapphire/snowflake@1.1.0) (2020-11-04)
+
+### Bug Fixes
+
+- **ratelimits,snowflake,utilities:** fixed esm output target ([9fdab3f](https://github.com/sapphiredev/utilities/commit/9fdab3fca283c8c0b47cc32661c5cf8e0a5e583c))
+- **snowflake:** properly specify ESM and CommonJS exports ([e3278e6](https://github.com/sapphiredev/utilities/commit/e3278e6868a4f31d5b2a100710bcbce2b79bc218))
+
+### Features
+
+- added ratelimits package ([#15](https://github.com/sapphiredev/utilities/issues/15)) ([e0ae18c](https://github.com/sapphiredev/utilities/commit/e0ae18c5e1d0ae4e68a982829f1cf251fddfc80d))
+
+## [1.0.1](https://github.com/sapphiredev/utilities/compare/@sapphire/snowflake@1.0.0...@sapphire/snowflake@1.0.1) (2020-09-20)
+
+**Note:** Version bump only for package @sapphire/snowflake
+
+# 1.0.0 (2020-09-05)
+
+### Features
+
+- implement snowflake ([5ba4e2d](https://github.com/sapphiredev/utilities/commit/5ba4e2d82557dd4ff60ffe891a7b46e46373bea2))
+- **decorators:** add decorators package ([#4](https://github.com/sapphiredev/utilities/issues/4)) ([677b3e5](https://github.com/sapphiredev/utilities/commit/677b3e59d5c6160cbe6fb410821cadd7c0f00e3c))
diff --git a/node_modules/@sapphire/snowflake/README.md b/node_modules/@sapphire/snowflake/README.md
new file mode 100644
index 0000000..c8f0901
--- /dev/null
+++ b/node_modules/@sapphire/snowflake/README.md
@@ -0,0 +1,170 @@
+<div align="center">
+
+![Sapphire Logo](https://raw.githubusercontent.com/sapphiredev/assets/main/banners/SapphireCommunity.png)
+
+# @sapphire/snowflake
+
+**Deconstruct and generate snowflake IDs using BigInts.**
+
+[![GitHub](https://img.shields.io/github/license/sapphiredev/utilities)](https://github.com/sapphiredev/utilities/blob/main/LICENSE.md)
+[![codecov](https://codecov.io/gh/sapphiredev/utilities/branch/main/graph/badge.svg?token=OEGIV6RFDO)](https://codecov.io/gh/sapphiredev/utilities)
+[![npm bundle size](https://img.shields.io/bundlephobia/min/@sapphire/snowflake?logo=webpack&style=flat-square)](https://bundlephobia.com/result?p=@sapphire/snowflake)
+[![npm](https://img.shields.io/npm/v/@sapphire/snowflake?color=crimson&logo=npm&style=flat-square)](https://www.npmjs.com/package/@sapphire/snowflake)
+
+</div>
+
+**Table of Contents**
+
+- [Description](#description)
+- [Features](#features)
+- [Installation](#installation)
+- [Usage](#usage)
+ - [Constructing snowflakes](#constructing-snowflakes)
+ - [Snowflakes with custom epoch](#snowflakes-with-custom-epoch)
+ - [Snowflake with Discord epoch constant](#snowflake-with-discord-epoch-constant)
+ - [Snowflake with Twitter epoch constant](#snowflake-with-twitter-epoch-constant)
+ - [Deconstructing snowflakes](#deconstructing-snowflakes)
+ - [Snowflakes with custom epoch](#snowflakes-with-custom-epoch-1)
+ - [Snowflake with Discord epoch constant](#snowflake-with-discord-epoch-constant-1)
+ - [Snowflake with Twitter epoch constant](#snowflake-with-twitter-epoch-constant-1)
+- [Buy us some doughnuts](#buy-us-some-doughnuts)
+- [Contributors ✨](#contributors-%E2%9C%A8)
+
+## Description
+
+There is often a need to get a unique ID for entities, be that for Discord messages/channels/servers, keys in a database or many other similar examples. There are many ways to get such a unique ID, and one of those is using a so-called "snowflake". You can read more about snowflake IDs in [this Medium article](https://medium.com/better-programming/uuid-generation-snowflake-identifiers-unique-2aed8b1771bc).
+
+## Features
+
+- Written in TypeScript
+- Bundled with esbuild so it can be used in NodeJS and browsers
+- Offers CommonJS, ESM and UMD bundles
+- Offers predefined epochs for Discord and Twitter
+- Fully tested
+
+## Installation
+
+You can use the following command to install this package, or replace `npm install` with your package manager of choice.
+
+```sh
+npm install @sapphire/snowflake
+```
+
+## Usage
+
+**Note:** While this section uses `require`, the imports match 1:1 with ESM imports. For example `const { Snowflake } = require('@sapphire/snowflake')` equals `import { Snowflake } from '@sapphire/snowflake'`.
+
+### Constructing snowflakes
+
+#### Snowflakes with custom epoch
+
+```typescript
+// Import the Snowflake class
+const { Snowflake } = require('@sapphire/snowflake');
+
+// Define a custom epoch
+const epoch = new Date('2000-01-01T00:00:00.000Z');
+
+// Create an instance of Snowflake
+const snowflake = new Snowflake(epoch);
+
+// Generate a snowflake with the given epoch
+const uniqueId = snowflake.generate();
+```
+
+#### Snowflake with Discord epoch constant
+
+```typescript
+// Import the Snowflake class
+const { DiscordSnowflake } = require('@sapphire/snowflake');
+
+// Generate a snowflake with Discord's epoch
+const uniqueId = DiscordSnowflake.generate();
+
+// Alternatively, you can use the method directly
+const uniqueId = DiscordSnowflake.generate();
+```
+
+#### Snowflake with Twitter epoch constant
+
+```typescript
+// Import the Snowflake class
+const { TwitterSnowflake } = require('@sapphire/snowflake');
+
+// Generate a snowflake with Twitter's epoch
+const uniqueId = TwitterSnowflake.generate();
+
+// Alternatively, you can use the method directly
+const uniqueId = TwitterSnowflake.generate();
+```
+
+### Deconstructing snowflakes
+
+#### Snowflakes with custom epoch
+
+```typescript
+// Import the Snowflake class
+const { Snowflake } = require('@sapphire/snowflake');
+
+// Define a custom epoch
+const epoch = new Date('2000-01-01T00:00:00.000Z');
+
+// Create an instance of Snowflake
+const snowflake = new Snowflake(epoch);
+
+// Deconstruct a snowflake with the given epoch
+const uniqueId = snowflake.deconstruct('3971046231244935168');
+```
+
+#### Snowflake with Discord epoch constant
+
+```typescript
+// Import the Snowflake class
+const { DiscordSnowflake } = require('@sapphire/snowflake');
+
+// Deconstruct a snowflake with Discord's epoch
+const uniqueId = DiscordSnowflake.deconstruct('3971046231244935168');
+
+// Alternatively, you can use the method directly
+const uniqueId = DiscordSnowflake.deconstruct('3971046231244935168');
+```
+
+#### Snowflake with Twitter epoch constant
+
+```typescript
+// Import the Snowflake class
+const { TwitterSnowflake } = require('@sapphire/snowflake');
+
+// Deconstruct a snowflake with Twitter's epoch
+const uniqueId = TwitterSnowflake.deconstruct('3971046231244935168');
+
+// Alternatively, you can use the method directly
+const uniqueId = TwitterSnowflake.deconstruct('3971046231244935168');
+```
+
+---
+
+## Buy us some doughnuts
+
+Sapphire Community is and always will be open source, even if we don't get donations. That being said, we know there are amazing people who may still want to donate just to show their appreciation. Thank you very much in advance!
+
+We accept donations through Open Collective, Ko-fi, PayPal, Patreon and GitHub Sponsorships. You can use the buttons below to donate through your method of choice.
+
+| Donate With | Address |
+| :-------------: | :-------------------------------------------------: |
+| Open Collective | [Click Here](https://sapphirejs.dev/opencollective) |
+| Ko-fi | [Click Here](https://sapphirejs.dev/kofi) |
+| Patreon | [Click Here](https://sapphirejs.dev/patreon) |
+| PayPal | [Click Here](https://sapphirejs.dev/paypal) |
+
+## Contributors
+
+Please make sure to read the [Contributing Guide][contributing] before making a pull request.
+
+Thank you to all the people who already contributed to Sapphire!
+
+<a href="https://github.com/sapphiredev/utilities/graphs/contributors">
+ <img src="https://contrib.rocks/image?repo=sapphiredev/utilities" />
+</a>
+
+[contributing]: https://github.com/sapphiredev/.github/blob/main/.github/CONTRIBUTING.md
diff --git a/node_modules/@sapphire/snowflake/dist/index.d.ts b/node_modules/@sapphire/snowflake/dist/index.d.ts
new file mode 100644
index 0000000..76db741
--- /dev/null
+++ b/node_modules/@sapphire/snowflake/dist/index.d.ts
@@ -0,0 +1,202 @@
+declare const IncrementSymbol: unique symbol;
+declare const EpochSymbol: unique symbol;
+declare const ProcessIdSymbol: unique symbol;
+declare const WorkerIdSymbol: unique symbol;
+/**
+ * The maximum value the `workerId` field accepts in snowflakes.
+ */
+declare const MaximumWorkerId = 31n;
+/**
+ * The maximum value the `processId` field accepts in snowflakes.
+ */
+declare const MaximumProcessId = 31n;
+/**
+ * The maximum value the `increment` field accepts in snowflakes.
+ */
+declare const MaximumIncrement = 4095n;
+/**
+ * A class for generating and deconstructing Twitter snowflakes.
+ *
+ * A {@link https://developer.twitter.com/en/docs/twitter-ids Twitter snowflake}
+ * is a 64-bit unsigned integer with 4 fields that have a fixed epoch value.
+ *
+ * If we have a snowflake `266241948824764416` we can represent it as binary:
+ * ```
+ * 64 22 17 12 0
+ * 000000111011000111100001101001000101000000 00001 00000 000000000000
+ * number of ms since epoch worker pid increment
+ * ```
+ */
+declare class Snowflake {
+ /**
+ * Alias for {@link deconstruct}
+ */
+ decode: (id: string | bigint) => DeconstructedSnowflake;
+ /**
+ * Internal reference of the epoch passed in the constructor
+ * @internal
+ */
+ private readonly [EpochSymbol];
+ /**
+ * Internal incrementor for generating snowflakes
+ * @internal
+ */
+ private [IncrementSymbol];
+ /**
+ * The process ID that will be used by default in the generate method
+ * @internal
+ */
+ private [ProcessIdSymbol];
+ /**
+ * The worker ID that will be used by default in the generate method
+ * @internal
+ */
+ private [WorkerIdSymbol];
+ /**
+ * @param epoch the epoch to use
+ */
+ constructor(epoch: number | bigint | Date);
+ /**
+ * The epoch for this snowflake
+ */
+ get epoch(): bigint;
+ /**
+ * Gets the configured process ID
+ */
+ get processId(): bigint;
+ /**
+ * Sets the process ID that will be used by default for the {@link generate} method
+ * @param value The new value, will be coerced to BigInt and masked with `0b11111n`
+ */
+ set processId(value: number | bigint);
+ /**
+ * Gets the configured worker ID
+ */
+ get workerId(): bigint;
+ /**
+ * Sets the worker ID that will be used by default for the {@link generate} method
+ * @param value The new value, will be coerced to BigInt and masked with `0b11111n`
+ */
+ set workerId(value: number | bigint);
+ /**
+ * Generates a snowflake given an epoch and optionally a timestamp
+ * @param options options to pass into the generator, see {@link SnowflakeGenerateOptions}
+ *
+ * **note** when `increment` is not provided it defaults to the private `increment` of the instance
+ * @example
+ * ```typescript
+ * const epoch = new Date('2000-01-01T00:00:00.000Z');
+ * const snowflake = new Snowflake(epoch).generate();
+ * ```
+ * @returns A unique snowflake
+ */
+ generate({ increment, timestamp, workerId, processId }?: SnowflakeGenerateOptions): bigint;
+ /**
+ * Deconstructs a snowflake given a snowflake ID
+ * @param id the snowflake to deconstruct
+ * @returns a deconstructed snowflake
+ * @example
+ * ```typescript
+ * const epoch = new Date('2000-01-01T00:00:00.000Z');
+ * const snowflake = new Snowflake(epoch).deconstruct('3971046231244935168');
+ * ```
+ */
+ deconstruct(id: string | bigint): DeconstructedSnowflake;
+ /**
+ * Retrieves the timestamp field's value from a snowflake.
+ * @param id The snowflake to get the timestamp value from.
+ * @returns The UNIX timestamp that is stored in `id`.
+ */
+ timestampFrom(id: string | bigint): number;
+ /**
+ * Returns a number indicating whether a reference snowflake comes before, or after, or is same as the given
+ * snowflake in sort order.
+ * @param a The first snowflake to compare.
+ * @param b The second snowflake to compare.
+ * @returns `-1` if `a` is older than `b`, `0` if `a` and `b` are equals, `1` if `a` is newer than `b`.
+ * @example Sort snowflakes in ascending order
+ * ```typescript
+ * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];
+ * console.log(ids.sort((a, b) => Snowflake.compare(a, b)));
+ * // β†’ ['254360814063058944', '737141877803057244', '1056191128120082432'];
+ * ```
+ * @example Sort snowflakes in descending order
+ * ```typescript
+ * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];
+ * console.log(ids.sort((a, b) => -Snowflake.compare(a, b)));
+ * // β†’ ['1056191128120082432', '737141877803057244', '254360814063058944'];
+ * ```
+ */
+ static compare(a: string | bigint, b: string | bigint): -1 | 0 | 1;
+}
+/**
+ * Options for Snowflake#generate
+ */
+interface SnowflakeGenerateOptions {
+ /**
+ * Timestamp or date of the snowflake to generate
+ * @default Date.now()
+ */
+ timestamp?: number | bigint | Date;
+ /**
+ * The increment to use
+ * @default 0n
+ * @remark keep in mind that this bigint is auto-incremented between generate calls
+ */
+ increment?: bigint;
+ /**
+ * The worker ID to use, will be truncated to 5 bits (0-31)
+ * @default 0n
+ */
+ workerId?: bigint;
+ /**
+ * The process ID to use, will be truncated to 5 bits (0-31)
+ * @default 1n
+ */
+ processId?: bigint;
+}
+/**
+ * Object returned by Snowflake#deconstruct
+ */
+interface DeconstructedSnowflake {
+ /**
+ * The id in BigInt form
+ */
+ id: bigint;
+ /**
+ * The timestamp stored in the snowflake
+ */
+ timestamp: bigint;
+ /**
+ * The worker id stored in the snowflake
+ */
+ workerId: bigint;
+ /**
+ * The process id stored in the snowflake
+ */
+ processId: bigint;
+ /**
+ * The increment stored in the snowflake
+ */
+ increment: bigint;
+ /**
+ * The epoch to use in the snowflake
+ */
+ epoch: bigint;
+}
+
+/**
+ * A class for parsing snowflake ids using Discord's snowflake epoch
+ *
+ * Which is 2015-01-01 at 00:00:00.000 UTC+0, {@linkplain https://discord.com/developers/docs/reference#snowflakes}
+ */
+declare const DiscordSnowflake: Snowflake;
+
+/**
+ * A class for parsing snowflake ids using Twitter's snowflake epoch
+ *
+ * Which is 2010-11-04 at 01:42:54.657 UTC+0, found in the archived snowflake repository {@linkplain https://github.com/twitter-archive/snowflake/blob/b3f6a3c6ca8e1b6847baa6ff42bf72201e2c2231/src/main/scala/com/twitter/service/snowflake/IdWorker.scala#L25}
+ */
+declare const TwitterSnowflake: Snowflake;
+
+export { DeconstructedSnowflake, DiscordSnowflake, MaximumIncrement, MaximumProcessId, MaximumWorkerId, Snowflake, SnowflakeGenerateOptions, TwitterSnowflake };
diff --git a/node_modules/@sapphire/snowflake/dist/index.global.js b/node_modules/@sapphire/snowflake/dist/index.global.js
new file mode 100644
index 0000000..dbcad34
--- /dev/null
+++ b/node_modules/@sapphire/snowflake/dist/index.global.js
@@ -0,0 +1,198 @@
+var SapphireSnowflake = (function (exports) {
+ 'use strict';
+
+ var __defProp = Object.defineProperty;
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
+ var __publicField = (obj, key, value) => {
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
+ return value;
+ };
+
+ // src/lib/Snowflake.ts
+ var IncrementSymbol = Symbol("@sapphire/snowflake.increment");
+ var EpochSymbol = Symbol("@sapphire/snowflake.epoch");
+ var ProcessIdSymbol = Symbol("@sapphire/snowflake.processId");
+ var WorkerIdSymbol = Symbol("@sapphire/snowflake.workerId");
+ var MaximumWorkerId = 0b11111n;
+ var MaximumProcessId = 0b11111n;
+ var MaximumIncrement = 0b111111111111n;
+ var _a, _b, _c, _d;
+ var Snowflake = class {
+ /**
+ * @param epoch the epoch to use
+ */
+ constructor(epoch) {
+ /**
+ * Alias for {@link deconstruct}
+ */
+ // eslint-disable-next-line @typescript-eslint/unbound-method
+ __publicField(this, "decode", this.deconstruct);
+ /**
+ * Internal reference of the epoch passed in the constructor
+ * @internal
+ */
+ __publicField(this, _a);
+ /**
+ * Internal incrementor for generating snowflakes
+ * @internal
+ */
+ __publicField(this, _b, 0n);
+ /**
+ * The process ID that will be used by default in the generate method
+ * @internal
+ */
+ __publicField(this, _c, 1n);
+ /**
+ * The worker ID that will be used by default in the generate method
+ * @internal
+ */
+ __publicField(this, _d, 0n);
+ this[EpochSymbol] = BigInt(epoch instanceof Date ? epoch.getTime() : epoch);
+ }
+ /**
+ * The epoch for this snowflake
+ */
+ get epoch() {
+ return this[EpochSymbol];
+ }
+ /**
+ * Gets the configured process ID
+ */
+ get processId() {
+ return this[ProcessIdSymbol];
+ }
+ /**
+ * Sets the process ID that will be used by default for the {@link generate} method
+ * @param value The new value, will be coerced to BigInt and masked with `0b11111n`
+ */
+ set processId(value) {
+ this[ProcessIdSymbol] = BigInt(value) & MaximumProcessId;
+ }
+ /**
+ * Gets the configured worker ID
+ */
+ get workerId() {
+ return this[WorkerIdSymbol];
+ }
+ /**
+ * Sets the worker ID that will be used by default for the {@link generate} method
+ * @param value The new value, will be coerced to BigInt and masked with `0b11111n`
+ */
+ set workerId(value) {
+ this[WorkerIdSymbol] = BigInt(value) & MaximumWorkerId;
+ }
+ /**
+ * Generates a snowflake given an epoch and optionally a timestamp
+ * @param options options to pass into the generator, see {@link SnowflakeGenerateOptions}
+ *
+ * **note** when `increment` is not provided it defaults to the private `increment` of the instance
+ * @example
+ * ```typescript
+ * const epoch = new Date('2000-01-01T00:00:00.000Z');
+ * const snowflake = new Snowflake(epoch).generate();
+ * ```
+ * @returns A unique snowflake
+ */
+ generate({
+ increment,
+ timestamp = Date.now(),
+ workerId = this[WorkerIdSymbol],
+ processId = this[ProcessIdSymbol]
+ } = {}) {
+ if (timestamp instanceof Date)
+ timestamp = BigInt(timestamp.getTime());
+ else if (typeof timestamp === "number")
+ timestamp = BigInt(timestamp);
+ else if (typeof timestamp !== "bigint") {
+ throw new TypeError(`"timestamp" argument must be a number, bigint, or Date (received ${typeof timestamp})`);
+ }
+ if (typeof increment !== "bigint") {
+ increment = this[IncrementSymbol];
+ this[IncrementSymbol] = increment + 1n & MaximumIncrement;
+ }
+ return timestamp - this[EpochSymbol] << 22n | (workerId & MaximumWorkerId) << 17n | (processId & MaximumProcessId) << 12n | increment & MaximumIncrement;
+ }
+ /**
+ * Deconstructs a snowflake given a snowflake ID
+ * @param id the snowflake to deconstruct
+ * @returns a deconstructed snowflake
+ * @example
+ * ```typescript
+ * const epoch = new Date('2000-01-01T00:00:00.000Z');
+ * const snowflake = new Snowflake(epoch).deconstruct('3971046231244935168');
+ * ```
+ */
+ deconstruct(id) {
+ const bigIntId = BigInt(id);
+ const epoch = this[EpochSymbol];
+ return {
+ id: bigIntId,
+ timestamp: (bigIntId >> 22n) + epoch,
+ workerId: bigIntId >> 17n & MaximumWorkerId,
+ processId: bigIntId >> 12n & MaximumProcessId,
+ increment: bigIntId & MaximumIncrement,
+ epoch
+ };
+ }
+ /**
+ * Retrieves the timestamp field's value from a snowflake.
+ * @param id The snowflake to get the timestamp value from.
+ * @returns The UNIX timestamp that is stored in `id`.
+ */
+ timestampFrom(id) {
+ return Number((BigInt(id) >> 22n) + this[EpochSymbol]);
+ }
+ /**
+ * Returns a number indicating whether a reference snowflake comes before, or after, or is same as the given
+ * snowflake in sort order.
+ * @param a The first snowflake to compare.
+ * @param b The second snowflake to compare.
+ * @returns `-1` if `a` is older than `b`, `0` if `a` and `b` are equals, `1` if `a` is newer than `b`.
+ * @example Sort snowflakes in ascending order
+ * ```typescript
+ * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];
+ * console.log(ids.sort((a, b) => Snowflake.compare(a, b)));
+ * // β†’ ['254360814063058944', '737141877803057244', '1056191128120082432'];
+ * ```
+ * @example Sort snowflakes in descending order
+ * ```typescript
+ * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];
+ * console.log(ids.sort((a, b) => -Snowflake.compare(a, b)));
+ * // β†’ ['1056191128120082432', '737141877803057244', '254360814063058944'];
+ * ```
+ */
+ static compare(a, b) {
+ const typeA = typeof a;
+ return typeA === typeof b ? typeA === "string" ? cmpString(a, b) : cmpBigInt(a, b) : cmpBigInt(BigInt(a), BigInt(b));
+ }
+ };
+ __name(Snowflake, "Snowflake");
+ _a = EpochSymbol, _b = IncrementSymbol, _c = ProcessIdSymbol, _d = WorkerIdSymbol;
+ function cmpBigInt(a, b) {
+ return a === b ? 0 : a < b ? -1 : 1;
+ }
+ __name(cmpBigInt, "cmpBigInt");
+ function cmpString(a, b) {
+ return a === b ? 0 : a.length < b.length ? -1 : a.length > b.length ? 1 : a < b ? -1 : 1;
+ }
+ __name(cmpString, "cmpString");
+
+ // src/lib/DiscordSnowflake.ts
+ var DiscordSnowflake = new Snowflake(1420070400000n);
+
+ // src/lib/TwitterSnowflake.ts
+ var TwitterSnowflake = new Snowflake(1288834974657n);
+
+ exports.DiscordSnowflake = DiscordSnowflake;
+ exports.MaximumIncrement = MaximumIncrement;
+ exports.MaximumProcessId = MaximumProcessId;
+ exports.MaximumWorkerId = MaximumWorkerId;
+ exports.Snowflake = Snowflake;
+ exports.TwitterSnowflake = TwitterSnowflake;
+
+ return exports;
+
+})({});
+//# sourceMappingURL=out.js.map
+//# sourceMappingURL=index.global.js.map \ No newline at end of file
diff --git a/node_modules/@sapphire/snowflake/dist/index.global.js.map b/node_modules/@sapphire/snowflake/dist/index.global.js.map
new file mode 100644
index 0000000..4204534
--- /dev/null
+++ b/node_modules/@sapphire/snowflake/dist/index.global.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../src/lib/Snowflake.ts","../src/lib/DiscordSnowflake.ts","../src/lib/TwitterSnowflake.ts"],"names":[],"mappings":"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","sourcesContent":["const IncrementSymbol = Symbol('@sapphire/snowflake.increment');\nconst EpochSymbol = Symbol('@sapphire/snowflake.epoch');\nconst ProcessIdSymbol = Symbol('@sapphire/snowflake.processId');\nconst WorkerIdSymbol = Symbol('@sapphire/snowflake.workerId');\n\n/**\n * The maximum value the `workerId` field accepts in snowflakes.\n */\nexport const MaximumWorkerId = 0b11111n;\n\n/**\n * The maximum value the `processId` field accepts in snowflakes.\n */\nexport const MaximumProcessId = 0b11111n;\n\n/**\n * The maximum value the `increment` field accepts in snowflakes.\n */\nexport const MaximumIncrement = 0b111111111111n;\n\n/**\n * A class for generating and deconstructing Twitter snowflakes.\n *\n * A {@link https://developer.twitter.com/en/docs/twitter-ids Twitter snowflake}\n * is a 64-bit unsigned integer with 4 fields that have a fixed epoch value.\n *\n * If we have a snowflake `266241948824764416` we can represent it as binary:\n * ```\n * 64 22 17 12 0\n * 000000111011000111100001101001000101000000 00001 00000 000000000000\n * number of ms since epoch worker pid increment\n * ```\n */\nexport class Snowflake {\n\t/**\n\t * Alias for {@link deconstruct}\n\t */\n\t// eslint-disable-next-line @typescript-eslint/unbound-method\n\tpublic decode = this.deconstruct;\n\n\t/**\n\t * Internal reference of the epoch passed in the constructor\n\t * @internal\n\t */\n\tprivate readonly [EpochSymbol]: bigint;\n\n\t/**\n\t * Internal incrementor for generating snowflakes\n\t * @internal\n\t */\n\tprivate [IncrementSymbol] = 0n;\n\n\t/**\n\t * The process ID that will be used by default in the generate method\n\t * @internal\n\t */\n\tprivate [ProcessIdSymbol] = 1n;\n\n\t/**\n\t * The worker ID that will be used by default in the generate method\n\t * @internal\n\t */\n\tprivate [WorkerIdSymbol] = 0n;\n\n\t/**\n\t * @param epoch the epoch to use\n\t */\n\tpublic constructor(epoch: number | bigint | Date) {\n\t\tthis[EpochSymbol] = BigInt(epoch instanceof Date ? epoch.getTime() : epoch);\n\t}\n\n\t/**\n\t * The epoch for this snowflake\n\t */\n\tpublic get epoch(): bigint {\n\t\treturn this[EpochSymbol];\n\t}\n\n\t/**\n\t * Gets the configured process ID\n\t */\n\tpublic get processId(): bigint {\n\t\treturn this[ProcessIdSymbol];\n\t}\n\n\t/**\n\t * Sets the process ID that will be used by default for the {@link generate} method\n\t * @param value The new value, will be coerced to BigInt and masked with `0b11111n`\n\t */\n\tpublic set processId(value: number | bigint) {\n\t\tthis[ProcessIdSymbol] = BigInt(value) & MaximumProcessId;\n\t}\n\n\t/**\n\t * Gets the configured worker ID\n\t */\n\tpublic get workerId(): bigint {\n\t\treturn this[WorkerIdSymbol];\n\t}\n\n\t/**\n\t * Sets the worker ID that will be used by default for the {@link generate} method\n\t * @param value The new value, will be coerced to BigInt and masked with `0b11111n`\n\t */\n\tpublic set workerId(value: number | bigint) {\n\t\tthis[WorkerIdSymbol] = BigInt(value) & MaximumWorkerId;\n\t}\n\n\t/**\n\t * Generates a snowflake given an epoch and optionally a timestamp\n\t * @param options options to pass into the generator, see {@link SnowflakeGenerateOptions}\n\t *\n\t * **note** when `increment` is not provided it defaults to the private `increment` of the instance\n\t * @example\n\t * ```typescript\n\t * const epoch = new Date('2000-01-01T00:00:00.000Z');\n\t * const snowflake = new Snowflake(epoch).generate();\n\t * ```\n\t * @returns A unique snowflake\n\t */\n\tpublic generate({\n\t\tincrement,\n\t\ttimestamp = Date.now(),\n\t\tworkerId = this[WorkerIdSymbol],\n\t\tprocessId = this[ProcessIdSymbol]\n\t}: SnowflakeGenerateOptions = {}) {\n\t\tif (timestamp instanceof Date) timestamp = BigInt(timestamp.getTime());\n\t\telse if (typeof timestamp === 'number') timestamp = BigInt(timestamp);\n\t\telse if (typeof timestamp !== 'bigint') {\n\t\t\tthrow new TypeError(`\"timestamp\" argument must be a number, bigint, or Date (received ${typeof timestamp})`);\n\t\t}\n\n\t\tif (typeof increment !== 'bigint') {\n\t\t\tincrement = this[IncrementSymbol];\n\t\t\tthis[IncrementSymbol] = (increment + 1n) & MaximumIncrement;\n\t\t}\n\n\t\t// timestamp, workerId, processId, increment\n\t\treturn (\n\t\t\t((timestamp - this[EpochSymbol]) << 22n) |\n\t\t\t((workerId & MaximumWorkerId) << 17n) |\n\t\t\t((processId & MaximumProcessId) << 12n) |\n\t\t\t(increment & MaximumIncrement)\n\t\t);\n\t}\n\n\t/**\n\t * Deconstructs a snowflake given a snowflake ID\n\t * @param id the snowflake to deconstruct\n\t * @returns a deconstructed snowflake\n\t * @example\n\t * ```typescript\n\t * const epoch = new Date('2000-01-01T00:00:00.000Z');\n\t * const snowflake = new Snowflake(epoch).deconstruct('3971046231244935168');\n\t * ```\n\t */\n\tpublic deconstruct(id: string | bigint): DeconstructedSnowflake {\n\t\tconst bigIntId = BigInt(id);\n\t\tconst epoch = this[EpochSymbol];\n\t\treturn {\n\t\t\tid: bigIntId,\n\t\t\ttimestamp: (bigIntId >> 22n) + epoch,\n\t\t\tworkerId: (bigIntId >> 17n) & MaximumWorkerId,\n\t\t\tprocessId: (bigIntId >> 12n) & MaximumProcessId,\n\t\t\tincrement: bigIntId & MaximumIncrement,\n\t\t\tepoch\n\t\t};\n\t}\n\n\t/**\n\t * Retrieves the timestamp field's value from a snowflake.\n\t * @param id The snowflake to get the timestamp value from.\n\t * @returns The UNIX timestamp that is stored in `id`.\n\t */\n\tpublic timestampFrom(id: string | bigint): number {\n\t\treturn Number((BigInt(id) >> 22n) + this[EpochSymbol]);\n\t}\n\n\t/**\n\t * Returns a number indicating whether a reference snowflake comes before, or after, or is same as the given\n\t * snowflake in sort order.\n\t * @param a The first snowflake to compare.\n\t * @param b The second snowflake to compare.\n\t * @returns `-1` if `a` is older than `b`, `0` if `a` and `b` are equals, `1` if `a` is newer than `b`.\n\t * @example Sort snowflakes in ascending order\n\t * ```typescript\n\t * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];\n\t * console.log(ids.sort((a, b) => Snowflake.compare(a, b)));\n\t * // β†’ ['254360814063058944', '737141877803057244', '1056191128120082432'];\n\t * ```\n\t * @example Sort snowflakes in descending order\n\t * ```typescript\n\t * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];\n\t * console.log(ids.sort((a, b) => -Snowflake.compare(a, b)));\n\t * // β†’ ['1056191128120082432', '737141877803057244', '254360814063058944'];\n\t * ```\n\t */\n\tpublic static compare(a: string | bigint, b: string | bigint): -1 | 0 | 1 {\n\t\tconst typeA = typeof a;\n\t\treturn typeA === typeof b\n\t\t\t? typeA === 'string'\n\t\t\t\t? cmpString(a as string, b as string)\n\t\t\t\t: cmpBigInt(a as bigint, b as bigint)\n\t\t\t: cmpBigInt(BigInt(a), BigInt(b));\n\t}\n}\n\n/** @internal */\nfunction cmpBigInt(a: bigint, b: bigint) {\n\treturn a === b ? 0 : a < b ? -1 : 1;\n}\n\n/** @internal */\nfunction cmpString(a: string, b: string) {\n\treturn a === b ? 0 : a.length < b.length ? -1 : a.length > b.length ? 1 : a < b ? -1 : 1;\n}\n\n/**\n * Options for Snowflake#generate\n */\nexport interface SnowflakeGenerateOptions {\n\t/**\n\t * Timestamp or date of the snowflake to generate\n\t * @default Date.now()\n\t */\n\ttimestamp?: number | bigint | Date;\n\n\t/**\n\t * The increment to use\n\t * @default 0n\n\t * @remark keep in mind that this bigint is auto-incremented between generate calls\n\t */\n\tincrement?: bigint;\n\n\t/**\n\t * The worker ID to use, will be truncated to 5 bits (0-31)\n\t * @default 0n\n\t */\n\tworkerId?: bigint;\n\n\t/**\n\t * The process ID to use, will be truncated to 5 bits (0-31)\n\t * @default 1n\n\t */\n\tprocessId?: bigint;\n}\n\n/**\n * Object returned by Snowflake#deconstruct\n */\nexport interface DeconstructedSnowflake {\n\t/**\n\t * The id in BigInt form\n\t */\n\tid: bigint;\n\n\t/**\n\t * The timestamp stored in the snowflake\n\t */\n\ttimestamp: bigint;\n\n\t/**\n\t * The worker id stored in the snowflake\n\t */\n\tworkerId: bigint;\n\n\t/**\n\t * The process id stored in the snowflake\n\t */\n\tprocessId: bigint;\n\n\t/**\n\t * The increment stored in the snowflake\n\t */\n\tincrement: bigint;\n\n\t/**\n\t * The epoch to use in the snowflake\n\t */\n\tepoch: bigint;\n}\n","import { Snowflake } from './Snowflake';\n\n/**\n * A class for parsing snowflake ids using Discord's snowflake epoch\n *\n * Which is 2015-01-01 at 00:00:00.000 UTC+0, {@linkplain https://discord.com/developers/docs/reference#snowflakes}\n */\nexport const DiscordSnowflake = new Snowflake(1420070400000n);\n","import { Snowflake } from './Snowflake';\n\n/**\n * A class for parsing snowflake ids using Twitter's snowflake epoch\n *\n * Which is 2010-11-04 at 01:42:54.657 UTC+0, found in the archived snowflake repository {@linkplain https://github.com/twitter-archive/snowflake/blob/b3f6a3c6ca8e1b6847baa6ff42bf72201e2c2231/src/main/scala/com/twitter/service/snowflake/IdWorker.scala#L25}\n */\nexport const TwitterSnowflake = new Snowflake(1288834974657n);\n"]} \ No newline at end of file
diff --git a/node_modules/@sapphire/snowflake/dist/index.js b/node_modules/@sapphire/snowflake/dist/index.js
new file mode 100644
index 0000000..4cfad2a
--- /dev/null
+++ b/node_modules/@sapphire/snowflake/dist/index.js
@@ -0,0 +1,193 @@
+'use strict';
+
+var __defProp = Object.defineProperty;
+var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
+var __publicField = (obj, key, value) => {
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
+ return value;
+};
+
+// src/lib/Snowflake.ts
+var IncrementSymbol = Symbol("@sapphire/snowflake.increment");
+var EpochSymbol = Symbol("@sapphire/snowflake.epoch");
+var ProcessIdSymbol = Symbol("@sapphire/snowflake.processId");
+var WorkerIdSymbol = Symbol("@sapphire/snowflake.workerId");
+var MaximumWorkerId = 0b11111n;
+var MaximumProcessId = 0b11111n;
+var MaximumIncrement = 0b111111111111n;
+var _a, _b, _c, _d;
+var Snowflake = class {
+ /**
+ * @param epoch the epoch to use
+ */
+ constructor(epoch) {
+ /**
+ * Alias for {@link deconstruct}
+ */
+ // eslint-disable-next-line @typescript-eslint/unbound-method
+ __publicField(this, "decode", this.deconstruct);
+ /**
+ * Internal reference of the epoch passed in the constructor
+ * @internal
+ */
+ __publicField(this, _a);
+ /**
+ * Internal incrementor for generating snowflakes
+ * @internal
+ */
+ __publicField(this, _b, 0n);
+ /**
+ * The process ID that will be used by default in the generate method
+ * @internal
+ */
+ __publicField(this, _c, 1n);
+ /**
+ * The worker ID that will be used by default in the generate method
+ * @internal
+ */
+ __publicField(this, _d, 0n);
+ this[EpochSymbol] = BigInt(epoch instanceof Date ? epoch.getTime() : epoch);
+ }
+ /**
+ * The epoch for this snowflake
+ */
+ get epoch() {
+ return this[EpochSymbol];
+ }
+ /**
+ * Gets the configured process ID
+ */
+ get processId() {
+ return this[ProcessIdSymbol];
+ }
+ /**
+ * Sets the process ID that will be used by default for the {@link generate} method
+ * @param value The new value, will be coerced to BigInt and masked with `0b11111n`
+ */
+ set processId(value) {
+ this[ProcessIdSymbol] = BigInt(value) & MaximumProcessId;
+ }
+ /**
+ * Gets the configured worker ID
+ */
+ get workerId() {
+ return this[WorkerIdSymbol];
+ }
+ /**
+ * Sets the worker ID that will be used by default for the {@link generate} method
+ * @param value The new value, will be coerced to BigInt and masked with `0b11111n`
+ */
+ set workerId(value) {
+ this[WorkerIdSymbol] = BigInt(value) & MaximumWorkerId;
+ }
+ /**
+ * Generates a snowflake given an epoch and optionally a timestamp
+ * @param options options to pass into the generator, see {@link SnowflakeGenerateOptions}
+ *
+ * **note** when `increment` is not provided it defaults to the private `increment` of the instance
+ * @example
+ * ```typescript
+ * const epoch = new Date('2000-01-01T00:00:00.000Z');
+ * const snowflake = new Snowflake(epoch).generate();
+ * ```
+ * @returns A unique snowflake
+ */
+ generate({
+ increment,
+ timestamp = Date.now(),
+ workerId = this[WorkerIdSymbol],
+ processId = this[ProcessIdSymbol]
+ } = {}) {
+ if (timestamp instanceof Date)
+ timestamp = BigInt(timestamp.getTime());
+ else if (typeof timestamp === "number")
+ timestamp = BigInt(timestamp);
+ else if (typeof timestamp !== "bigint") {
+ throw new TypeError(`"timestamp" argument must be a number, bigint, or Date (received ${typeof timestamp})`);
+ }
+ if (typeof increment !== "bigint") {
+ increment = this[IncrementSymbol];
+ this[IncrementSymbol] = increment + 1n & MaximumIncrement;
+ }
+ return timestamp - this[EpochSymbol] << 22n | (workerId & MaximumWorkerId) << 17n | (processId & MaximumProcessId) << 12n | increment & MaximumIncrement;
+ }
+ /**
+ * Deconstructs a snowflake given a snowflake ID
+ * @param id the snowflake to deconstruct
+ * @returns a deconstructed snowflake
+ * @example
+ * ```typescript
+ * const epoch = new Date('2000-01-01T00:00:00.000Z');
+ * const snowflake = new Snowflake(epoch).deconstruct('3971046231244935168');
+ * ```
+ */
+ deconstruct(id) {
+ const bigIntId = BigInt(id);
+ const epoch = this[EpochSymbol];
+ return {
+ id: bigIntId,
+ timestamp: (bigIntId >> 22n) + epoch,
+ workerId: bigIntId >> 17n & MaximumWorkerId,
+ processId: bigIntId >> 12n & MaximumProcessId,
+ increment: bigIntId & MaximumIncrement,
+ epoch
+ };
+ }
+ /**
+ * Retrieves the timestamp field's value from a snowflake.
+ * @param id The snowflake to get the timestamp value from.
+ * @returns The UNIX timestamp that is stored in `id`.
+ */
+ timestampFrom(id) {
+ return Number((BigInt(id) >> 22n) + this[EpochSymbol]);
+ }
+ /**
+ * Returns a number indicating whether a reference snowflake comes before, or after, or is same as the given
+ * snowflake in sort order.
+ * @param a The first snowflake to compare.
+ * @param b The second snowflake to compare.
+ * @returns `-1` if `a` is older than `b`, `0` if `a` and `b` are equals, `1` if `a` is newer than `b`.
+ * @example Sort snowflakes in ascending order
+ * ```typescript
+ * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];
+ * console.log(ids.sort((a, b) => Snowflake.compare(a, b)));
+ * // β†’ ['254360814063058944', '737141877803057244', '1056191128120082432'];
+ * ```
+ * @example Sort snowflakes in descending order
+ * ```typescript
+ * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];
+ * console.log(ids.sort((a, b) => -Snowflake.compare(a, b)));
+ * // β†’ ['1056191128120082432', '737141877803057244', '254360814063058944'];
+ * ```
+ */
+ static compare(a, b) {
+ const typeA = typeof a;
+ return typeA === typeof b ? typeA === "string" ? cmpString(a, b) : cmpBigInt(a, b) : cmpBigInt(BigInt(a), BigInt(b));
+ }
+};
+__name(Snowflake, "Snowflake");
+_a = EpochSymbol, _b = IncrementSymbol, _c = ProcessIdSymbol, _d = WorkerIdSymbol;
+function cmpBigInt(a, b) {
+ return a === b ? 0 : a < b ? -1 : 1;
+}
+__name(cmpBigInt, "cmpBigInt");
+function cmpString(a, b) {
+ return a === b ? 0 : a.length < b.length ? -1 : a.length > b.length ? 1 : a < b ? -1 : 1;
+}
+__name(cmpString, "cmpString");
+
+// src/lib/DiscordSnowflake.ts
+var DiscordSnowflake = new Snowflake(1420070400000n);
+
+// src/lib/TwitterSnowflake.ts
+var TwitterSnowflake = new Snowflake(1288834974657n);
+
+exports.DiscordSnowflake = DiscordSnowflake;
+exports.MaximumIncrement = MaximumIncrement;
+exports.MaximumProcessId = MaximumProcessId;
+exports.MaximumWorkerId = MaximumWorkerId;
+exports.Snowflake = Snowflake;
+exports.TwitterSnowflake = TwitterSnowflake;
+//# sourceMappingURL=out.js.map
+//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/node_modules/@sapphire/snowflake/dist/index.js.map b/node_modules/@sapphire/snowflake/dist/index.js.map
new file mode 100644
index 0000000..4204534
--- /dev/null
+++ b/node_modules/@sapphire/snowflake/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../src/lib/Snowflake.ts","../src/lib/DiscordSnowflake.ts","../src/lib/TwitterSnowflake.ts"],"names":[],"mappings":"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","sourcesContent":["const IncrementSymbol = Symbol('@sapphire/snowflake.increment');\nconst EpochSymbol = Symbol('@sapphire/snowflake.epoch');\nconst ProcessIdSymbol = Symbol('@sapphire/snowflake.processId');\nconst WorkerIdSymbol = Symbol('@sapphire/snowflake.workerId');\n\n/**\n * The maximum value the `workerId` field accepts in snowflakes.\n */\nexport const MaximumWorkerId = 0b11111n;\n\n/**\n * The maximum value the `processId` field accepts in snowflakes.\n */\nexport const MaximumProcessId = 0b11111n;\n\n/**\n * The maximum value the `increment` field accepts in snowflakes.\n */\nexport const MaximumIncrement = 0b111111111111n;\n\n/**\n * A class for generating and deconstructing Twitter snowflakes.\n *\n * A {@link https://developer.twitter.com/en/docs/twitter-ids Twitter snowflake}\n * is a 64-bit unsigned integer with 4 fields that have a fixed epoch value.\n *\n * If we have a snowflake `266241948824764416` we can represent it as binary:\n * ```\n * 64 22 17 12 0\n * 000000111011000111100001101001000101000000 00001 00000 000000000000\n * number of ms since epoch worker pid increment\n * ```\n */\nexport class Snowflake {\n\t/**\n\t * Alias for {@link deconstruct}\n\t */\n\t// eslint-disable-next-line @typescript-eslint/unbound-method\n\tpublic decode = this.deconstruct;\n\n\t/**\n\t * Internal reference of the epoch passed in the constructor\n\t * @internal\n\t */\n\tprivate readonly [EpochSymbol]: bigint;\n\n\t/**\n\t * Internal incrementor for generating snowflakes\n\t * @internal\n\t */\n\tprivate [IncrementSymbol] = 0n;\n\n\t/**\n\t * The process ID that will be used by default in the generate method\n\t * @internal\n\t */\n\tprivate [ProcessIdSymbol] = 1n;\n\n\t/**\n\t * The worker ID that will be used by default in the generate method\n\t * @internal\n\t */\n\tprivate [WorkerIdSymbol] = 0n;\n\n\t/**\n\t * @param epoch the epoch to use\n\t */\n\tpublic constructor(epoch: number | bigint | Date) {\n\t\tthis[EpochSymbol] = BigInt(epoch instanceof Date ? epoch.getTime() : epoch);\n\t}\n\n\t/**\n\t * The epoch for this snowflake\n\t */\n\tpublic get epoch(): bigint {\n\t\treturn this[EpochSymbol];\n\t}\n\n\t/**\n\t * Gets the configured process ID\n\t */\n\tpublic get processId(): bigint {\n\t\treturn this[ProcessIdSymbol];\n\t}\n\n\t/**\n\t * Sets the process ID that will be used by default for the {@link generate} method\n\t * @param value The new value, will be coerced to BigInt and masked with `0b11111n`\n\t */\n\tpublic set processId(value: number | bigint) {\n\t\tthis[ProcessIdSymbol] = BigInt(value) & MaximumProcessId;\n\t}\n\n\t/**\n\t * Gets the configured worker ID\n\t */\n\tpublic get workerId(): bigint {\n\t\treturn this[WorkerIdSymbol];\n\t}\n\n\t/**\n\t * Sets the worker ID that will be used by default for the {@link generate} method\n\t * @param value The new value, will be coerced to BigInt and masked with `0b11111n`\n\t */\n\tpublic set workerId(value: number | bigint) {\n\t\tthis[WorkerIdSymbol] = BigInt(value) & MaximumWorkerId;\n\t}\n\n\t/**\n\t * Generates a snowflake given an epoch and optionally a timestamp\n\t * @param options options to pass into the generator, see {@link SnowflakeGenerateOptions}\n\t *\n\t * **note** when `increment` is not provided it defaults to the private `increment` of the instance\n\t * @example\n\t * ```typescript\n\t * const epoch = new Date('2000-01-01T00:00:00.000Z');\n\t * const snowflake = new Snowflake(epoch).generate();\n\t * ```\n\t * @returns A unique snowflake\n\t */\n\tpublic generate({\n\t\tincrement,\n\t\ttimestamp = Date.now(),\n\t\tworkerId = this[WorkerIdSymbol],\n\t\tprocessId = this[ProcessIdSymbol]\n\t}: SnowflakeGenerateOptions = {}) {\n\t\tif (timestamp instanceof Date) timestamp = BigInt(timestamp.getTime());\n\t\telse if (typeof timestamp === 'number') timestamp = BigInt(timestamp);\n\t\telse if (typeof timestamp !== 'bigint') {\n\t\t\tthrow new TypeError(`\"timestamp\" argument must be a number, bigint, or Date (received ${typeof timestamp})`);\n\t\t}\n\n\t\tif (typeof increment !== 'bigint') {\n\t\t\tincrement = this[IncrementSymbol];\n\t\t\tthis[IncrementSymbol] = (increment + 1n) & MaximumIncrement;\n\t\t}\n\n\t\t// timestamp, workerId, processId, increment\n\t\treturn (\n\t\t\t((timestamp - this[EpochSymbol]) << 22n) |\n\t\t\t((workerId & MaximumWorkerId) << 17n) |\n\t\t\t((processId & MaximumProcessId) << 12n) |\n\t\t\t(increment & MaximumIncrement)\n\t\t);\n\t}\n\n\t/**\n\t * Deconstructs a snowflake given a snowflake ID\n\t * @param id the snowflake to deconstruct\n\t * @returns a deconstructed snowflake\n\t * @example\n\t * ```typescript\n\t * const epoch = new Date('2000-01-01T00:00:00.000Z');\n\t * const snowflake = new Snowflake(epoch).deconstruct('3971046231244935168');\n\t * ```\n\t */\n\tpublic deconstruct(id: string | bigint): DeconstructedSnowflake {\n\t\tconst bigIntId = BigInt(id);\n\t\tconst epoch = this[EpochSymbol];\n\t\treturn {\n\t\t\tid: bigIntId,\n\t\t\ttimestamp: (bigIntId >> 22n) + epoch,\n\t\t\tworkerId: (bigIntId >> 17n) & MaximumWorkerId,\n\t\t\tprocessId: (bigIntId >> 12n) & MaximumProcessId,\n\t\t\tincrement: bigIntId & MaximumIncrement,\n\t\t\tepoch\n\t\t};\n\t}\n\n\t/**\n\t * Retrieves the timestamp field's value from a snowflake.\n\t * @param id The snowflake to get the timestamp value from.\n\t * @returns The UNIX timestamp that is stored in `id`.\n\t */\n\tpublic timestampFrom(id: string | bigint): number {\n\t\treturn Number((BigInt(id) >> 22n) + this[EpochSymbol]);\n\t}\n\n\t/**\n\t * Returns a number indicating whether a reference snowflake comes before, or after, or is same as the given\n\t * snowflake in sort order.\n\t * @param a The first snowflake to compare.\n\t * @param b The second snowflake to compare.\n\t * @returns `-1` if `a` is older than `b`, `0` if `a` and `b` are equals, `1` if `a` is newer than `b`.\n\t * @example Sort snowflakes in ascending order\n\t * ```typescript\n\t * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];\n\t * console.log(ids.sort((a, b) => Snowflake.compare(a, b)));\n\t * // β†’ ['254360814063058944', '737141877803057244', '1056191128120082432'];\n\t * ```\n\t * @example Sort snowflakes in descending order\n\t * ```typescript\n\t * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];\n\t * console.log(ids.sort((a, b) => -Snowflake.compare(a, b)));\n\t * // β†’ ['1056191128120082432', '737141877803057244', '254360814063058944'];\n\t * ```\n\t */\n\tpublic static compare(a: string | bigint, b: string | bigint): -1 | 0 | 1 {\n\t\tconst typeA = typeof a;\n\t\treturn typeA === typeof b\n\t\t\t? typeA === 'string'\n\t\t\t\t? cmpString(a as string, b as string)\n\t\t\t\t: cmpBigInt(a as bigint, b as bigint)\n\t\t\t: cmpBigInt(BigInt(a), BigInt(b));\n\t}\n}\n\n/** @internal */\nfunction cmpBigInt(a: bigint, b: bigint) {\n\treturn a === b ? 0 : a < b ? -1 : 1;\n}\n\n/** @internal */\nfunction cmpString(a: string, b: string) {\n\treturn a === b ? 0 : a.length < b.length ? -1 : a.length > b.length ? 1 : a < b ? -1 : 1;\n}\n\n/**\n * Options for Snowflake#generate\n */\nexport interface SnowflakeGenerateOptions {\n\t/**\n\t * Timestamp or date of the snowflake to generate\n\t * @default Date.now()\n\t */\n\ttimestamp?: number | bigint | Date;\n\n\t/**\n\t * The increment to use\n\t * @default 0n\n\t * @remark keep in mind that this bigint is auto-incremented between generate calls\n\t */\n\tincrement?: bigint;\n\n\t/**\n\t * The worker ID to use, will be truncated to 5 bits (0-31)\n\t * @default 0n\n\t */\n\tworkerId?: bigint;\n\n\t/**\n\t * The process ID to use, will be truncated to 5 bits (0-31)\n\t * @default 1n\n\t */\n\tprocessId?: bigint;\n}\n\n/**\n * Object returned by Snowflake#deconstruct\n */\nexport interface DeconstructedSnowflake {\n\t/**\n\t * The id in BigInt form\n\t */\n\tid: bigint;\n\n\t/**\n\t * The timestamp stored in the snowflake\n\t */\n\ttimestamp: bigint;\n\n\t/**\n\t * The worker id stored in the snowflake\n\t */\n\tworkerId: bigint;\n\n\t/**\n\t * The process id stored in the snowflake\n\t */\n\tprocessId: bigint;\n\n\t/**\n\t * The increment stored in the snowflake\n\t */\n\tincrement: bigint;\n\n\t/**\n\t * The epoch to use in the snowflake\n\t */\n\tepoch: bigint;\n}\n","import { Snowflake } from './Snowflake';\n\n/**\n * A class for parsing snowflake ids using Discord's snowflake epoch\n *\n * Which is 2015-01-01 at 00:00:00.000 UTC+0, {@linkplain https://discord.com/developers/docs/reference#snowflakes}\n */\nexport const DiscordSnowflake = new Snowflake(1420070400000n);\n","import { Snowflake } from './Snowflake';\n\n/**\n * A class for parsing snowflake ids using Twitter's snowflake epoch\n *\n * Which is 2010-11-04 at 01:42:54.657 UTC+0, found in the archived snowflake repository {@linkplain https://github.com/twitter-archive/snowflake/blob/b3f6a3c6ca8e1b6847baa6ff42bf72201e2c2231/src/main/scala/com/twitter/service/snowflake/IdWorker.scala#L25}\n */\nexport const TwitterSnowflake = new Snowflake(1288834974657n);\n"]} \ No newline at end of file
diff --git a/node_modules/@sapphire/snowflake/dist/index.mjs b/node_modules/@sapphire/snowflake/dist/index.mjs
new file mode 100644
index 0000000..7cfbfd7
--- /dev/null
+++ b/node_modules/@sapphire/snowflake/dist/index.mjs
@@ -0,0 +1,186 @@
+var __defProp = Object.defineProperty;
+var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
+var __publicField = (obj, key, value) => {
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
+ return value;
+};
+
+// src/lib/Snowflake.ts
+var IncrementSymbol = Symbol("@sapphire/snowflake.increment");
+var EpochSymbol = Symbol("@sapphire/snowflake.epoch");
+var ProcessIdSymbol = Symbol("@sapphire/snowflake.processId");
+var WorkerIdSymbol = Symbol("@sapphire/snowflake.workerId");
+var MaximumWorkerId = 0b11111n;
+var MaximumProcessId = 0b11111n;
+var MaximumIncrement = 0b111111111111n;
+var _a, _b, _c, _d;
+var Snowflake = class {
+ /**
+ * @param epoch the epoch to use
+ */
+ constructor(epoch) {
+ /**
+ * Alias for {@link deconstruct}
+ */
+ // eslint-disable-next-line @typescript-eslint/unbound-method
+ __publicField(this, "decode", this.deconstruct);
+ /**
+ * Internal reference of the epoch passed in the constructor
+ * @internal
+ */
+ __publicField(this, _a);
+ /**
+ * Internal incrementor for generating snowflakes
+ * @internal
+ */
+ __publicField(this, _b, 0n);
+ /**
+ * The process ID that will be used by default in the generate method
+ * @internal
+ */
+ __publicField(this, _c, 1n);
+ /**
+ * The worker ID that will be used by default in the generate method
+ * @internal
+ */
+ __publicField(this, _d, 0n);
+ this[EpochSymbol] = BigInt(epoch instanceof Date ? epoch.getTime() : epoch);
+ }
+ /**
+ * The epoch for this snowflake
+ */
+ get epoch() {
+ return this[EpochSymbol];
+ }
+ /**
+ * Gets the configured process ID
+ */
+ get processId() {
+ return this[ProcessIdSymbol];
+ }
+ /**
+ * Sets the process ID that will be used by default for the {@link generate} method
+ * @param value The new value, will be coerced to BigInt and masked with `0b11111n`
+ */
+ set processId(value) {
+ this[ProcessIdSymbol] = BigInt(value) & MaximumProcessId;
+ }
+ /**
+ * Gets the configured worker ID
+ */
+ get workerId() {
+ return this[WorkerIdSymbol];
+ }
+ /**
+ * Sets the worker ID that will be used by default for the {@link generate} method
+ * @param value The new value, will be coerced to BigInt and masked with `0b11111n`
+ */
+ set workerId(value) {
+ this[WorkerIdSymbol] = BigInt(value) & MaximumWorkerId;
+ }
+ /**
+ * Generates a snowflake given an epoch and optionally a timestamp
+ * @param options options to pass into the generator, see {@link SnowflakeGenerateOptions}
+ *
+ * **note** when `increment` is not provided it defaults to the private `increment` of the instance
+ * @example
+ * ```typescript
+ * const epoch = new Date('2000-01-01T00:00:00.000Z');
+ * const snowflake = new Snowflake(epoch).generate();
+ * ```
+ * @returns A unique snowflake
+ */
+ generate({
+ increment,
+ timestamp = Date.now(),
+ workerId = this[WorkerIdSymbol],
+ processId = this[ProcessIdSymbol]
+ } = {}) {
+ if (timestamp instanceof Date)
+ timestamp = BigInt(timestamp.getTime());
+ else if (typeof timestamp === "number")
+ timestamp = BigInt(timestamp);
+ else if (typeof timestamp !== "bigint") {
+ throw new TypeError(`"timestamp" argument must be a number, bigint, or Date (received ${typeof timestamp})`);
+ }
+ if (typeof increment !== "bigint") {
+ increment = this[IncrementSymbol];
+ this[IncrementSymbol] = increment + 1n & MaximumIncrement;
+ }
+ return timestamp - this[EpochSymbol] << 22n | (workerId & MaximumWorkerId) << 17n | (processId & MaximumProcessId) << 12n | increment & MaximumIncrement;
+ }
+ /**
+ * Deconstructs a snowflake given a snowflake ID
+ * @param id the snowflake to deconstruct
+ * @returns a deconstructed snowflake
+ * @example
+ * ```typescript
+ * const epoch = new Date('2000-01-01T00:00:00.000Z');
+ * const snowflake = new Snowflake(epoch).deconstruct('3971046231244935168');
+ * ```
+ */
+ deconstruct(id) {
+ const bigIntId = BigInt(id);
+ const epoch = this[EpochSymbol];
+ return {
+ id: bigIntId,
+ timestamp: (bigIntId >> 22n) + epoch,
+ workerId: bigIntId >> 17n & MaximumWorkerId,
+ processId: bigIntId >> 12n & MaximumProcessId,
+ increment: bigIntId & MaximumIncrement,
+ epoch
+ };
+ }
+ /**
+ * Retrieves the timestamp field's value from a snowflake.
+ * @param id The snowflake to get the timestamp value from.
+ * @returns The UNIX timestamp that is stored in `id`.
+ */
+ timestampFrom(id) {
+ return Number((BigInt(id) >> 22n) + this[EpochSymbol]);
+ }
+ /**
+ * Returns a number indicating whether a reference snowflake comes before, or after, or is same as the given
+ * snowflake in sort order.
+ * @param a The first snowflake to compare.
+ * @param b The second snowflake to compare.
+ * @returns `-1` if `a` is older than `b`, `0` if `a` and `b` are equals, `1` if `a` is newer than `b`.
+ * @example Sort snowflakes in ascending order
+ * ```typescript
+ * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];
+ * console.log(ids.sort((a, b) => Snowflake.compare(a, b)));
+ * // β†’ ['254360814063058944', '737141877803057244', '1056191128120082432'];
+ * ```
+ * @example Sort snowflakes in descending order
+ * ```typescript
+ * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];
+ * console.log(ids.sort((a, b) => -Snowflake.compare(a, b)));
+ * // β†’ ['1056191128120082432', '737141877803057244', '254360814063058944'];
+ * ```
+ */
+ static compare(a, b) {
+ const typeA = typeof a;
+ return typeA === typeof b ? typeA === "string" ? cmpString(a, b) : cmpBigInt(a, b) : cmpBigInt(BigInt(a), BigInt(b));
+ }
+};
+__name(Snowflake, "Snowflake");
+_a = EpochSymbol, _b = IncrementSymbol, _c = ProcessIdSymbol, _d = WorkerIdSymbol;
+function cmpBigInt(a, b) {
+ return a === b ? 0 : a < b ? -1 : 1;
+}
+__name(cmpBigInt, "cmpBigInt");
+function cmpString(a, b) {
+ return a === b ? 0 : a.length < b.length ? -1 : a.length > b.length ? 1 : a < b ? -1 : 1;
+}
+__name(cmpString, "cmpString");
+
+// src/lib/DiscordSnowflake.ts
+var DiscordSnowflake = new Snowflake(1420070400000n);
+
+// src/lib/TwitterSnowflake.ts
+var TwitterSnowflake = new Snowflake(1288834974657n);
+
+export { DiscordSnowflake, MaximumIncrement, MaximumProcessId, MaximumWorkerId, Snowflake, TwitterSnowflake };
+//# sourceMappingURL=out.js.map
+//# sourceMappingURL=index.mjs.map \ No newline at end of file
diff --git a/node_modules/@sapphire/snowflake/dist/index.mjs.map b/node_modules/@sapphire/snowflake/dist/index.mjs.map
new file mode 100644
index 0000000..4204534
--- /dev/null
+++ b/node_modules/@sapphire/snowflake/dist/index.mjs.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../src/lib/Snowflake.ts","../src/lib/DiscordSnowflake.ts","../src/lib/TwitterSnowflake.ts"],"names":[],"mappings":"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","sourcesContent":["const IncrementSymbol = Symbol('@sapphire/snowflake.increment');\nconst EpochSymbol = Symbol('@sapphire/snowflake.epoch');\nconst ProcessIdSymbol = Symbol('@sapphire/snowflake.processId');\nconst WorkerIdSymbol = Symbol('@sapphire/snowflake.workerId');\n\n/**\n * The maximum value the `workerId` field accepts in snowflakes.\n */\nexport const MaximumWorkerId = 0b11111n;\n\n/**\n * The maximum value the `processId` field accepts in snowflakes.\n */\nexport const MaximumProcessId = 0b11111n;\n\n/**\n * The maximum value the `increment` field accepts in snowflakes.\n */\nexport const MaximumIncrement = 0b111111111111n;\n\n/**\n * A class for generating and deconstructing Twitter snowflakes.\n *\n * A {@link https://developer.twitter.com/en/docs/twitter-ids Twitter snowflake}\n * is a 64-bit unsigned integer with 4 fields that have a fixed epoch value.\n *\n * If we have a snowflake `266241948824764416` we can represent it as binary:\n * ```\n * 64 22 17 12 0\n * 000000111011000111100001101001000101000000 00001 00000 000000000000\n * number of ms since epoch worker pid increment\n * ```\n */\nexport class Snowflake {\n\t/**\n\t * Alias for {@link deconstruct}\n\t */\n\t// eslint-disable-next-line @typescript-eslint/unbound-method\n\tpublic decode = this.deconstruct;\n\n\t/**\n\t * Internal reference of the epoch passed in the constructor\n\t * @internal\n\t */\n\tprivate readonly [EpochSymbol]: bigint;\n\n\t/**\n\t * Internal incrementor for generating snowflakes\n\t * @internal\n\t */\n\tprivate [IncrementSymbol] = 0n;\n\n\t/**\n\t * The process ID that will be used by default in the generate method\n\t * @internal\n\t */\n\tprivate [ProcessIdSymbol] = 1n;\n\n\t/**\n\t * The worker ID that will be used by default in the generate method\n\t * @internal\n\t */\n\tprivate [WorkerIdSymbol] = 0n;\n\n\t/**\n\t * @param epoch the epoch to use\n\t */\n\tpublic constructor(epoch: number | bigint | Date) {\n\t\tthis[EpochSymbol] = BigInt(epoch instanceof Date ? epoch.getTime() : epoch);\n\t}\n\n\t/**\n\t * The epoch for this snowflake\n\t */\n\tpublic get epoch(): bigint {\n\t\treturn this[EpochSymbol];\n\t}\n\n\t/**\n\t * Gets the configured process ID\n\t */\n\tpublic get processId(): bigint {\n\t\treturn this[ProcessIdSymbol];\n\t}\n\n\t/**\n\t * Sets the process ID that will be used by default for the {@link generate} method\n\t * @param value The new value, will be coerced to BigInt and masked with `0b11111n`\n\t */\n\tpublic set processId(value: number | bigint) {\n\t\tthis[ProcessIdSymbol] = BigInt(value) & MaximumProcessId;\n\t}\n\n\t/**\n\t * Gets the configured worker ID\n\t */\n\tpublic get workerId(): bigint {\n\t\treturn this[WorkerIdSymbol];\n\t}\n\n\t/**\n\t * Sets the worker ID that will be used by default for the {@link generate} method\n\t * @param value The new value, will be coerced to BigInt and masked with `0b11111n`\n\t */\n\tpublic set workerId(value: number | bigint) {\n\t\tthis[WorkerIdSymbol] = BigInt(value) & MaximumWorkerId;\n\t}\n\n\t/**\n\t * Generates a snowflake given an epoch and optionally a timestamp\n\t * @param options options to pass into the generator, see {@link SnowflakeGenerateOptions}\n\t *\n\t * **note** when `increment` is not provided it defaults to the private `increment` of the instance\n\t * @example\n\t * ```typescript\n\t * const epoch = new Date('2000-01-01T00:00:00.000Z');\n\t * const snowflake = new Snowflake(epoch).generate();\n\t * ```\n\t * @returns A unique snowflake\n\t */\n\tpublic generate({\n\t\tincrement,\n\t\ttimestamp = Date.now(),\n\t\tworkerId = this[WorkerIdSymbol],\n\t\tprocessId = this[ProcessIdSymbol]\n\t}: SnowflakeGenerateOptions = {}) {\n\t\tif (timestamp instanceof Date) timestamp = BigInt(timestamp.getTime());\n\t\telse if (typeof timestamp === 'number') timestamp = BigInt(timestamp);\n\t\telse if (typeof timestamp !== 'bigint') {\n\t\t\tthrow new TypeError(`\"timestamp\" argument must be a number, bigint, or Date (received ${typeof timestamp})`);\n\t\t}\n\n\t\tif (typeof increment !== 'bigint') {\n\t\t\tincrement = this[IncrementSymbol];\n\t\t\tthis[IncrementSymbol] = (increment + 1n) & MaximumIncrement;\n\t\t}\n\n\t\t// timestamp, workerId, processId, increment\n\t\treturn (\n\t\t\t((timestamp - this[EpochSymbol]) << 22n) |\n\t\t\t((workerId & MaximumWorkerId) << 17n) |\n\t\t\t((processId & MaximumProcessId) << 12n) |\n\t\t\t(increment & MaximumIncrement)\n\t\t);\n\t}\n\n\t/**\n\t * Deconstructs a snowflake given a snowflake ID\n\t * @param id the snowflake to deconstruct\n\t * @returns a deconstructed snowflake\n\t * @example\n\t * ```typescript\n\t * const epoch = new Date('2000-01-01T00:00:00.000Z');\n\t * const snowflake = new Snowflake(epoch).deconstruct('3971046231244935168');\n\t * ```\n\t */\n\tpublic deconstruct(id: string | bigint): DeconstructedSnowflake {\n\t\tconst bigIntId = BigInt(id);\n\t\tconst epoch = this[EpochSymbol];\n\t\treturn {\n\t\t\tid: bigIntId,\n\t\t\ttimestamp: (bigIntId >> 22n) + epoch,\n\t\t\tworkerId: (bigIntId >> 17n) & MaximumWorkerId,\n\t\t\tprocessId: (bigIntId >> 12n) & MaximumProcessId,\n\t\t\tincrement: bigIntId & MaximumIncrement,\n\t\t\tepoch\n\t\t};\n\t}\n\n\t/**\n\t * Retrieves the timestamp field's value from a snowflake.\n\t * @param id The snowflake to get the timestamp value from.\n\t * @returns The UNIX timestamp that is stored in `id`.\n\t */\n\tpublic timestampFrom(id: string | bigint): number {\n\t\treturn Number((BigInt(id) >> 22n) + this[EpochSymbol]);\n\t}\n\n\t/**\n\t * Returns a number indicating whether a reference snowflake comes before, or after, or is same as the given\n\t * snowflake in sort order.\n\t * @param a The first snowflake to compare.\n\t * @param b The second snowflake to compare.\n\t * @returns `-1` if `a` is older than `b`, `0` if `a` and `b` are equals, `1` if `a` is newer than `b`.\n\t * @example Sort snowflakes in ascending order\n\t * ```typescript\n\t * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];\n\t * console.log(ids.sort((a, b) => Snowflake.compare(a, b)));\n\t * // β†’ ['254360814063058944', '737141877803057244', '1056191128120082432'];\n\t * ```\n\t * @example Sort snowflakes in descending order\n\t * ```typescript\n\t * const ids = ['737141877803057244', '1056191128120082432', '254360814063058944'];\n\t * console.log(ids.sort((a, b) => -Snowflake.compare(a, b)));\n\t * // β†’ ['1056191128120082432', '737141877803057244', '254360814063058944'];\n\t * ```\n\t */\n\tpublic static compare(a: string | bigint, b: string | bigint): -1 | 0 | 1 {\n\t\tconst typeA = typeof a;\n\t\treturn typeA === typeof b\n\t\t\t? typeA === 'string'\n\t\t\t\t? cmpString(a as string, b as string)\n\t\t\t\t: cmpBigInt(a as bigint, b as bigint)\n\t\t\t: cmpBigInt(BigInt(a), BigInt(b));\n\t}\n}\n\n/** @internal */\nfunction cmpBigInt(a: bigint, b: bigint) {\n\treturn a === b ? 0 : a < b ? -1 : 1;\n}\n\n/** @internal */\nfunction cmpString(a: string, b: string) {\n\treturn a === b ? 0 : a.length < b.length ? -1 : a.length > b.length ? 1 : a < b ? -1 : 1;\n}\n\n/**\n * Options for Snowflake#generate\n */\nexport interface SnowflakeGenerateOptions {\n\t/**\n\t * Timestamp or date of the snowflake to generate\n\t * @default Date.now()\n\t */\n\ttimestamp?: number | bigint | Date;\n\n\t/**\n\t * The increment to use\n\t * @default 0n\n\t * @remark keep in mind that this bigint is auto-incremented between generate calls\n\t */\n\tincrement?: bigint;\n\n\t/**\n\t * The worker ID to use, will be truncated to 5 bits (0-31)\n\t * @default 0n\n\t */\n\tworkerId?: bigint;\n\n\t/**\n\t * The process ID to use, will be truncated to 5 bits (0-31)\n\t * @default 1n\n\t */\n\tprocessId?: bigint;\n}\n\n/**\n * Object returned by Snowflake#deconstruct\n */\nexport interface DeconstructedSnowflake {\n\t/**\n\t * The id in BigInt form\n\t */\n\tid: bigint;\n\n\t/**\n\t * The timestamp stored in the snowflake\n\t */\n\ttimestamp: bigint;\n\n\t/**\n\t * The worker id stored in the snowflake\n\t */\n\tworkerId: bigint;\n\n\t/**\n\t * The process id stored in the snowflake\n\t */\n\tprocessId: bigint;\n\n\t/**\n\t * The increment stored in the snowflake\n\t */\n\tincrement: bigint;\n\n\t/**\n\t * The epoch to use in the snowflake\n\t */\n\tepoch: bigint;\n}\n","import { Snowflake } from './Snowflake';\n\n/**\n * A class for parsing snowflake ids using Discord's snowflake epoch\n *\n * Which is 2015-01-01 at 00:00:00.000 UTC+0, {@linkplain https://discord.com/developers/docs/reference#snowflakes}\n */\nexport const DiscordSnowflake = new Snowflake(1420070400000n);\n","import { Snowflake } from './Snowflake';\n\n/**\n * A class for parsing snowflake ids using Twitter's snowflake epoch\n *\n * Which is 2010-11-04 at 01:42:54.657 UTC+0, found in the archived snowflake repository {@linkplain https://github.com/twitter-archive/snowflake/blob/b3f6a3c6ca8e1b6847baa6ff42bf72201e2c2231/src/main/scala/com/twitter/service/snowflake/IdWorker.scala#L25}\n */\nexport const TwitterSnowflake = new Snowflake(1288834974657n);\n"]} \ No newline at end of file
diff --git a/node_modules/@sapphire/snowflake/package.json b/node_modules/@sapphire/snowflake/package.json
new file mode 100644
index 0000000..da16195
--- /dev/null
+++ b/node_modules/@sapphire/snowflake/package.json
@@ -0,0 +1,67 @@
+{
+ "name": "@sapphire/snowflake",
+ "version": "3.5.1",
+ "description": "Deconstructs and generates snowflake IDs using BigInts",
+ "author": "@sapphire",
+ "license": "MIT",
+ "main": "dist/index.js",
+ "module": "dist/index.mjs",
+ "browser": "dist/index.global.js",
+ "unpkg": "dist/index.global.js",
+ "types": "dist/index.d.ts",
+ "exports": {
+ "import": "./dist/index.mjs",
+ "require": "./dist/index.js",
+ "types": "./dist/index.d.ts"
+ },
+ "sideEffects": false,
+ "homepage": "https://github.com/sapphiredev/utilities/tree/main/packages/snowflake",
+ "scripts": {
+ "test": "vitest run",
+ "lint": "eslint src tests --ext ts --fix -c ../../.eslintrc",
+ "build": "tsup",
+ "docs": "typedoc-json-parser",
+ "prepack": "yarn build",
+ "bump": "cliff-jumper",
+ "check-update": "cliff-jumper --dry-run"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sapphiredev/utilities.git",
+ "directory": "packages/snowflake"
+ },
+ "files": [
+ "dist/**/*.js*",
+ "dist/**/*.mjs*",
+ "dist/**/*.d*"
+ ],
+ "engines": {
+ "node": ">=v14.0.0",
+ "npm": ">=7.0.0"
+ },
+ "keywords": [
+ "@sapphire/snowflake",
+ "bot",
+ "typescript",
+ "ts",
+ "yarn",
+ "discord",
+ "sapphire",
+ "standalone"
+ ],
+ "bugs": {
+ "url": "https://github.com/sapphiredev/utilities/issues"
+ },
+ "publishConfig": {
+ "access": "public"
+ },
+ "devDependencies": {
+ "@favware/cliff-jumper": "^2.0.0",
+ "@vitest/coverage-c8": "^0.31.0",
+ "tsup": "^6.7.0",
+ "typedoc": "^0.24.7",
+ "typedoc-json-parser": "^7.4.0",
+ "typescript": "^5.0.4",
+ "vitest": "^0.31.0"
+ }
+} \ No newline at end of file